From 70a39de9782018477d4382bd22bb3343e6415466 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gijs=20Vermari=C3=ABn?= Date: Thu, 20 Jul 2023 20:15:07 +0200 Subject: [PATCH] Deploy website - based on a4dee44fb85121ecbf05600a9150d483c63b5d96 --- 3dpdr/index.html | 22 ++-- 404.html | 22 ++-- assets/css/styles.d7847056.css | 1 + assets/css/styles.dbe2f3b0.css | 1 - assets/js/04f8940c.76e7732c.js | 1 - assets/js/04f8940c.78679319.js | 1 + assets/js/08daa2f3.2be38646.js | 1 - assets/js/08daa2f3.56d8bec2.js | 1 + assets/js/0a312c56.032abff2.js | 1 + assets/js/0a312c56.3ad1c3c5.js | 1 - assets/js/0e89b35c.1098de96.js | 1 - assets/js/0e89b35c.5c748411.js | 1 + assets/js/14eb3368.1054f036.js | 1 + assets/js/14eb3368.853a9ae1.js | 1 - assets/js/17896441.77da63b4.js | 1 - assets/js/17896441.c5b7685c.js | 1 + assets/js/197ac2f1.2b5a43d9.js | 1 + assets/js/197ac2f1.4ef2359b.js | 1 - assets/js/19d37fc1.2dc159a9.js | 1 - assets/js/19d37fc1.e25f6ed7.js | 1 + ...2eb7f.146f3bdc.js => 1ba038cd.348df808.js} | 2 +- assets/js/1ba038cd.8f97d7d4.js | 1 - assets/js/1be78505.ed24d4e8.js | 1 + assets/js/1be78505.faff00ea.js | 1 - ...6d774.79c43cfc.js => 1cd6d774.b5b7ef87.js} | 2 +- ...a9094.8e2e301b.js => 1dba9094.47998e03.js} | 2 +- assets/js/1e1adb0b.3ea40395.js | 1 - assets/js/1e1adb0b.3f34b4f0.js | 1 + assets/js/1f072b81.4642b958.js | 1 + assets/js/1f072b81.a40a0e84.js | 1 - assets/js/236d4ea4.2c783e49.js | 1 + assets/js/236d4ea4.5d24fe8a.js | 1 - ...fea48.bd74ec7e.js => 236fea48.84926114.js} | 2 +- assets/js/25925e1d.7c7d491f.js | 1 + assets/js/25925e1d.97107826.js | 1 - ...461e9.97eb7183.js => 27f461e9.5ee6a007.js} | 2 +- assets/js/297e8b98.82488fc5.js | 1 + assets/js/297e8b98.caf3a19d.js | 1 - assets/js/2dbc3c34.3b325659.js | 1 + assets/js/2dbc3c34.a78bafff.js | 1 - ...69678.ce2db1e6.js => 30669678.4657d731.js} | 2 +- assets/js/32e9b7cb.0e0d5112.js | 1 - assets/js/32e9b7cb.449ab369.js | 1 + ...0bbdb.68a2ee6a.js => 33e58627.260ce0ab.js} | 2 +- assets/js/33e58627.293374d0.js | 1 - ...2d4cd.30e577dc.js => 3492d4cd.c2d42899.js} | 2 +- assets/js/37df37e5.8ef68c5a.js | 1 - assets/js/37df37e5.ba07c1f9.js | 1 + assets/js/3ca268a2.72ce5220.js | 1 + assets/js/3ca268a2.ffe176bb.js | 1 - assets/js/3ca94418.8918c9fb.js | 1 + assets/js/3ca94418.fd7aadd9.js | 1 - assets/js/4029de32.6d9bd70d.js | 1 + assets/js/4029de32.c9c2cbb6.js | 1 - assets/js/43cd5493.1a43fb72.js | 1 - assets/js/43cd5493.8220f700.js | 1 + assets/js/44815e26.7727ec8f.js | 1 - assets/js/44815e26.c99141b5.js | 1 + assets/js/44936c8a.8e9fa299.js | 1 + assets/js/44936c8a.ca95407b.js | 1 - assets/js/463275cf.31da68a2.js | 1 + assets/js/463275cf.ed45dcc8.js | 1 - assets/js/4791faca.8df128fa.js | 1 - ...6c097.2d5d1379.js => 4791faca.e53f8f7b.js} | 2 +- .../js/{4608.0931fc03.js => 4972.b9a66fc4.js} | 2 +- assets/js/4b111dda.8af06373.js | 1 - assets/js/4b111dda.91c2a6bd.js | 1 + ...0ee09.07f6c3e9.js => 4c70ee09.c737d261.js} | 2 +- assets/js/4c7304f4.07ff8d97.js | 1 - assets/js/4c7304f4.d06bdc8c.js | 1 + ...52dd6.4906d0dd.js => 4f352dd6.d9212974.js} | 2 +- assets/js/512466b5.692a4140.js | 1 - assets/js/512466b5.8486178f.js | 1 + assets/js/538f2129.0b72b3f7.js | 1 - assets/js/538f2129.71fe8cf8.js | 1 + ...1034f.6aee3445.js => 56e1034f.0290df3f.js} | 2 +- assets/js/5a334135.8f9e090c.js | 1 - assets/js/5a334135.ee86b4a1.js | 1 + assets/js/5a7d93ee.7e25234e.js | 1 + assets/js/5a7d93ee.e010d149.js | 1 - ...b9a5a.1e612f41.js => 5bfb9a5a.690fb1d2.js} | 2 +- assets/js/5dbea504.15f9385e.js | 1 - assets/js/5dbea504.dd9f08a0.js | 1 + assets/js/607afc38.95dd200d.js | 1 + assets/js/607afc38.fc9e5146.js | 1 - ...1527a.9886d0e4.js => 6101527a.d4515041.js} | 2 +- assets/js/61e2a305.c9c54fe3.js | 1 + ...703ca.39c26f91.js => 640703ca.3568f9de.js} | 2 +- assets/js/670f431a.cb46b8af.js | 1 + assets/js/670f431a.e1fb0a2d.js | 1 - ...d9eaa.317e9677.js => 689d9eaa.3c6f76c0.js} | 2 +- assets/js/6992.c25a25c8.js | 1 - ...88aa2.6701a694.js => 6a488aa2.807d0f62.js} | 2 +- assets/js/6a4b9492.c814cf92.js | 1 + assets/js/6a4b9492.d088c4e9.js | 1 - ...20b4d.c22e6f1e.js => 6ba1b442.2903ce72.js} | 2 +- assets/js/6ba1b442.f1a43ab4.js | 1 - ...3e248.1f5361bb.js => 6bb3e248.f0d4ef3b.js} | 2 +- assets/js/6c2487b5.2323ad1a.js | 1 + assets/js/6c2487b5.25bd3a2d.js | 1 - assets/js/6c5fb57f.3343b13e.js | 1 - assets/js/6c5fb57f.74294f30.js | 1 + assets/js/7080.f1a0bfcf.js | 1 + ...08c5e.e4d0653c.js => 71908c5e.506ec16b.js} | 2 +- assets/js/7aa4d0e1.8869f2b3.js | 1 - assets/js/7aa4d0e1.fe856eee.js | 1 + assets/js/7b253f47.7175ec20.js | 1 + assets/js/7b253f47.f45630a7.js | 1 - ...80f3c.28567b28.js => 7bc80f3c.0cd0b177.js} | 2 +- assets/js/7c193f36.13f7c323.js | 1 - assets/js/7c193f36.d27c8357.js | 1 + ...2a305.b2331146.js => 7cbbac6d.1137c1b2.js} | 2 +- assets/js/7cbbac6d.d5dc751b.js | 1 - ...7206e.f3c030cf.js => 7e37206e.749aa7e1.js} | 2 +- assets/js/7f120b4d.7126897d.js | 1 + assets/js/812cb1a9.748c1178.js | 1 - assets/js/812cb1a9.b360c0f5.js | 1 + assets/js/8218.007806d9.js | 1 + assets/js/82de2e50.2ea6e15f.js | 1 + assets/js/82de2e50.86f4bd01.js | 1 - assets/js/82e83611.0d5f4063.js | 1 + assets/js/82e83611.6dc15c0d.js | 1 - assets/js/8524628b.8f95d539.js | 1 - assets/js/8524628b.cdd781e5.js | 1 + assets/js/87033a11.2d45430c.js | 1 - assets/js/87033a11.7af87de6.js | 1 + assets/js/8762eb7f.0266e1fd.js | 1 + ...56035.9bdaa09a.js => 87956035.098f0357.js} | 2 +- assets/js/8b9fbec9.6001df08.js | 1 + assets/js/8cd0bbdb.e919e219.js | 1 + ...ea0e6.d4bf7704.js => 8e6ea0e6.ef3d3c03.js} | 2 +- ...f9ab5.7765f28a.js => 8eef9ab5.8c4df806.js} | 2 +- assets/js/8f25fbab.4256c0fd.js | 1 - assets/js/8f25fbab.fcac962d.js | 1 + assets/js/935f2afb.8b4fa2a9.js | 1 + assets/js/935f2afb.b07785f2.js | 1 - assets/js/93b8a6b4.e799db72.js | 1 + assets/js/93b8a6b4.ecf59d81.js | 1 - assets/js/950fd243.54f27e48.js | 1 + assets/js/950fd243.dd597863.js | 1 - ...548e4.24ab413d.js => 957548e4.22a78f30.js} | 2 +- ...680a9.bf35da4f.js => 95c680a9.9e9960f4.js} | 2 +- assets/js/968bdb06.7bda4ec0.js | 1 + assets/js/968bdb06.952cc0a3.js | 1 - assets/js/9968756c.5ba385a3.js | 1 + assets/js/9968756c.e9bd4a9e.js | 1 - assets/js/9b050cce.0df84596.js | 1 + assets/js/9b050cce.4bb6be1b.js | 1 - ...087bc.544e341e.js => 9e4087bc.92d7df89.js} | 2 +- assets/js/9faf9bc8.7bf927a6.js | 1 + assets/js/9faf9bc8.8f044af2.js | 1 - assets/js/a070733c.685f4307.js | 1 - assets/js/a070733c.7f9a401a.js | 1 + assets/js/a30e1db8.0e40c625.js | 1 + assets/js/a30e1db8.d2c1a7d5.js | 1 - assets/js/a392f71d.52b3ffdd.js | 1 - assets/js/a392f71d.5bca2a48.js | 1 + assets/js/a6aa9e1f.0a1441d6.js | 1 - assets/js/a6aa9e1f.245d6124.js | 1 + assets/js/a6d620e2.4e12dd72.js | 1 - assets/js/a6d620e2.80e32fb4.js | 1 + assets/js/a9bdb9a1.71124b43.js | 1 + assets/js/a9bdb9a1.81d96602.js | 1 - assets/js/b2effb50.0c3dc39a.js | 1 - assets/js/b2effb50.ba855c97.js | 1 + assets/js/b2f554cd.94574eb3.js | 1 - assets/js/b2f554cd.cd875265.js | 1 + assets/js/b4779a4a.0d3a2136.js | 1 - assets/js/b4779a4a.8a7acfb5.js | 1 + assets/js/ba4d4e72.484bd9f0.js | 1 - assets/js/ba4d4e72.9145b23e.js | 1 + assets/js/bef14caa.7a386ea5.js | 1 - assets/js/bef14caa.daa4453f.js | 1 + assets/js/c17a6496.246e6d83.js | 1 + assets/js/c17a6496.d93e17a5.js | 1 - assets/js/c2a99c14.2788a81d.js | 1 + assets/js/c2a99c14.85ef2525.js | 1 - assets/js/c491cf8e.93ad4f1b.js | 1 - assets/js/c491cf8e.c25b0188.js | 1 + assets/js/c4e6c98a.6137838d.js | 1 + assets/js/c4e6c98a.d3dad9b0.js | 1 - ...5d8e4.053a4a62.js => c4f5d8e4.82ee5bab.js} | 2 +- assets/js/c8755060.8d29b50c.js | 1 + assets/js/c8755060.fb538fef.js | 1 - assets/js/ca07b522.674fe7ea.js | 1 + assets/js/ca07b522.ea61a8d4.js | 1 - assets/js/cb3beda6.84c5de09.js | 1 - assets/js/cb3beda6.92e3d01d.js | 1 + assets/js/cb646038.06fb177b.js | 1 - assets/js/cb646038.5cc5dbad.js | 1 + assets/js/ccc49370.73dfd116.js | 1 + assets/js/ccc49370.9672073e.js | 1 - assets/js/d226c097.bffb69f2.js | 1 + assets/js/d26b1119.a5a3956a.js | 1 + assets/js/d26b1119.c9a58c02.js | 1 - assets/js/d59b2eda.98b75f62.js | 1 - assets/js/d59b2eda.d61b6db2.js | 1 + ...8b222.65d92160.js => d778b222.750fee55.js} | 2 +- ...cd816.664df62f.js => d81cd816.4a11cb97.js} | 2 +- ...cb55a.37d0aa5a.js => e2bcb55a.af2c7063.js} | 2 +- assets/js/e39b6181.18678411.js | 1 + assets/js/e39b6181.6bd7fdfc.js | 1 - assets/js/e7ddec96.1f4158cf.js | 1 - assets/js/e7ddec96.e505dd17.js | 1 + assets/js/e8abc400.24227f27.js | 1 + assets/js/e8abc400.2580cce8.js | 1 - ...3c076.4273c748.js => f4b3c076.523b50d9.js} | 2 +- assets/js/f85ff90a.015b3de4.js | 1 + assets/js/f85ff90a.ecf544c6.js | 1 - assets/js/fb9afbe1.3f51edcf.js | 1 + assets/js/fb9afbe1.afddabe5.js | 1 - assets/js/fc1c51fa.ba1e2ff3.js | 1 + assets/js/fc1c51fa.bdf58d7b.js | 1 - assets/js/main.3486a980.js | 2 + ...CENSE.txt => main.3486a980.js.LICENSE.txt} | 10 +- assets/js/main.ed7d2aee.js | 2 - assets/js/runtime~main.8941718f.js | 1 - assets/js/runtime~main.ed5edcd4.js | 1 + blog/2018/02/05/david-grains/index.html | 22 ++-- blog/2018/03/27/audrey-coms/index.html | 22 ++-- blog/2018/06/20/izaskun-phosphorus/index.html | 22 ++-- blog/2018/07/12/felix-collapse/index.html | 22 ++-- .../04/19/serena-nitrogen-frac/index.html | 22 ++-- blog/2019/07/08/felix-ambipolar/index.html | 22 ++-- blog/2019/08/13/serena-carbon-frac/index.html | 22 ++-- blog/2019/12/10/tom-shock/index.html | 22 ++-- blog/2020/02/14/New-Website/index.html | 22 ++-- .../12/07/milena-nitrogen-solis/index.html | 22 ++-- blog/2022/02/06/holdship-hits/index.html | 22 ++-- blog/2022/04/14/crir-ngc253/index.html | 22 ++-- blog/2022/04/29/uclchem-v3/index.html | 22 ++-- blog/archive/index.html | 22 ++-- blog/atom.xml | 26 ++--- blog/index.html | 22 ++-- blog/page/2/index.html | 22 ++-- blog/rss.xml | 26 ++--- docs/bulk/index.html | 22 ++-- docs/category/chemistry/index.html | 22 ++-- docs/category/developer/index.html | 22 ++-- docs/category/getting-started/index.html | 22 ++-- docs/category/tutorials/index.html | 22 ++-- docs/chemical_analysis/index.html | 22 ++-- docs/desorb/index.html | 22 ++-- docs/dev-debugging/index.html | 22 ++-- docs/dev-overview/index.html | 22 ++-- docs/dev-python-wrap/index.html | 22 ++-- docs/dev-web/index.html | 22 ++-- docs/first_model/index.html | 22 ++-- docs/gas/index.html | 22 ++-- docs/grain/index.html | 22 ++-- docs/hydro/index.html | 22 ++-- docs/index.html | 28 ++--- docs/modelling_objects/index.html | 22 ++-- docs/network/index.html | 22 ++-- docs/next/bulk/index.html | 22 ++-- docs/next/category/chemistry/index.html | 22 ++-- docs/next/category/developer/index.html | 22 ++-- docs/next/category/getting-started/index.html | 22 ++-- docs/next/category/tutorials/index.html | 22 ++-- docs/next/chemical_analysis/index.html | 22 ++-- docs/next/desorb/index.html | 22 ++-- docs/next/dev-debugging/index.html | 22 ++-- docs/next/dev-overview/index.html | 22 ++-- docs/next/dev-python-wrap/index.html | 22 ++-- docs/next/dev-web/index.html | 22 ++-- docs/next/first_model/index.html | 22 ++-- docs/next/gas/index.html | 22 ++-- docs/next/grain/index.html | 22 ++-- docs/next/hydro/index.html | 22 ++-- docs/next/index.html | 28 ++--- docs/next/modelling_objects/index.html | 22 ++-- docs/next/network/index.html | 22 ++-- docs/next/notation/index.html | 26 +++++ docs/next/parameters/index.html | 22 ++-- docs/next/physics-cloud/index.html | 22 ++-- docs/next/physics-collapse/index.html | 22 ++-- docs/next/physics-core/index.html | 22 ++-- docs/next/physics-hotcore/index.html | 22 ++-- docs/next/physics-shocks/index.html | 22 ++-- docs/next/pythonapi/index.html | 108 +++++++++--------- docs/next/running_a_grid/index.html | 22 ++-- docs/next/trouble-compile/index.html | 26 +++-- docs/next/trouble-integration/index.html | 22 ++-- docs/parameters/index.html | 22 ++-- docs/physics-cloud/index.html | 22 ++-- docs/physics-collapse/index.html | 22 ++-- docs/physics-core/index.html | 22 ++-- docs/physics-hotcore/index.html | 22 ++-- docs/physics-shocks/index.html | 22 ++-- docs/pythonapi/index.html | 108 +++++++++--------- docs/running_a_grid/index.html | 22 ++-- docs/trouble-compile/index.html | 26 +++-- docs/trouble-integration/index.html | 22 ++-- docs/v3.1.0/bulk/index.html | 22 ++-- docs/v3.1.0/category/chemistry/index.html | 22 ++-- docs/v3.1.0/category/developer/index.html | 22 ++-- .../category/getting-started/index.html | 22 ++-- docs/v3.1.0/category/tutorials/index.html | 22 ++-- docs/v3.1.0/chemical_analysis/index.html | 22 ++-- docs/v3.1.0/desorb/index.html | 22 ++-- docs/v3.1.0/dev-debugging/index.html | 22 ++-- docs/v3.1.0/dev-overview/index.html | 22 ++-- docs/v3.1.0/dev-python-wrap/index.html | 22 ++-- docs/v3.1.0/dev-web/index.html | 22 ++-- docs/v3.1.0/first_model/index.html | 22 ++-- docs/v3.1.0/gas/index.html | 22 ++-- docs/v3.1.0/grain/index.html | 22 ++-- docs/v3.1.0/hydro/index.html | 22 ++-- docs/v3.1.0/index.html | 28 ++--- docs/v3.1.0/modelling_objects/index.html | 22 ++-- docs/v3.1.0/network/index.html | 22 ++-- docs/v3.1.0/parameters/index.html | 22 ++-- docs/v3.1.0/physics-cloud/index.html | 22 ++-- docs/v3.1.0/physics-collapse/index.html | 22 ++-- docs/v3.1.0/physics-core/index.html | 22 ++-- docs/v3.1.0/physics-hotcore/index.html | 22 ++-- docs/v3.1.0/physics-shocks/index.html | 22 ++-- docs/v3.1.0/pythonapi/index.html | 32 +++--- docs/v3.1.0/running_a_grid/index.html | 22 ++-- docs/v3.1.0/trouble-compile/index.html | 26 +++-- docs/v3.1.0/trouble-integration/index.html | 22 ++-- emulators/index.html | 22 ++-- help/index.html | 22 ++-- index.html | 22 ++-- othersoftware/index.html | 22 ++-- sitemap.xml | 2 +- ucl_pdr/index.html | 22 ++-- users/index.html | 22 ++-- 328 files changed, 1591 insertions(+), 1339 deletions(-) create mode 100644 assets/css/styles.d7847056.css delete mode 100644 assets/css/styles.dbe2f3b0.css delete mode 100644 assets/js/04f8940c.76e7732c.js create mode 100644 assets/js/04f8940c.78679319.js delete mode 100644 assets/js/08daa2f3.2be38646.js create mode 100644 assets/js/08daa2f3.56d8bec2.js create mode 100644 assets/js/0a312c56.032abff2.js delete mode 100644 assets/js/0a312c56.3ad1c3c5.js delete mode 100644 assets/js/0e89b35c.1098de96.js create mode 100644 assets/js/0e89b35c.5c748411.js create mode 100644 assets/js/14eb3368.1054f036.js delete mode 100644 assets/js/14eb3368.853a9ae1.js delete mode 100644 assets/js/17896441.77da63b4.js create mode 100644 assets/js/17896441.c5b7685c.js create mode 100644 assets/js/197ac2f1.2b5a43d9.js delete mode 100644 assets/js/197ac2f1.4ef2359b.js delete mode 100644 assets/js/19d37fc1.2dc159a9.js create mode 100644 assets/js/19d37fc1.e25f6ed7.js rename assets/js/{8762eb7f.146f3bdc.js => 1ba038cd.348df808.js} (95%) delete mode 100644 assets/js/1ba038cd.8f97d7d4.js create mode 100644 assets/js/1be78505.ed24d4e8.js delete mode 100644 assets/js/1be78505.faff00ea.js rename assets/js/{1cd6d774.79c43cfc.js => 1cd6d774.b5b7ef87.js} (99%) rename assets/js/{1dba9094.8e2e301b.js => 1dba9094.47998e03.js} (94%) delete mode 100644 assets/js/1e1adb0b.3ea40395.js create mode 100644 assets/js/1e1adb0b.3f34b4f0.js create mode 100644 assets/js/1f072b81.4642b958.js delete mode 100644 assets/js/1f072b81.a40a0e84.js create mode 100644 assets/js/236d4ea4.2c783e49.js delete mode 100644 assets/js/236d4ea4.5d24fe8a.js rename assets/js/{236fea48.bd74ec7e.js => 236fea48.84926114.js} (50%) create mode 100644 assets/js/25925e1d.7c7d491f.js delete mode 100644 assets/js/25925e1d.97107826.js rename assets/js/{27f461e9.97eb7183.js => 27f461e9.5ee6a007.js} (60%) create mode 100644 assets/js/297e8b98.82488fc5.js delete mode 100644 assets/js/297e8b98.caf3a19d.js create mode 100644 assets/js/2dbc3c34.3b325659.js delete mode 100644 assets/js/2dbc3c34.a78bafff.js rename assets/js/{30669678.ce2db1e6.js => 30669678.4657d731.js} (59%) delete mode 100644 assets/js/32e9b7cb.0e0d5112.js create mode 100644 assets/js/32e9b7cb.449ab369.js rename assets/js/{8cd0bbdb.68a2ee6a.js => 33e58627.260ce0ab.js} (82%) delete mode 100644 assets/js/33e58627.293374d0.js rename assets/js/{3492d4cd.30e577dc.js => 3492d4cd.c2d42899.js} (64%) delete mode 100644 assets/js/37df37e5.8ef68c5a.js create mode 100644 assets/js/37df37e5.ba07c1f9.js create mode 100644 assets/js/3ca268a2.72ce5220.js delete mode 100644 assets/js/3ca268a2.ffe176bb.js create mode 100644 assets/js/3ca94418.8918c9fb.js delete mode 100644 assets/js/3ca94418.fd7aadd9.js create mode 100644 assets/js/4029de32.6d9bd70d.js delete mode 100644 assets/js/4029de32.c9c2cbb6.js delete mode 100644 assets/js/43cd5493.1a43fb72.js create mode 100644 assets/js/43cd5493.8220f700.js delete mode 100644 assets/js/44815e26.7727ec8f.js create mode 100644 assets/js/44815e26.c99141b5.js create mode 100644 assets/js/44936c8a.8e9fa299.js delete mode 100644 assets/js/44936c8a.ca95407b.js create mode 100644 assets/js/463275cf.31da68a2.js delete mode 100644 assets/js/463275cf.ed45dcc8.js delete mode 100644 assets/js/4791faca.8df128fa.js rename assets/js/{d226c097.2d5d1379.js => 4791faca.e53f8f7b.js} (91%) rename assets/js/{4608.0931fc03.js => 4972.b9a66fc4.js} (51%) delete mode 100644 assets/js/4b111dda.8af06373.js create mode 100644 assets/js/4b111dda.91c2a6bd.js rename assets/js/{4c70ee09.07f6c3e9.js => 4c70ee09.c737d261.js} (50%) delete mode 100644 assets/js/4c7304f4.07ff8d97.js create mode 100644 assets/js/4c7304f4.d06bdc8c.js rename assets/js/{4f352dd6.4906d0dd.js => 4f352dd6.d9212974.js} (58%) delete mode 100644 assets/js/512466b5.692a4140.js create mode 100644 assets/js/512466b5.8486178f.js delete mode 100644 assets/js/538f2129.0b72b3f7.js create mode 100644 assets/js/538f2129.71fe8cf8.js rename assets/js/{56e1034f.6aee3445.js => 56e1034f.0290df3f.js} (64%) delete mode 100644 assets/js/5a334135.8f9e090c.js create mode 100644 assets/js/5a334135.ee86b4a1.js create mode 100644 assets/js/5a7d93ee.7e25234e.js delete mode 100644 assets/js/5a7d93ee.e010d149.js rename assets/js/{5bfb9a5a.1e612f41.js => 5bfb9a5a.690fb1d2.js} (58%) delete mode 100644 assets/js/5dbea504.15f9385e.js create mode 100644 assets/js/5dbea504.dd9f08a0.js create mode 100644 assets/js/607afc38.95dd200d.js delete mode 100644 assets/js/607afc38.fc9e5146.js rename assets/js/{6101527a.9886d0e4.js => 6101527a.d4515041.js} (50%) create mode 100644 assets/js/61e2a305.c9c54fe3.js rename assets/js/{640703ca.39c26f91.js => 640703ca.3568f9de.js} (59%) create mode 100644 assets/js/670f431a.cb46b8af.js delete mode 100644 assets/js/670f431a.e1fb0a2d.js rename assets/js/{689d9eaa.317e9677.js => 689d9eaa.3c6f76c0.js} (97%) delete mode 100644 assets/js/6992.c25a25c8.js rename assets/js/{6a488aa2.6701a694.js => 6a488aa2.807d0f62.js} (52%) create mode 100644 assets/js/6a4b9492.c814cf92.js delete mode 100644 assets/js/6a4b9492.d088c4e9.js rename assets/js/{7f120b4d.c22e6f1e.js => 6ba1b442.2903ce72.js} (95%) delete mode 100644 assets/js/6ba1b442.f1a43ab4.js rename assets/js/{6bb3e248.1f5361bb.js => 6bb3e248.f0d4ef3b.js} (61%) create mode 100644 assets/js/6c2487b5.2323ad1a.js delete mode 100644 assets/js/6c2487b5.25bd3a2d.js delete mode 100644 assets/js/6c5fb57f.3343b13e.js create mode 100644 assets/js/6c5fb57f.74294f30.js create mode 100644 assets/js/7080.f1a0bfcf.js rename assets/js/{71908c5e.e4d0653c.js => 71908c5e.506ec16b.js} (50%) delete mode 100644 assets/js/7aa4d0e1.8869f2b3.js create mode 100644 assets/js/7aa4d0e1.fe856eee.js create mode 100644 assets/js/7b253f47.7175ec20.js delete mode 100644 assets/js/7b253f47.f45630a7.js rename assets/js/{7bc80f3c.28567b28.js => 7bc80f3c.0cd0b177.js} (60%) delete mode 100644 assets/js/7c193f36.13f7c323.js create mode 100644 assets/js/7c193f36.d27c8357.js rename assets/js/{61e2a305.b2331146.js => 7cbbac6d.1137c1b2.js} (79%) delete mode 100644 assets/js/7cbbac6d.d5dc751b.js rename assets/js/{7e37206e.f3c030cf.js => 7e37206e.749aa7e1.js} (94%) create mode 100644 assets/js/7f120b4d.7126897d.js delete mode 100644 assets/js/812cb1a9.748c1178.js create mode 100644 assets/js/812cb1a9.b360c0f5.js create mode 100644 assets/js/8218.007806d9.js create mode 100644 assets/js/82de2e50.2ea6e15f.js delete mode 100644 assets/js/82de2e50.86f4bd01.js create mode 100644 assets/js/82e83611.0d5f4063.js delete mode 100644 assets/js/82e83611.6dc15c0d.js delete mode 100644 assets/js/8524628b.8f95d539.js create mode 100644 assets/js/8524628b.cdd781e5.js delete mode 100644 assets/js/87033a11.2d45430c.js create mode 100644 assets/js/87033a11.7af87de6.js create mode 100644 assets/js/8762eb7f.0266e1fd.js rename assets/js/{87956035.9bdaa09a.js => 87956035.098f0357.js} (85%) create mode 100644 assets/js/8b9fbec9.6001df08.js create mode 100644 assets/js/8cd0bbdb.e919e219.js rename assets/js/{8e6ea0e6.d4bf7704.js => 8e6ea0e6.ef3d3c03.js} (55%) rename assets/js/{8eef9ab5.7765f28a.js => 8eef9ab5.8c4df806.js} (99%) delete mode 100644 assets/js/8f25fbab.4256c0fd.js create mode 100644 assets/js/8f25fbab.fcac962d.js create mode 100644 assets/js/935f2afb.8b4fa2a9.js delete mode 100644 assets/js/935f2afb.b07785f2.js create mode 100644 assets/js/93b8a6b4.e799db72.js delete mode 100644 assets/js/93b8a6b4.ecf59d81.js create mode 100644 assets/js/950fd243.54f27e48.js delete mode 100644 assets/js/950fd243.dd597863.js rename assets/js/{957548e4.24ab413d.js => 957548e4.22a78f30.js} (52%) rename assets/js/{95c680a9.bf35da4f.js => 95c680a9.9e9960f4.js} (55%) create mode 100644 assets/js/968bdb06.7bda4ec0.js delete mode 100644 assets/js/968bdb06.952cc0a3.js create mode 100644 assets/js/9968756c.5ba385a3.js delete mode 100644 assets/js/9968756c.e9bd4a9e.js create mode 100644 assets/js/9b050cce.0df84596.js delete mode 100644 assets/js/9b050cce.4bb6be1b.js rename assets/js/{9e4087bc.544e341e.js => 9e4087bc.92d7df89.js} (69%) create mode 100644 assets/js/9faf9bc8.7bf927a6.js delete mode 100644 assets/js/9faf9bc8.8f044af2.js delete mode 100644 assets/js/a070733c.685f4307.js create mode 100644 assets/js/a070733c.7f9a401a.js create mode 100644 assets/js/a30e1db8.0e40c625.js delete mode 100644 assets/js/a30e1db8.d2c1a7d5.js delete mode 100644 assets/js/a392f71d.52b3ffdd.js create mode 100644 assets/js/a392f71d.5bca2a48.js delete mode 100644 assets/js/a6aa9e1f.0a1441d6.js create mode 100644 assets/js/a6aa9e1f.245d6124.js delete mode 100644 assets/js/a6d620e2.4e12dd72.js create mode 100644 assets/js/a6d620e2.80e32fb4.js create mode 100644 assets/js/a9bdb9a1.71124b43.js delete mode 100644 assets/js/a9bdb9a1.81d96602.js delete mode 100644 assets/js/b2effb50.0c3dc39a.js create mode 100644 assets/js/b2effb50.ba855c97.js delete mode 100644 assets/js/b2f554cd.94574eb3.js create mode 100644 assets/js/b2f554cd.cd875265.js delete mode 100644 assets/js/b4779a4a.0d3a2136.js create mode 100644 assets/js/b4779a4a.8a7acfb5.js delete mode 100644 assets/js/ba4d4e72.484bd9f0.js create mode 100644 assets/js/ba4d4e72.9145b23e.js delete mode 100644 assets/js/bef14caa.7a386ea5.js create mode 100644 assets/js/bef14caa.daa4453f.js create mode 100644 assets/js/c17a6496.246e6d83.js delete mode 100644 assets/js/c17a6496.d93e17a5.js create mode 100644 assets/js/c2a99c14.2788a81d.js delete mode 100644 assets/js/c2a99c14.85ef2525.js delete mode 100644 assets/js/c491cf8e.93ad4f1b.js create mode 100644 assets/js/c491cf8e.c25b0188.js create mode 100644 assets/js/c4e6c98a.6137838d.js delete mode 100644 assets/js/c4e6c98a.d3dad9b0.js rename assets/js/{c4f5d8e4.053a4a62.js => c4f5d8e4.82ee5bab.js} (99%) create mode 100644 assets/js/c8755060.8d29b50c.js delete mode 100644 assets/js/c8755060.fb538fef.js create mode 100644 assets/js/ca07b522.674fe7ea.js delete mode 100644 assets/js/ca07b522.ea61a8d4.js delete mode 100644 assets/js/cb3beda6.84c5de09.js create mode 100644 assets/js/cb3beda6.92e3d01d.js delete mode 100644 assets/js/cb646038.06fb177b.js create mode 100644 assets/js/cb646038.5cc5dbad.js create mode 100644 assets/js/ccc49370.73dfd116.js delete mode 100644 assets/js/ccc49370.9672073e.js create mode 100644 assets/js/d226c097.bffb69f2.js create mode 100644 assets/js/d26b1119.a5a3956a.js delete mode 100644 assets/js/d26b1119.c9a58c02.js delete mode 100644 assets/js/d59b2eda.98b75f62.js create mode 100644 assets/js/d59b2eda.d61b6db2.js rename assets/js/{d778b222.65d92160.js => d778b222.750fee55.js} (50%) rename assets/js/{d81cd816.664df62f.js => d81cd816.4a11cb97.js} (99%) rename assets/js/{e2bcb55a.37d0aa5a.js => e2bcb55a.af2c7063.js} (60%) create mode 100644 assets/js/e39b6181.18678411.js delete mode 100644 assets/js/e39b6181.6bd7fdfc.js delete mode 100644 assets/js/e7ddec96.1f4158cf.js create mode 100644 assets/js/e7ddec96.e505dd17.js create mode 100644 assets/js/e8abc400.24227f27.js delete mode 100644 assets/js/e8abc400.2580cce8.js rename assets/js/{f4b3c076.4273c748.js => f4b3c076.523b50d9.js} (55%) create mode 100644 assets/js/f85ff90a.015b3de4.js delete mode 100644 assets/js/f85ff90a.ecf544c6.js create mode 100644 assets/js/fb9afbe1.3f51edcf.js delete mode 100644 assets/js/fb9afbe1.afddabe5.js create mode 100644 assets/js/fc1c51fa.ba1e2ff3.js delete mode 100644 assets/js/fc1c51fa.bdf58d7b.js create mode 100644 assets/js/main.3486a980.js rename assets/js/{main.ed7d2aee.js.LICENSE.txt => main.3486a980.js.LICENSE.txt} (83%) delete mode 100644 assets/js/main.ed7d2aee.js delete mode 100644 assets/js/runtime~main.8941718f.js create mode 100644 assets/js/runtime~main.ed5edcd4.js create mode 100644 docs/next/notation/index.html diff --git a/3dpdr/index.html b/3dpdr/index.html index 701fb484..08b06da9 100644 --- a/3dpdr/index.html +++ b/3dpdr/index.html @@ -2,22 +2,24 @@ - - - + +3D-PDR - UCLCHEM | UCLCHEM + + + -3D-PDR - UCLCHEM | UCLCHEM - - + + + -
-
Skip to main content

3D-PDR is a three-dimensional photodissociation region code written in Fortran. It uses the Sundials package (written in C) to solve the set of ordinary differential equations and it is the successor of UCL_PDR, a one-dimensional PDR code written at UCL. Using the HEALpix ray-tracing scheme, 3D-PDR solves a three-dimensional escape probability routine and evaluates the attenuation of the far-ultraviolet radiation in the PDR and the propagation of FIR/submm emission lines out of the PDR.

The code is parallelized (OpenMP) and can be applied to 1D and 3D problems. The GitHub package includes: the 3D-PDR code, three different chemical networks (33, 58, and 128 species) and molecular data, the Sundials solver, and a set of various 1D uniform density clouds and a uniform density spherical distribution to test the 3D version of the code. To `make' 3D-PDR, you will first need to install the Sundials package and link 3D-PDR with the ODE solver. Please see the manual for instructions on how to do this step-by-step.

(Update: 23/04/2019) The file [3dpdr_cr.tar] that can be found in the main tarball, contains a totally new version of 3D-PDR treating cosmic-ray sources. This version was developed by Brandt Gaches [email: gaches .at. ph1.uni-koeln.de] and is presented in Gaches et al. (2019a). The tarball contains a short additional manual. Please contact Brandt Gaches for any question regarding this version.

3D-PDR works with the gfortran version 4.8.4 and the ifort version 14.0.4. Later compiler versions may require adjustments in the code.

- - +
+
Skip to main content

3D-PDR is a three-dimensional photodissociation region code written in Fortran. It uses the Sundials package (written in C) to solve the set of ordinary differential equations and it is the successor of UCL_PDR, a one-dimensional PDR code written at UCL. Using the HEALpix ray-tracing scheme, 3D-PDR solves a three-dimensional escape probability routine and evaluates the attenuation of the far-ultraviolet radiation in the PDR and the propagation of FIR/submm emission lines out of the PDR.

The code is parallelized (OpenMP) and can be applied to 1D and 3D problems. The GitHub package includes: the 3D-PDR code, three different chemical networks (33, 58, and 128 species) and molecular data, the Sundials solver, and a set of various 1D uniform density clouds and a uniform density spherical distribution to test the 3D version of the code. To `make' 3D-PDR, you will first need to install the Sundials package and link 3D-PDR with the ODE solver. Please see the manual for instructions on how to do this step-by-step.

(Update: 23/04/2019) The file [3dpdr_cr.tar] that can be found in the main tarball, contains a totally new version of 3D-PDR treating cosmic-ray sources. This version was developed by Brandt Gaches [email: gaches .at. ph1.uni-koeln.de] and is presented in Gaches et al. (2019a). The tarball contains a short additional manual. Please contact Brandt Gaches for any question regarding this version.

3D-PDR works with the gfortran version 4.8.4 and the ifort version 14.0.4. Later compiler versions may require adjustments in the code.

+ + \ No newline at end of file diff --git a/404.html b/404.html index 35625772..d7aa5a11 100644 --- a/404.html +++ b/404.html @@ -2,22 +2,24 @@ - - - + +Page Not Found | UCLCHEM + + + -Page Not Found | UCLCHEM - - + + + -
-
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- - +
+
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

+ + \ No newline at end of file diff --git a/assets/css/styles.d7847056.css b/assets/css/styles.d7847056.css new file mode 100644 index 00000000..9952b813 --- /dev/null +++ b/assets/css/styles.d7847056.css @@ -0,0 +1 @@ +.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}.clean-list,.containsTaskList_mC6p,.details_lb9f>summary,.dropdown__menu,.menu__list{list-style:none}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:transparent;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:rgba(0,0,0,.05);--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 rgba(0,0,0,.1);--ifm-global-shadow-md:0 5px 40px rgba(0,0,0,.2);--ifm-global-shadow-tl:0 12px 28px 0 rgba(0,0,0,.2),0 2px 4px 0 rgba(0,0,0,.1);--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:transparent;--ifm-table-stripe-background:rgba(0,0,0,.03);--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary-lightest:#7e5fac;--ifm-color-primary-lighter:#6e519b;--ifm-color-primary-light:#6a4d94;--ifm-color-primary:#604687;--ifm-color-primary-dark:#563f79;--ifm-color-primary-darker:#523c73;--ifm-color-primary-darkest:#43315e;--docusaurus-announcement-bar-height:auto;--docusaurus-collapse-button-bg:transparent;--docusaurus-collapse-button-bg-hover:rgba(0,0,0,.1);--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300)}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:transparent}*{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);text-rendering:optimizelegibility}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.list_eTzJ article:last-child,.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid rgba(0,0,0,.1);border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:transparent;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_tbUL,.alert__heading,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:rgba(53,120,229,.15);--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:rgba(235,237,240,.15);--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:rgba(0,164,0,.15);--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:rgba(84,199,236,.15);--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:rgba(255,186,0,.15);--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:rgba(250,56,62,.15);--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{-moz-column-gap:var(--ifm-avatar-intro-margin);column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img,body,html{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs__link:-moz-any-link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs__link:any-link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:transparent;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}#nprogress,.dropdown__menu,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor transparent;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item{margin-top:0}.admonitionContent_S0QG>:last-child,.cardContainer_fWXF :last-child,.collapsibleContent_i85q>:last-child,.footer__items{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title,.title_f1Hy{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{content:"";height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter)}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;position:fixed;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;left:0;top:0;visibility:hidden}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:hsla(0,0%,100%,.1);--ifm-navbar-search-input-placeholder-color:hsla(0,0%,100%,.5);color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:hsla(0,0%,100%,.05);--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::-moz-placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:rgba(0,0,0,.6);right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{-moz-column-gap:var(--ifm-pagination-page-spacing);column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover,.sidebarItemLink_mo7H:hover{text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);display:grid;gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.sidebarItemTitle_pO2u,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs,:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto}.tabs__item{border-bottom:3px solid transparent;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:hsla(0,0%,100%,.05);--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:hsla(0,0%,100%,.1);--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:hsla(0,0%,100%,.07);--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}.mycontainer{margin-left:20%;margin-right:20%;padding-top:64px;text-align:center}.mybuttons{align-items:center;justify-content:center;margin-left:4px;margin-right:4px}.alt-softwarecontainer,.softwarecontainer{grid-column-gap:10%;display:grid;grid-template-columns:60% 30%;margin-bottom:20px;margin-top:20px;padding:20px}.alt-softwarecontainer{background-color:#d3d3d3}.softwarecontainer-div>img{height:auto;position:relative;width:100%}th{background-color:var(--ifm-color-primary);color:#fff;padding-bottom:12px;padding-top:12px;text-align:left}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}#__docusaurus-base-url-issue-banner-container,.docSidebarContainer_b6E3,.sidebarLogo_isFc,.themedImage_ToTc,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit;text-decoration:underline}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}[data-theme=dark] .themedImage--dark_i4oU,[data-theme=light] .themedImage--light_HNdA{display:initial}.iconExternalLink_nPIU{margin-left:.3rem}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.cardContainer_fWXF{--ifm-link-color:var(--ifm-color-emphasis-800);--ifm-link-hover-color:var(--ifm-color-emphasis-700);--ifm-link-hover-decoration:none;border:1px solid var(--ifm-color-emphasis-200);box-shadow:0 1.5px 3px 0 rgba(0,0,0,.15);transition:all var(--ifm-transition-fast) ease;transition-property:border,box-shadow}.cardContainer_fWXF:hover{border-color:var(--ifm-color-primary);box-shadow:0 3px 6px 0 rgba(0,0,0,.2)}.cardTitle_rnsV{font-size:1.2rem}.cardDescription_PWke{font-size:.8rem}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}[data-theme=dark]:root{--docusaurus-collapse-button-bg:hsla(0,0%,100%,.05);--docusaurus-collapse-button-bg-hover:hsla(0,0%,100%,.1)}.collapseSidebarButton_PEFL{display:none;margin:0}.docMainContainer_gTbr,.docPage__5DB{display:flex;width:100%}.docPage__5DB{flex:1 0}.docsWrapper_BCFX{display:flex;flex:1 0 auto}.heroBanner_qdFl{overflow:hidden;padding:4rem 0;position:relative;text-align:center}.sidebar_re4s,.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto}.buttons_AeoN{justify-content:center}.buttons_AeoN,.features_xdhU{align-items:center;display:flex}.features_xdhU{padding:2rem 0;width:100%}.featureSvg__8YW{height:200px;width:200px}.sidebar_re4s{position:sticky;top:calc(var(--ifm-navbar-height) + 2rem)}.sidebarItemTitle_pO2u{font-size:var(--ifm-h3-font-size)}.container_mt6G,.sidebarItemList_Yudw{font-size:.9rem}.sidebarItem__DBe{margin-top:.7rem}.sidebarItemLink_mo7H{color:var(--ifm-font-color-base);display:block}.sidebarItemLinkActive_I1ZP{color:var(--ifm-color-primary)!important}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}.authorCol_Hf19{flex-grow:1!important;max-width:inherit!important}.imageOnlyAuthorRow_pa_O{display:flex;flex-flow:row wrap}.imageOnlyAuthorCol_G86a{margin-left:.3rem;margin-right:.3rem}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{-moz-column-gap:.2rem;column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color);text-decoration:none}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.lastUpdated_vwxv{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.tocCollapsibleContent_vkbj a{display:block}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:transparent transparent transparent var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;-moz-user-select:none;user-select:none}.hash-link:before{content:"#"}.img_ev3q{height:auto}.admonition_LlT9{margin-bottom:1em}.admonitionHeading_tbUL{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.3rem}.admonitionHeading_tbUL code{text-transform:none}.admonitionIcon_kALy{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_kALy svg{fill:var(--ifm-alert-foreground-color);display:inline-block;height:1.6em;width:1.6em}.blogPostFooterDetailsFull_mRVl{flex-direction:column}.tableOfContents_bqdL{position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.breadcrumbHomeIcon_YNFT{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.title_kItE{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-leading)*1.25)}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_m80_{background-color:var(--docusaurus-collapse-button-bg)}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.searchBox_ZlJk{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_BlDH,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_m80_:focus,.expandButton_m80_:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_m80_{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_BlDH{transform:rotate(180deg)}.docSidebarContainer_b6E3{border-right:1px solid var(--ifm-toc-border-color);-webkit-clip-path:inset(0);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_b3ry{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_Xe31{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_gTbr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_Uz_u{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_czyv{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.lastUpdated_vwxv{text-align:right}.tocMobile_ITEo{display:none}.docItemCol_VOVn,.generatedIndexPage_vN6x{max-width:75%!important}.list_eTzJ article:nth-last-child(-n+2){margin-bottom:0!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.sidebar_re4s,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.searchBox_ZlJk{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}}@media screen and (max-width:966px){.heroBanner_qdFl{padding:2rem}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}.title_f1Hy{font-size:2rem}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file diff --git a/assets/css/styles.dbe2f3b0.css b/assets/css/styles.dbe2f3b0.css deleted file mode 100644 index 3aaa01a0..00000000 --- a/assets/css/styles.dbe2f3b0.css +++ /dev/null @@ -1 +0,0 @@ -.container,.row .col{padding:0 var(--ifm-spacing-horizontal);width:100%}.row .col,img{max-width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.avatar__photo,.card,.text--truncate{overflow:hidden}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar__title,.text--truncate{text-overflow:ellipsis;white-space:nowrap}.button,.dropdown__link,.navbar__title,.text--truncate{white-space:nowrap}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}.admonition-icon svg,.alert__icon svg{fill:var(--ifm-alert-foreground-color)}.toggleButton_rCf9,html{-webkit-tap-highlight-color:transparent}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:transparent;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:rgba(0,0,0,.05);--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 rgba(0,0,0,.1);--ifm-global-shadow-md:0 5px 40px rgba(0,0,0,.2);--ifm-global-shadow-tl:0 12px 28px 0 rgba(0,0,0,.2),0 2px 4px 0 rgba(0,0,0,.1);--ifm-z-index-dropdown:2;--ifm-z-index-fixed:3;--ifm-z-index-overlay:4;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-color-emphasis-100);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:transparent;--ifm-table-stripe-background:rgba(0,0,0,.03);--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-border-color:var(--ifm-color-emphasis-500);--ifm-hr-border-width:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size-sm:2rem;--ifm-avatar-photo-size-md:3rem;--ifm-avatar-photo-size-lg:4rem;--ifm-avatar-photo-size-xl:6rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.0625rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:1rem;--ifm-breadcrumb-padding-vertical:0.5rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-margin:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:1rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:calc(var(--ifm-global-radius)*var(--ifm-pagination-size-multiplier));--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.0625rem;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-size-multiplier:1;--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.0625rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--ifm-tabs-spacing:0.0625rem;--ifm-color-primary-lightest:#7e5fac;--ifm-color-primary-lighter:#6e519b;--ifm-color-primary-light:#6a4d94;--ifm-color-primary:#604687;--ifm-color-primary-dark:#563f79;--ifm-color-primary-darker:#523c73;--ifm-color-primary-darkest:#43315e;--docusaurus-announcement-bar-height:auto;--collapse-button-bg-color-dark:#2e333a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300)}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:transparent}*{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);text-rendering:optimizelegibility}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.container--fluid{max-width:inherit}.row{display:flex;flex-direction:row;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none{margin-top:0!important}.row .col{--ifm-col-width:100%;flex:1 0;margin-left:0}.row .col[class*=col--]{flex:0 0 var(--ifm-col-width);max-width:var(--ifm-col-width)}.row .col.col--1{--ifm-col-width:8.33333%}.row .col.col--offset-1{margin-left:8.33333%}.row .col.col--2{--ifm-col-width:16.66667%}.row .col.col--offset-2{margin-left:16.66667%}.row .col.col--3{--ifm-col-width:25%}.row .col.col--offset-3{margin-left:25%}.row .col.col--4{--ifm-col-width:33.33333%}.row .col.col--offset-4{margin-left:33.33333%}.row .col.col--5{--ifm-col-width:41.66667%}.row .col.col--offset-5{margin-left:41.66667%}.row .col.col--6{--ifm-col-width:50%}.row .col.col--offset-6{margin-left:50%}.row .col.col--7{--ifm-col-width:58.33333%}.row .col.col--offset-7{margin-left:58.33333%}.row .col.col--8{--ifm-col-width:66.66667%}.row .col.col--offset-8{margin-left:66.66667%}.row .col.col--9{--ifm-col-width:75%}.row .col.col--offset-9{margin-left:75%}.row .col.col--10{--ifm-col-width:83.33333%}.row .col.col--offset-10{margin-left:83.33333%}.row .col.col--11{--ifm-col-width:91.66667%}.row .col.col--offset-11{margin-left:91.66667%}.row .col.col--12{--ifm-col-width:100%}.row .col.col--offset-12{margin-left:100%}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_tcZa,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid rgba(0,0,0,.1);border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:transparent;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}blockquote,hr{border-style:solid}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.breadcrumbs__link:hover,.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-color:var(--ifm-blockquote-border-color);border-width:0;border-left-width:var(--ifm-blockquote-border-left-width);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{border-color:var(--ifm-hr-border-color);border-width:var(--ifm-hr-border-width);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonition h5,.alert__heading,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:rgba(53,120,229,.15);--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:rgba(235,237,240,.15);--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:rgba(0,164,0,.15);--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:rgba(84,199,236,.15);--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:rgba(255,186,0,.15);--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:rgba(250,56,62,.15);--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border-color:var(--ifm-alert-border-color);border-style:solid;border-width:var(--ifm-alert-border-width);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar,.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.avatar__photo-link,.tocCollapsibleContent_MpvI a{display:block}.avatar__photo{border-radius:50%;height:var(--ifm-avatar-photo-size-md);width:var(--ifm-avatar-photo-size-md)}.avatar__photo--sm{height:var(--ifm-avatar-photo-size-sm);width:var(--ifm-avatar-photo-size-sm)}.avatar__photo--lg{height:var(--ifm-avatar-photo-size-lg);width:var(--ifm-avatar-photo-size-lg)}.avatar__photo--xl{height:var(--ifm-avatar-photo-size-xl);width:var(--ifm-avatar-photo-size-xl)}.card--full-height,.navbar__logo img,body,html{height:100%}.avatar__photo+.avatar__intro{margin-left:var(--ifm-avatar-intro-margin)}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.avatar--vertical .avatar__intro{margin-left:0}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:first-child){margin-left:var(--ifm-breadcrumb-spacing)}.breadcrumbs__item:not(:last-child){margin-right:var(--ifm-breadcrumb-spacing)}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 .5rem;opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__item--active .breadcrumbs__link,.breadcrumbs__item:not(.breadcrumbs__item--active):hover .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);color:var(--ifm-font-color-base);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border-color:var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);border-style:solid;border-width:var(--ifm-button-border-width);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;-moz-user-select:none;user-select:none}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:transparent;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}.button.button--secondary.button--outline:not(.button--active):not(:hover),.sidebarItemLink_miNk{color:var(--ifm-font-color-base)}.button--primary{--ifm-button-border-color:var(--ifm-color-primary)}.button--primary:not(.button--outline){--ifm-button-background-color:var(--ifm-color-primary)}.button--primary:not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-border-color:var(--ifm-color-primary-darker);--ifm-button-background-color:var(--ifm-color-primary-darker);background-color:var(--ifm-color-primary-darker);border-color:var(--ifm-color-primary-darker)}.button--secondary{--ifm-button-border-color:var(--ifm-color-secondary)}.button--secondary:not(.button--outline){--ifm-button-background-color:var(--ifm-color-secondary)}.button--secondary:not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-border-color:var(--ifm-color-secondary-darker);--ifm-button-background-color:var(--ifm-color-secondary-darker);background-color:var(--ifm-color-secondary-darker);border-color:var(--ifm-color-secondary-darker)}.button--success{--ifm-button-border-color:var(--ifm-color-success)}.button--success:not(.button--outline){--ifm-button-background-color:var(--ifm-color-success)}.button--success:not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-border-color:var(--ifm-color-success-darker);--ifm-button-background-color:var(--ifm-color-success-darker);background-color:var(--ifm-color-success-darker);border-color:var(--ifm-color-success-darker)}.button--info{--ifm-button-border-color:var(--ifm-color-info)}.button--info:not(.button--outline){--ifm-button-background-color:var(--ifm-color-info)}.button--info:not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-border-color:var(--ifm-color-info-darker);--ifm-button-background-color:var(--ifm-color-info-darker);background-color:var(--ifm-color-info-darker);border-color:var(--ifm-color-info-darker)}.button--warning{--ifm-button-border-color:var(--ifm-color-warning)}.button--warning:not(.button--outline){--ifm-button-background-color:var(--ifm-color-warning)}.button--warning:not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-border-color:var(--ifm-color-warning-darker);--ifm-button-background-color:var(--ifm-color-warning-darker);background-color:var(--ifm-color-warning-darker);border-color:var(--ifm-color-warning-darker)}.button--danger{--ifm-button-border-color:var(--ifm-color-danger)}.button--danger:not(.button--outline){--ifm-button-background-color:var(--ifm-color-danger)}.button--danger:not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-border-color:var(--ifm-color-danger-darker);--ifm-button-background-color:var(--ifm-color-danger-darker);background-color:var(--ifm-color-danger-darker);border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0;margin-left:var(--ifm-button-group-margin)}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group>.button--active{z-index:1}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.admonition-content>:last-child,.cardContainer_woeA :last-child,.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;transform:translateY(0);visibility:visible}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;list-style:none;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor transparent;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:10rem}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.footer__item{margin-top:0}.footer__items{list-style:none;margin-bottom:0;padding-left:0}.codeBlockStandalone_csWH,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.blogPostTitle_rzP5,.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{list-style:none;margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{display:flex}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;content:"";filter:var(--ifm-menu-link-sublist-icon-filter)}.menu__link--sublist-caret{justify-content:space-between}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret{margin-left:.1rem}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;position:fixed;transition-timing-function:ease-in-out;top:0;left:0;visibility:hidden}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar__title{flex:1 1 auto;overflow:hidden}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}#nprogress,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:hsla(0,0%,100%,.1);--ifm-navbar-search-input-placeholder-color:hsla(0,0%,100%,.5);color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:hsla(0,0%,100%,.05);--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::-moz-placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);transform:translate3d(-100%,0,0);transition-duration:.25s;transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:rgba(0,0,0,.6);right:0;transition-duration:.1s;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination__item,.pagination__link{display:inline-block}.pagination{font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item:not(:first-child){margin-left:var(--ifm-pagination-page-spacing)}.pagination__item:not(:last-child){margin-right:var(--ifm-pagination-page-spacing)}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover,.sidebarItemLink_miNk:hover{text-decoration:none}.pagination-nav{display:flex}.pagination-nav__item{display:flex;flex:1 50%;max-width:50%}.pagination-nav__item--next{text-align:right}.pagination-nav__item+.pagination-nav__item{margin-left:var(--ifm-spacing-horizontal)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);flex-grow:1;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__item:first-child .pagination-nav__label:before{content:"« "}.pagination-nav__item--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills,.sidebarItemTitle_uKok,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pills__item--active{background:var(--ifm-pills-color-background-active);color:var(--ifm-pills-color-active)}.pills__item:not(.pills__item--active):hover{background-color:var(--ifm-pills-color-background-active)}.pills__item:not(:first-child){margin-left:var(--ifm-pills-spacing)}.pills__item:not(:last-child){margin-right:var(--ifm-pills-spacing)}.docItemContainer_vinB article>:first-child,.docItemContainer_vinB header+*,.pills__item+.pills__item{margin-top:0}.pills--block{display:flex;justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto;padding-left:0}.tabs__item{border-bottom:3px solid transparent;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#18191a;--ifm-background-surface-color:#242526;--ifm-hover-overlay:hsla(0,0%,100%,.05);--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#333437;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:hsla(0,0%,100%,.07);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec}.admonition h5{margin-bottom:8px;margin-top:0}.admonition-icon{display:inline-block;margin-right:.4em;vertical-align:middle}.admonition-icon svg{stroke-width:0;stroke:var(--ifm-alert-foreground-color);display:inline-block;height:22px;width:22px}.admonition{margin-bottom:1em}.mycontainer{margin-left:20%;margin-right:20%;padding-top:64px;text-align:center}.mybuttons{align-items:center;justify-content:center;margin-left:4px;margin-right:4px}.alt-softwarecontainer,.softwarecontainer{grid-column-gap:10%;display:grid;grid-template-columns:60% 30%;margin-bottom:20px;margin-top:20px;padding:20px}.alt-softwarecontainer{background-color:#d3d3d3}.softwarecontainer-div>img{height:auto;position:relative;width:100%}th{background-color:var(--ifm-color-primary);color:#fff;padding-bottom:12px;padding-top:12px;text-align:left}#nprogress .bar{background:#29d;height:2px;left:0;position:fixed;top:0;width:100%;z-index:5}#nprogress .peg{box-shadow:0 0 10px #29d,0 0 5px #29d;height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}#docusaurus-base-url-issue-banner-container{display:none}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;list-style:none;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:transparent transparent transparent var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}.skipToContent_ZgBM{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_ZgBM:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.announcementBar_IbjG{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.collapseSidebarButton_FykI,.docSidebarContainer_rKC_,.sidebarLogo_YUvz,.themedImage_W2Cr,[data-theme=dark] .lightToggleIcon_v35p,[data-theme=light] .darkToggleIcon_nQuB,html[data-announcement-bar-initially-dismissed=true] .announcementBar_IbjG{display:none}.announcementBarPlaceholder_NC_W{flex:0 0 10px}.announcementBarClose_FG1z{align-self:stretch;flex:0 0 30px;line-height:0;padding:0}.announcementBarContent_KsVm{flex:1 1 auto;font-size:85%;padding:5px 0;text-align:center}.buttons_AeoN,.features_xdhU,.toggleButton_rCf9{align-items:center;display:flex}.announcementBarContent_KsVm a{color:inherit;text-decoration:underline}.toggle_S7eR{height:2rem;width:2rem}.toggleButton_rCf9{border-radius:50%;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_rCf9:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_Pu9x{cursor:not-allowed}[data-theme=dark] .themedImage--dark_oUvU,[data-theme=light] .themedImage--light_TfLj{display:initial}.iconExternalLink_I5OW{margin-left:.3rem}.iconLanguage_dNtB{margin-right:5px;vertical-align:text-bottom}.navbarHideable_ObN2{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_FtgE{transform:translate3d(0,calc(-100% - 2px),0)}.footerLogoLink_gHmE{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_gHmE:hover,.hash-link:focus,:hover>.hash-link{opacity:1}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.main-wrapper{flex:1 0 auto}.docusaurus-mt-lg{margin-top:3rem}.cardContainer_woeA{--ifm-link-color:var(--ifm-color-emphasis-800);--ifm-link-hover-color:var(--ifm-color-emphasis-700);--ifm-link-hover-decoration:none;border:1px solid var(--ifm-color-emphasis-200);box-shadow:0 1.5px 3px 0 rgba(0,0,0,.15);transition:all var(--ifm-transition-fast) ease;transition-property:border,box-shadow}.cardContainer_woeA:hover{border-color:var(--ifm-color-primary);box-shadow:0 3px 6px 0 rgba(0,0,0,.2)}.cardTitle_pNjP{font-size:1.2rem}.cardDescription_qC_k{font-size:.8rem}.backToTopButton_RiI4{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_RiI4:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_ssHd{opacity:1;transform:scale(1);visibility:visible}.docMainContainer_TCnq,.docPage_P2Lg{display:flex;width:100%}.heroBanner_qdFl{overflow:hidden;padding:4rem 0;position:relative;text-align:center}.sidebar_a9qW,.tableOfContents_cNA8{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto}.buttons_AeoN{justify-content:center}.features_xdhU{padding:2rem 0;width:100%}.featureSvg__8YW{height:200px;width:200px}.sidebar_a9qW{position:sticky;top:calc(var(--ifm-navbar-height) + 2rem)}.sidebarItemTitle_uKok{font-size:var(--ifm-h3-font-size)}.sidebarItemList_Kvuv{font-size:.9rem;list-style:none;padding-left:0}.sidebarItem_CF0Q{margin-top:.7rem}.sidebarItemLinkActive_RRTD{color:var(--ifm-color-primary)!important}.iconEdit_dcUD{margin-right:.3em;vertical-align:sub}.breadcrumbsContainer_Xlws{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.tag_hD8n{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_hD8n:hover{--docusaurus-tag-list-border:var(--ifm-link-color);text-decoration:none}.tagRegular_D6E_{border-radius:.5rem;font-size:90%;padding:.3rem .5rem}.tagWithCount_i0QQ{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_i0QQ:after,.tagWithCount_i0QQ:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_i0QQ:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_i0QQ:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_i0QQ span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.copyButton_eDfN{background:inherit;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;opacity:0;padding:.4rem;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2);transition:opacity .2s ease-in-out}.copyButton_eDfN:focus-visible,.copyButton_eDfN:hover,.theme-code-block:hover .copyButtonCopied_ljy5{opacity:1!important}.theme-code-block:hover .copyButton_eDfN:not(.copyButtonCopied_ljy5){opacity:.4}.copyButtonIcons_W9eQ{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_XEyF,.copyButtonSuccessIcon_i9w9{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:.15s;width:inherit}.copyButtonSuccessIcon_i9w9{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_ljy5 .copyButtonIcon_XEyF{opacity:0;transform:scale(.33)}.copyButtonCopied_ljy5 .copyButtonSuccessIcon_i9w9{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.anchorWithStickyNavbar_mojV{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_R0VQ{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;-moz-user-select:none;user-select:none}.hash-link:before{content:"#"}.title_qBh7{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-leading)*1.25)}.tags_XVD_{display:inline}.tag_JSN8{display:inline-block;margin:0 .4rem .5rem 0}.lastUpdated_foO9{font-size:smaller;font-style:italic;margin-top:.2rem}.codeBlockContainer_I0IT{box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_wNvx{border-radius:var(--ifm-global-radius);direction:ltr;position:relative}.codeBlockTitle_BvAR{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:var(--ifm-global-radius);border-top-right-radius:var(--ifm-global-radius);font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_jd64{background-color:inherit;margin:0;padding:0}.codeBlockTitle_BvAR+.codeBlockContent_wNvx .codeBlock_jd64{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_mRuA{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.details_BAp3{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.contains-task-list_tsSF{list-style:none;padding-left:0}.img_E7b_{height:auto}.blogPostData_Zg1s{font-size:.9rem}.blogPostDetailsFull_h6_j{flex-direction:column}.image_o0gy{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.authorCol_FlmR{flex-grow:1!important;max-width:inherit!important}.imageOnlyAuthorRow_trpF{display:flex;flex-flow:row wrap}.imageOnlyAuthorCol_S2np{margin-left:.3rem;margin-right:.3rem}.tableOfContents_cNA8{position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.tocCollapsible_jdIR{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleButton_Fzxq{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_Fzxq:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleContent_MpvI>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_MpvI ul li{margin:.4rem .8rem}.tocCollapsibleExpanded_laf4 .tocCollapsibleButton_Fzxq:after{transform:none}@media (min-width:997px){:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_FG1z,.announcementBarPlaceholder_NC_W{flex-basis:50px}.collapseSidebarButton_FykI{background-color:var(--ifm-button-background-color);border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_DTRl{margin-top:4px;transform:rotate(180deg)}.expandSidebarButtonIcon_AV8S,[dir=rtl] .collapseSidebarButtonIcon_DTRl{transform:rotate(0)}[data-theme=dark] .collapseSidebarButton_FykI,[data-theme=dark] .collapsedDocSidebar_Xgr6:focus,[data-theme=dark] .collapsedDocSidebar_Xgr6:hover{background-color:var(--collapse-button-bg-color-dark)}.collapsedDocSidebar_Xgr6:focus,.collapsedDocSidebar_Xgr6:hover,[data-theme=dark] .collapseSidebarButton_FykI:focus,[data-theme=dark] .collapseSidebarButton_FykI:hover{background-color:var(--ifm-color-emphasis-200)}.menuHtmlItem_fVIQ{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_izAj{flex-grow:1;padding:.5rem}.menuWithAnnouncementBar_l2a_{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_RiAD{display:flex;flex-direction:column;height:100%;max-height:100vh;padding-top:var(--ifm-navbar-height);position:sticky;top:0;transition:opacity 50ms;width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_d0QC{padding-top:0}.sidebarHidden_Lg_2{height:0;opacity:0;overflow:hidden;visibility:hidden}.sidebarLogo_YUvz{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_YUvz img{height:2rem;margin-right:.5rem}.docMainContainer_TCnq{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_WDCb{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docSidebarContainer_rKC_{border-right:1px solid var(--ifm-toc-border-color);-webkit-clip-path:inset(0);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_nvlY{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.collapsedDocSidebar_Xgr6{align-items:center;display:flex;height:100%;justify-content:center;max-height:100vh;position:sticky;top:0;transition:background-color var(--ifm-transition-fast) ease}[dir=rtl] .expandSidebarButtonIcon_AV8S{transform:rotate(180deg)}.docItemWrapperEnhanced_r_WG{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.docItemCol_DM6M,.generatedIndexPage_vzzw{max-width:75%!important}.lastUpdated_foO9{text-align:right}.tocMobile_TmEX{display:none}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:996px){.row .col.col.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_vKtC,.footer__link-separator,.navbar__item,.sidebar_a9qW,.tableOfContents_cNA8{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.pills--block .pills__item:not(:first-child){margin-top:var(--ifm-pills-spacing)}.pills--block .pills__item:not(:last-child){margin-bottom:var(--ifm-pills-spacing)}.tabs--block .tabs__item:not(:first-child){margin-top:var(--ifm-tabs-spacing)}.tabs--block .tabs__item:not(:last-child){margin-bottom:var(--ifm-tabs-spacing)}.docItemContainer_WX_Y{padding:0 .3rem}}@media screen and (max-width:966px){.heroBanner_qdFl{padding:2rem}}@media (hover:hover){.backToTopButton_RiI4:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media print{.announcementBar_IbjG,.footer,.menu,.navbar,.pagination-nav,.table-of-contents{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_mRuA{white-space:pre-wrap}} \ No newline at end of file diff --git a/assets/js/04f8940c.76e7732c.js b/assets/js/04f8940c.76e7732c.js deleted file mode 100644 index 3fde109f..00000000 --- a/assets/js/04f8940c.76e7732c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9977],{3905:(a,e,t)=>{t.d(e,{Zo:()=>o,kt:()=>h});var s=t(7294);function n(a,e,t){return e in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function m(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.push.apply(t,s)}return t}function p(a){for(var e=1;e=0||(n[t]=a[t]);return n}(a,e);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(a);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(a,t)&&(n[t]=a[t])}return n}var i=s.createContext({}),l=function(a){var e=s.useContext(i),t=e;return a&&(t="function"==typeof a?a(e):p(p({},e),a)),t},o=function(a){var e=l(a.components);return s.createElement(i.Provider,{value:e},a.children)},N={inlineCode:"code",wrapper:function(a){var e=a.children;return s.createElement(s.Fragment,{},e)}},c=s.forwardRef((function(a,e){var t=a.components,n=a.mdxType,m=a.originalType,i=a.parentName,o=r(a,["components","mdxType","originalType","parentName"]),c=l(t),h=n,k=c["".concat(i,".").concat(h)]||c[h]||N[h]||m;return t?s.createElement(k,p(p({ref:e},o),{},{components:t})):s.createElement(k,p({ref:e},o))}));function h(a,e){var t=arguments,n=e&&e.mdxType;if("string"==typeof a||n){var m=t.length,p=new Array(m);p[0]=c;var r={};for(var i in e)hasOwnProperty.call(e,i)&&(r[i]=e[i]);r.originalType=a,r.mdxType="string"==typeof a?a:n,p[1]=r;for(var l=2;l{t.r(e),t.d(e,{assets:()=>o,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>l,toc:()=>N});var s=t(7462),n=t(3366),m=(t(7294),t(3905)),p=["components"],r={id:"desorb",title:"Adsorption & Desorption Reactions"},i=void 0,l={unversionedId:"desorb",id:"version-v3.2.0/desorb",title:"Adsorption & Desorption Reactions",description:"Coupling between the gas and the grain chemistry primarily comes from the freeze out of material from the gas phase onto the dust grains (adsorption) and the sublimation of material from the grains into the gas phase (desorption). The major processes considered by UCLCHEM are listed below. Note that we assume desorption and freeze out occur between the gas and the surface only, bulk material in three phase models does not directly desorb into the gas phase.",source:"@site/versioned_docs/version-v3.2.0/chem-desorb.md",sourceDirName:".",slug:"/desorb",permalink:"/docs/desorb",tags:[],version:"v3.2.0",frontMatter:{id:"desorb",title:"Adsorption & Desorption Reactions"},sidebar:"docs",previous:{title:"Grain Surface Reactions",permalink:"/docs/grain"},next:{title:"Bulk Ice Processes",permalink:"/docs/bulk"}},o={},N=[{value:"Freeze out",id:"freeze-out",level:2},{value:"Thermal Desorption",id:"thermal-desorption",level:2},{value:"Non-thermal Desorption Methods",id:"non-thermal-desorption-methods",level:2},{value:"H2 Formation",id:"h2-formation",level:5},{value:"Cosmic Rays",id:"cosmic-rays",level:5},{value:"UV photons",id:"uv-photons",level:5},{value:"Chemical Desorption",id:"chemical-desorption",level:5}],c={toc:N};function h(a){var e=a.components,t=(0,n.Z)(a,p);return(0,m.kt)("wrapper",(0,s.Z)({},c,t,{components:e,mdxType:"MDXLayout"}),(0,m.kt)("p",null,"Coupling between the gas and the grain chemistry primarily comes from the freeze out of material from the gas phase onto the dust grains (adsorption) and the sublimation of material from the grains into the gas phase (desorption). The major processes considered by UCLCHEM are listed below. Note that we assume desorption and freeze out occur between the gas and the surface only, bulk material in three phase models does not directly desorb into the gas phase."),(0,m.kt)("h2",{id:"freeze-out"},"Freeze out"),(0,m.kt)("p",null,"We assume that molecules freeze out at a rate given by the rate of collision between a species and the dust grains:"),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"k"),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("mi",{parentName:"mrow"},"\u03b1"),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"v"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"t"),(0,m.kt)("mi",{parentName:"mrow"},"h"))),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"A"),(0,m.kt)("mi",{parentName:"msub"},"g")),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"C"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"i"),(0,m.kt)("mi",{parentName:"mrow"},"o"),(0,m.kt)("mi",{parentName:"mrow"},"n")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k=\\alpha v_{th} A_g C_{ion}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.969438em",verticalAlign:"-0.286108em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"v"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03588em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"h"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15139200000000003em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03588em"}},"g")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"C"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07153em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"n"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))),(0,m.kt)("p",null,"where ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"\u03b1")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\alpha")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.43056em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1")))))," is a branching ratio, ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"V"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"t"),(0,m.kt)("mi",{parentName:"mrow"},"h")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"V_{th}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"V"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.22222em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"h"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is the thermal velocity of the particle and ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"A"),(0,m.kt)("mi",{parentName:"msub"},"g"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"A_g")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.969438em",verticalAlign:"-0.286108em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15139200000000003em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03588em"}},"g")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is the dust grain cross sectional area per hydrogen nuclei. ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"C"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"i"),(0,m.kt)("mi",{parentName:"mrow"},"o"),(0,m.kt)("mi",{parentName:"mrow"},"n")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"C_{ion}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"C"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07153em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"n"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is a factor that increases the freeze out rate of ions due to electrostatic forces."),(0,m.kt)("p",null,"The branching ratio is an artefact of older versions of UCLCHEM which allows the user to include some grain processing of species without surface reactions. For a given species (eg C) we can determine several species that will rapidly form on the grain (CH,CH4) and freeze some portion of the original species (C) out to these products. This allows fast processes like hydrogenation to be treated without a network of surface reactions. ",(0,m.kt)("em",{parentName:"p"},"However, users should default to using a branching ratio of 1 and allowing surface reactions to take place"),"."),(0,m.kt)("p",null,"For efficiency, freeze out is turned off when the desorption rate is so high that ignoring freeze out would produce an error of around 10",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"20")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-20}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))))))))))))," on the abundances of the gas phase species. We also turn off freeze out when the temperature exceeds the binding energy of H",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msub"}),(0,m.kt)("mn",{parentName:"msub"},"2"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_2")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.45110799999999995em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))))))),"O."),(0,m.kt)("h2",{id:"thermal-desorption"},"Thermal Desorption"),(0,m.kt)("p",null,"We include thermal desorption of material from the grains based on the binding energy of each species to the ices. "),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"k"),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"\u03bd"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"d"),(0,m.kt)("mi",{parentName:"mrow"},"i"),(0,m.kt)("mi",{parentName:"mrow"},"f"),(0,m.kt)("mi",{parentName:"mrow"},"f"))),(0,m.kt)("mi",{parentName:"mrow"},"exp"),(0,m.kt)("mo",{parentName:"mrow"},"\u2061"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"mfrac"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"E"),(0,m.kt)("mi",{parentName:"msub"},"B"))),(0,m.kt)("mi",{parentName:"mfrac"},"T")),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k = \\nu_{diff} \\exp(\\frac{-E_B}{T})")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"2.04633em",verticalAlign:"-0.686em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.06366em"}},"\u03bd"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.06366em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,m.kt)("span",{parentName:"span",className:"mop"},"exp"),(0,m.kt)("span",{parentName:"span",className:"mopen"},"("),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T"))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05764em"}},"E"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.05764em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05017em"}},"B")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,m.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,m.kt)("p",null,"This can be simply multiplied by the surface abundance of a species to get its rate of change when using a three phase network. However, for two phases, we multiply by the fraction of the total ice particle which are a given species and by the number of surface sites per volume. This accounts for the fact a majority of the ice material cannot thermally desorb as it not on the surface."),(0,m.kt)("p",null,"Thermal desorption is most relevant to hot core models. As the temperature increases, sublimation can occur. However, TPD experiments (Collings et al. 2004) show that this happens in bursts rather than as a continuous process. These bursts happen naturally in the three phase model as the surface is removed and then the bulk. However, for a two phase network, such bursts need to be simulated. For this reason, the hot core model handles these bursts in the two phase case and the user should turn off thermal desorption."),(0,m.kt)("h2",{id:"non-thermal-desorption-methods"},"Non-thermal Desorption Methods"),(0,m.kt)("h5",{id:"h2-formation"},"H2 Formation"),(0,m.kt)("p",null,"H2 molecules form when H atoms meet briefly on grain surfaces. The reaction is sufficiently exothermic that not only is the product is released into the gas phase but the surrounding grain material is also heated. "),(0,m.kt)("h5",{id:"cosmic-rays"},"Cosmic Rays"),(0,m.kt)("p",null,"Cosmic rays which impact the grains can free molecules from the surface."),(0,m.kt)("h5",{id:"uv-photons"},"UV photons"),(0,m.kt)("p",null,"Surface molecules which absorb a UV photon may gain sufficient energy to escape the surface. We consider secondary photons created by cosmic rays as well as the interstellar radiation field."),(0,m.kt)("h5",{id:"chemical-desorption"},"Chemical Desorption"),(0,m.kt)("p",null,"Other than H2 formation, the desorption of species due to exothermic reactions happening nearby on the grain is not treated. However, as described in the grain surface reaction section, any exothermic grain surface reaction has a probability of releasing the products into the gas phase and this is accounted for."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/04f8940c.78679319.js b/assets/js/04f8940c.78679319.js new file mode 100644 index 00000000..110bc76e --- /dev/null +++ b/assets/js/04f8940c.78679319.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9977],{3905:(a,e,t)=>{t.d(e,{Zo:()=>o,kt:()=>h});var s=t(7294);function n(a,e,t){return e in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function m(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.push.apply(t,s)}return t}function p(a){for(var e=1;e=0||(n[t]=a[t]);return n}(a,e);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(a);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(a,t)&&(n[t]=a[t])}return n}var i=s.createContext({}),l=function(a){var e=s.useContext(i),t=e;return a&&(t="function"==typeof a?a(e):p(p({},e),a)),t},o=function(a){var e=l(a.components);return s.createElement(i.Provider,{value:e},a.children)},N={inlineCode:"code",wrapper:function(a){var e=a.children;return s.createElement(s.Fragment,{},e)}},c=s.forwardRef((function(a,e){var t=a.components,n=a.mdxType,m=a.originalType,i=a.parentName,o=r(a,["components","mdxType","originalType","parentName"]),c=l(t),h=n,k=c["".concat(i,".").concat(h)]||c[h]||N[h]||m;return t?s.createElement(k,p(p({ref:e},o),{},{components:t})):s.createElement(k,p({ref:e},o))}));function h(a,e){var t=arguments,n=e&&e.mdxType;if("string"==typeof a||n){var m=t.length,p=new Array(m);p[0]=c;var r={};for(var i in e)hasOwnProperty.call(e,i)&&(r[i]=e[i]);r.originalType=a,r.mdxType="string"==typeof a?a:n,p[1]=r;for(var l=2;l{t.r(e),t.d(e,{assets:()=>o,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>l,toc:()=>N});var s=t(7462),n=t(3366),m=(t(7294),t(3905)),p=["components"],r={id:"desorb",title:"Adsorption & Desorption Reactions"},i=void 0,l={unversionedId:"desorb",id:"version-v3.2.0/desorb",title:"Adsorption & Desorption Reactions",description:"Coupling between the gas and the grain chemistry primarily comes from the freeze out of material from the gas phase onto the dust grains (adsorption) and the sublimation of material from the grains into the gas phase (desorption). The major processes considered by UCLCHEM are listed below. Note that we assume desorption and freeze out occur between the gas and the surface only, bulk material in three phase models does not directly desorb into the gas phase.",source:"@site/versioned_docs/version-v3.2.0/chem-desorb.md",sourceDirName:".",slug:"/desorb",permalink:"/docs/desorb",draft:!1,tags:[],version:"v3.2.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"desorb",title:"Adsorption & Desorption Reactions"},sidebar:"docs",previous:{title:"Grain Surface Reactions",permalink:"/docs/grain"},next:{title:"Bulk Ice Processes",permalink:"/docs/bulk"}},o={},N=[{value:"Freeze out",id:"freeze-out",level:2},{value:"Thermal Desorption",id:"thermal-desorption",level:2},{value:"Non-thermal Desorption Methods",id:"non-thermal-desorption-methods",level:2},{value:"H2 Formation",id:"h2-formation",level:5},{value:"Cosmic Rays",id:"cosmic-rays",level:5},{value:"UV photons",id:"uv-photons",level:5},{value:"Chemical Desorption",id:"chemical-desorption",level:5}],c={toc:N};function h(a){var e=a.components,t=(0,n.Z)(a,p);return(0,m.kt)("wrapper",(0,s.Z)({},c,t,{components:e,mdxType:"MDXLayout"}),(0,m.kt)("p",null,"Coupling between the gas and the grain chemistry primarily comes from the freeze out of material from the gas phase onto the dust grains (adsorption) and the sublimation of material from the grains into the gas phase (desorption). The major processes considered by UCLCHEM are listed below. Note that we assume desorption and freeze out occur between the gas and the surface only, bulk material in three phase models does not directly desorb into the gas phase."),(0,m.kt)("h2",{id:"freeze-out"},"Freeze out"),(0,m.kt)("p",null,"We assume that molecules freeze out at a rate given by the rate of collision between a species and the dust grains:"),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"k"),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("mi",{parentName:"mrow"},"\u03b1"),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"v"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"t"),(0,m.kt)("mi",{parentName:"mrow"},"h"))),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"A"),(0,m.kt)("mi",{parentName:"msub"},"g")),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"C"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"i"),(0,m.kt)("mi",{parentName:"mrow"},"o"),(0,m.kt)("mi",{parentName:"mrow"},"n")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k=\\alpha v_{th} A_g C_{ion}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.969438em",verticalAlign:"-0.286108em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"v"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03588em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"h"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15139200000000003em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03588em"}},"g")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"C"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07153em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"n"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))),(0,m.kt)("p",null,"where ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"\u03b1")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\alpha")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.43056em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1")))))," is a branching ratio, ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"V"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"t"),(0,m.kt)("mi",{parentName:"mrow"},"h")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"V_{th}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"V"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.22222em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"h"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is the thermal velocity of the particle and ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"A"),(0,m.kt)("mi",{parentName:"msub"},"g"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"A_g")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.969438em",verticalAlign:"-0.286108em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15139200000000003em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03588em"}},"g")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is the dust grain cross sectional area per hydrogen nuclei. ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"C"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"i"),(0,m.kt)("mi",{parentName:"mrow"},"o"),(0,m.kt)("mi",{parentName:"mrow"},"n")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"C_{ion}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"C"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07153em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"n"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is a factor that increases the freeze out rate of ions due to electrostatic forces."),(0,m.kt)("p",null,"The branching ratio is an artefact of older versions of UCLCHEM which allows the user to include some grain processing of species without surface reactions. For a given species (eg C) we can determine several species that will rapidly form on the grain (CH,CH4) and freeze some portion of the original species (C) out to these products. This allows fast processes like hydrogenation to be treated without a network of surface reactions. ",(0,m.kt)("em",{parentName:"p"},"However, users should default to using a branching ratio of 1 and allowing surface reactions to take place"),"."),(0,m.kt)("p",null,"For efficiency, freeze out is turned off when the desorption rate is so high that ignoring freeze out would produce an error of around 10",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"20")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-20}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))))))))))))," on the abundances of the gas phase species. We also turn off freeze out when the temperature exceeds the binding energy of H",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msub"}),(0,m.kt)("mn",{parentName:"msub"},"2"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_2")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.45110799999999995em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))))))),"O."),(0,m.kt)("h2",{id:"thermal-desorption"},"Thermal Desorption"),(0,m.kt)("p",null,"We include thermal desorption of material from the grains based on the binding energy of each species to the ices. "),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"k"),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"\u03bd"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"d"),(0,m.kt)("mi",{parentName:"mrow"},"i"),(0,m.kt)("mi",{parentName:"mrow"},"f"),(0,m.kt)("mi",{parentName:"mrow"},"f"))),(0,m.kt)("mi",{parentName:"mrow"},"exp"),(0,m.kt)("mo",{parentName:"mrow"},"\u2061"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"mfrac"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"E"),(0,m.kt)("mi",{parentName:"msub"},"B"))),(0,m.kt)("mi",{parentName:"mfrac"},"T")),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k = \\nu_{diff} \\exp(\\frac{-E_B}{T})")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"2.04633em",verticalAlign:"-0.686em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.06366em"}},"\u03bd"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.06366em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,m.kt)("span",{parentName:"span",className:"mop"},"exp"),(0,m.kt)("span",{parentName:"span",className:"mopen"},"("),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T"))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05764em"}},"E"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.05764em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05017em"}},"B")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,m.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,m.kt)("p",null,"This can be simply multiplied by the surface abundance of a species to get its rate of change when using a three phase network. However, for two phases, we multiply by the fraction of the total ice particle which are a given species and by the number of surface sites per volume. This accounts for the fact a majority of the ice material cannot thermally desorb as it not on the surface."),(0,m.kt)("p",null,"Thermal desorption is most relevant to hot core models. As the temperature increases, sublimation can occur. However, TPD experiments (Collings et al. 2004) show that this happens in bursts rather than as a continuous process. These bursts happen naturally in the three phase model as the surface is removed and then the bulk. However, for a two phase network, such bursts need to be simulated. For this reason, the hot core model handles these bursts in the two phase case and the user should turn off thermal desorption."),(0,m.kt)("h2",{id:"non-thermal-desorption-methods"},"Non-thermal Desorption Methods"),(0,m.kt)("h5",{id:"h2-formation"},"H2 Formation"),(0,m.kt)("p",null,"H2 molecules form when H atoms meet briefly on grain surfaces. The reaction is sufficiently exothermic that not only is the product is released into the gas phase but the surrounding grain material is also heated. "),(0,m.kt)("h5",{id:"cosmic-rays"},"Cosmic Rays"),(0,m.kt)("p",null,"Cosmic rays which impact the grains can free molecules from the surface."),(0,m.kt)("h5",{id:"uv-photons"},"UV photons"),(0,m.kt)("p",null,"Surface molecules which absorb a UV photon may gain sufficient energy to escape the surface. We consider secondary photons created by cosmic rays as well as the interstellar radiation field."),(0,m.kt)("h5",{id:"chemical-desorption"},"Chemical Desorption"),(0,m.kt)("p",null,"Other than H2 formation, the desorption of species due to exothermic reactions happening nearby on the grain is not treated. However, as described in the grain surface reaction section, any exothermic grain surface reaction has a probability of releasing the products into the gas phase and this is accounted for."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/08daa2f3.2be38646.js b/assets/js/08daa2f3.2be38646.js deleted file mode 100644 index cdced09d..00000000 --- a/assets/js/08daa2f3.2be38646.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7942],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>u});var n=a(7294);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function r(e){for(var t=1;t=0||(l[a]=e[a]);return l}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(l[a]=e[a])}return l}var o=n.createContext({}),p=function(e){var t=n.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):r(r({},t),e)),a},c=function(e){var t=p(e.components);return n.createElement(o.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},k=n.forwardRef((function(e,t){var a=e.components,l=e.mdxType,i=e.originalType,o=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),k=p(a),u=l,d=k["".concat(o,".").concat(u)]||k[u]||m[u]||i;return a?n.createElement(d,r(r({ref:t},c),{},{components:a})):n.createElement(d,r({ref:t},c))}));function u(e,t){var a=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var i=a.length,r=new Array(i);r[0]=k;var s={};for(var o in t)hasOwnProperty.call(t,o)&&(s[o]=t[o]);s.originalType=e,s.mdxType="string"==typeof e?e:l,r[1]=s;for(var p=2;p{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>s,metadata:()=>p,toc:()=>m});var n=a(7462),l=a(3366),i=(a(7294),a(3905)),r=["components"],s={id:"pythonapi",title:"Python Reference"},o="Python API",p={unversionedId:"pythonapi",id:"version-v3.2.0/pythonapi",title:"Python Reference",description:"* uclchem",source:"@site/versioned_docs/version-v3.2.0/start-pythonapi.md",sourceDirName:".",slug:"/pythonapi",permalink:"/docs/pythonapi",tags:[],version:"v3.2.0",frontMatter:{id:"pythonapi",title:"Python Reference"},sidebar:"docs",previous:{title:"Model Parameters",permalink:"/docs/parameters"},next:{title:"Tutorials",permalink:"/docs/category/tutorials"}},c={},m=[{value:"read_output_file",id:"read_output_file",level:4},{value:"create_abundance_plot",id:"create_abundance_plot",level:4},{value:"plot_species",id:"plot_species",level:4},{value:"analysis",id:"analysis",level:4},{value:"total_element_abundance",id:"total_element_abundance",level:4},{value:"check_element_conservation",id:"check_element_conservation",level:4},{value:"cloud",id:"cloud",level:4},{value:"collapse",id:"collapse",level:4},{value:"hot_core",id:"hot_core",level:4},{value:"cshock",id:"cshock",level:4},{value:"jshock",id:"jshock",level:4},{value:"cshock_dissipation_time",id:"cshock_dissipation_time",level:4},{value:"check_error",id:"check_error",level:4},{value:"get_species_table",id:"get_species_table",level:4},{value:"get_reaction_table",id:"get_reaction_table",level:4},{value:"test_ode_conservation",id:"test_ode_conservation",level:4},{value:"is_number",id:"is_number",level:4},{value:"Species Objects",id:"species-objects",level:2},{value:"__init__",id:"__init__",level:4},{value:"get_name",id:"get_name",level:4},{value:"get_mass",id:"get_mass",level:4},{value:"set_desorb_products",id:"set_desorb_products",level:4},{value:"get_desorb_products",id:"get_desorb_products",level:4},{value:"set_freeze_products",id:"set_freeze_products",level:4},{value:"get_freeze_products",id:"get_freeze_products",level:4},{value:"get_freeze_products_list",id:"get_freeze_products_list",level:4},{value:"get_freeze_alpha",id:"get_freeze_alpha",level:4},{value:"is_grain_species",id:"is_grain_species",level:4},{value:"is_surface_species",id:"is_surface_species",level:4},{value:"is_bulk_species",id:"is_bulk_species",level:4},{value:"is_ion",id:"is_ion",level:4},{value:"add_default_freeze",id:"add_default_freeze",level:4},{value:"find_constituents",id:"find_constituents",level:4},{value:"get_n_atoms",id:"get_n_atoms",level:4},{value:"set_n_atoms",id:"set_n_atoms",level:4},{value:"__eq__",id:"__eq__",level:4},{value:"__lt__",id:"__lt__",level:4},{value:"__gt__",id:"__gt__",level:4},{value:"run_makerates",id:"run_makerates",level:4},{value:"get_network",id:"get_network",level:4},{value:"Network Objects",id:"network-objects",level:2},{value:"__init__",id:"__init__-1",level:4},{value:"find_similar_reactions",id:"find_similar_reactions",level:4},{value:"remove_reaction_by_index",id:"remove_reaction_by_index",level:4},{value:"remove_reaction",id:"remove_reaction",level:4},{value:"get_reaction",id:"get_reaction",level:4},{value:"set_reaction",id:"set_reaction",level:4},{value:"get_reaction_dict",id:"get_reaction_dict",level:4},{value:"set_reaction_dict",id:"set_reaction_dict",level:4},{value:"get_reaction_list",id:"get_reaction_list",level:4},{value:"sort_reactions",id:"sort_reactions",level:4},{value:"add_species",id:"add_species",level:4},{value:"remove_species",id:"remove_species",level:4},{value:"get_species_list",id:"get_species_list",level:4},{value:"get_species_dict",id:"get_species_dict",level:4},{value:"get_specie",id:"get_specie",level:4},{value:"set_specie",id:"set_specie",level:4},{value:"set_species_dict",id:"set_species_dict",level:4},{value:"sort_species",id:"sort_species",level:4},{value:"check_network",id:"check_network",level:4},{value:"check_and_filter_species",id:"check_and_filter_species",level:4},{value:"add_bulk_species",id:"add_bulk_species",level:4},{value:"check_freeze_and_desorbs",id:"check_freeze_and_desorbs",level:4},{value:"add_freeze_reactions",id:"add_freeze_reactions",level:4},{value:"add_desorb_reactions",id:"add_desorb_reactions",level:4},{value:"add_chemdes_reactions",id:"add_chemdes_reactions",level:4},{value:"check_for_excited_species",id:"check_for_excited_species",level:4},{value:"add_excited_surface_reactions",id:"add_excited_surface_reactions",level:4},{value:"add_bulk_reactions",id:"add_bulk_reactions",level:4},{value:"freeze_checks",id:"freeze_checks",level:4},{value:"duplicate_checks",id:"duplicate_checks",level:4},{value:"index_important_reactions",id:"index_important_reactions",level:4},{value:"index_important_species",id:"index_important_species",level:4},{value:"LoadedNetwork Objects",id:"loadednetwork-objects",level:2},{value:"__init__",id:"__init__-2",level:4},{value:"read_species_file",id:"read_species_file",level:4},{value:"read_reaction_file",id:"read_reaction_file",level:4},{value:"check_reaction",id:"check_reaction",level:4},{value:"kida_parser",id:"kida_parser",level:4},{value:"output_drops",id:"output_drops",level:4},{value:"write_outputs",id:"write_outputs",level:4},{value:"write_species",id:"write_species",level:4},{value:"write_reactions",id:"write_reactions",level:4},{value:"write_odes_f90",id:"write_odes_f90",level:4},{value:"write_jacobian",id:"write_jacobian",level:4},{value:"build_ode_string",id:"build_ode_string",level:4},{value:"species_ode_string",id:"species_ode_string",level:4},{value:"write_evap_lists",id:"write_evap_lists",level:4},{value:"truncate_line",id:"truncate_line",level:4},{value:"write_network_file",id:"write_network_file",level:4},{value:"find_reactant",id:"find_reactant",level:4},{value:"get_desorption_freeze_partners",id:"get_desorption_freeze_partners",level:4},{value:"array_to_string",id:"array_to_string",level:4},{value:"Reaction Objects",id:"reaction-objects",level:2},{value:"get_reactants",id:"get_reactants",level:4},{value:"get_sorted_reactants",id:"get_sorted_reactants",level:4},{value:"set_reactants",id:"set_reactants",level:4},{value:"get_products",id:"get_products",level:4},{value:"get_sorted_products",id:"get_sorted_products",level:4},{value:"set_products",id:"set_products",level:4},{value:"get_alpha",id:"get_alpha",level:4},{value:"set_alpha",id:"set_alpha",level:4},{value:"get_beta",id:"get_beta",level:4},{value:"set_beta",id:"set_beta",level:4},{value:"set_gamma",id:"set_gamma",level:4},{value:"get_gamma",id:"get_gamma",level:4},{value:"set_templow",id:"set_templow",level:4},{value:"get_templow",id:"get_templow",level:4},{value:"set_temphigh",id:"set_temphigh",level:4},{value:"get_temphigh",id:"get_temphigh",level:4},{value:"NANCheck",id:"nancheck",level:4},{value:"get_reaction_type",id:"get_reaction_type",level:4},{value:"convert_to_bulk",id:"convert_to_bulk",level:4},{value:"__eq__",id:"__eq__-1",level:4},{value:"check_temperature_collision",id:"check_temperature_collision",level:4},{value:"changes_surface_count",id:"changes_surface_count",level:4},{value:"changes_total_mantle",id:"changes_total_mantle",level:4},{value:"generate_ode_bit",id:"generate_ode_bit",level:4}],k={toc:m};function u(e){var t=e.components,a=(0,l.Z)(e,r);return(0,i.kt)("wrapper",(0,n.Z)({},k,a,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"python-api"},"Python API"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem"},"uclchem"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.analysis"},"uclchem.analysis")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.analysis.read_output_file"},"read","_","output","_","file")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.analysis.create_abundance_plot"},"create","_","abundance","_","plot")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.analysis.plot_species"},"plot","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.analysis.analysis"},"analysis")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.analysis.total_element_abundance"},"total","_","element","_","abundance")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.analysis.check_element_conservation"},"check","_","element","_","conservation")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.model"},"uclchem.model")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.model.cloud"},"cloud")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.model.collapse"},"collapse")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.model.hot_core"},"hot","_","core")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.model.cshock"},"cshock")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.model.jshock"},"jshock")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.utils"},"uclchem.utils")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.utils.cshock_dissipation_time"},"cshock","_","dissipation","_","time")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.utils.check_error"},"check","_","error")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.utils.get_species_table"},"get","_","species","_","table")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.utils.get_reaction_table"},"get","_","reaction","_","table")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.tests"},"uclchem.tests")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.tests.test_ode_conservation"},"test","_","ode","_","conservation")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.makerates.species"},"uclchem.makerates.species")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.is_number"},"is","_","number")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species"},"Species"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.__init__"},"_","_","init","_","_")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.get_name"},"get","_","name")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.get_mass"},"get","_","mass")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.set_desorb_products"},"set","_","desorb","_","products")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.get_desorb_products"},"get","_","desorb","_","products")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.set_freeze_products"},"set","_","freeze","_","products")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.get_freeze_products"},"get","_","freeze","_","products")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.get_freeze_products_list"},"get","_","freeze","_","products","_","list")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.get_freeze_alpha"},"get","_","freeze","_","alpha")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.is_grain_species"},"is","_","grain","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.is_surface_species"},"is","_","surface","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.is_bulk_species"},"is","_","bulk","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.is_ion"},"is","_","ion")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.add_default_freeze"},"add","_","default","_","freeze")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.find_constituents"},"find","_","constituents")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.get_n_atoms"},"get","_","n","_","atoms")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.set_n_atoms"},"set","_","n","_","atoms")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.__eq__"},"_","_","eq","_","_")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.__lt__"},"_","_","lt","_","_")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.__gt__"},"_","_","gt","_","_")))))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.makerates"},"uclchem.makerates"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.makerates.makerates"},"uclchem.makerates.makerates")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.makerates.run_makerates"},"run","_","makerates")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.makerates.get_network"},"get","_","network")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.makerates.network"},"uclchem.makerates.network")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network"},"Network"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.__init__"},"_","_","init","_","_")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.find_similar_reactions"},"find","_","similar","_","reactions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.remove_reaction_by_index"},"remove","_","reaction","_","by","_","index")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.remove_reaction"},"remove","_","reaction")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.get_reaction"},"get","_","reaction")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.set_reaction"},"set","_","reaction")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.get_reaction_dict"},"get","_","reaction","_","dict")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.set_reaction_dict"},"set","_","reaction","_","dict")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.get_reaction_list"},"get","_","reaction","_","list")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.sort_reactions"},"sort","_","reactions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.add_species"},"add","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.remove_species"},"remove","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.get_species_list"},"get","_","species","_","list")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.get_species_dict"},"get","_","species","_","dict")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.get_specie"},"get","_","specie")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.set_specie"},"set","_","specie")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.set_species_dict"},"set","_","species","_","dict")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.sort_species"},"sort","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.check_network"},"check","_","network")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.check_and_filter_species"},"check","_","and","_","filter","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.add_bulk_species"},"add","_","bulk","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.check_freeze_and_desorbs"},"check","_","freeze","_","and","_","desorbs")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.add_freeze_reactions"},"add","_","freeze","_","reactions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.add_desorb_reactions"},"add","_","desorb","_","reactions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.add_chemdes_reactions"},"add","_","chemdes","_","reactions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.check_for_excited_species"},"check","_","for","_","excited","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.add_excited_surface_reactions"},"add","_","excited","_","surface","_","reactions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.add_bulk_reactions"},"add","_","bulk","_","reactions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.freeze_checks"},"freeze","_","checks")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.duplicate_checks"},"duplicate","_","checks")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.index_important_reactions"},"index","_","important","_","reactions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.index_important_species"},"index","_","important","_","species")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.LoadedNetwork"},"LoadedNetwork"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.LoadedNetwork.__init__"},"_","_","init","_","_")))))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.makerates.io_functions"},"uclchem.makerates.io","_","functions")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.read_species_file"},"read","_","species","_","file")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.read_reaction_file"},"read","_","reaction","_","file")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.check_reaction"},"check","_","reaction")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.kida_parser"},"kida","_","parser")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.output_drops"},"output","_","drops")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.write_outputs"},"write","_","outputs")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.write_species"},"write","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.write_reactions"},"write","_","reactions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.write_odes_f90"},"write","_","odes","_","f90")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.write_jacobian"},"write","_","jacobian")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.build_ode_string"},"build","_","ode","_","string")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.species_ode_string"},"species","_","ode","_","string")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.write_evap_lists"},"write","_","evap","_","lists")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.truncate_line"},"truncate","_","line")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.write_network_file"},"write","_","network","_","file")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.find_reactant"},"find","_","reactant")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.get_desorption_freeze_partners"},"get","_","desorption","_","freeze","_","partners")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.array_to_string"},"array","_","to","_","string")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.makerates.reaction"},"uclchem.makerates.reaction")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction"},"Reaction"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.get_reactants"},"get","_","reactants")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.get_sorted_reactants"},"get","_","sorted","_","reactants")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.set_reactants"},"set","_","reactants")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.get_products"},"get","_","products")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.get_sorted_products"},"get","_","sorted","_","products")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.set_products"},"set","_","products")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.get_alpha"},"get","_","alpha")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.set_alpha"},"set","_","alpha")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.get_beta"},"get","_","beta")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.set_beta"},"set","_","beta")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.set_gamma"},"set","_","gamma")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.get_gamma"},"get","_","gamma")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.set_templow"},"set","_","templow")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.get_templow"},"get","_","templow")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.set_temphigh"},"set","_","temphigh")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.get_temphigh"},"get","_","temphigh")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.NANCheck"},"NANCheck")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.get_reaction_type"},"get","_","reaction","_","type")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.convert_to_bulk"},"convert","_","to","_","bulk")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.__eq__"},"_","_","eq","_","_")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.check_temperature_collision"},"check","_","temperature","_","collision")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.changes_surface_count"},"changes","_","surface","_","count")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.changes_total_mantle"},"changes","_","total","_","mantle")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.generate_ode_bit"},"generate","_","ode","_","bit"))))))),(0,i.kt)("a",{id:"uclchem"}),(0,i.kt)("h1",{id:"uclchem"},"uclchem"),(0,i.kt)("p",null,"The UCLCHEM python module is divided into three parts.\n",(0,i.kt)("inlineCode",{parentName:"p"},"model")," contains the functions for running chemical models under different physics.\n",(0,i.kt)("inlineCode",{parentName:"p"},"analysis")," contains functions for reading and plotting output files as well as investigating the chemistry.\n",(0,i.kt)("inlineCode",{parentName:"p"},"tests")," contains functions for testing the code."),(0,i.kt)("a",{id:"uclchem.analysis"}),(0,i.kt)("h1",{id:"uclchemanalysis"},"uclchem.analysis"),(0,i.kt)("a",{id:"uclchem.analysis.read_output_file"}),(0,i.kt)("h4",{id:"read_output_file"},"read","_","output","_","file"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def read_output_file(output_file)\n")),(0,i.kt)("p",null,"Read the output of a UCLCHEM run created with the outputFile parameter into a pandas DataFrame"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"output_file")," ",(0,i.kt)("em",{parentName:"li"},"str")," - path to file containing a full UCLCHEM output")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"pandas.DataFrame")," - A dataframe containing the abundances and physical parameters of the model at every time step.")),(0,i.kt)("a",{id:"uclchem.analysis.create_abundance_plot"}),(0,i.kt)("h4",{id:"create_abundance_plot"},"create","_","abundance","_","plot"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def create_abundance_plot(df, species, figsize=(16, 9), plot_file=None)\n")),(0,i.kt)("p",null,"Create a plot of the abundance of a list of species through time."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"df")," ",(0,i.kt)("em",{parentName:"li"},"pd.DataFrame")," - Pandas dataframe containing the UCLCHEM output, see ",(0,i.kt)("inlineCode",{parentName:"li"},"read_output_file")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species")," ",(0,i.kt)("em",{parentName:"li"},"list")," - list of strings containing species names. Using a $ instead of # or @ will plot the sum of surface and bulk abundances."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"figsize")," ",(0,i.kt)("em",{parentName:"li"},"tuple, optional")," - Size of figure, width by height in inches. Defaults to (16, 9)."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"plot_file")," ",(0,i.kt)("em",{parentName:"li"},"str, optional")," - Path to file where figure will be saved. If None, figure is not saved. Defaults to None.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"fig,ax")," - matplotlib figure and axis objects")),(0,i.kt)("a",{id:"uclchem.analysis.plot_species"}),(0,i.kt)("h4",{id:"plot_species"},"plot","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def plot_species(ax, df, species, **plot_kwargs)\n")),(0,i.kt)("p",null,"Plot the abundance of a list of species through time directly onto an axis."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"ax")," ",(0,i.kt)("em",{parentName:"li"},"pyplot.axis")," - An axis object to plot on"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"df")," ",(0,i.kt)("em",{parentName:"li"},"pd.DataFrame")," - A dataframe created by ",(0,i.kt)("inlineCode",{parentName:"li"},"read_output_file")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species")," ",(0,i.kt)("em",{parentName:"li"},"str"),' - A list of species names to be plotted. If species name starts with "$" instead of # or @, plots the sum of surface and bulk abundances')),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"pyplot.axis")," - Modified input axis is returned")),(0,i.kt)("a",{id:"uclchem.analysis.analysis"}),(0,i.kt)("h4",{id:"analysis"},"analysis"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def analysis(species_name, result_file, output_file, rate_threshold=0.99)\n")),(0,i.kt)("p",null,"A function which loops over every time step in an output file and finds the rate of change of a species at that time due to each of the reactions it is involved in.\nFrom this, the most important reactions are identified and printed to file. This can be used to understand the chemical reason behind a species' behaviour."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_name")," ",(0,i.kt)("em",{parentName:"li"},"str")," - Name of species to be analysed"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"result_file")," ",(0,i.kt)("em",{parentName:"li"},"str")," - The path to the file containing the UCLCHEM output"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"output_file")," ",(0,i.kt)("em",{parentName:"li"},"str")," - The path to the file where the analysis output will be written"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"rate_threshold")," ",(0,i.kt)("em",{parentName:"li"},"float,optional")," - Analysis output will contain the only the most efficient reactions that are responsible for rate_threshold of the total production and destruction rate. Defaults to 0.99.")),(0,i.kt)("a",{id:"uclchem.analysis.total_element_abundance"}),(0,i.kt)("h4",{id:"total_element_abundance"},"total","_","element","_","abundance"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def total_element_abundance(element, df)\n")),(0,i.kt)("p",null,"Calculates that the total elemental abundance of a species as a function of time. Allows you to check conservation."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"element")," ",(0,i.kt)("em",{parentName:"li"},"str")," - Name of element"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"df")," ",(0,i.kt)("em",{parentName:"li"},"pandas.DataFrame")," - DataFrame from ",(0,i.kt)("inlineCode",{parentName:"li"},"read_output_file()"))),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"pandas.Series")," - Total abundance of element for all time steps in df.")),(0,i.kt)("a",{id:"uclchem.analysis.check_element_conservation"}),(0,i.kt)("h4",{id:"check_element_conservation"},"check","_","element","_","conservation"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},'def check_element_conservation(df,\n element_list=["H", "N", "C", "O"],\n percent=True)\n')),(0,i.kt)("p",null,"Check the conservation of major element by comparing total abundance at start and end of model"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"df")," ",(0,i.kt)("em",{parentName:"li"},"pandas.DataFrame")," - UCLCHEM output in format from ",(0,i.kt)("inlineCode",{parentName:"li"},"read_output_file")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"element_list")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - List of elements to check. Defaults to ",'["H", "N", "C", "O"]',".")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"dict")," - Dictionary containing the change in the total abundance of each element as a fraction of initial value")),(0,i.kt)("a",{id:"uclchem.model"}),(0,i.kt)("h1",{id:"uclchemmodel"},"uclchem.model"),(0,i.kt)("a",{id:"uclchem.model.cloud"}),(0,i.kt)("h4",{id:"cloud"},"cloud"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def cloud(param_dict=None, out_species=None)\n")),(0,i.kt)("p",null,"Run cloud model from UCLCHEM"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"param_dict")," ",(0,i.kt)("em",{parentName:"li"},"dict,optional")," - A dictionary of parameters where keys are any of the variables in defaultparameters.f90 and values are value for current run."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"out_species")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - A list of species for which final abundance will be returned. If None, no abundances will be returned.. Defaults to None.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," A list where the first element is always an integer which is negative if the model failed to run and can be sent to ",(0,i.kt)("inlineCode",{parentName:"p"},"uclchem.utils.check_error()")," to see more details. If the ",(0,i.kt)("inlineCode",{parentName:"p"},"out_species")," parametere is provided, the remaining elements of this list will be the final abundances of the species in out_species."),(0,i.kt)("a",{id:"uclchem.model.collapse"}),(0,i.kt)("h4",{id:"collapse"},"collapse"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def collapse(collapse, physics_output, param_dict=None, out_species=None)\n")),(0,i.kt)("p",null,"Run collapse model from UCLCHEM based on Priestley et al 2018 AJ 156 51 (",(0,i.kt)("a",{parentName:"p",href:"https://ui.adsabs.harvard.edu/abs/2018AJ....156...51P/abstract"},"https://ui.adsabs.harvard.edu/abs/2018AJ....156...51P/abstract"),")"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"collapse")," ",(0,i.kt)("em",{parentName:"li"},"str")," - A string containing the collapse type, options are 'BE1.1', 'BE4', 'filament', or 'ambipolar'"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"physics_output(str)")," - Filename to store physics output, only relevant for 'filament' and 'ambipolar' collapses. If None, no physics output will be saved."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"param_dict")," ",(0,i.kt)("em",{parentName:"li"},"dict,optional")," - A dictionary of parameters where keys are any of the variables in defaultparameters.f90 and values are value for current run."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"out_species")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - A list of species for which final abundance will be returned. If None, no abundances will be returned.. Defaults to None.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," A list where the first element is always an integer which is negative if the model failed to run and can be sent to ",(0,i.kt)("inlineCode",{parentName:"p"},"uclchem.utils.check_error()")," to see more details. If the ",(0,i.kt)("inlineCode",{parentName:"p"},"out_species")," parametere is provided, the remaining elements of this list will be the final abundances of the species in out_species."),(0,i.kt)("a",{id:"uclchem.model.hot_core"}),(0,i.kt)("h4",{id:"hot_core"},"hot","_","core"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def hot_core(temp_indx, max_temperature, param_dict=None, out_species=None)\n")),(0,i.kt)("p",null,"Run hot core model from UCLCHEM, based on Viti et al. 2004 and Collings et al. 2004"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"temp_indx")," ",(0,i.kt)("em",{parentName:"li"},"int")," - Used to select the mass of hot core. 1=1Msun,2=5, 3=10, 4=15, 5=25,6=60]"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"max_temperature")," ",(0,i.kt)("em",{parentName:"li"},"float")," - Value at which gas temperature will stop increasing."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"param_dict")," ",(0,i.kt)("em",{parentName:"li"},"dict,optional")," - A dictionary of parameters where keys are any of the variables in defaultparameters.f90 and values are value for current run."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"out_species")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - A list of species for which final abundance will be returned. If None, no abundances will be returned.. Defaults to None.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," A list where the first element is always an integer which is negative if the model failed to run and can be sent to ",(0,i.kt)("inlineCode",{parentName:"p"},"uclchem.utils.check_error()")," to see more details. If the ",(0,i.kt)("inlineCode",{parentName:"p"},"out_species")," parametere is provided, the remaining elements of this list will be the final abundances of the species in out_species."),(0,i.kt)("a",{id:"uclchem.model.cshock"}),(0,i.kt)("h4",{id:"cshock"},"cshock"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def cshock(shock_vel,\n timestep_factor=0.01,\n minimum_temperature=0.0,\n param_dict=None,\n out_species=None)\n")),(0,i.kt)("p",null,"Run C-type shock model from UCLCHEM"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"shock_vel")," ",(0,i.kt)("em",{parentName:"li"},"float")," - Velocity of the shock in km/s"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"timestep_factor")," ",(0,i.kt)("em",{parentName:"li"},"float, optional")," - Whilst the time is less than 2 times the dissipation time of shock, timestep is timestep_factor*dissipation time. Essentially controls\nhow well resolved the shock is in your model. Defaults to 0.01."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"minimum_temperature")," ",(0,i.kt)("em",{parentName:"li"},"float, optional")," - Minimum post-shock temperature. Defaults to 0.0 (no minimum). The shocked gas typically cools to ",(0,i.kt)("inlineCode",{parentName:"li"},"initialTemp")," if this is not set."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"param_dict")," ",(0,i.kt)("em",{parentName:"li"},"dict,optional")," - A dictionary of parameters where keys are any of the variables in defaultparameters.f90 and values are value for current run."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"out_species")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - A list of species for which final abundance will be returned. If None, no abundances will be returned.. Defaults to None.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," A list where the first element is always an integer which is negative if the model failed to run and can be sent to ",(0,i.kt)("inlineCode",{parentName:"p"},"uclchem.utils.check_error()")," to see more details. If the model succeeded, the second element is the dissipation time and further elements are the abundances of all species in ",(0,i.kt)("inlineCode",{parentName:"p"},"out_species"),"."),(0,i.kt)("a",{id:"uclchem.model.jshock"}),(0,i.kt)("h4",{id:"jshock"},"jshock"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def jshock(shock_vel, param_dict=None, out_species=None)\n")),(0,i.kt)("p",null,"Run J-type shock model from UCLCHEM"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"shock_vel")," ",(0,i.kt)("em",{parentName:"li"},"float")," - Velocity of the shock"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"param_dict")," ",(0,i.kt)("em",{parentName:"li"},"dict,optional")," - A dictionary of parameters where keys are any of the variables in defaultparameters.f90 and values are value for current run."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"out_species")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - A list of species for which final abundance will be returned. If None, no abundances will be returned.. Defaults to None.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," A list where the first element is always an integer which is negative if the model failed to run and can be sent to ",(0,i.kt)("inlineCode",{parentName:"p"},"uclchem.utils.check_error()")," to see more details. If the model succeeded, the second element is the dissipation time and further elements are the abundances of all species in ",(0,i.kt)("inlineCode",{parentName:"p"},"out_species"),"."),(0,i.kt)("a",{id:"uclchem.utils"}),(0,i.kt)("h1",{id:"uclchemutils"},"uclchem.utils"),(0,i.kt)("a",{id:"uclchem.utils.cshock_dissipation_time"}),(0,i.kt)("h4",{id:"cshock_dissipation_time"},"cshock","_","dissipation","_","time"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def cshock_dissipation_time(shock_vel, initial_dens)\n")),(0,i.kt)("p",null,"A simple function used to calculate the dissipation time of a C-type shock.\nUse to obtain a useful timescale for your C-shock model runs. Velocity of\nions and neutrals equalizes at dissipation time and full cooling takes a few dissipation times."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"shock_vel")," ",(0,i.kt)("em",{parentName:"li"},"float")," - Velocity of the shock in km/s"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"initial_dens")," ",(0,i.kt)("em",{parentName:"li"},"float")," - Preshock density of the gas in cm",(0,i.kt)("span",{parentName:"li",className:"math math-inline"},(0,i.kt)("span",{parentName:"span",className:"katex"},(0,i.kt)("span",{parentName:"span",className:"katex-mathml"},(0,i.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,i.kt)("semantics",{parentName:"math"},(0,i.kt)("mrow",{parentName:"semantics"},(0,i.kt)("msup",{parentName:"mrow"},(0,i.kt)("mrow",{parentName:"msup"}),(0,i.kt)("mrow",{parentName:"msup"},(0,i.kt)("mo",{parentName:"mrow"},"\u2212"),(0,i.kt)("mn",{parentName:"mrow"},"3")))),(0,i.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-3}")))),(0,i.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,i.kt)("span",{parentName:"span",className:"base"},(0,i.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,i.kt)("span",{parentName:"span",className:"mord"},(0,i.kt)("span",{parentName:"span"}),(0,i.kt)("span",{parentName:"span",className:"msupsub"},(0,i.kt)("span",{parentName:"span",className:"vlist-t"},(0,i.kt)("span",{parentName:"span",className:"vlist-r"},(0,i.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,i.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,i.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,i.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,i.kt)("span",{parentName:"span",className:"mord mtight"},(0,i.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,i.kt)("span",{parentName:"span",className:"mord mtight"},"3"))))))))))))))),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"float")," - The dissipation time of the shock in years")),(0,i.kt)("a",{id:"uclchem.utils.check_error"}),(0,i.kt)("h4",{id:"check_error"},"check","_","error"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def check_error(error_code)\n")),(0,i.kt)("p",null,'Converts the UCLCHEM integer result flag to a simple messaging explaining what went wrong"'),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"error_code")," ",(0,i.kt)("em",{parentName:"li"},"int")," - Error code returned by UCLCHEM models, the first element of the results list.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"str")," - Error message")),(0,i.kt)("a",{id:"uclchem.utils.get_species_table"}),(0,i.kt)("h4",{id:"get_species_table"},"get","_","species","_","table"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_species_table()\n")),(0,i.kt)("p",null,"A simple function to load the list of species in the UCLCHEM network into a pandas dataframe."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"pandas.DataFrame")," - A dataframe containing the species names and their details")),(0,i.kt)("a",{id:"uclchem.utils.get_reaction_table"}),(0,i.kt)("h4",{id:"get_reaction_table"},"get","_","reaction","_","table"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_reaction_table()\n")),(0,i.kt)("p",null,"A function to load the reaction table from the UCLCHEM network into a pandas dataframe."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"pandas.DataFrame")," - A dataframe containing the reactions and their rates")),(0,i.kt)("a",{id:"uclchem.tests"}),(0,i.kt)("h1",{id:"uclchemtests"},"uclchem.tests"),(0,i.kt)("a",{id:"uclchem.tests.test_ode_conservation"}),(0,i.kt)("h4",{id:"test_ode_conservation"},"test","_","ode","_","conservation"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},'def test_ode_conservation(element_list=["H", "N", "C", "O"])\n')),(0,i.kt)("p",null,"Test whether the ODEs conserve elements. Useful to run each time you change network.\nIntegrator errors may still cause elements not to be conserved but they cannot be conserved\nif the ODEs are not correct."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"element_list")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - A list of elements for which to check the conservation. Defaults to ",'["H", "N", "C", "O"]',".")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"dict")," - A dictionary of the elements in element list with values representing the total rate of change of each element.")),(0,i.kt)("a",{id:"uclchem.makerates.species"}),(0,i.kt)("h1",{id:"uclchemmakeratesspecies"},"uclchem.makerates.species"),(0,i.kt)("a",{id:"uclchem.makerates.species.is_number"}),(0,i.kt)("h4",{id:"is_number"},"is","_","number"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def is_number(s) -> bool\n")),(0,i.kt)("p",null,"Try to convert input to a float, if it succeeds, return True."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"s")," - Input element to check for")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - True if a number, False if not.")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species"}),(0,i.kt)("h2",{id:"species-objects"},"Species Objects"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"class Species()\n")),(0,i.kt)("p",null,"Species is a class that holds all the information about an individual species in the\nnetwork. It also has convenience functions to check whether the species is a gas or grain\nspecies and to help compare between species."),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.__init__"}),(0,i.kt)("h4",{id:"__init__"},"_","_","init","_","_"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def __init__(inputRow)\n")),(0,i.kt)("p",null,"A class representing chemical species, it reads in rows which are formatted as follows:\nNAME,MASS,BINDING ENERGY,SOLID FRACTION,MONO FRACTION,VOLCANO FRACTION,ENTHALPY"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("p",null," inputRow (list):"),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.get_name"}),(0,i.kt)("h4",{id:"get_name"},"get","_","name"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_name() -> str\n")),(0,i.kt)("p",null,"Get the name of the chemical species."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"str")," - The name")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.get_mass"}),(0,i.kt)("h4",{id:"get_mass"},"get","_","mass"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_mass() -> int\n")),(0,i.kt)("p",null,"Get the molecular mass of the chemical species"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"int")," - The molecular mass")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.set_desorb_products"}),(0,i.kt)("h4",{id:"set_desorb_products"},"set","_","desorb","_","products"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_desorb_products(new_desorbs: list[str]) -> None\n")),(0,i.kt)("p",null,"Set the desorption products for species on the surface or in the bulk.\nIt is assumed that there is only one desorption pathway."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"new_desorbs")," ",(0,i.kt)("em",{parentName:"li"},"list","[str]")," - The new desorption products")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.get_desorb_products"}),(0,i.kt)("h4",{id:"get_desorb_products"},"get","_","desorb","_","products"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_desorb_products() -> list[str]\n")),(0,i.kt)("p",null,"Obtain the desorbtion products of ice species"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"list[str]")," - The desorption products")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.set_freeze_products"}),(0,i.kt)("h4",{id:"set_freeze_products"},"set","_","freeze","_","products"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_freeze_products(product_list: list[str], freeze_alpha: float) -> None\n")),(0,i.kt)("p",null,"Add the freeze products of the species, one species can have several freeze products."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"product_list")," ",(0,i.kt)("em",{parentName:"p"},"list","[str]")," - The list of freeze out products")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"freeze_alpha")," ",(0,i.kt)("em",{parentName:"p"},"float")," - The freeze out ratio."),(0,i.kt)("p",{parentName:"li"},"It is called alpha, since it is derived from the alpha column in the UCLCHEM reaction format:\n",(0,i.kt)("a",{parentName:"p",href:"https://github.com/uclchem/UCLCHEM/blob/08d37f8c3063f8ff8a9a7aa16d9eff0ed4f99538/Makerates/src/network.py#L160"},"https://github.com/uclchem/UCLCHEM/blob/08d37f8c3063f8ff8a9a7aa16d9eff0ed4f99538/Makerates/src/network.py#L160")))),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.get_freeze_products"}),(0,i.kt)("h4",{id:"get_freeze_products"},"get","_","freeze","_","products"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_freeze_products() -> dict[list[str], float]\n")),(0,i.kt)("p",null,"Obtain the product to which the species freeze out"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," dict","[str, float]",": Reactions and their respective freeze out ratios."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Yields"),":"),(0,i.kt)("p",null," Iterator[dict","[str, float]","]: Iterator that returns all of the freeze out reactions with ratios"),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.get_freeze_products_list"}),(0,i.kt)("h4",{id:"get_freeze_products_list"},"get","_","freeze","_","products","_","list"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_freeze_products_list() -> list[list[str]]\n")),(0,i.kt)("p",null,"Returns all the freeze products without their ratios"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"list[list[str]]")," - List of freeze products")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.get_freeze_alpha"}),(0,i.kt)("h4",{id:"get_freeze_alpha"},"get","_","freeze","_","alpha"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_freeze_alpha(product_list: list[str]) -> float\n")),(0,i.kt)("p",null,"Obtain the freeze out ratio of a species for a certain reaction"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"product_list")," ",(0,i.kt)("em",{parentName:"li"},"list","[str]")," - For a specific reaction, get the freezeout ratio")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"float")," - The freezeout ratio")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.is_grain_species"}),(0,i.kt)("h4",{id:"is_grain_species"},"is","_","grain","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def is_grain_species() -> bool\n")),(0,i.kt)("p",null,"Return whether the species is a species on the grain"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - True if it is a grain species.")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.is_surface_species"}),(0,i.kt)("h4",{id:"is_surface_species"},"is","_","surface","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def is_surface_species() -> bool\n")),(0,i.kt)("p",null,"Checks if the species is on the surface"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - True if a surface species")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.is_bulk_species"}),(0,i.kt)("h4",{id:"is_bulk_species"},"is","_","bulk","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def is_bulk_species() -> bool\n")),(0,i.kt)("p",null,"Checks if the species is in the bulk"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - True if a bulk species")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.is_ion"}),(0,i.kt)("h4",{id:"is_ion"},"is","_","ion"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def is_ion() -> bool\n")),(0,i.kt)("p",null,"Checks if the species is ionized, either postively or negatively."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - True if it is an ionized")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.add_default_freeze"}),(0,i.kt)("h4",{id:"add_default_freeze"},"add","_","default","_","freeze"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def add_default_freeze() -> None\n")),(0,i.kt)("p",null,"Adds a defalt freezeout, which is freezing out to the species itself, but with no ionization."),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.find_constituents"}),(0,i.kt)("h4",{id:"find_constituents"},"find","_","constituents"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def find_constituents()\n")),(0,i.kt)("p",null,"Loop through the species' name and work out what its consituent\natoms are. Then calculate mass and alert user if it doesn't match\ninput mass."),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.get_n_atoms"}),(0,i.kt)("h4",{id:"get_n_atoms"},"get","_","n","_","atoms"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_n_atoms() -> int\n")),(0,i.kt)("p",null,"Obtain the number of atoms in the molecule"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"int")," - The number of atoms")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.set_n_atoms"}),(0,i.kt)("h4",{id:"set_n_atoms"},"set","_","n","_","atoms"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_n_atoms(new_n_atoms: int) -> None\n")),(0,i.kt)("p",null,"Set the number of atoms"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"new_n_atoms")," ",(0,i.kt)("em",{parentName:"li"},"int")," - The new number of atoms")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.__eq__"}),(0,i.kt)("h4",{id:"__eq__"},"_","_","eq","_","_"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def __eq__(other)\n")),(0,i.kt)("p",null,"Check for equality based on either a string or another Species instance."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"other")," ",(0,i.kt)("em",{parentName:"li"},"str, Species")," - Another species")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Raises"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"NotImplementedError")," - We can only compare between species or strings of species.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - True if two species are identical.")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.__lt__"}),(0,i.kt)("h4",{id:"__lt__"},"_","_","lt","_","_"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def __lt__(other) -> bool\n")),(0,i.kt)("p",null,"Compare the mass of the species"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"other")," ",(0,i.kt)("em",{parentName:"li"},"Species")," - Another species instance")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - True if less than the other species")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.__gt__"}),(0,i.kt)("h4",{id:"__gt__"},"_","_","gt","_","_"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def __gt__(other) -> bool\n")),(0,i.kt)("p",null,"Compare the mass of the species"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"other")," ",(0,i.kt)("em",{parentName:"li"},"Species")," - Another species instance")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - True if larger than than the other species")),(0,i.kt)("a",{id:"uclchem.makerates"}),(0,i.kt)("h1",{id:"uclchemmakerates"},"uclchem.makerates"),(0,i.kt)("a",{id:"uclchem.makerates.makerates"}),(0,i.kt)("h1",{id:"uclchemmakeratesmakerates"},"uclchem.makerates.makerates"),(0,i.kt)("a",{id:"uclchem.makerates.makerates.run_makerates"}),(0,i.kt)("h4",{id:"run_makerates"},"run","_","makerates"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},'def run_makerates(configuration_file: str = "user_settings.yaml",\n write_files: bool = True) -> Network\n')),(0,i.kt)("p",null,"The main run wrapper for makerates, it loads a configuration, parses it in Network\nand then returns the Network. It by default writes to the uclchem fortran directory, but\nthis can be skipped."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"configuration_file")," ",(0,i.kt)("em",{parentName:"li"},"str, optional"),' - A UCLCHEM Makerates configuration file. Defaults to "user_settings.yaml".'),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"write_files")," ",(0,i.kt)("em",{parentName:"li"},"bool, optional")," - Whether to write the fortran files to the src/fortran_src. Defaults to True.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Raises"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"KeyError")," - The configuration cannot be found")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Network")," - A chemical network instance.")),(0,i.kt)("a",{id:"uclchem.makerates.makerates.get_network"}),(0,i.kt)("h4",{id:"get_network"},"get","_","network"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_network(path_to_input_file: Union[str, bytes, os.PathLike] = None,\n path_to_species_file: Union[str, bytes, os.PathLike] = None,\n path_to_reaction_file: Union[str, bytes, os.PathLike] = None,\n verbosity=None)\n")),(0,i.kt)("p",null,"In memory equivalent of Makerates, can either be used on the original input files\nfor makerates, or on the output files that makerates generates. So either specify:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"path_to_input_file ")," exclusive OR (",(0,i.kt)("inlineCode",{parentName:"p"},"path_to_species_file")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"path_to_reaction_file"),")"),(0,i.kt)("p",null,"The latter scenario allows you to reload a reaction network from a network already written by Makerates."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"path_to_input_file")," ",(0,i.kt)("em",{parentName:"li"},"Union","[str, bytes, os.PathLike]",", optional")," - Path to input file. Defaults to None."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"path_to_species_file")," ",(0,i.kt)("em",{parentName:"li"},"Union","[str, bytes, os.PathLike]",", optional")," - Path to a species.csv in/from the src directory. Defaults to None."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"path_to_reaction_file")," ",(0,i.kt)("em",{parentName:"li"},"Union","[str, bytes, os.PathLike]",", optional")," - Path to a reactions.csv in/from the src directory. Defaults to None."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"verbosity")," ",(0,i.kt)("em",{parentName:"li"},"LEVEL, optional")," - The verbosity level as specified in logging. Defaults to None.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Raises"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"ValueError")," - You cannot specify both an input configuration and species+reaction.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Network")," - A chemical reaction network.")),(0,i.kt)("a",{id:"uclchem.makerates.network"}),(0,i.kt)("h1",{id:"uclchemmakeratesnetwork"},"uclchem.makerates.network"),(0,i.kt)("p",null,"This python file contains all functions for de-duplicating species and reaction lists,\nchecking for common errors, and automatic addition of reactions such as freeze out,\ndesorption and bulk reactions for three phase models."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network"}),(0,i.kt)("h2",{id:"network-objects"},"Network Objects"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"class Network()\n")),(0,i.kt)("p",null,"The network class stores all the information about reaction network."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.__init__"}),(0,i.kt)("h4",{id:"__init__-1"},"_","_","init","_","_"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def __init__(species: list[Species],\n reactions: list[Reaction],\n three_phase: bool = False,\n user_defined_bulk: list = [])\n")),(0,i.kt)("p",null,"A class to store network information such as indices of important reactions."),(0,i.kt)("p",null,"The class fully utilizes getters and setters, which can be used to add/remove\nreactions and the species involved. Important is that you do not directly edit\nthe internal dictionaries that store the species and reactions, unless you\nknow what you are doing. The network by default checks for duplicates in species\nand identical reactions that overlap in temperature ranges, potentially causing\nproblems."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species")," ",(0,i.kt)("em",{parentName:"li"},"list","[Species]")," - A list of chemical species that are added to the network"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reactions")," ",(0,i.kt)("em",{parentName:"li"},"list","[Reaction]")," - A list of chemical reactions that are added to the network"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"three_phase")," ",(0,i.kt)("em",{parentName:"li"},"bool, optional")," - Whether to use a three phase model (gas, surface, bulk). Defaults to False."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"user_defined_bulk")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - List of user defined bulk. Defaults to [].")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.find_similar_reactions"}),(0,i.kt)("h4",{id:"find_similar_reactions"},"find","_","similar","_","reactions"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def find_similar_reactions(reaction: Reaction) -> dict[int, Reaction]\n")),(0,i.kt)("p",null,"Reactions are similar if the reaction has the same reactants and products,\nfind all reactions that are similar, returning their index and the reaction itself."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction")," ",(0,i.kt)("em",{parentName:"li"},"Reaction")," - Reaction with possible identical (but for temperature range) reactions in the network")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," dict","[int, Reaction]",": A dict with the identical reactions."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.remove_reaction_by_index"}),(0,i.kt)("h4",{id:"remove_reaction_by_index"},"remove","_","reaction","_","by","_","index"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def remove_reaction_by_index(reaction_idx: int) -> None\n")),(0,i.kt)("p",null,"Remove a reaction by its index in the internal _reactions_dict, this is the only way\nto remove reactions that are defined piecewise across temperature ranges."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction_idx")," ",(0,i.kt)("em",{parentName:"li"},"int")," - Index of the reaction to remove")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.remove_reaction"}),(0,i.kt)("h4",{id:"remove_reaction"},"remove","_","reaction"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def remove_reaction(reaction: Reaction) -> None\n")),(0,i.kt)("p",null,"Remove the reaction by giving the object itself, this only works if the reaction is\nnot piecewise defined across the temperature ranges."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction")," ",(0,i.kt)("em",{parentName:"li"},"Reaction")," - The reaction you wish to delete.")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.get_reaction"}),(0,i.kt)("h4",{id:"get_reaction"},"get","_","reaction"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_reaction(reaction_idx: int) -> Reaction\n")),(0,i.kt)("p",null,"Obtain a reaction from the reaction set given an index of the internal _reactions_dict."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction_idx")," ",(0,i.kt)("em",{parentName:"li"},"int")," - The reaction index")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Reaction")," - the desired reaction")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.set_reaction"}),(0,i.kt)("h4",{id:"set_reaction"},"set","_","reaction"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_reaction(reaction_idx: int, reaction: Reaction) -> None\n")),(0,i.kt)("p",null,"This setter explicitely sets the reaction for a certain index."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction_idx")," ",(0,i.kt)("em",{parentName:"li"},"int")," - The index to be written to"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction")," ",(0,i.kt)("em",{parentName:"li"},"Reaction")," - The reaction to be added to the index.")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.get_reaction_dict"}),(0,i.kt)("h4",{id:"get_reaction_dict"},"get","_","reaction","_","dict"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_reaction_dict() -> dict[int, Reaction]\n")),(0,i.kt)("p",null,"Returns the whole internal reaction dictionary."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," dict","[int, Reaction]",": A copy of the internal reactions dictionary."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.set_reaction_dict"}),(0,i.kt)("h4",{id:"set_reaction_dict"},"set","_","reaction","_","dict"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_reaction_dict(new_dict: dict[int, Reaction]) -> None\n")),(0,i.kt)("p",null,"Override the reactions dictionary with a new dictionar."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"new_dict")," ",(0,i.kt)("em",{parentName:"li"},"dict","[int, Reaction]")," - The new reactions_dictionary.")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.get_reaction_list"}),(0,i.kt)("h4",{id:"get_reaction_list"},"get","_","reaction","_","list"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_reaction_list() -> list[Reaction]\n")),(0,i.kt)("p",null,"Obtain all the reactions in the Network."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"list[Reaction]")," - A list with all the reaction objects")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.sort_reactions"}),(0,i.kt)("h4",{id:"sort_reactions"},"sort","_","reactions"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def sort_reactions() -> None\n")),(0,i.kt)("p",null,"Sort the reaction dictionary by reaction type first and by the first reactant second."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.add_species"}),(0,i.kt)("h4",{id:"add_species"},"add","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def add_species(species: Union[Union[Species, str], list[Union[Species,\n str]]])\n")),(0,i.kt)("p",null,"Add species to the network, given a (list of) species. If it is a list of strings,\nit tries to instantiate a species class with it. It also checks for duplicate entries and\nfilters out attempts to add reaction types to the species."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species")," ",(0,i.kt)("em",{parentName:"li"},"Union[Union","[Species, str]",", list[Union","[Species, str]","]]")," - A (list of) species or strings.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Raises"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"ValueError")," - If we cannot parse the (list of) reactions"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"ValueError")," - If an ice specie with binding energy of zero is added.")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.remove_species"}),(0,i.kt)("h4",{id:"remove_species"},"remove","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def remove_species(specie_name: str) -> None\n")),(0,i.kt)("p",null,"Remove a specie from the network"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"specie_name")," ",(0,i.kt)("em",{parentName:"li"},"str")," - Species to remove")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.get_species_list"}),(0,i.kt)("h4",{id:"get_species_list"},"get","_","species","_","list"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_species_list() -> list[Species]\n")),(0,i.kt)("p",null,"Obtain a list with all the species in the network"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"list[Species]")," - A list of all the species in the reaction network")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.get_species_dict"}),(0,i.kt)("h4",{id:"get_species_dict"},"get","_","species","_","dict"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_species_dict() -> dict[str, Species]\n")),(0,i.kt)("p",null,"Get the internal dictionary that stores all the species, it consists\nof all species' names as key, with the species object as value."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," dict","[str, Species]",": A dictionary with the species"),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.get_specie"}),(0,i.kt)("h4",{id:"get_specie"},"get","_","specie"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_specie(specie_name: str) -> Species\n")),(0,i.kt)("p",null,"Get the species of the reaction network (from the internal dictionary)"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"specie_name")," ",(0,i.kt)("em",{parentName:"li"},"str")," - the name of the species as a string")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Species")," - The species object")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.set_specie"}),(0,i.kt)("h4",{id:"set_specie"},"set","_","specie"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_specie(species_name: str, species: Species) -> None\n")),(0,i.kt)("p",null,"Set the species of the reaction network in the internal dictionary"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_name")," ",(0,i.kt)("em",{parentName:"li"},"str")," - The name of the species as string"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species")," ",(0,i.kt)("em",{parentName:"li"},"Species")," - The Species object to set")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.set_species_dict"}),(0,i.kt)("h4",{id:"set_species_dict"},"set","_","species","_","dict"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_species_dict(new_species_dict: dict[str, Species]) -> None\n")),(0,i.kt)("p",null,"Set the internal species dict"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"new_species_dict")," ",(0,i.kt)("em",{parentName:"li"},"dict","[str, Species]")," - The new dictionary to set")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.sort_species"}),(0,i.kt)("h4",{id:"sort_species"},"sort","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def sort_species() -> None\n")),(0,i.kt)("p",null,"Sort the species based on their mass in ascending order. We always make sure the Electron is last."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.check_network"}),(0,i.kt)("h4",{id:"check_network"},"check","_","network"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def check_network() -> None\n")),(0,i.kt)("p",null,"Run through the list of reactions and check for obvious errors such\nas duplicate reactions, multiple freeze out routes (to warn, not necessarily\nan error), etc."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.check_and_filter_species"}),(0,i.kt)("h4",{id:"check_and_filter_species"},"check","_","and","_","filter","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def check_and_filter_species() -> None\n")),(0,i.kt)("p",null,"Check every speces in network appears in at least one reaction.\nRemove any that do not and alert user."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.add_bulk_species"}),(0,i.kt)("h4",{id:"add_bulk_species"},"add","_","bulk","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def add_bulk_species() -> None\n")),(0,i.kt)("p",null,"For three phase models, MakeRates will produce the version of the species in the bulk\nso that the user doesn't have to endlessly relist the same species"),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.check_freeze_and_desorbs"}),(0,i.kt)("h4",{id:"check_freeze_and_desorbs"},"check","_","freeze","_","and","_","desorbs"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def check_freeze_and_desorbs() -> None\n")),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"add_freeze_reactions()")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"add_desorb_reactions()")," automatically generate\nall desorption and freeze out reactions. However, user may want to change a species on freeze out\neg C+ becomes ",(0,i.kt)("inlineCode",{parentName:"p"},"C")," rather than ",(0,i.kt)("inlineCode",{parentName:"p"},"C"),"+. This function checks for that and updates species so they'll\nfreeze or desorb correctly when reactions are generated."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.add_freeze_reactions"}),(0,i.kt)("h4",{id:"add_freeze_reactions"},"add","_","freeze","_","reactions"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def add_freeze_reactions() -> None\n")),(0,i.kt)("p",null,"Save the user effort by automatically generating freeze out reactions"),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.add_desorb_reactions"}),(0,i.kt)("h4",{id:"add_desorb_reactions"},"add","_","desorb","_","reactions"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def add_desorb_reactions() -> None\n")),(0,i.kt)("p",null,"Save the user effort by automatically generating desorption reactions"),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.add_chemdes_reactions"}),(0,i.kt)("h4",{id:"add_chemdes_reactions"},"add","_","chemdes","_","reactions"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def add_chemdes_reactions() -> None\n")),(0,i.kt)("p",null,"We have the user list all Langmuir-Hinshelwood and Eley-Rideal\nreactions once. Then we duplicate so that the reaction branches\nwith products on grain and products desorbing."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.check_for_excited_species"}),(0,i.kt)("h4",{id:"check_for_excited_species"},"check","_","for","_","excited","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def check_for_excited_species() -> bool\n")),(0,i.kt)("p",null,"Check if there are any exicted species in the network, true if there are any."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.add_excited_surface_reactions"}),(0,i.kt)("h4",{id:"add_excited_surface_reactions"},"add","_","excited","_","surface","_","reactions"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def add_excited_surface_reactions() -> None\n")),(0,i.kt)("p",null,"All excited species will relax to the ground state if they do not react\nthe vibrational frequency of the species is used as a pseudo approximation of the rate coefficient\nWe assume all grain reactions have an excited variant. For example:\n",(0,i.kt)("inlineCode",{parentName:"p"},"A"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"B")," LH ",(0,i.kt)("inlineCode",{parentName:"p"},"C")," will have the variants:\n",(0,i.kt)("inlineCode",{parentName:"p"},"A"),(0,i.kt)("em",{parentName:"p"},", ",(0,i.kt)("inlineCode",{parentName:"em"},"B")," EXSOLID ",(0,i.kt)("inlineCode",{parentName:"em"},"C")," and ",(0,i.kt)("inlineCode",{parentName:"em"},"A"),", ",(0,i.kt)("inlineCode",{parentName:"em"},"B"))," EXSOLID ",(0,i.kt)("inlineCode",{parentName:"p"},"C"),"\nIf only one of the reactants in the base reaction has an excited counterpart then\nonly one excited version of that reaction is created."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.add_bulk_reactions"}),(0,i.kt)("h4",{id:"add_bulk_reactions"},"add","_","bulk","_","reactions"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def add_bulk_reactions() -> None\n")),(0,i.kt)("p",null,"We assume any reaction that happens on the surface of grains can also happen\nin the bulk (just more slowly due to binding energy). The user therefore only\nlists surface reactions in their input reaction file and we duplicate here."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.freeze_checks"}),(0,i.kt)("h4",{id:"freeze_checks"},"freeze","_","checks"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def freeze_checks() -> None\n")),(0,i.kt)("p",null,"Check that every species freezes out and alert the user if a\nspecies freezes out via mutiple routes. This isn't necessarily an\nerror so best just print."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.duplicate_checks"}),(0,i.kt)("h4",{id:"duplicate_checks"},"duplicate","_","checks"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def duplicate_checks() -> None\n")),(0,i.kt)("p",null,"Check reaction network to make sure no reaction appears twice unless\nthey have different temperature ranges."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.index_important_reactions"}),(0,i.kt)("h4",{id:"index_important_reactions"},"index","_","important","_","reactions"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def index_important_reactions() -> None\n")),(0,i.kt)("p",null,"We have a whole bunch of important reactions and we want to store\ntheir indices. We find them all here."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.index_important_species"}),(0,i.kt)("h4",{id:"index_important_species"},"index","_","important","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def index_important_species() -> None\n")),(0,i.kt)("p",null,"Obtain the indices for all the important reactions."),(0,i.kt)("a",{id:"uclchem.makerates.network.LoadedNetwork"}),(0,i.kt)("h2",{id:"loadednetwork-objects"},"LoadedNetwork Objects"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"class LoadedNetwork(Network)\n")),(0,i.kt)("p",null,"Network version that skips all steps and just loads two lists. This is another\nhere be dragons version, use this with exceeding caution as no checks are performed for you."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Network")," ",(0,i.kt)("strong",{parentName:"li"},"type")," - ",(0,i.kt)("em",{parentName:"li"},"description"))),(0,i.kt)("a",{id:"uclchem.makerates.network.LoadedNetwork.__init__"}),(0,i.kt)("h4",{id:"__init__-2"},"_","_","init","_","_"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def __init__(species: list[Species], reactions: list[Reaction]) -> None\n")),(0,i.kt)("p",null,"A loader of networks without any checks."),(0,i.kt)("p",null,"Here be dragons."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species")," ",(0,i.kt)("em",{parentName:"li"},"list","[Species]")," - A list of species objects"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reactions")," ",(0,i.kt)("em",{parentName:"li"},"list","[Reaction]")," - A list of reaction objects.")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions"}),(0,i.kt)("h1",{id:"uclchemmakeratesio_functions"},"uclchem.makerates.io","_","functions"),(0,i.kt)("p",null,"Functions to read in the species and reaction files and write output files"),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.read_species_file"}),(0,i.kt)("h4",{id:"read_species_file"},"read","_","species","_","file"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def read_species_file(file_name) -> list[Species]\n")),(0,i.kt)("p",null,"Reads in a Makerates species file"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"fileName")," ",(0,i.kt)("em",{parentName:"li"},"str")," - path to file containing the species list")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"list")," - List of Species objects")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.read_reaction_file"}),(0,i.kt)("h4",{id:"read_reaction_file"},"read","_","reaction","_","file"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def read_reaction_file(file_name: str, species_list: list[Species],\n ftype: str) -> tuple[list[Reaction], list[Reaction]]\n")),(0,i.kt)("p",null,"Reads in a reaction file of any kind (user, UMIST, KIDA)\nproduces a list of reactions for the network, filtered by species_list"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"file_name")," ",(0,i.kt)("em",{parentName:"li"},"str")," - A file name for the reaction file to read."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_list")," ",(0,i.kt)("em",{parentName:"li"},"list","[Species]")," - A list of chemical species to be used in the reading."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"ftype")," ",(0,i.kt)("em",{parentName:"li"},"str")," - 'UMIST','UCL', or 'KIDA' to describe format of file_name")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"list,list")," - Lists of kept and dropped reactions.")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.check_reaction"}),(0,i.kt)("h4",{id:"check_reaction"},"check","_","reaction"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def check_reaction(reaction_row, keep_list) -> bool\n")),(0,i.kt)("p",null,"Checks a row parsed from a reaction file and checks it only contains acceptable things.\nIt checks if all species in the reaction are present, and adds the temperature range is none is specified."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction_row")," ",(0,i.kt)("em",{parentName:"li"},"list")," - List parsed from a reaction file and formatted to be able to called Reaction(reaction_row)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"keep_list")," ",(0,i.kt)("em",{parentName:"li"},"list")," - list of elements that are acceptable in the reactant or product bits of row")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - Whether the row contains acceptable entries.")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.kida_parser"}),(0,i.kt)("h4",{id:"kida_parser"},"kida","_","parser"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def kida_parser(kida_file)\n")),(0,i.kt)("p",null,"KIDA used a fixed format file so we read each line in the chunks they specify\nand use python built in classes to convert to the necessary types.\nNOTE KIDA defines some of the same reaction types to UMIST but with different names\nand coefficients. We fix that by converting them here."),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.output_drops"}),(0,i.kt)("h4",{id:"output_drops"},"output","_","drops"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def output_drops(dropped_reactions: list[Reaction],\n output_dir: str,\n write_files=True)\n")),(0,i.kt)("p",null,"Writes the reactions that are dropped to disk/logs"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"dropped_reactions")," ",(0,i.kt)("em",{parentName:"li"},"list","[Reaction]")," - The reactions that were dropped"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"output_dir")," ",(0,i.kt)("em",{parentName:"li"},"str")," - The directory that dropped_reactions.csv will be written to."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"write_files")," ",(0,i.kt)("em",{parentName:"li"},"bool, optional")," - Whether or not to write the file. Defaults to True.")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.write_outputs"}),(0,i.kt)("h4",{id:"write_outputs"},"write","_","outputs"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def write_outputs(network: Network, output_dir: str = None) -> None\n")),(0,i.kt)("p",null,"Write the ODE and Network fortran source files to the fortran source."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"network")," ",(0,i.kt)("em",{parentName:"li"},"network")," - The makerates Network class"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"output_dir")," ",(0,i.kt)("em",{parentName:"li"},"bool")," - The directory to write to.")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.write_species"}),(0,i.kt)("h4",{id:"write_species"},"write","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def write_species(file_name: str, species_list: list[Species]) -> None\n")),(0,i.kt)("p",null,"Write the human readable species file. Note UCLCHEM doesn't use this file."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"fileName")," ",(0,i.kt)("em",{parentName:"li"},"str")," - path to output file"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_list")," ",(0,i.kt)("em",{parentName:"li"},"list")," - List of species objects for network")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.write_reactions"}),(0,i.kt)("h4",{id:"write_reactions"},"write","_","reactions"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def write_reactions(fileName, reaction_list) -> None\n")),(0,i.kt)("p",null,"Write the human readable reaction file. Note UCLCHEM doesn't use this file."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"fileName")," ",(0,i.kt)("em",{parentName:"li"},"str")," - path to output file"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction_list")," ",(0,i.kt)("em",{parentName:"li"},"list")," - List of reaction objects for network")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.write_odes_f90"}),(0,i.kt)("h4",{id:"write_odes_f90"},"write","_","odes","_","f90"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def write_odes_f90(file_name, species_list, reaction_list,\n three_phase) -> None\n")),(0,i.kt)("p",null,"Write the ODEs in Modern Fortran. This is an actual code file."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"file_name")," ",(0,i.kt)("em",{parentName:"li"},"str")," - Path to file where code will be written"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_list")," ",(0,i.kt)("em",{parentName:"li"},"list")," - List of species describing network"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction_list")," ",(0,i.kt)("em",{parentName:"li"},"list")," - List of reactions describing network"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"three_phase")," ",(0,i.kt)("em",{parentName:"li"},"bool")," - Flag for whether this is a 3 phase network")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.write_jacobian"}),(0,i.kt)("h4",{id:"write_jacobian"},"write","_","jacobian"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def write_jacobian(file_name, species_list) -> None\n")),(0,i.kt)("p",null,"Write jacobian in Modern Fortran. This has never improved UCLCHEM's speed\nand so is not used in the code as it stands.\nCurrent only works for three phase model."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"file_name")," ",(0,i.kt)("em",{parentName:"li"},"str")," - Path to jacobian file"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_list")," ",(0,i.kt)("em",{parentName:"li"},"species_list")," - List of species AFTER being processed by build_ode_string")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.build_ode_string"}),(0,i.kt)("h4",{id:"build_ode_string"},"build","_","ode","_","string"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def build_ode_string(species_list, reaction_list, three_phase) -> str\n")),(0,i.kt)("p",null,"A long, complex function that does the messy work of creating the actual ODE\ncode to calculate the rate of change of each species. Test any change to this code\nthoroughly because ODE mistakes are very hard to spot."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_list")," ",(0,i.kt)("em",{parentName:"li"},"list")," - List of species in network"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction_list")," ",(0,i.kt)("em",{parentName:"li"},"list")," - List of reactions in network"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"three_phase")," ",(0,i.kt)("em",{parentName:"li"},"bool")," - Bool denoting if this is a three phase network")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"str")," - One long string containing the entire ODE fortran code.")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.species_ode_string"}),(0,i.kt)("h4",{id:"species_ode_string"},"species","_","ode","_","string"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def species_ode_string(n: int, species: Species) -> str\n")),(0,i.kt)("p",null,"Build the string of Fortran code for a species once it's loss and gains\nstrings have been produced."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"n")," ",(0,i.kt)("em",{parentName:"li"},"int")," - Index of species in python format"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species")," ",(0,i.kt)("em",{parentName:"li"},"Species")," - species object")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"str")," - the fortran code for the rate of change of the species")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.write_evap_lists"}),(0,i.kt)("h4",{id:"write_evap_lists"},"write","_","evap","_","lists"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def write_evap_lists(network_file, species_list: list[Species]) -> None\n")),(0,i.kt)("p",null,"Two phase networks mimic episodic thermal desorption seen in lab (see Viti et al. 2004)\nby desorbing fixed fractions of material at specific temperatures. Three phase networks just\nuse binding energy and that fact we set binding energies in bulk to water by default.\nThis function writes all necessary arrays to the network file so these processes work."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"network_file")," ",(0,i.kt)("em",{parentName:"li"},"file")," - Open file object to which the network code is being written"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_list")," ",(0,i.kt)("em",{parentName:"li"},"list","[Species]")," - List of species in network")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.truncate_line"}),(0,i.kt)("h4",{id:"truncate_line"},"truncate","_","line"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def truncate_line(input_string, lineLength=72) -> str\n")),(0,i.kt)("p",null,"Take a string and adds line endings at regular intervals\nkeeps us from overshooting fortran's line limits and, frankly,\nmakes for nicer ode.f90 even if human readability isn't very impotant"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"input_string")," ",(0,i.kt)("em",{parentName:"li"},"str")," - Line of code to be truncated"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"lineLength")," ",(0,i.kt)("em",{parentName:"li"},"int, optional")," - rough line length. Defaults to 72.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"str")," - Code string with line endings at regular intervals")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.write_network_file"}),(0,i.kt)("h4",{id:"write_network_file"},"write","_","network","_","file"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def write_network_file(file_name, network)\n")),(0,i.kt)("p",null,"Write the Fortran code file that contains all network information for UCLCHEM.\nThis includes lists of reactants, products, binding energies, formationEnthalpies\nand so on."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"file_name")," ",(0,i.kt)("em",{parentName:"li"},"str")," - The file name where the code will be written."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"network")," ",(0,i.kt)("em",{parentName:"li"},"Network")," - A Network object built from lists of species and reactions.")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.find_reactant"}),(0,i.kt)("h4",{id:"find_reactant"},"find","_","reactant"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def find_reactant(species_list: list[str], reactant: str) -> int\n")),(0,i.kt)("p",null,"Try to find a reactant in the species list"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_list")," ",(0,i.kt)("em",{parentName:"li"},"list","[str]")," - A list of species in the network"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reactant")," ",(0,i.kt)("em",{parentName:"li"},"str")," - The reactant to be indexed")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"int")," - The index of the reactant, if it is not found, 9999")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.get_desorption_freeze_partners"}),(0,i.kt)("h4",{id:"get_desorption_freeze_partners"},"get","_","desorption","_","freeze","_","partners"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_desorption_freeze_partners(reaction_list) -> list[Reaction]\n")),(0,i.kt)("p",null,"Every desorption has a corresponding freeze out eg desorption of ",(0,i.kt)("inlineCode",{parentName:"p"},"CO")," and freeze of CO.\nThis find the corresponding freeze out for every desorb so that when desorb>>freeze\nwe can turn off freeze out in UCLCHEM."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction_list")," ",(0,i.kt)("em",{parentName:"li"},"list")," - Reactions in network")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"list")," - list of indices of freeze out reactions matching order of desorptions.")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.array_to_string"}),(0,i.kt)("h4",{id:"array_to_string"},"array","_","to","_","string"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},'def array_to_string(name, array, type="int", parameter=True) -> str\n')),(0,i.kt)("p",null,"Write an array to fortran source code"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"name")," ",(0,i.kt)("em",{parentName:"li"},"str")," - Variable name of array in Fortran"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"array")," ",(0,i.kt)("em",{parentName:"li"},"iterable")," - List of values of array"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"type")," ",(0,i.kt)("em",{parentName:"li"},"str, optional"),' - The array\'s type. Must be one of "int","float", or "string".Defaults to "int".'),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"parameter")," ",(0,i.kt)("em",{parentName:"li"},"bool, optional")," - Whether the array is a Fortran PARAMETER (constant). Defaults to True.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Raises"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"ValueError"),' - Raises an error if type isn\'t "int","float", or "string"')),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"str")," - String containing the Fortran code to declare this array.")),(0,i.kt)("a",{id:"uclchem.makerates.reaction"}),(0,i.kt)("h1",{id:"uclchemmakeratesreaction"},"uclchem.makerates.reaction"),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction"}),(0,i.kt)("h2",{id:"reaction-objects"},"Reaction Objects"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"class Reaction()\n")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.get_reactants"}),(0,i.kt)("h4",{id:"get_reactants"},"get","_","reactants"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_reactants() -> list[str]\n")),(0,i.kt)("p",null,"Get the four reactants present in the reaction, padded with NAN for nonexistent"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"list[str]")," - The four reactants names")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.get_sorted_reactants"}),(0,i.kt)("h4",{id:"get_sorted_reactants"},"get","_","sorted","_","reactants"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_sorted_reactants() -> list[str]\n")),(0,i.kt)("p",null,"Get the four reactants present in the reaction, sorted for fast comparisons"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reactants")," ",(0,i.kt)("em",{parentName:"li"},"list","[str]")," - The four sorted reactant names")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.set_reactants"}),(0,i.kt)("h4",{id:"set_reactants"},"set","_","reactants"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_reactants(reactants: list[str]) -> None\n")),(0,i.kt)("p",null,"Set the four reactants present in the reaction, padded with NAN for nonexistent"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reactants")," ",(0,i.kt)("em",{parentName:"li"},"list","[str]")," - The four reactants names")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.get_products"}),(0,i.kt)("h4",{id:"get_products"},"get","_","products"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_products() -> list[str]\n")),(0,i.kt)("p",null,"Get the four products present in the reaction, padded with NAN for nonexistent"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reactants")," ",(0,i.kt)("em",{parentName:"li"},"list","[str]")," - The four products names")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.get_sorted_products"}),(0,i.kt)("h4",{id:"get_sorted_products"},"get","_","sorted","_","products"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_sorted_products() -> list[str]\n")),(0,i.kt)("p",null,"Get the four products present in the reaction, sorted for fast comparisons"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"products")," ",(0,i.kt)("em",{parentName:"li"},"list","[str]")," - The four sorted products names")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.set_products"}),(0,i.kt)("h4",{id:"set_products"},"set","_","products"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_products(products: list[str]) -> None\n")),(0,i.kt)("p",null,"Set the four products present in the reaction, padded with NAN for nonexistent"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"products")," ",(0,i.kt)("em",{parentName:"li"},"list","[str]")," - The four products names")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.get_alpha"}),(0,i.kt)("h4",{id:"get_alpha"},"get","_","alpha"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_alpha() -> float\n")),(0,i.kt)("p",null,"Get the alpha parameter from the Kooij-Arrhenius equation"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"float")," - the alpha parameter of the reaction")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.set_alpha"}),(0,i.kt)("h4",{id:"set_alpha"},"set","_","alpha"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_alpha(alpha: float) -> None\n")),(0,i.kt)("p",null,"Set the alpha parameter from the Kooij-Arrhenius equation"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"alpha")," ",(0,i.kt)("em",{parentName:"li"},"float")," - the alpha parameter of the reaction")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.get_beta"}),(0,i.kt)("h4",{id:"get_beta"},"get","_","beta"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_beta() -> float\n")),(0,i.kt)("p",null,"Get the beta parameter from the Kooij-Arrhenius equation"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"float")," - the beta parameter of the reaction")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.set_beta"}),(0,i.kt)("h4",{id:"set_beta"},"set","_","beta"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_beta(beta: float) -> None\n")),(0,i.kt)("p",null,"Set the beta parameter from the Kooij-Arrhenius equation"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"beta")," ",(0,i.kt)("em",{parentName:"li"},"float")," - the beta parameter of the reaction")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.set_gamma"}),(0,i.kt)("h4",{id:"set_gamma"},"set","_","gamma"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_gamma(gamma: float) -> None\n")),(0,i.kt)("p",null,"Set the gamma parameter from the Kooij-Arrhenius equation"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"gamma")," ",(0,i.kt)("em",{parentName:"li"},"float")," - the gamma parameter of the reaction")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.get_gamma"}),(0,i.kt)("h4",{id:"get_gamma"},"get","_","gamma"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_gamma() -> float\n")),(0,i.kt)("p",null,"Get the gamma parameter from the Kooij-Arrhenius equation"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"float")," - the gamma parameter of the reaction")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.set_templow"}),(0,i.kt)("h4",{id:"set_templow"},"set","_","templow"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_templow(templow: float) -> None\n")),(0,i.kt)("p",null,"Set the lower temperature boundary of the reaction in Kelvin"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"templow")," ",(0,i.kt)("em",{parentName:"li"},"float")," - the lower temperature boundary")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.get_templow"}),(0,i.kt)("h4",{id:"get_templow"},"get","_","templow"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_templow() -> float\n")),(0,i.kt)("p",null,"Get the lower temperature boundary of the reaction in Kelvin"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"float")," - the lower temperature boundary")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.set_temphigh"}),(0,i.kt)("h4",{id:"set_temphigh"},"set","_","temphigh"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_temphigh(temphigh: float) -> None\n")),(0,i.kt)("p",null,"Set the higher temperature boundary of the reaction in Kelvin"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"templow")," ",(0,i.kt)("em",{parentName:"li"},"float")," - the higher temperature boundary")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.get_temphigh"}),(0,i.kt)("h4",{id:"get_temphigh"},"get","_","temphigh"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_temphigh() -> float\n")),(0,i.kt)("p",null,"Get the higher temperature boundary of the reaction in Kelvin"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"float")," - the higher temperature boundary")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.NANCheck"}),(0,i.kt)("h4",{id:"nancheck"},"NANCheck"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def NANCheck(a)\n")),(0,i.kt)("p",null,"Convert any Falsy statement to a NAN string"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"a")," - thing to check for falsiness")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - input a if truthy, otherwise NAN")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.get_reaction_type"}),(0,i.kt)("h4",{id:"get_reaction_type"},"get","_","reaction","_","type"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_reaction_type() -> str\n")),(0,i.kt)("p",null,"Get the type of a reaction from the reactants\nFirst check the third reactant for a reaction type, then the second. If there are none\nin there, it will be regarded as a two body reaction."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," str:"),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.convert_to_bulk"}),(0,i.kt)("h4",{id:"convert_to_bulk"},"convert","_","to","_","bulk"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def convert_to_bulk() -> None\n")),(0,i.kt)("p",null,"Convert the surface species to bulk species in place for this reaction."),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.__eq__"}),(0,i.kt)("h4",{id:"__eq__-1"},"_","_","eq","_","_"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def __eq__(other) -> bool\n")),(0,i.kt)("p",null,"Check for equality against another reaction based on the products and reactants.\nNote that it does not check for the temperature ranges that the reactions might have!\nThe Reaction.check_temperature_collision can be used for this purpose."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"other")," - Another reaction set.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - equality")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.check_temperature_collision"}),(0,i.kt)("h4",{id:"check_temperature_collision"},"check","_","temperature","_","collision"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def check_temperature_collision(other) -> bool\n")),(0,i.kt)("p",null,"Check if two reactions have overlapping temperature ranges, returning True means there is a collision."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"other")," - Another reaction")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Raises"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"NotImplementedError")," - Currently we can only compare against instantiated Reaction objects.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - Whether there is a collision (True), or not (False)")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.changes_surface_count"}),(0,i.kt)("h4",{id:"changes_surface_count"},"changes","_","surface","_","count"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def changes_surface_count()\n")),(0,i.kt)("p",null,"This checks whether a grain reaction changes number of particles on the surface\n2 reactants to 2 products won't but two reactants combining to one will."),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.changes_total_mantle"}),(0,i.kt)("h4",{id:"changes_total_mantle"},"changes","_","total","_","mantle"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def changes_total_mantle()\n")),(0,i.kt)("p",null,"Check if the total grains on the mantle are changed by the reaction."),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.generate_ode_bit"}),(0,i.kt)("h4",{id:"generate_ode_bit"},"generate","_","ode","_","bit"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def generate_ode_bit(i: int, species_names: list, three_phase: bool)\n")),(0,i.kt)("p",null,"Every reaction contributes a fixed rate of change to whatever species it\naffects. We create the string of fortran code describing that change here."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"i")," ",(0,i.kt)("em",{parentName:"li"},"int")," - index of reaction in network in python format (counting from 0)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_names")," ",(0,i.kt)("em",{parentName:"li"},"list")," - List of species names so we can find index of reactants in species list"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"three_phase")," ",(0,i.kt)("em",{parentName:"li"},"bool")," - Bool indicating whether this is three phase network")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/08daa2f3.56d8bec2.js b/assets/js/08daa2f3.56d8bec2.js new file mode 100644 index 00000000..32f8fae7 --- /dev/null +++ b/assets/js/08daa2f3.56d8bec2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7942],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>u});var n=a(7294);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function r(e){for(var t=1;t=0||(l[a]=e[a]);return l}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(l[a]=e[a])}return l}var o=n.createContext({}),p=function(e){var t=n.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):r(r({},t),e)),a},c=function(e){var t=p(e.components);return n.createElement(o.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},k=n.forwardRef((function(e,t){var a=e.components,l=e.mdxType,i=e.originalType,o=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),k=p(a),u=l,d=k["".concat(o,".").concat(u)]||k[u]||m[u]||i;return a?n.createElement(d,r(r({ref:t},c),{},{components:a})):n.createElement(d,r({ref:t},c))}));function u(e,t){var a=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var i=a.length,r=new Array(i);r[0]=k;var s={};for(var o in t)hasOwnProperty.call(t,o)&&(s[o]=t[o]);s.originalType=e,s.mdxType="string"==typeof e?e:l,r[1]=s;for(var p=2;p{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>s,metadata:()=>p,toc:()=>m});var n=a(7462),l=a(3366),i=(a(7294),a(3905)),r=["components"],s={id:"pythonapi",title:"Python Reference"},o="Python API",p={unversionedId:"pythonapi",id:"version-v3.2.0/pythonapi",title:"Python Reference",description:"* uclchem",source:"@site/versioned_docs/version-v3.2.0/start-pythonapi.md",sourceDirName:".",slug:"/pythonapi",permalink:"/docs/pythonapi",draft:!1,tags:[],version:"v3.2.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"pythonapi",title:"Python Reference"},sidebar:"docs",previous:{title:"Model Parameters",permalink:"/docs/parameters"},next:{title:"Tutorials",permalink:"/docs/category/tutorials"}},c={},m=[{value:"read_output_file",id:"read_output_file",level:4},{value:"create_abundance_plot",id:"create_abundance_plot",level:4},{value:"plot_species",id:"plot_species",level:4},{value:"analysis",id:"analysis",level:4},{value:"total_element_abundance",id:"total_element_abundance",level:4},{value:"check_element_conservation",id:"check_element_conservation",level:4},{value:"cloud",id:"cloud",level:4},{value:"collapse",id:"collapse",level:4},{value:"hot_core",id:"hot_core",level:4},{value:"cshock",id:"cshock",level:4},{value:"jshock",id:"jshock",level:4},{value:"cshock_dissipation_time",id:"cshock_dissipation_time",level:4},{value:"check_error",id:"check_error",level:4},{value:"get_species_table",id:"get_species_table",level:4},{value:"get_reaction_table",id:"get_reaction_table",level:4},{value:"test_ode_conservation",id:"test_ode_conservation",level:4},{value:"is_number",id:"is_number",level:4},{value:"Species Objects",id:"species-objects",level:2},{value:"__init__",id:"__init__",level:4},{value:"get_name",id:"get_name",level:4},{value:"get_mass",id:"get_mass",level:4},{value:"set_desorb_products",id:"set_desorb_products",level:4},{value:"get_desorb_products",id:"get_desorb_products",level:4},{value:"set_freeze_products",id:"set_freeze_products",level:4},{value:"get_freeze_products",id:"get_freeze_products",level:4},{value:"get_freeze_products_list",id:"get_freeze_products_list",level:4},{value:"get_freeze_alpha",id:"get_freeze_alpha",level:4},{value:"is_grain_species",id:"is_grain_species",level:4},{value:"is_surface_species",id:"is_surface_species",level:4},{value:"is_bulk_species",id:"is_bulk_species",level:4},{value:"is_ion",id:"is_ion",level:4},{value:"add_default_freeze",id:"add_default_freeze",level:4},{value:"find_constituents",id:"find_constituents",level:4},{value:"get_n_atoms",id:"get_n_atoms",level:4},{value:"set_n_atoms",id:"set_n_atoms",level:4},{value:"__eq__",id:"__eq__",level:4},{value:"__lt__",id:"__lt__",level:4},{value:"__gt__",id:"__gt__",level:4},{value:"run_makerates",id:"run_makerates",level:4},{value:"get_network",id:"get_network",level:4},{value:"Network Objects",id:"network-objects",level:2},{value:"__init__",id:"__init__-1",level:4},{value:"find_similar_reactions",id:"find_similar_reactions",level:4},{value:"remove_reaction_by_index",id:"remove_reaction_by_index",level:4},{value:"remove_reaction",id:"remove_reaction",level:4},{value:"get_reaction",id:"get_reaction",level:4},{value:"set_reaction",id:"set_reaction",level:4},{value:"get_reaction_dict",id:"get_reaction_dict",level:4},{value:"set_reaction_dict",id:"set_reaction_dict",level:4},{value:"get_reaction_list",id:"get_reaction_list",level:4},{value:"sort_reactions",id:"sort_reactions",level:4},{value:"add_species",id:"add_species",level:4},{value:"remove_species",id:"remove_species",level:4},{value:"get_species_list",id:"get_species_list",level:4},{value:"get_species_dict",id:"get_species_dict",level:4},{value:"get_specie",id:"get_specie",level:4},{value:"set_specie",id:"set_specie",level:4},{value:"set_species_dict",id:"set_species_dict",level:4},{value:"sort_species",id:"sort_species",level:4},{value:"check_network",id:"check_network",level:4},{value:"check_and_filter_species",id:"check_and_filter_species",level:4},{value:"add_bulk_species",id:"add_bulk_species",level:4},{value:"check_freeze_and_desorbs",id:"check_freeze_and_desorbs",level:4},{value:"add_freeze_reactions",id:"add_freeze_reactions",level:4},{value:"add_desorb_reactions",id:"add_desorb_reactions",level:4},{value:"add_chemdes_reactions",id:"add_chemdes_reactions",level:4},{value:"check_for_excited_species",id:"check_for_excited_species",level:4},{value:"add_excited_surface_reactions",id:"add_excited_surface_reactions",level:4},{value:"add_bulk_reactions",id:"add_bulk_reactions",level:4},{value:"freeze_checks",id:"freeze_checks",level:4},{value:"duplicate_checks",id:"duplicate_checks",level:4},{value:"index_important_reactions",id:"index_important_reactions",level:4},{value:"index_important_species",id:"index_important_species",level:4},{value:"LoadedNetwork Objects",id:"loadednetwork-objects",level:2},{value:"__init__",id:"__init__-2",level:4},{value:"read_species_file",id:"read_species_file",level:4},{value:"read_reaction_file",id:"read_reaction_file",level:4},{value:"check_reaction",id:"check_reaction",level:4},{value:"kida_parser",id:"kida_parser",level:4},{value:"output_drops",id:"output_drops",level:4},{value:"write_outputs",id:"write_outputs",level:4},{value:"write_species",id:"write_species",level:4},{value:"write_reactions",id:"write_reactions",level:4},{value:"write_odes_f90",id:"write_odes_f90",level:4},{value:"write_jacobian",id:"write_jacobian",level:4},{value:"build_ode_string",id:"build_ode_string",level:4},{value:"species_ode_string",id:"species_ode_string",level:4},{value:"write_evap_lists",id:"write_evap_lists",level:4},{value:"truncate_line",id:"truncate_line",level:4},{value:"write_network_file",id:"write_network_file",level:4},{value:"find_reactant",id:"find_reactant",level:4},{value:"get_desorption_freeze_partners",id:"get_desorption_freeze_partners",level:4},{value:"array_to_string",id:"array_to_string",level:4},{value:"Reaction Objects",id:"reaction-objects",level:2},{value:"get_reactants",id:"get_reactants",level:4},{value:"get_sorted_reactants",id:"get_sorted_reactants",level:4},{value:"set_reactants",id:"set_reactants",level:4},{value:"get_products",id:"get_products",level:4},{value:"get_sorted_products",id:"get_sorted_products",level:4},{value:"set_products",id:"set_products",level:4},{value:"get_alpha",id:"get_alpha",level:4},{value:"set_alpha",id:"set_alpha",level:4},{value:"get_beta",id:"get_beta",level:4},{value:"set_beta",id:"set_beta",level:4},{value:"set_gamma",id:"set_gamma",level:4},{value:"get_gamma",id:"get_gamma",level:4},{value:"set_templow",id:"set_templow",level:4},{value:"get_templow",id:"get_templow",level:4},{value:"set_temphigh",id:"set_temphigh",level:4},{value:"get_temphigh",id:"get_temphigh",level:4},{value:"NANCheck",id:"nancheck",level:4},{value:"get_reaction_type",id:"get_reaction_type",level:4},{value:"convert_to_bulk",id:"convert_to_bulk",level:4},{value:"__eq__",id:"__eq__-1",level:4},{value:"check_temperature_collision",id:"check_temperature_collision",level:4},{value:"changes_surface_count",id:"changes_surface_count",level:4},{value:"changes_total_mantle",id:"changes_total_mantle",level:4},{value:"generate_ode_bit",id:"generate_ode_bit",level:4}],k={toc:m};function u(e){var t=e.components,a=(0,l.Z)(e,r);return(0,i.kt)("wrapper",(0,n.Z)({},k,a,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"python-api"},"Python API"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem"},"uclchem"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.analysis"},"uclchem.analysis")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.analysis.read_output_file"},"read","_","output","_","file")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.analysis.create_abundance_plot"},"create","_","abundance","_","plot")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.analysis.plot_species"},"plot","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.analysis.analysis"},"analysis")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.analysis.total_element_abundance"},"total","_","element","_","abundance")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.analysis.check_element_conservation"},"check","_","element","_","conservation")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.model"},"uclchem.model")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.model.cloud"},"cloud")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.model.collapse"},"collapse")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.model.hot_core"},"hot","_","core")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.model.cshock"},"cshock")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.model.jshock"},"jshock")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.utils"},"uclchem.utils")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.utils.cshock_dissipation_time"},"cshock","_","dissipation","_","time")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.utils.check_error"},"check","_","error")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.utils.get_species_table"},"get","_","species","_","table")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.utils.get_reaction_table"},"get","_","reaction","_","table")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.tests"},"uclchem.tests")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.tests.test_ode_conservation"},"test","_","ode","_","conservation")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.makerates.species"},"uclchem.makerates.species")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.is_number"},"is","_","number")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species"},"Species"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.__init__"},"_","_","init","_","_")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.get_name"},"get","_","name")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.get_mass"},"get","_","mass")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.set_desorb_products"},"set","_","desorb","_","products")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.get_desorb_products"},"get","_","desorb","_","products")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.set_freeze_products"},"set","_","freeze","_","products")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.get_freeze_products"},"get","_","freeze","_","products")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.get_freeze_products_list"},"get","_","freeze","_","products","_","list")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.get_freeze_alpha"},"get","_","freeze","_","alpha")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.is_grain_species"},"is","_","grain","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.is_surface_species"},"is","_","surface","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.is_bulk_species"},"is","_","bulk","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.is_ion"},"is","_","ion")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.add_default_freeze"},"add","_","default","_","freeze")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.find_constituents"},"find","_","constituents")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.get_n_atoms"},"get","_","n","_","atoms")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.set_n_atoms"},"set","_","n","_","atoms")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.__eq__"},"_","_","eq","_","_")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.__lt__"},"_","_","lt","_","_")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.__gt__"},"_","_","gt","_","_")))))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.makerates"},"uclchem.makerates"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.makerates.makerates"},"uclchem.makerates.makerates")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.makerates.run_makerates"},"run","_","makerates")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.makerates.get_network"},"get","_","network")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.makerates.network"},"uclchem.makerates.network")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network"},"Network"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.__init__"},"_","_","init","_","_")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.find_similar_reactions"},"find","_","similar","_","reactions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.remove_reaction_by_index"},"remove","_","reaction","_","by","_","index")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.remove_reaction"},"remove","_","reaction")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.get_reaction"},"get","_","reaction")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.set_reaction"},"set","_","reaction")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.get_reaction_dict"},"get","_","reaction","_","dict")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.set_reaction_dict"},"set","_","reaction","_","dict")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.get_reaction_list"},"get","_","reaction","_","list")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.sort_reactions"},"sort","_","reactions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.add_species"},"add","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.remove_species"},"remove","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.get_species_list"},"get","_","species","_","list")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.get_species_dict"},"get","_","species","_","dict")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.get_specie"},"get","_","specie")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.set_specie"},"set","_","specie")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.set_species_dict"},"set","_","species","_","dict")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.sort_species"},"sort","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.check_network"},"check","_","network")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.check_and_filter_species"},"check","_","and","_","filter","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.add_bulk_species"},"add","_","bulk","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.check_freeze_and_desorbs"},"check","_","freeze","_","and","_","desorbs")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.add_freeze_reactions"},"add","_","freeze","_","reactions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.add_desorb_reactions"},"add","_","desorb","_","reactions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.add_chemdes_reactions"},"add","_","chemdes","_","reactions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.check_for_excited_species"},"check","_","for","_","excited","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.add_excited_surface_reactions"},"add","_","excited","_","surface","_","reactions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.add_bulk_reactions"},"add","_","bulk","_","reactions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.freeze_checks"},"freeze","_","checks")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.duplicate_checks"},"duplicate","_","checks")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.index_important_reactions"},"index","_","important","_","reactions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.index_important_species"},"index","_","important","_","species")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.LoadedNetwork"},"LoadedNetwork"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.LoadedNetwork.__init__"},"_","_","init","_","_")))))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.makerates.io_functions"},"uclchem.makerates.io","_","functions")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.read_species_file"},"read","_","species","_","file")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.read_reaction_file"},"read","_","reaction","_","file")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.check_reaction"},"check","_","reaction")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.kida_parser"},"kida","_","parser")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.output_drops"},"output","_","drops")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.write_outputs"},"write","_","outputs")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.write_species"},"write","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.write_reactions"},"write","_","reactions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.write_odes_f90"},"write","_","odes","_","f90")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.write_jacobian"},"write","_","jacobian")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.build_ode_string"},"build","_","ode","_","string")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.species_ode_string"},"species","_","ode","_","string")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.write_evap_lists"},"write","_","evap","_","lists")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.truncate_line"},"truncate","_","line")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.write_network_file"},"write","_","network","_","file")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.find_reactant"},"find","_","reactant")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.get_desorption_freeze_partners"},"get","_","desorption","_","freeze","_","partners")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.array_to_string"},"array","_","to","_","string")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.makerates.reaction"},"uclchem.makerates.reaction")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction"},"Reaction"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.get_reactants"},"get","_","reactants")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.get_sorted_reactants"},"get","_","sorted","_","reactants")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.set_reactants"},"set","_","reactants")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.get_products"},"get","_","products")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.get_sorted_products"},"get","_","sorted","_","products")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.set_products"},"set","_","products")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.get_alpha"},"get","_","alpha")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.set_alpha"},"set","_","alpha")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.get_beta"},"get","_","beta")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.set_beta"},"set","_","beta")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.set_gamma"},"set","_","gamma")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.get_gamma"},"get","_","gamma")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.set_templow"},"set","_","templow")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.get_templow"},"get","_","templow")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.set_temphigh"},"set","_","temphigh")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.get_temphigh"},"get","_","temphigh")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.NANCheck"},"NANCheck")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.get_reaction_type"},"get","_","reaction","_","type")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.convert_to_bulk"},"convert","_","to","_","bulk")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.__eq__"},"_","_","eq","_","_")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.check_temperature_collision"},"check","_","temperature","_","collision")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.changes_surface_count"},"changes","_","surface","_","count")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.changes_total_mantle"},"changes","_","total","_","mantle")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.generate_ode_bit"},"generate","_","ode","_","bit"))))))),(0,i.kt)("a",{id:"uclchem"}),(0,i.kt)("h1",{id:"uclchem"},"uclchem"),(0,i.kt)("p",null,"The UCLCHEM python module is divided into three parts.\n",(0,i.kt)("inlineCode",{parentName:"p"},"model")," contains the functions for running chemical models under different physics.\n",(0,i.kt)("inlineCode",{parentName:"p"},"analysis")," contains functions for reading and plotting output files as well as investigating the chemistry.\n",(0,i.kt)("inlineCode",{parentName:"p"},"tests")," contains functions for testing the code."),(0,i.kt)("a",{id:"uclchem.analysis"}),(0,i.kt)("h1",{id:"uclchemanalysis"},"uclchem.analysis"),(0,i.kt)("a",{id:"uclchem.analysis.read_output_file"}),(0,i.kt)("h4",{id:"read_output_file"},"read","_","output","_","file"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def read_output_file(output_file)\n")),(0,i.kt)("p",null,"Read the output of a UCLCHEM run created with the outputFile parameter into a pandas DataFrame"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"output_file")," ",(0,i.kt)("em",{parentName:"li"},"str")," - path to file containing a full UCLCHEM output")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"pandas.DataFrame")," - A dataframe containing the abundances and physical parameters of the model at every time step.")),(0,i.kt)("a",{id:"uclchem.analysis.create_abundance_plot"}),(0,i.kt)("h4",{id:"create_abundance_plot"},"create","_","abundance","_","plot"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def create_abundance_plot(df, species, figsize=(16, 9), plot_file=None)\n")),(0,i.kt)("p",null,"Create a plot of the abundance of a list of species through time."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"df")," ",(0,i.kt)("em",{parentName:"li"},"pd.DataFrame")," - Pandas dataframe containing the UCLCHEM output, see ",(0,i.kt)("inlineCode",{parentName:"li"},"read_output_file")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species")," ",(0,i.kt)("em",{parentName:"li"},"list")," - list of strings containing species names. Using a $ instead of # or @ will plot the sum of surface and bulk abundances."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"figsize")," ",(0,i.kt)("em",{parentName:"li"},"tuple, optional")," - Size of figure, width by height in inches. Defaults to (16, 9)."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"plot_file")," ",(0,i.kt)("em",{parentName:"li"},"str, optional")," - Path to file where figure will be saved. If None, figure is not saved. Defaults to None.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"fig,ax")," - matplotlib figure and axis objects")),(0,i.kt)("a",{id:"uclchem.analysis.plot_species"}),(0,i.kt)("h4",{id:"plot_species"},"plot","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def plot_species(ax, df, species, **plot_kwargs)\n")),(0,i.kt)("p",null,"Plot the abundance of a list of species through time directly onto an axis."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"ax")," ",(0,i.kt)("em",{parentName:"li"},"pyplot.axis")," - An axis object to plot on"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"df")," ",(0,i.kt)("em",{parentName:"li"},"pd.DataFrame")," - A dataframe created by ",(0,i.kt)("inlineCode",{parentName:"li"},"read_output_file")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species")," ",(0,i.kt)("em",{parentName:"li"},"str"),' - A list of species names to be plotted. If species name starts with "$" instead of # or @, plots the sum of surface and bulk abundances')),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"pyplot.axis")," - Modified input axis is returned")),(0,i.kt)("a",{id:"uclchem.analysis.analysis"}),(0,i.kt)("h4",{id:"analysis"},"analysis"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def analysis(species_name, result_file, output_file, rate_threshold=0.99)\n")),(0,i.kt)("p",null,"A function which loops over every time step in an output file and finds the rate of change of a species at that time due to each of the reactions it is involved in.\nFrom this, the most important reactions are identified and printed to file. This can be used to understand the chemical reason behind a species' behaviour."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_name")," ",(0,i.kt)("em",{parentName:"li"},"str")," - Name of species to be analysed"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"result_file")," ",(0,i.kt)("em",{parentName:"li"},"str")," - The path to the file containing the UCLCHEM output"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"output_file")," ",(0,i.kt)("em",{parentName:"li"},"str")," - The path to the file where the analysis output will be written"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"rate_threshold")," ",(0,i.kt)("em",{parentName:"li"},"float,optional")," - Analysis output will contain the only the most efficient reactions that are responsible for rate_threshold of the total production and destruction rate. Defaults to 0.99.")),(0,i.kt)("a",{id:"uclchem.analysis.total_element_abundance"}),(0,i.kt)("h4",{id:"total_element_abundance"},"total","_","element","_","abundance"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def total_element_abundance(element, df)\n")),(0,i.kt)("p",null,"Calculates that the total elemental abundance of a species as a function of time. Allows you to check conservation."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"element")," ",(0,i.kt)("em",{parentName:"li"},"str")," - Name of element"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"df")," ",(0,i.kt)("em",{parentName:"li"},"pandas.DataFrame")," - DataFrame from ",(0,i.kt)("inlineCode",{parentName:"li"},"read_output_file()"))),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"pandas.Series")," - Total abundance of element for all time steps in df.")),(0,i.kt)("a",{id:"uclchem.analysis.check_element_conservation"}),(0,i.kt)("h4",{id:"check_element_conservation"},"check","_","element","_","conservation"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},'def check_element_conservation(df,\n element_list=["H", "N", "C", "O"],\n percent=True)\n')),(0,i.kt)("p",null,"Check the conservation of major element by comparing total abundance at start and end of model"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"df")," ",(0,i.kt)("em",{parentName:"li"},"pandas.DataFrame")," - UCLCHEM output in format from ",(0,i.kt)("inlineCode",{parentName:"li"},"read_output_file")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"element_list")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - List of elements to check. Defaults to ",'["H", "N", "C", "O"]',".")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"dict")," - Dictionary containing the change in the total abundance of each element as a fraction of initial value")),(0,i.kt)("a",{id:"uclchem.model"}),(0,i.kt)("h1",{id:"uclchemmodel"},"uclchem.model"),(0,i.kt)("a",{id:"uclchem.model.cloud"}),(0,i.kt)("h4",{id:"cloud"},"cloud"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def cloud(param_dict=None, out_species=None)\n")),(0,i.kt)("p",null,"Run cloud model from UCLCHEM"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"param_dict")," ",(0,i.kt)("em",{parentName:"li"},"dict,optional")," - A dictionary of parameters where keys are any of the variables in defaultparameters.f90 and values are value for current run."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"out_species")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - A list of species for which final abundance will be returned. If None, no abundances will be returned.. Defaults to None.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," A list where the first element is always an integer which is negative if the model failed to run and can be sent to ",(0,i.kt)("inlineCode",{parentName:"p"},"uclchem.utils.check_error()")," to see more details. If the ",(0,i.kt)("inlineCode",{parentName:"p"},"out_species")," parametere is provided, the remaining elements of this list will be the final abundances of the species in out_species."),(0,i.kt)("a",{id:"uclchem.model.collapse"}),(0,i.kt)("h4",{id:"collapse"},"collapse"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def collapse(collapse, physics_output, param_dict=None, out_species=None)\n")),(0,i.kt)("p",null,"Run collapse model from UCLCHEM based on Priestley et al 2018 AJ 156 51 (",(0,i.kt)("a",{parentName:"p",href:"https://ui.adsabs.harvard.edu/abs/2018AJ....156...51P/abstract"},"https://ui.adsabs.harvard.edu/abs/2018AJ....156...51P/abstract"),")"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"collapse")," ",(0,i.kt)("em",{parentName:"li"},"str")," - A string containing the collapse type, options are 'BE1.1', 'BE4', 'filament', or 'ambipolar'"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"physics_output(str)")," - Filename to store physics output, only relevant for 'filament' and 'ambipolar' collapses. If None, no physics output will be saved."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"param_dict")," ",(0,i.kt)("em",{parentName:"li"},"dict,optional")," - A dictionary of parameters where keys are any of the variables in defaultparameters.f90 and values are value for current run."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"out_species")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - A list of species for which final abundance will be returned. If None, no abundances will be returned.. Defaults to None.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," A list where the first element is always an integer which is negative if the model failed to run and can be sent to ",(0,i.kt)("inlineCode",{parentName:"p"},"uclchem.utils.check_error()")," to see more details. If the ",(0,i.kt)("inlineCode",{parentName:"p"},"out_species")," parametere is provided, the remaining elements of this list will be the final abundances of the species in out_species."),(0,i.kt)("a",{id:"uclchem.model.hot_core"}),(0,i.kt)("h4",{id:"hot_core"},"hot","_","core"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def hot_core(temp_indx, max_temperature, param_dict=None, out_species=None)\n")),(0,i.kt)("p",null,"Run hot core model from UCLCHEM, based on Viti et al. 2004 and Collings et al. 2004"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"temp_indx")," ",(0,i.kt)("em",{parentName:"li"},"int")," - Used to select the mass of hot core. 1=1Msun,2=5, 3=10, 4=15, 5=25,6=60]"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"max_temperature")," ",(0,i.kt)("em",{parentName:"li"},"float")," - Value at which gas temperature will stop increasing."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"param_dict")," ",(0,i.kt)("em",{parentName:"li"},"dict,optional")," - A dictionary of parameters where keys are any of the variables in defaultparameters.f90 and values are value for current run."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"out_species")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - A list of species for which final abundance will be returned. If None, no abundances will be returned.. Defaults to None.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," A list where the first element is always an integer which is negative if the model failed to run and can be sent to ",(0,i.kt)("inlineCode",{parentName:"p"},"uclchem.utils.check_error()")," to see more details. If the ",(0,i.kt)("inlineCode",{parentName:"p"},"out_species")," parametere is provided, the remaining elements of this list will be the final abundances of the species in out_species."),(0,i.kt)("a",{id:"uclchem.model.cshock"}),(0,i.kt)("h4",{id:"cshock"},"cshock"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def cshock(shock_vel,\n timestep_factor=0.01,\n minimum_temperature=0.0,\n param_dict=None,\n out_species=None)\n")),(0,i.kt)("p",null,"Run C-type shock model from UCLCHEM"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"shock_vel")," ",(0,i.kt)("em",{parentName:"li"},"float")," - Velocity of the shock in km/s"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"timestep_factor")," ",(0,i.kt)("em",{parentName:"li"},"float, optional")," - Whilst the time is less than 2 times the dissipation time of shock, timestep is timestep_factor*dissipation time. Essentially controls\nhow well resolved the shock is in your model. Defaults to 0.01."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"minimum_temperature")," ",(0,i.kt)("em",{parentName:"li"},"float, optional")," - Minimum post-shock temperature. Defaults to 0.0 (no minimum). The shocked gas typically cools to ",(0,i.kt)("inlineCode",{parentName:"li"},"initialTemp")," if this is not set."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"param_dict")," ",(0,i.kt)("em",{parentName:"li"},"dict,optional")," - A dictionary of parameters where keys are any of the variables in defaultparameters.f90 and values are value for current run."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"out_species")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - A list of species for which final abundance will be returned. If None, no abundances will be returned.. Defaults to None.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," A list where the first element is always an integer which is negative if the model failed to run and can be sent to ",(0,i.kt)("inlineCode",{parentName:"p"},"uclchem.utils.check_error()")," to see more details. If the model succeeded, the second element is the dissipation time and further elements are the abundances of all species in ",(0,i.kt)("inlineCode",{parentName:"p"},"out_species"),"."),(0,i.kt)("a",{id:"uclchem.model.jshock"}),(0,i.kt)("h4",{id:"jshock"},"jshock"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def jshock(shock_vel, param_dict=None, out_species=None)\n")),(0,i.kt)("p",null,"Run J-type shock model from UCLCHEM"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"shock_vel")," ",(0,i.kt)("em",{parentName:"li"},"float")," - Velocity of the shock"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"param_dict")," ",(0,i.kt)("em",{parentName:"li"},"dict,optional")," - A dictionary of parameters where keys are any of the variables in defaultparameters.f90 and values are value for current run."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"out_species")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - A list of species for which final abundance will be returned. If None, no abundances will be returned.. Defaults to None.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," A list where the first element is always an integer which is negative if the model failed to run and can be sent to ",(0,i.kt)("inlineCode",{parentName:"p"},"uclchem.utils.check_error()")," to see more details. If the model succeeded, the second element is the dissipation time and further elements are the abundances of all species in ",(0,i.kt)("inlineCode",{parentName:"p"},"out_species"),"."),(0,i.kt)("a",{id:"uclchem.utils"}),(0,i.kt)("h1",{id:"uclchemutils"},"uclchem.utils"),(0,i.kt)("a",{id:"uclchem.utils.cshock_dissipation_time"}),(0,i.kt)("h4",{id:"cshock_dissipation_time"},"cshock","_","dissipation","_","time"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def cshock_dissipation_time(shock_vel, initial_dens)\n")),(0,i.kt)("p",null,"A simple function used to calculate the dissipation time of a C-type shock.\nUse to obtain a useful timescale for your C-shock model runs. Velocity of\nions and neutrals equalizes at dissipation time and full cooling takes a few dissipation times."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"shock_vel")," ",(0,i.kt)("em",{parentName:"li"},"float")," - Velocity of the shock in km/s"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"initial_dens")," ",(0,i.kt)("em",{parentName:"li"},"float")," - Preshock density of the gas in cm",(0,i.kt)("span",{parentName:"li",className:"math math-inline"},(0,i.kt)("span",{parentName:"span",className:"katex"},(0,i.kt)("span",{parentName:"span",className:"katex-mathml"},(0,i.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,i.kt)("semantics",{parentName:"math"},(0,i.kt)("mrow",{parentName:"semantics"},(0,i.kt)("msup",{parentName:"mrow"},(0,i.kt)("mrow",{parentName:"msup"}),(0,i.kt)("mrow",{parentName:"msup"},(0,i.kt)("mo",{parentName:"mrow"},"\u2212"),(0,i.kt)("mn",{parentName:"mrow"},"3")))),(0,i.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-3}")))),(0,i.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,i.kt)("span",{parentName:"span",className:"base"},(0,i.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,i.kt)("span",{parentName:"span",className:"mord"},(0,i.kt)("span",{parentName:"span"}),(0,i.kt)("span",{parentName:"span",className:"msupsub"},(0,i.kt)("span",{parentName:"span",className:"vlist-t"},(0,i.kt)("span",{parentName:"span",className:"vlist-r"},(0,i.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,i.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,i.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,i.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,i.kt)("span",{parentName:"span",className:"mord mtight"},(0,i.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,i.kt)("span",{parentName:"span",className:"mord mtight"},"3"))))))))))))))),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"float")," - The dissipation time of the shock in years")),(0,i.kt)("a",{id:"uclchem.utils.check_error"}),(0,i.kt)("h4",{id:"check_error"},"check","_","error"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def check_error(error_code)\n")),(0,i.kt)("p",null,'Converts the UCLCHEM integer result flag to a simple messaging explaining what went wrong"'),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"error_code")," ",(0,i.kt)("em",{parentName:"li"},"int")," - Error code returned by UCLCHEM models, the first element of the results list.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"str")," - Error message")),(0,i.kt)("a",{id:"uclchem.utils.get_species_table"}),(0,i.kt)("h4",{id:"get_species_table"},"get","_","species","_","table"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_species_table()\n")),(0,i.kt)("p",null,"A simple function to load the list of species in the UCLCHEM network into a pandas dataframe."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"pandas.DataFrame")," - A dataframe containing the species names and their details")),(0,i.kt)("a",{id:"uclchem.utils.get_reaction_table"}),(0,i.kt)("h4",{id:"get_reaction_table"},"get","_","reaction","_","table"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_reaction_table()\n")),(0,i.kt)("p",null,"A function to load the reaction table from the UCLCHEM network into a pandas dataframe."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"pandas.DataFrame")," - A dataframe containing the reactions and their rates")),(0,i.kt)("a",{id:"uclchem.tests"}),(0,i.kt)("h1",{id:"uclchemtests"},"uclchem.tests"),(0,i.kt)("a",{id:"uclchem.tests.test_ode_conservation"}),(0,i.kt)("h4",{id:"test_ode_conservation"},"test","_","ode","_","conservation"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},'def test_ode_conservation(element_list=["H", "N", "C", "O"])\n')),(0,i.kt)("p",null,"Test whether the ODEs conserve elements. Useful to run each time you change network.\nIntegrator errors may still cause elements not to be conserved but they cannot be conserved\nif the ODEs are not correct."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"element_list")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - A list of elements for which to check the conservation. Defaults to ",'["H", "N", "C", "O"]',".")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"dict")," - A dictionary of the elements in element list with values representing the total rate of change of each element.")),(0,i.kt)("a",{id:"uclchem.makerates.species"}),(0,i.kt)("h1",{id:"uclchemmakeratesspecies"},"uclchem.makerates.species"),(0,i.kt)("a",{id:"uclchem.makerates.species.is_number"}),(0,i.kt)("h4",{id:"is_number"},"is","_","number"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def is_number(s) -> bool\n")),(0,i.kt)("p",null,"Try to convert input to a float, if it succeeds, return True."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"s")," - Input element to check for")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - True if a number, False if not.")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species"}),(0,i.kt)("h2",{id:"species-objects"},"Species Objects"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"class Species()\n")),(0,i.kt)("p",null,"Species is a class that holds all the information about an individual species in the\nnetwork. It also has convenience functions to check whether the species is a gas or grain\nspecies and to help compare between species."),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.__init__"}),(0,i.kt)("h4",{id:"__init__"},"_","_","init","_","_"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def __init__(inputRow)\n")),(0,i.kt)("p",null,"A class representing chemical species, it reads in rows which are formatted as follows:\nNAME,MASS,BINDING ENERGY,SOLID FRACTION,MONO FRACTION,VOLCANO FRACTION,ENTHALPY"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("p",null," inputRow (list):"),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.get_name"}),(0,i.kt)("h4",{id:"get_name"},"get","_","name"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_name() -> str\n")),(0,i.kt)("p",null,"Get the name of the chemical species."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"str")," - The name")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.get_mass"}),(0,i.kt)("h4",{id:"get_mass"},"get","_","mass"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_mass() -> int\n")),(0,i.kt)("p",null,"Get the molecular mass of the chemical species"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"int")," - The molecular mass")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.set_desorb_products"}),(0,i.kt)("h4",{id:"set_desorb_products"},"set","_","desorb","_","products"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_desorb_products(new_desorbs: list[str]) -> None\n")),(0,i.kt)("p",null,"Set the desorption products for species on the surface or in the bulk.\nIt is assumed that there is only one desorption pathway."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"new_desorbs")," ",(0,i.kt)("em",{parentName:"li"},"list","[str]")," - The new desorption products")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.get_desorb_products"}),(0,i.kt)("h4",{id:"get_desorb_products"},"get","_","desorb","_","products"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_desorb_products() -> list[str]\n")),(0,i.kt)("p",null,"Obtain the desorbtion products of ice species"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"list[str]")," - The desorption products")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.set_freeze_products"}),(0,i.kt)("h4",{id:"set_freeze_products"},"set","_","freeze","_","products"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_freeze_products(product_list: list[str], freeze_alpha: float) -> None\n")),(0,i.kt)("p",null,"Add the freeze products of the species, one species can have several freeze products."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"product_list")," ",(0,i.kt)("em",{parentName:"p"},"list","[str]")," - The list of freeze out products")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"freeze_alpha")," ",(0,i.kt)("em",{parentName:"p"},"float")," - The freeze out ratio."),(0,i.kt)("p",{parentName:"li"},"It is called alpha, since it is derived from the alpha column in the UCLCHEM reaction format:\n",(0,i.kt)("a",{parentName:"p",href:"https://github.com/uclchem/UCLCHEM/blob/08d37f8c3063f8ff8a9a7aa16d9eff0ed4f99538/Makerates/src/network.py#L160"},"https://github.com/uclchem/UCLCHEM/blob/08d37f8c3063f8ff8a9a7aa16d9eff0ed4f99538/Makerates/src/network.py#L160")))),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.get_freeze_products"}),(0,i.kt)("h4",{id:"get_freeze_products"},"get","_","freeze","_","products"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_freeze_products() -> dict[list[str], float]\n")),(0,i.kt)("p",null,"Obtain the product to which the species freeze out"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," dict","[str, float]",": Reactions and their respective freeze out ratios."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Yields"),":"),(0,i.kt)("p",null," Iterator[dict","[str, float]","]: Iterator that returns all of the freeze out reactions with ratios"),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.get_freeze_products_list"}),(0,i.kt)("h4",{id:"get_freeze_products_list"},"get","_","freeze","_","products","_","list"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_freeze_products_list() -> list[list[str]]\n")),(0,i.kt)("p",null,"Returns all the freeze products without their ratios"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"list[list[str]]")," - List of freeze products")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.get_freeze_alpha"}),(0,i.kt)("h4",{id:"get_freeze_alpha"},"get","_","freeze","_","alpha"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_freeze_alpha(product_list: list[str]) -> float\n")),(0,i.kt)("p",null,"Obtain the freeze out ratio of a species for a certain reaction"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"product_list")," ",(0,i.kt)("em",{parentName:"li"},"list","[str]")," - For a specific reaction, get the freezeout ratio")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"float")," - The freezeout ratio")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.is_grain_species"}),(0,i.kt)("h4",{id:"is_grain_species"},"is","_","grain","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def is_grain_species() -> bool\n")),(0,i.kt)("p",null,"Return whether the species is a species on the grain"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - True if it is a grain species.")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.is_surface_species"}),(0,i.kt)("h4",{id:"is_surface_species"},"is","_","surface","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def is_surface_species() -> bool\n")),(0,i.kt)("p",null,"Checks if the species is on the surface"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - True if a surface species")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.is_bulk_species"}),(0,i.kt)("h4",{id:"is_bulk_species"},"is","_","bulk","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def is_bulk_species() -> bool\n")),(0,i.kt)("p",null,"Checks if the species is in the bulk"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - True if a bulk species")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.is_ion"}),(0,i.kt)("h4",{id:"is_ion"},"is","_","ion"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def is_ion() -> bool\n")),(0,i.kt)("p",null,"Checks if the species is ionized, either postively or negatively."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - True if it is an ionized")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.add_default_freeze"}),(0,i.kt)("h4",{id:"add_default_freeze"},"add","_","default","_","freeze"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def add_default_freeze() -> None\n")),(0,i.kt)("p",null,"Adds a defalt freezeout, which is freezing out to the species itself, but with no ionization."),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.find_constituents"}),(0,i.kt)("h4",{id:"find_constituents"},"find","_","constituents"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def find_constituents()\n")),(0,i.kt)("p",null,"Loop through the species' name and work out what its consituent\natoms are. Then calculate mass and alert user if it doesn't match\ninput mass."),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.get_n_atoms"}),(0,i.kt)("h4",{id:"get_n_atoms"},"get","_","n","_","atoms"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_n_atoms() -> int\n")),(0,i.kt)("p",null,"Obtain the number of atoms in the molecule"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"int")," - The number of atoms")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.set_n_atoms"}),(0,i.kt)("h4",{id:"set_n_atoms"},"set","_","n","_","atoms"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_n_atoms(new_n_atoms: int) -> None\n")),(0,i.kt)("p",null,"Set the number of atoms"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"new_n_atoms")," ",(0,i.kt)("em",{parentName:"li"},"int")," - The new number of atoms")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.__eq__"}),(0,i.kt)("h4",{id:"__eq__"},"_","_","eq","_","_"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def __eq__(other)\n")),(0,i.kt)("p",null,"Check for equality based on either a string or another Species instance."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"other")," ",(0,i.kt)("em",{parentName:"li"},"str, Species")," - Another species")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Raises"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"NotImplementedError")," - We can only compare between species or strings of species.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - True if two species are identical.")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.__lt__"}),(0,i.kt)("h4",{id:"__lt__"},"_","_","lt","_","_"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def __lt__(other) -> bool\n")),(0,i.kt)("p",null,"Compare the mass of the species"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"other")," ",(0,i.kt)("em",{parentName:"li"},"Species")," - Another species instance")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - True if less than the other species")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.__gt__"}),(0,i.kt)("h4",{id:"__gt__"},"_","_","gt","_","_"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def __gt__(other) -> bool\n")),(0,i.kt)("p",null,"Compare the mass of the species"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"other")," ",(0,i.kt)("em",{parentName:"li"},"Species")," - Another species instance")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - True if larger than than the other species")),(0,i.kt)("a",{id:"uclchem.makerates"}),(0,i.kt)("h1",{id:"uclchemmakerates"},"uclchem.makerates"),(0,i.kt)("a",{id:"uclchem.makerates.makerates"}),(0,i.kt)("h1",{id:"uclchemmakeratesmakerates"},"uclchem.makerates.makerates"),(0,i.kt)("a",{id:"uclchem.makerates.makerates.run_makerates"}),(0,i.kt)("h4",{id:"run_makerates"},"run","_","makerates"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},'def run_makerates(configuration_file: str = "user_settings.yaml",\n write_files: bool = True) -> Network\n')),(0,i.kt)("p",null,"The main run wrapper for makerates, it loads a configuration, parses it in Network\nand then returns the Network. It by default writes to the uclchem fortran directory, but\nthis can be skipped."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"configuration_file")," ",(0,i.kt)("em",{parentName:"li"},"str, optional"),' - A UCLCHEM Makerates configuration file. Defaults to "user_settings.yaml".'),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"write_files")," ",(0,i.kt)("em",{parentName:"li"},"bool, optional")," - Whether to write the fortran files to the src/fortran_src. Defaults to True.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Raises"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"KeyError")," - The configuration cannot be found")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Network")," - A chemical network instance.")),(0,i.kt)("a",{id:"uclchem.makerates.makerates.get_network"}),(0,i.kt)("h4",{id:"get_network"},"get","_","network"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_network(path_to_input_file: Union[str, bytes, os.PathLike] = None,\n path_to_species_file: Union[str, bytes, os.PathLike] = None,\n path_to_reaction_file: Union[str, bytes, os.PathLike] = None,\n verbosity=None)\n")),(0,i.kt)("p",null,"In memory equivalent of Makerates, can either be used on the original input files\nfor makerates, or on the output files that makerates generates. So either specify:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"path_to_input_file ")," exclusive OR (",(0,i.kt)("inlineCode",{parentName:"p"},"path_to_species_file")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"path_to_reaction_file"),")"),(0,i.kt)("p",null,"The latter scenario allows you to reload a reaction network from a network already written by Makerates."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"path_to_input_file")," ",(0,i.kt)("em",{parentName:"li"},"Union","[str, bytes, os.PathLike]",", optional")," - Path to input file. Defaults to None."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"path_to_species_file")," ",(0,i.kt)("em",{parentName:"li"},"Union","[str, bytes, os.PathLike]",", optional")," - Path to a species.csv in/from the src directory. Defaults to None."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"path_to_reaction_file")," ",(0,i.kt)("em",{parentName:"li"},"Union","[str, bytes, os.PathLike]",", optional")," - Path to a reactions.csv in/from the src directory. Defaults to None."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"verbosity")," ",(0,i.kt)("em",{parentName:"li"},"LEVEL, optional")," - The verbosity level as specified in logging. Defaults to None.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Raises"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"ValueError")," - You cannot specify both an input configuration and species+reaction.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Network")," - A chemical reaction network.")),(0,i.kt)("a",{id:"uclchem.makerates.network"}),(0,i.kt)("h1",{id:"uclchemmakeratesnetwork"},"uclchem.makerates.network"),(0,i.kt)("p",null,"This python file contains all functions for de-duplicating species and reaction lists,\nchecking for common errors, and automatic addition of reactions such as freeze out,\ndesorption and bulk reactions for three phase models."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network"}),(0,i.kt)("h2",{id:"network-objects"},"Network Objects"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"class Network()\n")),(0,i.kt)("p",null,"The network class stores all the information about reaction network."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.__init__"}),(0,i.kt)("h4",{id:"__init__-1"},"_","_","init","_","_"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def __init__(species: list[Species],\n reactions: list[Reaction],\n three_phase: bool = False,\n user_defined_bulk: list = [])\n")),(0,i.kt)("p",null,"A class to store network information such as indices of important reactions."),(0,i.kt)("p",null,"The class fully utilizes getters and setters, which can be used to add/remove\nreactions and the species involved. Important is that you do not directly edit\nthe internal dictionaries that store the species and reactions, unless you\nknow what you are doing. The network by default checks for duplicates in species\nand identical reactions that overlap in temperature ranges, potentially causing\nproblems."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species")," ",(0,i.kt)("em",{parentName:"li"},"list","[Species]")," - A list of chemical species that are added to the network"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reactions")," ",(0,i.kt)("em",{parentName:"li"},"list","[Reaction]")," - A list of chemical reactions that are added to the network"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"three_phase")," ",(0,i.kt)("em",{parentName:"li"},"bool, optional")," - Whether to use a three phase model (gas, surface, bulk). Defaults to False."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"user_defined_bulk")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - List of user defined bulk. Defaults to [].")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.find_similar_reactions"}),(0,i.kt)("h4",{id:"find_similar_reactions"},"find","_","similar","_","reactions"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def find_similar_reactions(reaction: Reaction) -> dict[int, Reaction]\n")),(0,i.kt)("p",null,"Reactions are similar if the reaction has the same reactants and products,\nfind all reactions that are similar, returning their index and the reaction itself."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction")," ",(0,i.kt)("em",{parentName:"li"},"Reaction")," - Reaction with possible identical (but for temperature range) reactions in the network")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," dict","[int, Reaction]",": A dict with the identical reactions."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.remove_reaction_by_index"}),(0,i.kt)("h4",{id:"remove_reaction_by_index"},"remove","_","reaction","_","by","_","index"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def remove_reaction_by_index(reaction_idx: int) -> None\n")),(0,i.kt)("p",null,"Remove a reaction by its index in the internal _reactions_dict, this is the only way\nto remove reactions that are defined piecewise across temperature ranges."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction_idx")," ",(0,i.kt)("em",{parentName:"li"},"int")," - Index of the reaction to remove")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.remove_reaction"}),(0,i.kt)("h4",{id:"remove_reaction"},"remove","_","reaction"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def remove_reaction(reaction: Reaction) -> None\n")),(0,i.kt)("p",null,"Remove the reaction by giving the object itself, this only works if the reaction is\nnot piecewise defined across the temperature ranges."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction")," ",(0,i.kt)("em",{parentName:"li"},"Reaction")," - The reaction you wish to delete.")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.get_reaction"}),(0,i.kt)("h4",{id:"get_reaction"},"get","_","reaction"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_reaction(reaction_idx: int) -> Reaction\n")),(0,i.kt)("p",null,"Obtain a reaction from the reaction set given an index of the internal _reactions_dict."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction_idx")," ",(0,i.kt)("em",{parentName:"li"},"int")," - The reaction index")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Reaction")," - the desired reaction")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.set_reaction"}),(0,i.kt)("h4",{id:"set_reaction"},"set","_","reaction"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_reaction(reaction_idx: int, reaction: Reaction) -> None\n")),(0,i.kt)("p",null,"This setter explicitely sets the reaction for a certain index."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction_idx")," ",(0,i.kt)("em",{parentName:"li"},"int")," - The index to be written to"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction")," ",(0,i.kt)("em",{parentName:"li"},"Reaction")," - The reaction to be added to the index.")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.get_reaction_dict"}),(0,i.kt)("h4",{id:"get_reaction_dict"},"get","_","reaction","_","dict"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_reaction_dict() -> dict[int, Reaction]\n")),(0,i.kt)("p",null,"Returns the whole internal reaction dictionary."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," dict","[int, Reaction]",": A copy of the internal reactions dictionary."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.set_reaction_dict"}),(0,i.kt)("h4",{id:"set_reaction_dict"},"set","_","reaction","_","dict"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_reaction_dict(new_dict: dict[int, Reaction]) -> None\n")),(0,i.kt)("p",null,"Override the reactions dictionary with a new dictionar."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"new_dict")," ",(0,i.kt)("em",{parentName:"li"},"dict","[int, Reaction]")," - The new reactions_dictionary.")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.get_reaction_list"}),(0,i.kt)("h4",{id:"get_reaction_list"},"get","_","reaction","_","list"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_reaction_list() -> list[Reaction]\n")),(0,i.kt)("p",null,"Obtain all the reactions in the Network."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"list[Reaction]")," - A list with all the reaction objects")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.sort_reactions"}),(0,i.kt)("h4",{id:"sort_reactions"},"sort","_","reactions"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def sort_reactions() -> None\n")),(0,i.kt)("p",null,"Sort the reaction dictionary by reaction type first and by the first reactant second."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.add_species"}),(0,i.kt)("h4",{id:"add_species"},"add","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def add_species(species: Union[Union[Species, str], list[Union[Species,\n str]]])\n")),(0,i.kt)("p",null,"Add species to the network, given a (list of) species. If it is a list of strings,\nit tries to instantiate a species class with it. It also checks for duplicate entries and\nfilters out attempts to add reaction types to the species."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species")," ",(0,i.kt)("em",{parentName:"li"},"Union[Union","[Species, str]",", list[Union","[Species, str]","]]")," - A (list of) species or strings.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Raises"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"ValueError")," - If we cannot parse the (list of) reactions"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"ValueError")," - If an ice specie with binding energy of zero is added.")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.remove_species"}),(0,i.kt)("h4",{id:"remove_species"},"remove","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def remove_species(specie_name: str) -> None\n")),(0,i.kt)("p",null,"Remove a specie from the network"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"specie_name")," ",(0,i.kt)("em",{parentName:"li"},"str")," - Species to remove")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.get_species_list"}),(0,i.kt)("h4",{id:"get_species_list"},"get","_","species","_","list"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_species_list() -> list[Species]\n")),(0,i.kt)("p",null,"Obtain a list with all the species in the network"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"list[Species]")," - A list of all the species in the reaction network")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.get_species_dict"}),(0,i.kt)("h4",{id:"get_species_dict"},"get","_","species","_","dict"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_species_dict() -> dict[str, Species]\n")),(0,i.kt)("p",null,"Get the internal dictionary that stores all the species, it consists\nof all species' names as key, with the species object as value."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," dict","[str, Species]",": A dictionary with the species"),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.get_specie"}),(0,i.kt)("h4",{id:"get_specie"},"get","_","specie"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_specie(specie_name: str) -> Species\n")),(0,i.kt)("p",null,"Get the species of the reaction network (from the internal dictionary)"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"specie_name")," ",(0,i.kt)("em",{parentName:"li"},"str")," - the name of the species as a string")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Species")," - The species object")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.set_specie"}),(0,i.kt)("h4",{id:"set_specie"},"set","_","specie"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_specie(species_name: str, species: Species) -> None\n")),(0,i.kt)("p",null,"Set the species of the reaction network in the internal dictionary"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_name")," ",(0,i.kt)("em",{parentName:"li"},"str")," - The name of the species as string"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species")," ",(0,i.kt)("em",{parentName:"li"},"Species")," - The Species object to set")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.set_species_dict"}),(0,i.kt)("h4",{id:"set_species_dict"},"set","_","species","_","dict"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_species_dict(new_species_dict: dict[str, Species]) -> None\n")),(0,i.kt)("p",null,"Set the internal species dict"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"new_species_dict")," ",(0,i.kt)("em",{parentName:"li"},"dict","[str, Species]")," - The new dictionary to set")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.sort_species"}),(0,i.kt)("h4",{id:"sort_species"},"sort","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def sort_species() -> None\n")),(0,i.kt)("p",null,"Sort the species based on their mass in ascending order. We always make sure the Electron is last."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.check_network"}),(0,i.kt)("h4",{id:"check_network"},"check","_","network"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def check_network() -> None\n")),(0,i.kt)("p",null,"Run through the list of reactions and check for obvious errors such\nas duplicate reactions, multiple freeze out routes (to warn, not necessarily\nan error), etc."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.check_and_filter_species"}),(0,i.kt)("h4",{id:"check_and_filter_species"},"check","_","and","_","filter","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def check_and_filter_species() -> None\n")),(0,i.kt)("p",null,"Check every speces in network appears in at least one reaction.\nRemove any that do not and alert user."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.add_bulk_species"}),(0,i.kt)("h4",{id:"add_bulk_species"},"add","_","bulk","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def add_bulk_species() -> None\n")),(0,i.kt)("p",null,"For three phase models, MakeRates will produce the version of the species in the bulk\nso that the user doesn't have to endlessly relist the same species"),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.check_freeze_and_desorbs"}),(0,i.kt)("h4",{id:"check_freeze_and_desorbs"},"check","_","freeze","_","and","_","desorbs"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def check_freeze_and_desorbs() -> None\n")),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"add_freeze_reactions()")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"add_desorb_reactions()")," automatically generate\nall desorption and freeze out reactions. However, user may want to change a species on freeze out\neg C+ becomes ",(0,i.kt)("inlineCode",{parentName:"p"},"C")," rather than ",(0,i.kt)("inlineCode",{parentName:"p"},"C"),"+. This function checks for that and updates species so they'll\nfreeze or desorb correctly when reactions are generated."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.add_freeze_reactions"}),(0,i.kt)("h4",{id:"add_freeze_reactions"},"add","_","freeze","_","reactions"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def add_freeze_reactions() -> None\n")),(0,i.kt)("p",null,"Save the user effort by automatically generating freeze out reactions"),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.add_desorb_reactions"}),(0,i.kt)("h4",{id:"add_desorb_reactions"},"add","_","desorb","_","reactions"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def add_desorb_reactions() -> None\n")),(0,i.kt)("p",null,"Save the user effort by automatically generating desorption reactions"),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.add_chemdes_reactions"}),(0,i.kt)("h4",{id:"add_chemdes_reactions"},"add","_","chemdes","_","reactions"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def add_chemdes_reactions() -> None\n")),(0,i.kt)("p",null,"We have the user list all Langmuir-Hinshelwood and Eley-Rideal\nreactions once. Then we duplicate so that the reaction branches\nwith products on grain and products desorbing."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.check_for_excited_species"}),(0,i.kt)("h4",{id:"check_for_excited_species"},"check","_","for","_","excited","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def check_for_excited_species() -> bool\n")),(0,i.kt)("p",null,"Check if there are any exicted species in the network, true if there are any."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.add_excited_surface_reactions"}),(0,i.kt)("h4",{id:"add_excited_surface_reactions"},"add","_","excited","_","surface","_","reactions"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def add_excited_surface_reactions() -> None\n")),(0,i.kt)("p",null,"All excited species will relax to the ground state if they do not react\nthe vibrational frequency of the species is used as a pseudo approximation of the rate coefficient\nWe assume all grain reactions have an excited variant. For example:\n",(0,i.kt)("inlineCode",{parentName:"p"},"A"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"B")," LH ",(0,i.kt)("inlineCode",{parentName:"p"},"C")," will have the variants:\n",(0,i.kt)("inlineCode",{parentName:"p"},"A"),(0,i.kt)("em",{parentName:"p"},", ",(0,i.kt)("inlineCode",{parentName:"em"},"B")," EXSOLID ",(0,i.kt)("inlineCode",{parentName:"em"},"C")," and ",(0,i.kt)("inlineCode",{parentName:"em"},"A"),", ",(0,i.kt)("inlineCode",{parentName:"em"},"B"))," EXSOLID ",(0,i.kt)("inlineCode",{parentName:"p"},"C"),"\nIf only one of the reactants in the base reaction has an excited counterpart then\nonly one excited version of that reaction is created."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.add_bulk_reactions"}),(0,i.kt)("h4",{id:"add_bulk_reactions"},"add","_","bulk","_","reactions"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def add_bulk_reactions() -> None\n")),(0,i.kt)("p",null,"We assume any reaction that happens on the surface of grains can also happen\nin the bulk (just more slowly due to binding energy). The user therefore only\nlists surface reactions in their input reaction file and we duplicate here."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.freeze_checks"}),(0,i.kt)("h4",{id:"freeze_checks"},"freeze","_","checks"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def freeze_checks() -> None\n")),(0,i.kt)("p",null,"Check that every species freezes out and alert the user if a\nspecies freezes out via mutiple routes. This isn't necessarily an\nerror so best just print."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.duplicate_checks"}),(0,i.kt)("h4",{id:"duplicate_checks"},"duplicate","_","checks"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def duplicate_checks() -> None\n")),(0,i.kt)("p",null,"Check reaction network to make sure no reaction appears twice unless\nthey have different temperature ranges."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.index_important_reactions"}),(0,i.kt)("h4",{id:"index_important_reactions"},"index","_","important","_","reactions"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def index_important_reactions() -> None\n")),(0,i.kt)("p",null,"We have a whole bunch of important reactions and we want to store\ntheir indices. We find them all here."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.index_important_species"}),(0,i.kt)("h4",{id:"index_important_species"},"index","_","important","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def index_important_species() -> None\n")),(0,i.kt)("p",null,"Obtain the indices for all the important reactions."),(0,i.kt)("a",{id:"uclchem.makerates.network.LoadedNetwork"}),(0,i.kt)("h2",{id:"loadednetwork-objects"},"LoadedNetwork Objects"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"class LoadedNetwork(Network)\n")),(0,i.kt)("p",null,"Network version that skips all steps and just loads two lists. This is another\nhere be dragons version, use this with exceeding caution as no checks are performed for you."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Network")," ",(0,i.kt)("strong",{parentName:"li"},"type")," - ",(0,i.kt)("em",{parentName:"li"},"description"))),(0,i.kt)("a",{id:"uclchem.makerates.network.LoadedNetwork.__init__"}),(0,i.kt)("h4",{id:"__init__-2"},"_","_","init","_","_"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def __init__(species: list[Species], reactions: list[Reaction]) -> None\n")),(0,i.kt)("p",null,"A loader of networks without any checks."),(0,i.kt)("p",null,"Here be dragons."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species")," ",(0,i.kt)("em",{parentName:"li"},"list","[Species]")," - A list of species objects"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reactions")," ",(0,i.kt)("em",{parentName:"li"},"list","[Reaction]")," - A list of reaction objects.")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions"}),(0,i.kt)("h1",{id:"uclchemmakeratesio_functions"},"uclchem.makerates.io","_","functions"),(0,i.kt)("p",null,"Functions to read in the species and reaction files and write output files"),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.read_species_file"}),(0,i.kt)("h4",{id:"read_species_file"},"read","_","species","_","file"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def read_species_file(file_name) -> list[Species]\n")),(0,i.kt)("p",null,"Reads in a Makerates species file"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"fileName")," ",(0,i.kt)("em",{parentName:"li"},"str")," - path to file containing the species list")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"list")," - List of Species objects")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.read_reaction_file"}),(0,i.kt)("h4",{id:"read_reaction_file"},"read","_","reaction","_","file"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def read_reaction_file(file_name: str, species_list: list[Species],\n ftype: str) -> tuple[list[Reaction], list[Reaction]]\n")),(0,i.kt)("p",null,"Reads in a reaction file of any kind (user, UMIST, KIDA)\nproduces a list of reactions for the network, filtered by species_list"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"file_name")," ",(0,i.kt)("em",{parentName:"li"},"str")," - A file name for the reaction file to read."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_list")," ",(0,i.kt)("em",{parentName:"li"},"list","[Species]")," - A list of chemical species to be used in the reading."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"ftype")," ",(0,i.kt)("em",{parentName:"li"},"str")," - 'UMIST','UCL', or 'KIDA' to describe format of file_name")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"list,list")," - Lists of kept and dropped reactions.")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.check_reaction"}),(0,i.kt)("h4",{id:"check_reaction"},"check","_","reaction"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def check_reaction(reaction_row, keep_list) -> bool\n")),(0,i.kt)("p",null,"Checks a row parsed from a reaction file and checks it only contains acceptable things.\nIt checks if all species in the reaction are present, and adds the temperature range is none is specified."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction_row")," ",(0,i.kt)("em",{parentName:"li"},"list")," - List parsed from a reaction file and formatted to be able to called Reaction(reaction_row)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"keep_list")," ",(0,i.kt)("em",{parentName:"li"},"list")," - list of elements that are acceptable in the reactant or product bits of row")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - Whether the row contains acceptable entries.")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.kida_parser"}),(0,i.kt)("h4",{id:"kida_parser"},"kida","_","parser"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def kida_parser(kida_file)\n")),(0,i.kt)("p",null,"KIDA used a fixed format file so we read each line in the chunks they specify\nand use python built in classes to convert to the necessary types.\nNOTE KIDA defines some of the same reaction types to UMIST but with different names\nand coefficients. We fix that by converting them here."),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.output_drops"}),(0,i.kt)("h4",{id:"output_drops"},"output","_","drops"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def output_drops(dropped_reactions: list[Reaction],\n output_dir: str,\n write_files=True)\n")),(0,i.kt)("p",null,"Writes the reactions that are dropped to disk/logs"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"dropped_reactions")," ",(0,i.kt)("em",{parentName:"li"},"list","[Reaction]")," - The reactions that were dropped"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"output_dir")," ",(0,i.kt)("em",{parentName:"li"},"str")," - The directory that dropped_reactions.csv will be written to."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"write_files")," ",(0,i.kt)("em",{parentName:"li"},"bool, optional")," - Whether or not to write the file. Defaults to True.")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.write_outputs"}),(0,i.kt)("h4",{id:"write_outputs"},"write","_","outputs"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def write_outputs(network: Network, output_dir: str = None) -> None\n")),(0,i.kt)("p",null,"Write the ODE and Network fortran source files to the fortran source."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"network")," ",(0,i.kt)("em",{parentName:"li"},"network")," - The makerates Network class"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"output_dir")," ",(0,i.kt)("em",{parentName:"li"},"bool")," - The directory to write to.")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.write_species"}),(0,i.kt)("h4",{id:"write_species"},"write","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def write_species(file_name: str, species_list: list[Species]) -> None\n")),(0,i.kt)("p",null,"Write the human readable species file. Note UCLCHEM doesn't use this file."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"fileName")," ",(0,i.kt)("em",{parentName:"li"},"str")," - path to output file"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_list")," ",(0,i.kt)("em",{parentName:"li"},"list")," - List of species objects for network")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.write_reactions"}),(0,i.kt)("h4",{id:"write_reactions"},"write","_","reactions"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def write_reactions(fileName, reaction_list) -> None\n")),(0,i.kt)("p",null,"Write the human readable reaction file. Note UCLCHEM doesn't use this file."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"fileName")," ",(0,i.kt)("em",{parentName:"li"},"str")," - path to output file"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction_list")," ",(0,i.kt)("em",{parentName:"li"},"list")," - List of reaction objects for network")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.write_odes_f90"}),(0,i.kt)("h4",{id:"write_odes_f90"},"write","_","odes","_","f90"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def write_odes_f90(file_name, species_list, reaction_list,\n three_phase) -> None\n")),(0,i.kt)("p",null,"Write the ODEs in Modern Fortran. This is an actual code file."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"file_name")," ",(0,i.kt)("em",{parentName:"li"},"str")," - Path to file where code will be written"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_list")," ",(0,i.kt)("em",{parentName:"li"},"list")," - List of species describing network"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction_list")," ",(0,i.kt)("em",{parentName:"li"},"list")," - List of reactions describing network"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"three_phase")," ",(0,i.kt)("em",{parentName:"li"},"bool")," - Flag for whether this is a 3 phase network")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.write_jacobian"}),(0,i.kt)("h4",{id:"write_jacobian"},"write","_","jacobian"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def write_jacobian(file_name, species_list) -> None\n")),(0,i.kt)("p",null,"Write jacobian in Modern Fortran. This has never improved UCLCHEM's speed\nand so is not used in the code as it stands.\nCurrent only works for three phase model."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"file_name")," ",(0,i.kt)("em",{parentName:"li"},"str")," - Path to jacobian file"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_list")," ",(0,i.kt)("em",{parentName:"li"},"species_list")," - List of species AFTER being processed by build_ode_string")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.build_ode_string"}),(0,i.kt)("h4",{id:"build_ode_string"},"build","_","ode","_","string"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def build_ode_string(species_list, reaction_list, three_phase) -> str\n")),(0,i.kt)("p",null,"A long, complex function that does the messy work of creating the actual ODE\ncode to calculate the rate of change of each species. Test any change to this code\nthoroughly because ODE mistakes are very hard to spot."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_list")," ",(0,i.kt)("em",{parentName:"li"},"list")," - List of species in network"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction_list")," ",(0,i.kt)("em",{parentName:"li"},"list")," - List of reactions in network"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"three_phase")," ",(0,i.kt)("em",{parentName:"li"},"bool")," - Bool denoting if this is a three phase network")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"str")," - One long string containing the entire ODE fortran code.")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.species_ode_string"}),(0,i.kt)("h4",{id:"species_ode_string"},"species","_","ode","_","string"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def species_ode_string(n: int, species: Species) -> str\n")),(0,i.kt)("p",null,"Build the string of Fortran code for a species once it's loss and gains\nstrings have been produced."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"n")," ",(0,i.kt)("em",{parentName:"li"},"int")," - Index of species in python format"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species")," ",(0,i.kt)("em",{parentName:"li"},"Species")," - species object")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"str")," - the fortran code for the rate of change of the species")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.write_evap_lists"}),(0,i.kt)("h4",{id:"write_evap_lists"},"write","_","evap","_","lists"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def write_evap_lists(network_file, species_list: list[Species]) -> None\n")),(0,i.kt)("p",null,"Two phase networks mimic episodic thermal desorption seen in lab (see Viti et al. 2004)\nby desorbing fixed fractions of material at specific temperatures. Three phase networks just\nuse binding energy and that fact we set binding energies in bulk to water by default.\nThis function writes all necessary arrays to the network file so these processes work."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"network_file")," ",(0,i.kt)("em",{parentName:"li"},"file")," - Open file object to which the network code is being written"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_list")," ",(0,i.kt)("em",{parentName:"li"},"list","[Species]")," - List of species in network")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.truncate_line"}),(0,i.kt)("h4",{id:"truncate_line"},"truncate","_","line"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def truncate_line(input_string, lineLength=72) -> str\n")),(0,i.kt)("p",null,"Take a string and adds line endings at regular intervals\nkeeps us from overshooting fortran's line limits and, frankly,\nmakes for nicer ode.f90 even if human readability isn't very impotant"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"input_string")," ",(0,i.kt)("em",{parentName:"li"},"str")," - Line of code to be truncated"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"lineLength")," ",(0,i.kt)("em",{parentName:"li"},"int, optional")," - rough line length. Defaults to 72.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"str")," - Code string with line endings at regular intervals")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.write_network_file"}),(0,i.kt)("h4",{id:"write_network_file"},"write","_","network","_","file"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def write_network_file(file_name, network)\n")),(0,i.kt)("p",null,"Write the Fortran code file that contains all network information for UCLCHEM.\nThis includes lists of reactants, products, binding energies, formationEnthalpies\nand so on."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"file_name")," ",(0,i.kt)("em",{parentName:"li"},"str")," - The file name where the code will be written."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"network")," ",(0,i.kt)("em",{parentName:"li"},"Network")," - A Network object built from lists of species and reactions.")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.find_reactant"}),(0,i.kt)("h4",{id:"find_reactant"},"find","_","reactant"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def find_reactant(species_list: list[str], reactant: str) -> int\n")),(0,i.kt)("p",null,"Try to find a reactant in the species list"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_list")," ",(0,i.kt)("em",{parentName:"li"},"list","[str]")," - A list of species in the network"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reactant")," ",(0,i.kt)("em",{parentName:"li"},"str")," - The reactant to be indexed")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"int")," - The index of the reactant, if it is not found, 9999")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.get_desorption_freeze_partners"}),(0,i.kt)("h4",{id:"get_desorption_freeze_partners"},"get","_","desorption","_","freeze","_","partners"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_desorption_freeze_partners(reaction_list) -> list[Reaction]\n")),(0,i.kt)("p",null,"Every desorption has a corresponding freeze out eg desorption of ",(0,i.kt)("inlineCode",{parentName:"p"},"CO")," and freeze of CO.\nThis find the corresponding freeze out for every desorb so that when desorb>>freeze\nwe can turn off freeze out in UCLCHEM."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction_list")," ",(0,i.kt)("em",{parentName:"li"},"list")," - Reactions in network")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"list")," - list of indices of freeze out reactions matching order of desorptions.")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.array_to_string"}),(0,i.kt)("h4",{id:"array_to_string"},"array","_","to","_","string"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},'def array_to_string(name, array, type="int", parameter=True) -> str\n')),(0,i.kt)("p",null,"Write an array to fortran source code"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"name")," ",(0,i.kt)("em",{parentName:"li"},"str")," - Variable name of array in Fortran"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"array")," ",(0,i.kt)("em",{parentName:"li"},"iterable")," - List of values of array"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"type")," ",(0,i.kt)("em",{parentName:"li"},"str, optional"),' - The array\'s type. Must be one of "int","float", or "string".Defaults to "int".'),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"parameter")," ",(0,i.kt)("em",{parentName:"li"},"bool, optional")," - Whether the array is a Fortran PARAMETER (constant). Defaults to True.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Raises"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"ValueError"),' - Raises an error if type isn\'t "int","float", or "string"')),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"str")," - String containing the Fortran code to declare this array.")),(0,i.kt)("a",{id:"uclchem.makerates.reaction"}),(0,i.kt)("h1",{id:"uclchemmakeratesreaction"},"uclchem.makerates.reaction"),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction"}),(0,i.kt)("h2",{id:"reaction-objects"},"Reaction Objects"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"class Reaction()\n")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.get_reactants"}),(0,i.kt)("h4",{id:"get_reactants"},"get","_","reactants"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_reactants() -> list[str]\n")),(0,i.kt)("p",null,"Get the four reactants present in the reaction, padded with NAN for nonexistent"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"list[str]")," - The four reactants names")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.get_sorted_reactants"}),(0,i.kt)("h4",{id:"get_sorted_reactants"},"get","_","sorted","_","reactants"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_sorted_reactants() -> list[str]\n")),(0,i.kt)("p",null,"Get the four reactants present in the reaction, sorted for fast comparisons"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reactants")," ",(0,i.kt)("em",{parentName:"li"},"list","[str]")," - The four sorted reactant names")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.set_reactants"}),(0,i.kt)("h4",{id:"set_reactants"},"set","_","reactants"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_reactants(reactants: list[str]) -> None\n")),(0,i.kt)("p",null,"Set the four reactants present in the reaction, padded with NAN for nonexistent"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reactants")," ",(0,i.kt)("em",{parentName:"li"},"list","[str]")," - The four reactants names")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.get_products"}),(0,i.kt)("h4",{id:"get_products"},"get","_","products"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_products() -> list[str]\n")),(0,i.kt)("p",null,"Get the four products present in the reaction, padded with NAN for nonexistent"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reactants")," ",(0,i.kt)("em",{parentName:"li"},"list","[str]")," - The four products names")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.get_sorted_products"}),(0,i.kt)("h4",{id:"get_sorted_products"},"get","_","sorted","_","products"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_sorted_products() -> list[str]\n")),(0,i.kt)("p",null,"Get the four products present in the reaction, sorted for fast comparisons"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"products")," ",(0,i.kt)("em",{parentName:"li"},"list","[str]")," - The four sorted products names")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.set_products"}),(0,i.kt)("h4",{id:"set_products"},"set","_","products"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_products(products: list[str]) -> None\n")),(0,i.kt)("p",null,"Set the four products present in the reaction, padded with NAN for nonexistent"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"products")," ",(0,i.kt)("em",{parentName:"li"},"list","[str]")," - The four products names")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.get_alpha"}),(0,i.kt)("h4",{id:"get_alpha"},"get","_","alpha"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_alpha() -> float\n")),(0,i.kt)("p",null,"Get the alpha parameter from the Kooij-Arrhenius equation"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"float")," - the alpha parameter of the reaction")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.set_alpha"}),(0,i.kt)("h4",{id:"set_alpha"},"set","_","alpha"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_alpha(alpha: float) -> None\n")),(0,i.kt)("p",null,"Set the alpha parameter from the Kooij-Arrhenius equation"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"alpha")," ",(0,i.kt)("em",{parentName:"li"},"float")," - the alpha parameter of the reaction")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.get_beta"}),(0,i.kt)("h4",{id:"get_beta"},"get","_","beta"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_beta() -> float\n")),(0,i.kt)("p",null,"Get the beta parameter from the Kooij-Arrhenius equation"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"float")," - the beta parameter of the reaction")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.set_beta"}),(0,i.kt)("h4",{id:"set_beta"},"set","_","beta"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_beta(beta: float) -> None\n")),(0,i.kt)("p",null,"Set the beta parameter from the Kooij-Arrhenius equation"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"beta")," ",(0,i.kt)("em",{parentName:"li"},"float")," - the beta parameter of the reaction")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.set_gamma"}),(0,i.kt)("h4",{id:"set_gamma"},"set","_","gamma"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_gamma(gamma: float) -> None\n")),(0,i.kt)("p",null,"Set the gamma parameter from the Kooij-Arrhenius equation"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"gamma")," ",(0,i.kt)("em",{parentName:"li"},"float")," - the gamma parameter of the reaction")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.get_gamma"}),(0,i.kt)("h4",{id:"get_gamma"},"get","_","gamma"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_gamma() -> float\n")),(0,i.kt)("p",null,"Get the gamma parameter from the Kooij-Arrhenius equation"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"float")," - the gamma parameter of the reaction")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.set_templow"}),(0,i.kt)("h4",{id:"set_templow"},"set","_","templow"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_templow(templow: float) -> None\n")),(0,i.kt)("p",null,"Set the lower temperature boundary of the reaction in Kelvin"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"templow")," ",(0,i.kt)("em",{parentName:"li"},"float")," - the lower temperature boundary")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.get_templow"}),(0,i.kt)("h4",{id:"get_templow"},"get","_","templow"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_templow() -> float\n")),(0,i.kt)("p",null,"Get the lower temperature boundary of the reaction in Kelvin"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"float")," - the lower temperature boundary")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.set_temphigh"}),(0,i.kt)("h4",{id:"set_temphigh"},"set","_","temphigh"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_temphigh(temphigh: float) -> None\n")),(0,i.kt)("p",null,"Set the higher temperature boundary of the reaction in Kelvin"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"templow")," ",(0,i.kt)("em",{parentName:"li"},"float")," - the higher temperature boundary")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.get_temphigh"}),(0,i.kt)("h4",{id:"get_temphigh"},"get","_","temphigh"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_temphigh() -> float\n")),(0,i.kt)("p",null,"Get the higher temperature boundary of the reaction in Kelvin"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"float")," - the higher temperature boundary")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.NANCheck"}),(0,i.kt)("h4",{id:"nancheck"},"NANCheck"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def NANCheck(a)\n")),(0,i.kt)("p",null,"Convert any Falsy statement to a NAN string"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"a")," - thing to check for falsiness")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - input a if truthy, otherwise NAN")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.get_reaction_type"}),(0,i.kt)("h4",{id:"get_reaction_type"},"get","_","reaction","_","type"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_reaction_type() -> str\n")),(0,i.kt)("p",null,"Get the type of a reaction from the reactants\nFirst check the third reactant for a reaction type, then the second. If there are none\nin there, it will be regarded as a two body reaction."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," str:"),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.convert_to_bulk"}),(0,i.kt)("h4",{id:"convert_to_bulk"},"convert","_","to","_","bulk"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def convert_to_bulk() -> None\n")),(0,i.kt)("p",null,"Convert the surface species to bulk species in place for this reaction."),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.__eq__"}),(0,i.kt)("h4",{id:"__eq__-1"},"_","_","eq","_","_"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def __eq__(other) -> bool\n")),(0,i.kt)("p",null,"Check for equality against another reaction based on the products and reactants.\nNote that it does not check for the temperature ranges that the reactions might have!\nThe Reaction.check_temperature_collision can be used for this purpose."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"other")," - Another reaction set.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - equality")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.check_temperature_collision"}),(0,i.kt)("h4",{id:"check_temperature_collision"},"check","_","temperature","_","collision"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def check_temperature_collision(other) -> bool\n")),(0,i.kt)("p",null,"Check if two reactions have overlapping temperature ranges, returning True means there is a collision."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"other")," - Another reaction")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Raises"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"NotImplementedError")," - Currently we can only compare against instantiated Reaction objects.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - Whether there is a collision (True), or not (False)")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.changes_surface_count"}),(0,i.kt)("h4",{id:"changes_surface_count"},"changes","_","surface","_","count"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def changes_surface_count()\n")),(0,i.kt)("p",null,"This checks whether a grain reaction changes number of particles on the surface\n2 reactants to 2 products won't but two reactants combining to one will."),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.changes_total_mantle"}),(0,i.kt)("h4",{id:"changes_total_mantle"},"changes","_","total","_","mantle"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def changes_total_mantle()\n")),(0,i.kt)("p",null,"Check if the total grains on the mantle are changed by the reaction."),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.generate_ode_bit"}),(0,i.kt)("h4",{id:"generate_ode_bit"},"generate","_","ode","_","bit"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def generate_ode_bit(i: int, species_names: list, three_phase: bool)\n")),(0,i.kt)("p",null,"Every reaction contributes a fixed rate of change to whatever species it\naffects. We create the string of fortran code describing that change here."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"i")," ",(0,i.kt)("em",{parentName:"li"},"int")," - index of reaction in network in python format (counting from 0)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_names")," ",(0,i.kt)("em",{parentName:"li"},"list")," - List of species names so we can find index of reactants in species list"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"three_phase")," ",(0,i.kt)("em",{parentName:"li"},"bool")," - Bool indicating whether this is three phase network")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0a312c56.032abff2.js b/assets/js/0a312c56.032abff2.js new file mode 100644 index 00000000..25f0ff3d --- /dev/null +++ b/assets/js/0a312c56.032abff2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1089],{3905:(a,e,t)=>{t.d(e,{Zo:()=>o,kt:()=>N});var s=t(7294);function n(a,e,t){return e in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function m(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.push.apply(t,s)}return t}function p(a){for(var e=1;e=0||(n[t]=a[t]);return n}(a,e);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(a);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(a,t)&&(n[t]=a[t])}return n}var l=s.createContext({}),i=function(a){var e=s.useContext(l),t=e;return a&&(t="function"==typeof a?a(e):p(p({},e),a)),t},o=function(a){var e=i(a.components);return s.createElement(l.Provider,{value:e},a.children)},c={inlineCode:"code",wrapper:function(a){var e=a.children;return s.createElement(s.Fragment,{},e)}},h=s.forwardRef((function(a,e){var t=a.components,n=a.mdxType,m=a.originalType,l=a.parentName,o=r(a,["components","mdxType","originalType","parentName"]),h=i(t),N=n,k=h["".concat(l,".").concat(N)]||h[N]||c[N]||m;return t?s.createElement(k,p(p({ref:e},o),{},{components:t})):s.createElement(k,p({ref:e},o))}));function N(a,e){var t=arguments,n=e&&e.mdxType;if("string"==typeof a||n){var m=t.length,p=new Array(m);p[0]=h;var r={};for(var l in e)hasOwnProperty.call(e,l)&&(r[l]=e[l]);r.originalType=a,r.mdxType="string"==typeof a?a:n,p[1]=r;for(var i=2;i{t.r(e),t.d(e,{assets:()=>o,contentTitle:()=>l,default:()=>N,frontMatter:()=>r,metadata:()=>i,toc:()=>c});var s=t(7462),n=t(3366),m=(t(7294),t(3905)),p=["components"],r={},l="Advanced Physical Modelling",i={unversionedId:"modelling_objects",id:"version-v3.1.0/modelling_objects",title:"Advanced Physical Modelling",description:"In the previous tutorial, we simply modelled the chemistry of a static cloud for 1 Myr. This is unlikely to meet everybody's modelling needs and UCLCHEM is capable of modelling much more complex environments such as hot cores and shocks. In this tutorial, we model both a hot core and a shock to explore how these models work and to demonstrate the workflow that the UCLCHEM team normally follow.",source:"@site/versioned_docs/version-v3.1.0/modelling_objects.md",sourceDirName:".",slug:"/modelling_objects",permalink:"/docs/v3.1.0/modelling_objects",draft:!1,tags:[],version:"v3.1.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{},sidebar:"docs",previous:{title:"Running Your First Models",permalink:"/docs/v3.1.0/first_model"},next:{title:"Running a Grid",permalink:"/docs/v3.1.0/running_a_grid"}},o={},c=[{value:"The Hot Core",id:"the-hot-core",level:2},{value:"Initial Conditions (Phase 1)",id:"initial-conditions-phase-1",level:3},{value:"Running the Science Model (Phase 2)",id:"running-the-science-model-phase-2",level:3},{value:"Checking the Result",id:"checking-the-result",level:3},{value:"Shocks",id:"shocks",level:2},{value:"C-shock",id:"c-shock",level:3},{value:"J-shock",id:"j-shock",level:3}],h={toc:c};function N(a){var e=a.components,r=(0,n.Z)(a,p);return(0,m.kt)("wrapper",(0,s.Z)({},h,r,{components:e,mdxType:"MDXLayout"}),(0,m.kt)("h1",{id:"advanced-physical-modelling"},"Advanced Physical Modelling"),(0,m.kt)("p",null,"In the previous tutorial, we simply modelled the chemistry of a static cloud for 1 Myr. This is unlikely to meet everybody's modelling needs and UCLCHEM is capable of modelling much more complex environments such as hot cores and shocks. In this tutorial, we model both a hot core and a shock to explore how these models work and to demonstrate the workflow that the UCLCHEM team normally follow."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},"import uclchem\nimport matplotlib.pyplot as plt\n")),(0,m.kt)("h2",{id:"the-hot-core"},"The Hot Core"),(0,m.kt)("h3",{id:"initial-conditions-phase-1"},"Initial Conditions (Phase 1)"),(0,m.kt)("p",null,"UCLCHEM typically starts with the gas in atomic/ionic form with no molecules. However, this clearly is not appropriate when modelling an object such as a hot core. In these objects, the gas is already evolved and there should be molecules in the gas phase as well as ice mantles on the dust. To allow for this, one must provide some initial abundances to the model. There are many ways to do this but we typically chose to run a preliminary model to produce our abundances. In many UCLCHEM papers, we refer to the preliminary model as ",(0,m.kt)("em",{parentName:"p"},"phase 1")," and the science model as ",(0,m.kt)("em",{parentName:"p"},"phase 2"),". Phase 1 simply models a collapsing cloud and phase 2 models the object in question."),(0,m.kt)("p",null,"To do this, we will use ",(0,m.kt)("inlineCode",{parentName:"p"},"uclchem.model.cloud()")," to run a model where a cloud of gas collapses from a density of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"2")),(0,m.kt)("mi",{parentName:"mrow"},"c"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"m"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"3")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"10^2 cm^{-3}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"c"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"m"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))))))))))))," to our hot core density of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"6")),(0,m.kt)("mi",{parentName:"mrow"},"c"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"m"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"3")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"10^6 cm^{-3}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"6")))))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"c"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"m"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3"))))))))))))),", keeping all other parameters constant. During this collapse, chemistry will occur and we can assume the final abundances of this model will be reasonable starting abundances for the hot core. "),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'# set a parameter dictionary for cloud collapse model\nparam_dict = {\n "endAtFinalDensity": False,#stop at finalTime\n "freefall": True,#increase density in freefall\n "initialDens": 1e2, #starting density\n "finalDens":1e6, #final density\n "initialTemp": 10.0,#temperature of gas\n "finalTime": 6.0e6, #final time\n "rout":0.1, #radius of cloud in pc\n "baseAv":1.0, #visual extinction at cloud edge.\n "abundSaveFile": "../examples/test-output/startcollapse.dat",#save final abundances to file\n "outputFile":"../examples/test-output/phase1-full.dat"\n\n}\nresult = uclchem.model.cloud(param_dict=param_dict)\nprint(result)\n')),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"[1]\n")),(0,m.kt)("p",null,"With that done, we now have a file containing the final abundances of a cloud of gas after this collapse: ",(0,m.kt)("inlineCode",{parentName:"p"},'param_dict["abundSaveFile"]')," we can pass this to our hot core model to use those abundances as our initial abundances."),(0,m.kt)("h3",{id:"running-the-science-model-phase-2"},"Running the Science Model (Phase 2)"),(0,m.kt)("p",null,"We need to change just a few things in ",(0,m.kt)("inlineCode",{parentName:"p"},"param_dict")," to set up the hot core model. The key one is that UCLCHEM saves final abundances to ",(0,m.kt)("inlineCode",{parentName:"p"},"abundSaveFile")," but loads them from ",(0,m.kt)("inlineCode",{parentName:"p"},"abundLoadFile")," so we need to swap that key over to make the abundances we just produced our initial abundances. "),(0,m.kt)("p",null,"We also want to turn off freefall and change how long the model runs for."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'#change other bits of input to set up phase 2\nparam_dict["initialDens"]=1e6\nparam_dict["finalTime"]=1e6\nparam_dict["freefall"]=False\n\n#freeze out is completely overwhelmed by thermal desorption\n#so turning it off has no effect on abundances but speeds up integrator.\nparam_dict["freezeFactor"]=0.0\n\nparam_dict["abstol_factor"]=1e-18\nparam_dict["reltol"]=1e-12\n\n#pop is dangerous, it removes the original key so you can\'t rerun this cell.\nparam_dict["abundLoadFile"]=param_dict.pop("abundSaveFile") \nparam_dict["outputFile"]="../examples/test-output/phase2-full.dat"\n\nresult=uclchem.model.hot_core(temp_indx=3,max_temperature=300.0,param_dict=param_dict)\n')),(0,m.kt)("p",null,"Note that we've changed made two changes to the parameters here which aren't strictly necessary but can be helpful in certain situations."),(0,m.kt)("p",null,"Since the gas temperature increases throughout a hot core model, freeze out is much slower than thermal desorption for all but the first few time steps. Turning it off doesn't affect the abundances but will speed up the solution."),(0,m.kt)("p",null,"We also change abstol and reltol here, largely to demonstrate their use. They control the integrator accuracy and whilst making them smaller does slow down successful runs, it can make runs complete that stall completely otherwise or give correct solutions where lower tolerances allow issues like element conservation failure to sneak in. If your code does not complete or element conservation fails, you can change them."),(0,m.kt)("h3",{id:"checking-the-result"},"Checking the Result"),(0,m.kt)("p",null,"With a successful run, we can check the output. We first load the file and check the abundance conservation, then we can plot it up."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'phase2_df=uclchem.analysis.read_output_file("../examples/test-output/phase2-full.dat")\nuclchem.analysis.check_element_conservation(phase2_df)\n')),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"{'H': '0.002%', 'N': '0.000%', 'C': '0.000%', 'O': '0.000%'}\n")),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'species=["CO","H2O","CH3OH","#CO","#H2O","#CH3OH","@H2O","@CO","@CH3OH"]\n\nfig,[ax,ax2]=plt.subplots(1,2,figsize=(16,9))\nax=uclchem.analysis.plot_species(ax,phase2_df,species)\nsettings=ax.set(yscale="log",xlim=(1e2,1e6),ylim=(1e-10,1e-2),\n xlabel="Time / years", \n ylabel="Fractional Abundance",xscale="log")\n\nax2.plot(phase2_df["Time"],phase2_df["Density"],color="black")\nax2.set(xscale="log")\nax3=ax2.twinx()\nax3.plot(phase2_df["Time"],phase2_df["gasTemp"],color="red")\nax2.set(xlabel="Time / year",ylabel="Density")\nax3.set(ylabel="Temperature",facecolor="red",xlim=(1e2,1e6))\nax3.tick_params(axis=\'y\', colors=\'red\')\n')),(0,m.kt)("p",null,(0,m.kt)("img",{alt:"png",src:t(3510).Z,width:"997",height:"549"})),(0,m.kt)("p",null,"Here, we see the value of running a collapse phase before the science run. Having run a collapse, we start this model with well developed ices and having material in the surface and bulk allows us to properly model the effect of warm up in a hot core. For example, the @CO abundance is ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mo",{parentName:"mrow"},"\u223c"),(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"4")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\sim10^{-4}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.36687em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"\u223c"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"4")))))))))))))," and #CO is ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mo",{parentName:"mrow"},"\u223c"),(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"6")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\sim10^{-6}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.36687em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"\u223c"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"6"))))))))))))),". As the gas warms to around 30K, the #CO abundance drops drastically as CO's binding energy is such that it is efficiently desorbed from the surface at this temperature. However, the rest of the CO is trapped in the bulk, surrounded by more strongly bound H2O molecules. Thus, the @CO abundance stays high until the gas reaches around 130K, when the H2O molecules are released along with the entire bulk."),(0,m.kt)("h2",{id:"shocks"},"Shocks"),(0,m.kt)("p",null,"Essentially the same process should be followed for shocks. Let's run a C-type and J-type shock through a gas of density ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"4")),(0,m.kt)("mi",{parentName:"mrow"},"c"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"m"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"3")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"10^4 cm^{-3}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"4")))))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"c"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"m"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3"))))))))))))),". Again, we first run a simple cloud model to obtain some reasonable starting abundances, then we can run the shocks."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'# set a parameter dictionary for phase 1 collapse model\n\nparam_dict = {\n "endAtFinalDensity": False,#stop at finalTime\n "freefall": True,#increase density in freefall\n "initialDens": 1e2, #starting density\n "finalDens":1e4, #final density\n "initialTemp": 10.0,#temperature of gas\n "finalTime": 6.0e6, #final time\n "rout":0.1, #radius of cloud in pc\n "baseAv":1.0, #visual extinction at cloud edge.\n "abundSaveFile": "../examples/test-output/shockstart.dat",\n}\nresult = uclchem.model.cloud(param_dict=param_dict)\n')),(0,m.kt)("h3",{id:"c-shock"},"C-shock"),(0,m.kt)("p",null,"We'll first run a c-shock. We'll run a 40 km s ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"1")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-1}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1")))))))))))))," shock through a gas of density ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"4"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"10^4")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"4"))))))))))))," cm ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"3")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-3}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3"))))))))))))),", using the abundances we just produced. Note that c-shock is the only model which returns an additional output in its result list. Not only is the first element the success flag indicating whether UCLCHEM completed, the second element is the dissipation time of the shock. We'll use that time to make our plots look nicer, cutting to a reasonable time. You can also obtain it from ",(0,m.kt)("inlineCode",{parentName:"p"},"uclchem.utils.cshock_dissipation_time()"),"."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'#change other bits of input to set up phase 2\nparam_dict["initialDens"]=1e4\nparam_dict["finalTime"]=1e6\nif "abundSaveFile" in param_dict:\n param_dict.pop("abundSaveFile")\nparam_dict["abundLoadFile"]="../examples/test-output/shockstart.dat"\nparam_dict["outputFile"]="../examples/test-output/cshock.dat"\n\n\nresult=uclchem.model.cshock(shock_vel=40,param_dict=param_dict)\nresult,dissipation_time=result\n')),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"}," Cannot have freefall on during cshock\n setting freefall=0 and continuing\n")),(0,m.kt)("p",null,"The code completes fine. We do get a couple of warnings though. First, we're informed that ",(0,m.kt)("inlineCode",{parentName:"p"},"freefall")," must be set to False for the C-shock model. Then we get a few integrator warnings. These are not important and can be ignored as long as the element conservation looks ok. However, it is an indication that the integrator did struggle with these ODEs under these conditions."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'phase2_df=uclchem.analysis.read_output_file("../examples/test-output/cshock.dat")\nuclchem.analysis.check_element_conservation(phase2_df)\n')),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"{'H': '0.005%', 'N': '1.167%', 'C': '1.394%', 'O': '1.326%'}\n")),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'species=["CO","H2O","CH3OH","NH3","$CO","$H2O","$CH3OH","$NH3"]\n\nfig,[ax,ax2]=plt.subplots(1,2,figsize=(16,9))\nax=uclchem.analysis.plot_species(ax,phase2_df,species)\nsettings=ax.set(yscale="log",xlim=(1,20*dissipation_time),ylim=(1e-10,1e-2),\n xlabel="Time / years", \n ylabel="Fractional Abundance",xscale="log")\n\nax2.plot(phase2_df["Time"],phase2_df["Density"],color="black")\nax2.set(xscale="log")\nax3=ax2.twinx()\nax3.plot(phase2_df["Time"],phase2_df["gasTemp"],color="red")\nax2.set(xlabel="Time / year",ylabel="Density")\nax3.set(ylabel="Temperature",facecolor="red",xlim=(1,20*dissipation_time))\nax3.tick_params(axis=\'y\', colors=\'red\')\n')),(0,m.kt)("p",null,(0,m.kt)("img",{alt:"png",src:t(8014).Z,width:"1003",height:"544"})),(0,m.kt)("h3",{id:"j-shock"},"J-shock"),(0,m.kt)("p",null,"Running a j-shock is a simple case of changing function. We'll run a 10 km s ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"1")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-1}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1")))))))))))))," shock through a gas of density ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"3"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"10^3")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3"))))))))))))," cm ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"3")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-3}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))))))))))))," gas this time. Note that nothing stops us using the intial abundances we produced for the c-shock. UCLCHEM will not check that the initial density matches the density of the ",(0,m.kt)("inlineCode",{parentName:"p"},"abundLoadFile"),". It may not always be a good idea to do this but we should remember the intial abundances really are just a rough approximation."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'param_dict["initialDens"]=1e3\nparam_dict["freefall"]=False #lets remember to turn it off this time\nparam_dict["reltol"]=1e-12\n\nshock_vel=10.0\n\nif "abundSaveFile" in param_dict:\n param_dict.pop("abundSaveFile")\nparam_dict["abundLoadFile"]="../examples/test-output/shockstart.dat"\nparam_dict["outputFile"]="../examples/test-output/jshock.dat"\n\n\nresult=uclchem.model.jshock(shock_vel=shock_vel,param_dict=param_dict)\n')),(0,m.kt)("p",null,"This time, we've turned off the freefall option and made reltol a little more stringent. The j-shock ends up running a bit slower but we get no warnings on this run."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'phase2_df=uclchem.analysis.read_output_file(param_dict["outputFile"])\nuclchem.analysis.check_element_conservation(phase2_df)\n')),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"{'H': '0.003%', 'N': '0.000%', 'C': '0.000%', 'O': '0.000%'}\n")),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'species=["CO","H2O","CH3OH","NH3","$CO","$H2O","$CH3OH","$NH3"]\n\nfig,[ax,ax2]=plt.subplots(1,2,figsize=(16,9))\nax=uclchem.analysis.plot_species(ax,phase2_df,species)\nsettings=ax.set(yscale="log",xlim=(1e-7,1e6),ylim=(1e-10,1e-2),\n xlabel="Time / years", \n ylabel="Fractional Abundance",xscale="log")\n\nax2.plot(phase2_df["Time"],phase2_df["Density"],color="black")\nax2.set(xscale="log",yscale="log")\nax3=ax2.twinx()\nax3.plot(phase2_df["Time"],phase2_df["gasTemp"],color="red")\nax2.set(xlabel="Time / year",ylabel="Density")\nax3.set(ylabel="Temperature",facecolor="red",xlim=(1e-7,1e6))\nax3.tick_params(axis=\'y\', colors=\'red\')\n')),(0,m.kt)("p",null,(0,m.kt)("img",{alt:"png",src:t(580).Z,width:"1003",height:"544"})),(0,m.kt)("p",null,"That's everything! We've run various science models using reasonable starting abundances that we produced by running a simple UCLCHEM model beforehand. One benefit of this method is that the abundances are consistent with the network. If we start with arbitrary, perhaps observationally motivated, abundances, it would be possible to initiate the model in a state our network could never produce. "),(0,m.kt)("p",null,"However, one should be aware of the limitations of this method. A freefall collapse from low density to high is not really how a molecular cloud forms and so the abundances are only approximately similar to values they'd truly have in a real cloud. Testing whether your results are sensitive to things like the time you run the preliminary for or the exact density is a good way to make sure these approximations are not problematic."),(0,m.kt)("p",null,"Bear in mind that you can use ",(0,m.kt)("inlineCode",{parentName:"p"},"abundSaveFile")," and ",(0,m.kt)("inlineCode",{parentName:"p"},"abundLoadFile")," in the same model run. This lets you chain model runs together. For example, you could run a c-shock from a cloud model as we did here and then a j-shock with the c-shock's abundances as the initial abundances."))}N.isMDXComponent=!0},8014:(a,e,t)=>{t.d(e,{Z:()=>s});const s=t.p+"assets/images/modelling_objects_16_0-9cbaa39ecfd8914850efea6f9894f3c9.png"},580:(a,e,t)=>{t.d(e,{Z:()=>s});const s=t.p+"assets/images/modelling_objects_21_0-9d690606580c74f3f2490e2e8b1ce4b4.png"},3510:(a,e,t)=>{t.d(e,{Z:()=>s});const s=t.p+"assets/images/modelling_objects_8_0-cb8bd1ad21dbba5c26281d2a988b2cfa.png"}}]); \ No newline at end of file diff --git a/assets/js/0a312c56.3ad1c3c5.js b/assets/js/0a312c56.3ad1c3c5.js deleted file mode 100644 index fe4a40ef..00000000 --- a/assets/js/0a312c56.3ad1c3c5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1089],{3905:(a,e,t)=>{t.d(e,{Zo:()=>o,kt:()=>N});var s=t(7294);function n(a,e,t){return e in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function m(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.push.apply(t,s)}return t}function p(a){for(var e=1;e=0||(n[t]=a[t]);return n}(a,e);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(a);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(a,t)&&(n[t]=a[t])}return n}var l=s.createContext({}),i=function(a){var e=s.useContext(l),t=e;return a&&(t="function"==typeof a?a(e):p(p({},e),a)),t},o=function(a){var e=i(a.components);return s.createElement(l.Provider,{value:e},a.children)},c={inlineCode:"code",wrapper:function(a){var e=a.children;return s.createElement(s.Fragment,{},e)}},h=s.forwardRef((function(a,e){var t=a.components,n=a.mdxType,m=a.originalType,l=a.parentName,o=r(a,["components","mdxType","originalType","parentName"]),h=i(t),N=n,k=h["".concat(l,".").concat(N)]||h[N]||c[N]||m;return t?s.createElement(k,p(p({ref:e},o),{},{components:t})):s.createElement(k,p({ref:e},o))}));function N(a,e){var t=arguments,n=e&&e.mdxType;if("string"==typeof a||n){var m=t.length,p=new Array(m);p[0]=h;var r={};for(var l in e)hasOwnProperty.call(e,l)&&(r[l]=e[l]);r.originalType=a,r.mdxType="string"==typeof a?a:n,p[1]=r;for(var i=2;i{t.r(e),t.d(e,{assets:()=>o,contentTitle:()=>l,default:()=>N,frontMatter:()=>r,metadata:()=>i,toc:()=>c});var s=t(7462),n=t(3366),m=(t(7294),t(3905)),p=["components"],r={},l="Advanced Physical Modelling",i={unversionedId:"modelling_objects",id:"version-v3.1.0/modelling_objects",title:"Advanced Physical Modelling",description:"In the previous tutorial, we simply modelled the chemistry of a static cloud for 1 Myr. This is unlikely to meet everybody's modelling needs and UCLCHEM is capable of modelling much more complex environments such as hot cores and shocks. In this tutorial, we model both a hot core and a shock to explore how these models work and to demonstrate the workflow that the UCLCHEM team normally follow.",source:"@site/versioned_docs/version-v3.1.0/modelling_objects.md",sourceDirName:".",slug:"/modelling_objects",permalink:"/docs/v3.1.0/modelling_objects",tags:[],version:"v3.1.0",frontMatter:{},sidebar:"docs",previous:{title:"Running Your First Models",permalink:"/docs/v3.1.0/first_model"},next:{title:"Running a Grid",permalink:"/docs/v3.1.0/running_a_grid"}},o={},c=[{value:"The Hot Core",id:"the-hot-core",level:2},{value:"Initial Conditions (Phase 1)",id:"initial-conditions-phase-1",level:3},{value:"Running the Science Model (Phase 2)",id:"running-the-science-model-phase-2",level:3},{value:"Checking the Result",id:"checking-the-result",level:3},{value:"Shocks",id:"shocks",level:2},{value:"C-shock",id:"c-shock",level:3},{value:"J-shock",id:"j-shock",level:3}],h={toc:c};function N(a){var e=a.components,r=(0,n.Z)(a,p);return(0,m.kt)("wrapper",(0,s.Z)({},h,r,{components:e,mdxType:"MDXLayout"}),(0,m.kt)("h1",{id:"advanced-physical-modelling"},"Advanced Physical Modelling"),(0,m.kt)("p",null,"In the previous tutorial, we simply modelled the chemistry of a static cloud for 1 Myr. This is unlikely to meet everybody's modelling needs and UCLCHEM is capable of modelling much more complex environments such as hot cores and shocks. In this tutorial, we model both a hot core and a shock to explore how these models work and to demonstrate the workflow that the UCLCHEM team normally follow."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},"import uclchem\nimport matplotlib.pyplot as plt\n")),(0,m.kt)("h2",{id:"the-hot-core"},"The Hot Core"),(0,m.kt)("h3",{id:"initial-conditions-phase-1"},"Initial Conditions (Phase 1)"),(0,m.kt)("p",null,"UCLCHEM typically starts with the gas in atomic/ionic form with no molecules. However, this clearly is not appropriate when modelling an object such as a hot core. In these objects, the gas is already evolved and there should be molecules in the gas phase as well as ice mantles on the dust. To allow for this, one must provide some initial abundances to the model. There are many ways to do this but we typically chose to run a preliminary model to produce our abundances. In many UCLCHEM papers, we refer to the preliminary model as ",(0,m.kt)("em",{parentName:"p"},"phase 1")," and the science model as ",(0,m.kt)("em",{parentName:"p"},"phase 2"),". Phase 1 simply models a collapsing cloud and phase 2 models the object in question."),(0,m.kt)("p",null,"To do this, we will use ",(0,m.kt)("inlineCode",{parentName:"p"},"uclchem.model.cloud()")," to run a model where a cloud of gas collapses from a density of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"2")),(0,m.kt)("mi",{parentName:"mrow"},"c"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"m"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"3")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"10^2 cm^{-3}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"c"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"m"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))))))))))))," to our hot core density of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"6")),(0,m.kt)("mi",{parentName:"mrow"},"c"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"m"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"3")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"10^6 cm^{-3}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"6")))))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"c"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"m"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3"))))))))))))),", keeping all other parameters constant. During this collapse, chemistry will occur and we can assume the final abundances of this model will be reasonable starting abundances for the hot core. "),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'# set a parameter dictionary for cloud collapse model\nparam_dict = {\n "endAtFinalDensity": False,#stop at finalTime\n "freefall": True,#increase density in freefall\n "initialDens": 1e2, #starting density\n "finalDens":1e6, #final density\n "initialTemp": 10.0,#temperature of gas\n "finalTime": 6.0e6, #final time\n "rout":0.1, #radius of cloud in pc\n "baseAv":1.0, #visual extinction at cloud edge.\n "abundSaveFile": "../examples/test-output/startcollapse.dat",#save final abundances to file\n "outputFile":"../examples/test-output/phase1-full.dat"\n\n}\nresult = uclchem.model.cloud(param_dict=param_dict)\nprint(result)\n')),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"[1]\n")),(0,m.kt)("p",null,"With that done, we now have a file containing the final abundances of a cloud of gas after this collapse: ",(0,m.kt)("inlineCode",{parentName:"p"},'param_dict["abundSaveFile"]')," we can pass this to our hot core model to use those abundances as our initial abundances."),(0,m.kt)("h3",{id:"running-the-science-model-phase-2"},"Running the Science Model (Phase 2)"),(0,m.kt)("p",null,"We need to change just a few things in ",(0,m.kt)("inlineCode",{parentName:"p"},"param_dict")," to set up the hot core model. The key one is that UCLCHEM saves final abundances to ",(0,m.kt)("inlineCode",{parentName:"p"},"abundSaveFile")," but loads them from ",(0,m.kt)("inlineCode",{parentName:"p"},"abundLoadFile")," so we need to swap that key over to make the abundances we just produced our initial abundances. "),(0,m.kt)("p",null,"We also want to turn off freefall and change how long the model runs for."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'#change other bits of input to set up phase 2\nparam_dict["initialDens"]=1e6\nparam_dict["finalTime"]=1e6\nparam_dict["freefall"]=False\n\n#freeze out is completely overwhelmed by thermal desorption\n#so turning it off has no effect on abundances but speeds up integrator.\nparam_dict["freezeFactor"]=0.0\n\nparam_dict["abstol_factor"]=1e-18\nparam_dict["reltol"]=1e-12\n\n#pop is dangerous, it removes the original key so you can\'t rerun this cell.\nparam_dict["abundLoadFile"]=param_dict.pop("abundSaveFile") \nparam_dict["outputFile"]="../examples/test-output/phase2-full.dat"\n\nresult=uclchem.model.hot_core(temp_indx=3,max_temperature=300.0,param_dict=param_dict)\n')),(0,m.kt)("p",null,"Note that we've changed made two changes to the parameters here which aren't strictly necessary but can be helpful in certain situations."),(0,m.kt)("p",null,"Since the gas temperature increases throughout a hot core model, freeze out is much slower than thermal desorption for all but the first few time steps. Turning it off doesn't affect the abundances but will speed up the solution."),(0,m.kt)("p",null,"We also change abstol and reltol here, largely to demonstrate their use. They control the integrator accuracy and whilst making them smaller does slow down successful runs, it can make runs complete that stall completely otherwise or give correct solutions where lower tolerances allow issues like element conservation failure to sneak in. If your code does not complete or element conservation fails, you can change them."),(0,m.kt)("h3",{id:"checking-the-result"},"Checking the Result"),(0,m.kt)("p",null,"With a successful run, we can check the output. We first load the file and check the abundance conservation, then we can plot it up."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'phase2_df=uclchem.analysis.read_output_file("../examples/test-output/phase2-full.dat")\nuclchem.analysis.check_element_conservation(phase2_df)\n')),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"{'H': '0.002%', 'N': '0.000%', 'C': '0.000%', 'O': '0.000%'}\n")),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'species=["CO","H2O","CH3OH","#CO","#H2O","#CH3OH","@H2O","@CO","@CH3OH"]\n\nfig,[ax,ax2]=plt.subplots(1,2,figsize=(16,9))\nax=uclchem.analysis.plot_species(ax,phase2_df,species)\nsettings=ax.set(yscale="log",xlim=(1e2,1e6),ylim=(1e-10,1e-2),\n xlabel="Time / years", \n ylabel="Fractional Abundance",xscale="log")\n\nax2.plot(phase2_df["Time"],phase2_df["Density"],color="black")\nax2.set(xscale="log")\nax3=ax2.twinx()\nax3.plot(phase2_df["Time"],phase2_df["gasTemp"],color="red")\nax2.set(xlabel="Time / year",ylabel="Density")\nax3.set(ylabel="Temperature",facecolor="red",xlim=(1e2,1e6))\nax3.tick_params(axis=\'y\', colors=\'red\')\n')),(0,m.kt)("p",null,(0,m.kt)("img",{alt:"png",src:t(3510).Z,width:"997",height:"549"})),(0,m.kt)("p",null,"Here, we see the value of running a collapse phase before the science run. Having run a collapse, we start this model with well developed ices and having material in the surface and bulk allows us to properly model the effect of warm up in a hot core. For example, the @CO abundance is ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mo",{parentName:"mrow"},"\u223c"),(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"4")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\sim10^{-4}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.36687em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"\u223c"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"4")))))))))))))," and #CO is ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mo",{parentName:"mrow"},"\u223c"),(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"6")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\sim10^{-6}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.36687em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"\u223c"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"6"))))))))))))),". As the gas warms to around 30K, the #CO abundance drops drastically as CO's binding energy is such that it is efficiently desorbed from the surface at this temperature. However, the rest of the CO is trapped in the bulk, surrounded by more strongly bound H2O molecules. Thus, the @CO abundance stays high until the gas reaches around 130K, when the H2O molecules are released along with the entire bulk."),(0,m.kt)("h2",{id:"shocks"},"Shocks"),(0,m.kt)("p",null,"Essentially the same process should be followed for shocks. Let's run a C-type and J-type shock through a gas of density ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"4")),(0,m.kt)("mi",{parentName:"mrow"},"c"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"m"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"3")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"10^4 cm^{-3}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"4")))))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"c"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"m"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3"))))))))))))),". Again, we first run a simple cloud model to obtain some reasonable starting abundances, then we can run the shocks."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'# set a parameter dictionary for phase 1 collapse model\n\nparam_dict = {\n "endAtFinalDensity": False,#stop at finalTime\n "freefall": True,#increase density in freefall\n "initialDens": 1e2, #starting density\n "finalDens":1e4, #final density\n "initialTemp": 10.0,#temperature of gas\n "finalTime": 6.0e6, #final time\n "rout":0.1, #radius of cloud in pc\n "baseAv":1.0, #visual extinction at cloud edge.\n "abundSaveFile": "../examples/test-output/shockstart.dat",\n}\nresult = uclchem.model.cloud(param_dict=param_dict)\n')),(0,m.kt)("h3",{id:"c-shock"},"C-shock"),(0,m.kt)("p",null,"We'll first run a c-shock. We'll run a 40 km s ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"1")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-1}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1")))))))))))))," shock through a gas of density ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"4"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"10^4")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"4"))))))))))))," cm ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"3")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-3}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3"))))))))))))),", using the abundances we just produced. Note that c-shock is the only model which returns an additional output in its result list. Not only is the first element the success flag indicating whether UCLCHEM completed, the second element is the dissipation time of the shock. We'll use that time to make our plots look nicer, cutting to a reasonable time. You can also obtain it from ",(0,m.kt)("inlineCode",{parentName:"p"},"uclchem.utils.cshock_dissipation_time()"),"."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'#change other bits of input to set up phase 2\nparam_dict["initialDens"]=1e4\nparam_dict["finalTime"]=1e6\nif "abundSaveFile" in param_dict:\n param_dict.pop("abundSaveFile")\nparam_dict["abundLoadFile"]="../examples/test-output/shockstart.dat"\nparam_dict["outputFile"]="../examples/test-output/cshock.dat"\n\n\nresult=uclchem.model.cshock(shock_vel=40,param_dict=param_dict)\nresult,dissipation_time=result\n')),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"}," Cannot have freefall on during cshock\n setting freefall=0 and continuing\n")),(0,m.kt)("p",null,"The code completes fine. We do get a couple of warnings though. First, we're informed that ",(0,m.kt)("inlineCode",{parentName:"p"},"freefall")," must be set to False for the C-shock model. Then we get a few integrator warnings. These are not important and can be ignored as long as the element conservation looks ok. However, it is an indication that the integrator did struggle with these ODEs under these conditions."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'phase2_df=uclchem.analysis.read_output_file("../examples/test-output/cshock.dat")\nuclchem.analysis.check_element_conservation(phase2_df)\n')),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"{'H': '0.005%', 'N': '1.167%', 'C': '1.394%', 'O': '1.326%'}\n")),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'species=["CO","H2O","CH3OH","NH3","$CO","$H2O","$CH3OH","$NH3"]\n\nfig,[ax,ax2]=plt.subplots(1,2,figsize=(16,9))\nax=uclchem.analysis.plot_species(ax,phase2_df,species)\nsettings=ax.set(yscale="log",xlim=(1,20*dissipation_time),ylim=(1e-10,1e-2),\n xlabel="Time / years", \n ylabel="Fractional Abundance",xscale="log")\n\nax2.plot(phase2_df["Time"],phase2_df["Density"],color="black")\nax2.set(xscale="log")\nax3=ax2.twinx()\nax3.plot(phase2_df["Time"],phase2_df["gasTemp"],color="red")\nax2.set(xlabel="Time / year",ylabel="Density")\nax3.set(ylabel="Temperature",facecolor="red",xlim=(1,20*dissipation_time))\nax3.tick_params(axis=\'y\', colors=\'red\')\n')),(0,m.kt)("p",null,(0,m.kt)("img",{alt:"png",src:t(8014).Z,width:"1003",height:"544"})),(0,m.kt)("h3",{id:"j-shock"},"J-shock"),(0,m.kt)("p",null,"Running a j-shock is a simple case of changing function. We'll run a 10 km s ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"1")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-1}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1")))))))))))))," shock through a gas of density ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"3"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"10^3")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3"))))))))))))," cm ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"3")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-3}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))))))))))))," gas this time. Note that nothing stops us using the intial abundances we produced for the c-shock. UCLCHEM will not check that the initial density matches the density of the ",(0,m.kt)("inlineCode",{parentName:"p"},"abundLoadFile"),". It may not always be a good idea to do this but we should remember the intial abundances really are just a rough approximation."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'param_dict["initialDens"]=1e3\nparam_dict["freefall"]=False #lets remember to turn it off this time\nparam_dict["reltol"]=1e-12\n\nshock_vel=10.0\n\nif "abundSaveFile" in param_dict:\n param_dict.pop("abundSaveFile")\nparam_dict["abundLoadFile"]="../examples/test-output/shockstart.dat"\nparam_dict["outputFile"]="../examples/test-output/jshock.dat"\n\n\nresult=uclchem.model.jshock(shock_vel=shock_vel,param_dict=param_dict)\n')),(0,m.kt)("p",null,"This time, we've turned off the freefall option and made reltol a little more stringent. The j-shock ends up running a bit slower but we get no warnings on this run."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'phase2_df=uclchem.analysis.read_output_file(param_dict["outputFile"])\nuclchem.analysis.check_element_conservation(phase2_df)\n')),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"{'H': '0.003%', 'N': '0.000%', 'C': '0.000%', 'O': '0.000%'}\n")),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'species=["CO","H2O","CH3OH","NH3","$CO","$H2O","$CH3OH","$NH3"]\n\nfig,[ax,ax2]=plt.subplots(1,2,figsize=(16,9))\nax=uclchem.analysis.plot_species(ax,phase2_df,species)\nsettings=ax.set(yscale="log",xlim=(1e-7,1e6),ylim=(1e-10,1e-2),\n xlabel="Time / years", \n ylabel="Fractional Abundance",xscale="log")\n\nax2.plot(phase2_df["Time"],phase2_df["Density"],color="black")\nax2.set(xscale="log",yscale="log")\nax3=ax2.twinx()\nax3.plot(phase2_df["Time"],phase2_df["gasTemp"],color="red")\nax2.set(xlabel="Time / year",ylabel="Density")\nax3.set(ylabel="Temperature",facecolor="red",xlim=(1e-7,1e6))\nax3.tick_params(axis=\'y\', colors=\'red\')\n')),(0,m.kt)("p",null,(0,m.kt)("img",{alt:"png",src:t(580).Z,width:"1003",height:"544"})),(0,m.kt)("p",null,"That's everything! We've run various science models using reasonable starting abundances that we produced by running a simple UCLCHEM model beforehand. One benefit of this method is that the abundances are consistent with the network. If we start with arbitrary, perhaps observationally motivated, abundances, it would be possible to initiate the model in a state our network could never produce. "),(0,m.kt)("p",null,"However, one should be aware of the limitations of this method. A freefall collapse from low density to high is not really how a molecular cloud forms and so the abundances are only approximately similar to values they'd truly have in a real cloud. Testing whether your results are sensitive to things like the time you run the preliminary for or the exact density is a good way to make sure these approximations are not problematic."),(0,m.kt)("p",null,"Bear in mind that you can use ",(0,m.kt)("inlineCode",{parentName:"p"},"abundSaveFile")," and ",(0,m.kt)("inlineCode",{parentName:"p"},"abundLoadFile")," in the same model run. This lets you chain model runs together. For example, you could run a c-shock from a cloud model as we did here and then a j-shock with the c-shock's abundances as the initial abundances."))}N.isMDXComponent=!0},8014:(a,e,t)=>{t.d(e,{Z:()=>s});const s=t.p+"assets/images/modelling_objects_16_0-9cbaa39ecfd8914850efea6f9894f3c9.png"},580:(a,e,t)=>{t.d(e,{Z:()=>s});const s=t.p+"assets/images/modelling_objects_21_0-9d690606580c74f3f2490e2e8b1ce4b4.png"},3510:(a,e,t)=>{t.d(e,{Z:()=>s});const s=t.p+"assets/images/modelling_objects_8_0-cb8bd1ad21dbba5c26281d2a988b2cfa.png"}}]); \ No newline at end of file diff --git a/assets/js/0e89b35c.1098de96.js b/assets/js/0e89b35c.1098de96.js deleted file mode 100644 index b28922b0..00000000 --- a/assets/js/0e89b35c.1098de96.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3609],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>d});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function s(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),l=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=l(r),d=o,m=u["".concat(c,".").concat(d)]||u[d]||h[d]||a;return r?n.createElement(m,s(s({ref:t},p),{},{components:r})):n.createElement(m,s({ref:t},p))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,s=new Array(a);s[0]=u;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:o,s[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>h});var n=r(7462),o=r(3366),a=(r(7294),r(3905)),s=["components"],i={title:"The Chemistry of Phosphorus-bearing Molecules under Energetic Phenomena",author:"jonholdship"},c=void 0,l={permalink:"/blog/2018/06/20/izaskun-phosphorus",source:"@site/blog/2018-06-20-izaskun-phosphorus.md",title:"The Chemistry of Phosphorus-bearing Molecules under Energetic Phenomena",description:"Izaskun Jimenez-Serra has published a study of the chemistry of phosophorus bearing species using UCLCHEM. The paper can be found here and the abstract is below.",date:"2018-06-20T00:00:00.000Z",formattedDate:"June 20, 2018",tags:[],readingTime:1.3,truncated:!1,authors:[{name:"jonholdship"}],frontMatter:{title:"The Chemistry of Phosphorus-bearing Molecules under Energetic Phenomena",author:"jonholdship"},prevItem:{title:"Collapsing Prestellar Cores - a new physics module",permalink:"/blog/2018/07/12/felix-collapse"},nextItem:{title:"Chemical modelling of glycolaldehyde and ethylene glycol in star-forming regions",permalink:"/blog/2018/03/27/audrey-coms"}},p={authorsImageUrls:[void 0]},h=[],u={toc:h};function d(e){var t=e.components,r=(0,o.Z)(e,s);return(0,a.kt)("wrapper",(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Izaskun Jimenez-Serra has published a study of the chemistry of phosophorus bearing species using UCLCHEM. The ",(0,a.kt)("a",{parentName:"p",href:"https://arxiv.org/pdf/1806.07281.pdf"},"paper can be found here")," and the abstract is below."),(0,a.kt)("p",null,"For decades, the detection of phosphorus-bearing molecules in the interstellar medium was restricted to high-mass star-forming regions (e.g., SgrB2 and Orion KL) and the circumstellar envelopes of evolved stars. However, recent higher-sensitivity observations have revealed that molecules such as PN and PO are present not only toward cold massive cores and low-mass star-forming regions with PO/PN ratios \u22651 but also toward the giant molecular clouds in the Galactic center known to be exposed to highly energetic phenomena such as intense UV radiation fields, shock waves, and cosmic rays. In this paper, we carry out a comprehensive study of the chemistry of phosphorus-bearing molecules across different astrophysical environments that cover a range of physical conditions (cold molecular dark clouds, warm clouds, and hot cores/hot corinos) and are exposed to different physical processes and energetic phenomena (proto-stellar heating, shock waves, intense UV radiation, and cosmic rays). We show how the measured PO/PN ratio (either \u22651, as in, e.g., hot molecular cores, or \u22641, as in UV strongly illuminated environments) can provide constraints on the physical conditions and energetic processing of the source. We propose that the reaction P + OH \u2192 PO + H, not included in previous works, could be an efficient gas-phase PO formation route in shocks. Our modeling provides a template with which to study the detectability of P-bearing species not only in regions in our own Galaxy but also in extragalactic sources."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0e89b35c.5c748411.js b/assets/js/0e89b35c.5c748411.js new file mode 100644 index 00000000..b5108341 --- /dev/null +++ b/assets/js/0e89b35c.5c748411.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3609],{3905:(e,r,t)=>{t.d(r,{Zo:()=>p,kt:()=>d});var n=t(7294);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function s(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var c=n.createContext({}),l=function(e){var r=n.useContext(c),t=r;return e&&(t="function"==typeof e?e(r):s(s({},r),e)),t},p=function(e){var r=l(e.components);return n.createElement(c.Provider,{value:r},e.children)},h={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},u=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=l(t),d=o,m=u["".concat(c,".").concat(d)]||u[d]||h[d]||a;return t?n.createElement(m,s(s({ref:r},p),{},{components:t})):n.createElement(m,s({ref:r},p))}));function d(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,s=new Array(a);s[0]=u;var i={};for(var c in r)hasOwnProperty.call(r,c)&&(i[c]=r[c]);i.originalType=e,i.mdxType="string"==typeof e?e:o,s[1]=i;for(var l=2;l{t.r(r),t.d(r,{assets:()=>p,contentTitle:()=>c,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>h});var n=t(7462),o=t(3366),a=(t(7294),t(3905)),s=["components"],i={title:"The Chemistry of Phosphorus-bearing Molecules under Energetic Phenomena",author:"jonholdship"},c=void 0,l={permalink:"/blog/2018/06/20/izaskun-phosphorus",source:"@site/blog/2018-06-20-izaskun-phosphorus.md",title:"The Chemistry of Phosphorus-bearing Molecules under Energetic Phenomena",description:"Izaskun Jimenez-Serra has published a study of the chemistry of phosophorus bearing species using UCLCHEM. The paper can be found here and the abstract is below.",date:"2018-06-20T00:00:00.000Z",formattedDate:"June 20, 2018",tags:[],readingTime:1.3,hasTruncateMarker:!1,authors:[{name:"jonholdship"}],frontMatter:{title:"The Chemistry of Phosphorus-bearing Molecules under Energetic Phenomena",author:"jonholdship"},prevItem:{title:"Collapsing Prestellar Cores - a new physics module",permalink:"/blog/2018/07/12/felix-collapse"},nextItem:{title:"Chemical modelling of glycolaldehyde and ethylene glycol in star-forming regions",permalink:"/blog/2018/03/27/audrey-coms"}},p={authorsImageUrls:[void 0]},h=[],u={toc:h};function d(e){var r=e.components,t=(0,o.Z)(e,s);return(0,a.kt)("wrapper",(0,n.Z)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Izaskun Jimenez-Serra has published a study of the chemistry of phosophorus bearing species using UCLCHEM. The ",(0,a.kt)("a",{parentName:"p",href:"https://arxiv.org/pdf/1806.07281.pdf"},"paper can be found here")," and the abstract is below."),(0,a.kt)("p",null,"For decades, the detection of phosphorus-bearing molecules in the interstellar medium was restricted to high-mass star-forming regions (e.g., SgrB2 and Orion KL) and the circumstellar envelopes of evolved stars. However, recent higher-sensitivity observations have revealed that molecules such as PN and PO are present not only toward cold massive cores and low-mass star-forming regions with PO/PN ratios \u22651 but also toward the giant molecular clouds in the Galactic center known to be exposed to highly energetic phenomena such as intense UV radiation fields, shock waves, and cosmic rays. In this paper, we carry out a comprehensive study of the chemistry of phosphorus-bearing molecules across different astrophysical environments that cover a range of physical conditions (cold molecular dark clouds, warm clouds, and hot cores/hot corinos) and are exposed to different physical processes and energetic phenomena (proto-stellar heating, shock waves, intense UV radiation, and cosmic rays). We show how the measured PO/PN ratio (either \u22651, as in, e.g., hot molecular cores, or \u22641, as in UV strongly illuminated environments) can provide constraints on the physical conditions and energetic processing of the source. We propose that the reaction P + OH \u2192 PO + H, not included in previous works, could be an efficient gas-phase PO formation route in shocks. Our modeling provides a template with which to study the detectability of P-bearing species not only in regions in our own Galaxy but also in extragalactic sources."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/14eb3368.1054f036.js b/assets/js/14eb3368.1054f036.js new file mode 100644 index 00000000..59d6ba26 --- /dev/null +++ b/assets/js/14eb3368.1054f036.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9817],{1310:(e,t,a)=>{a.d(t,{Z:()=>E});var n=a(7462),r=a(7294),i=a(6010),l=a(5281),s=a(8425),c=a(8596),o=a(9960),m=a(5999),d=a(4996);function u(e){return r.createElement("svg",(0,n.Z)({viewBox:"0 0 24 24"},e),r.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}const v="breadcrumbHomeIcon_YNFT";function h(){var e=(0,d.Z)("/");return r.createElement("li",{className:"breadcrumbs__item"},r.createElement(o.Z,{"aria-label":(0,m.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e},r.createElement(u,{className:v})))}const b="breadcrumbsContainer_Z_bl";function p(e){var t=e.children,a=e.href,n="breadcrumbs__link";return e.isLast?r.createElement("span",{className:n,itemProp:"name"},t):a?r.createElement(o.Z,{className:n,href:a,itemProp:"item"},r.createElement("span",{itemProp:"name"},t)):r.createElement("span",{className:n},t)}function g(e){var t=e.children,a=e.active,l=e.index,s=e.addMicrodata;return r.createElement("li",(0,n.Z)({},s&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,i.Z)("breadcrumbs__item",{"breadcrumbs__item--active":a})}),t,r.createElement("meta",{itemProp:"position",content:String(l+1)}))}function E(){var e=(0,s.s1)(),t=(0,c.Ns)();return e?r.createElement("nav",{className:(0,i.Z)(l.k.docs.docBreadcrumbs,b),"aria-label":(0,m.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},r.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&r.createElement(h,null),e.map((function(t,a){var n=a===e.length-1;return r.createElement(g,{key:a,active:n,index:a,addMicrodata:!!t.href},r.createElement(p,{href:t.href,isLast:n},t.label))})))):null}},4228:(e,t,a)=>{a.r(t),a.d(t,{default:()=>A});var n=a(7294),r=a(1944),i=a(8425),l=a(4996),s=a(6010),c=a(9960),o=a(3919),m=a(5999);const d="cardContainer_fWXF",u="cardTitle_rnsV",v="cardDescription_PWke";function h(e){var t=e.href,a=e.children;return n.createElement(c.Z,{href:t,className:(0,s.Z)("card padding--lg",d)},a)}function b(e){var t=e.href,a=e.icon,r=e.title,i=e.description;return n.createElement(h,{href:t},n.createElement("h2",{className:(0,s.Z)("text--truncate",u),title:r},a," ",r),i&&n.createElement("p",{className:(0,s.Z)("text--truncate",v),title:i},i))}function p(e){var t,a=e.item,r=(0,i.Wl)(a);return r?n.createElement(b,{href:r,icon:"\ud83d\uddc3\ufe0f",title:a.label,description:null!=(t=a.description)?t:(0,m.I)({message:"{count} items",id:"theme.docs.DocCard.categoryDescription",description:"The default description for a category card in the generated index about how many items this category includes"},{count:a.items.length})}):null}function g(e){var t,a,r=e.item,l=(0,o.Z)(r.href)?"\ud83d\udcc4\ufe0f":"\ud83d\udd17",s=(0,i.xz)(null!=(t=r.docId)?t:void 0);return n.createElement(b,{href:r.href,icon:l,title:r.label,description:null!=(a=r.description)?a:null==s?void 0:s.description})}function E(e){var t=e.item;switch(t.type){case"link":return n.createElement(g,{item:t});case"category":return n.createElement(p,{item:t});default:throw new Error("unknown item type "+JSON.stringify(t))}}function f(e){var t=e.className,a=(0,i.jA)();return n.createElement(Z,{items:a.items,className:t})}function Z(e){var t=e.items,a=e.className;if(!t)return n.createElement(f,e);var r=(0,i.MN)(t);return n.createElement("section",{className:(0,s.Z)("row",a)},r.map((function(e,t){return n.createElement("article",{key:t,className:"col col--6 margin-bottom--lg"},n.createElement(E,{item:e}))})))}var N=a(49),k=a(3120),L=a(4364),_=a(1310),T=a(2503);const x="generatedIndexPage_vN6x",y="list_eTzJ",I="title_kItE";function w(e){var t=e.categoryGeneratedIndex;return n.createElement(r.d,{title:t.title,description:t.description,keywords:t.keywords,image:(0,l.Z)(t.image)})}function V(e){var t=e.categoryGeneratedIndex,a=(0,i.jA)();return n.createElement("div",{className:x},n.createElement(k.Z,null),n.createElement(_.Z,null),n.createElement(L.Z,null),n.createElement("header",null,n.createElement(T.Z,{as:"h1",className:I},t.title),t.description&&n.createElement("p",null,t.description)),n.createElement("article",{className:"margin-top--lg"},n.createElement(Z,{items:a.items,className:y})),n.createElement("footer",{className:"margin-top--lg"},n.createElement(N.Z,{previous:t.navigation.previous,next:t.navigation.next})))}function A(e){return n.createElement(n.Fragment,null,n.createElement(w,e),n.createElement(V,e))}},49:(e,t,a)=>{a.d(t,{Z:()=>s});var n=a(7462),r=a(7294),i=a(5999),l=a(2244);function s(e){var t=e.previous,a=e.next;return r.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,i.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"})},t&&r.createElement(l.Z,(0,n.Z)({},t,{subLabel:r.createElement(i.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),a&&r.createElement(l.Z,(0,n.Z)({},a,{subLabel:r.createElement(i.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}},4364:(e,t,a)=>{a.d(t,{Z:()=>c});var n=a(7294),r=a(6010),i=a(5999),l=a(5281),s=a(4477);function c(e){var t=e.className,a=(0,s.E)();return a.badge?n.createElement("span",{className:(0,r.Z)(t,l.k.docs.docVersionBadge,"badge badge--secondary")},n.createElement(i.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:a.label}},"Version: {versionLabel}")):null}},3120:(e,t,a)=>{a.d(t,{Z:()=>p});var n=a(7294),r=a(6010),i=a(2263),l=a(9960),s=a(5999),c=a(143),o=a(5281),m=a(373),d=a(4477);var u={unreleased:function(e){var t=e.siteTitle,a=e.versionMetadata;return n.createElement(s.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){var t=e.siteTitle,a=e.versionMetadata;return n.createElement(s.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function v(e){var t=u[e.versionMetadata.banner];return n.createElement(t,e)}function h(e){var t=e.versionLabel,a=e.to,r=e.onClick;return n.createElement(s.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:n.createElement("b",null,n.createElement(l.Z,{to:a,onClick:r},n.createElement(s.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function b(e){var t,a=e.className,l=e.versionMetadata,s=(0,i.Z)().siteConfig.title,d=(0,c.gA)({failfast:!0}).pluginId,u=(0,m.J)(d).savePreferredVersionName,b=(0,c.Jo)(d),p=b.latestDocSuggestion,g=b.latestVersionSuggestion,E=null!=p?p:(t=g).docs.find((function(e){return e.id===t.mainDocId}));return n.createElement("div",{className:(0,r.Z)(a,o.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},n.createElement("div",null,n.createElement(v,{siteTitle:s,versionMetadata:l})),n.createElement("div",{className:"margin-top--md"},n.createElement(h,{versionLabel:g.label,to:E.path,onClick:function(){return u(g.name)}})))}function p(e){var t=e.className,a=(0,d.E)();return a.banner?n.createElement(b,{className:t,versionMetadata:a}):null}},2503:(e,t,a)=>{a.d(t,{Z:()=>v});var n=a(7462),r=a(3366),i=a(7294),l=a(6010),s=a(5999),c=a(6668),o=a(9960);const m="anchorWithStickyNavbar_LWe7",d="anchorWithHideOnScrollNavbar_WYt5";var u=["as","id"];function v(e){var t=e.as,a=e.id,v=(0,r.Z)(e,u),h=(0,c.L)().navbar.hideOnScroll;if("h1"===t||!a)return i.createElement(t,(0,n.Z)({},v,{id:void 0}));var b=(0,s.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof v.children?v.children:a});return i.createElement(t,(0,n.Z)({},v,{className:(0,l.Z)("anchor",h?d:m,v.className),id:a}),v.children,i.createElement(o.Z,{className:"hash-link",to:"#"+a,"aria-label":b,title:b},"\u200b"))}},2244:(e,t,a)=>{a.d(t,{Z:()=>l});var n=a(7294),r=a(6010),i=a(9960);function l(e){var t=e.permalink,a=e.title,l=e.subLabel,s=e.isNext;return n.createElement(i.Z,{className:(0,r.Z)("pagination-nav__link",s?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},l&&n.createElement("div",{className:"pagination-nav__sublabel"},l),n.createElement("div",{className:"pagination-nav__label"},a))}}}]); \ No newline at end of file diff --git a/assets/js/14eb3368.853a9ae1.js b/assets/js/14eb3368.853a9ae1.js deleted file mode 100644 index 34cb8a45..00000000 --- a/assets/js/14eb3368.853a9ae1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9817],{4067:(e,t,a)=>{a.d(t,{Z:()=>u});var n=a(7294),r=a(2662);const i={breadcrumbsContainer:"breadcrumbsContainer_Xlws"};var l=a(6010),s=a(9960),c=a(4996);function o(e){var t=e.children,a=e.href,r="breadcrumbs__link";return a?n.createElement(s.Z,{className:r,href:a,itemProp:"item"},n.createElement("span",{itemProp:"name"},t)):n.createElement("span",{className:r,itemProp:"item name"},t)}function m(e){var t=e.children,a=e.active,r=e.index;return n.createElement("li",{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem",className:(0,l.Z)("breadcrumbs__item",{"breadcrumbs__item--active":a})},t,n.createElement("meta",{itemProp:"position",content:String(r+1)}))}function d(){var e=(0,c.Z)("/");return n.createElement("li",{className:"breadcrumbs__item"},n.createElement(s.Z,{className:(0,l.Z)("breadcrumbs__link",i.breadcrumbsItemLink),href:e},"\ud83c\udfe0"))}function u(){var e=(0,r.s1)(),t=(0,r.Ns)();return e?n.createElement("nav",{className:(0,l.Z)(r.kM.docs.docBreadcrumbs,i.breadcrumbsContainer),"aria-label":"breadcrumbs"},n.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&n.createElement(d,null),e.map((function(t,a){return n.createElement(m,{key:a,active:a===e.length-1,index:a},n.createElement(o,{href:a{a.r(t),a.d(t,{default:()=>x});var n=a(7294),r=a(2662),i=a(9960),l=a(6010);const s="cardContainer_woeA",c="cardTitle_pNjP",o="cardDescription_qC_k";var m=a(3919),d=a(5999);function u(e){var t=e.href,a=e.children;return n.createElement(i.Z,{href:t,className:(0,l.Z)("card padding--lg",s)},a)}function v(e){var t=e.href,a=e.icon,r=e.title,i=e.description;return n.createElement(u,{href:t},n.createElement("h2",{className:(0,l.Z)("text--truncate",c),title:r},a," ",r),i&&n.createElement("p",{className:(0,l.Z)("text--truncate",o),title:i},i))}function h(e){var t=e.item,a=(0,r.Wl)(t);return a?n.createElement(v,{href:a,icon:"\ud83d\uddc3\ufe0f",title:t.label,description:(0,d.I)({message:"{count} items",id:"theme.docs.DocCard.categoryDescription",description:"The default description for a category card in the generated index about how many items this category includes"},{count:t.items.length})}):null}function b(e){var t,a=e.item,i=(0,m.Z)(a.href)?"\ud83d\udcc4\ufe0f":"\ud83d\udd17",l=(0,r.xz)(null!=(t=a.docId)?t:void 0);return n.createElement(v,{href:a.href,icon:i,title:a.label,description:null==l?void 0:l.description})}function g(e){var t=e.item;switch(t.type){case"link":return n.createElement(b,{item:t});case"category":return n.createElement(h,{item:t});default:throw new Error("unknown item type "+JSON.stringify(t))}}function E(e){var t=e.items;return n.createElement("div",{className:"row"},function(e){return e.filter((function(e){return"category"!==e.type||!!(0,r.Wl)(e)}))}(t).map((function(e,t){return n.createElement("article",{key:t,className:"col col--6 margin-bottom--lg"},n.createElement(g,{key:t,item:e}))})))}var p=a(1101),f=a(4474),Z=a(7597),N=a(4067),k=a(9649),_=a(4996);const L="generatedIndexPage_vzzw",y="title_qBh7";function T(e){var t=e.categoryGeneratedIndex;return n.createElement(r.d,{title:t.title,description:t.description,keywords:t.keywords,image:(0,_.Z)(t.image)})}function w(e){var t=e.categoryGeneratedIndex,a=(0,r.jA)();return n.createElement(n.Fragment,null,n.createElement(r.d,{title:t.title,description:t.description,keywords:t.keywords,image:(0,_.Z)(t.image)}),n.createElement("div",{className:L},n.createElement(f.Z,null),n.createElement(N.Z,null),n.createElement(Z.Z,null),n.createElement("header",null,n.createElement(k.Z,{as:"h1",className:y},t.title),t.description&&n.createElement("p",null,t.description)),n.createElement("main",{className:"margin-top--lg"},n.createElement(E,{items:a.items})),n.createElement("footer",{className:"margin-top--lg"},n.createElement(p.Z,{previous:t.navigation.previous,next:t.navigation.next}))))}function x(e){return n.createElement(n.Fragment,null,n.createElement(T,e),n.createElement(w,e))}},1101:(e,t,a)=>{a.d(t,{Z:()=>s});var n=a(7462),r=a(7294),i=a(5999),l=a(1750);function s(e){var t=e.previous,a=e.next;return r.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,i.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages navigation",description:"The ARIA label for the docs pagination"})},r.createElement("div",{className:"pagination-nav__item"},t&&r.createElement(l.Z,(0,n.Z)({},t,{subLabel:r.createElement(i.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")}))),r.createElement("div",{className:"pagination-nav__item pagination-nav__item--next"},a&&r.createElement(l.Z,(0,n.Z)({},a,{subLabel:r.createElement(i.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next")}))))}},7597:(e,t,a)=>{a.d(t,{Z:()=>s});var n=a(7294),r=a(5999),i=a(2662),l=a(6010);function s(e){var t=e.className,a=(0,i.E6)();return a.badge?n.createElement("span",{className:(0,l.Z)(t,i.kM.docs.docVersionBadge,"badge badge--secondary")},n.createElement(r.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:a.label}},"Version: {versionLabel}")):null}},4474:(e,t,a)=>{a.d(t,{Z:()=>h});var n=a(7294),r=a(2263),i=a(9960),l=a(5999),s=a(7944),c=a(2662),o=a(6010);var m={unreleased:function(e){var t=e.siteTitle,a=e.versionMetadata;return n.createElement(l.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){var t=e.siteTitle,a=e.versionMetadata;return n.createElement(l.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function d(e){var t=m[e.versionMetadata.banner];return n.createElement(t,e)}function u(e){var t=e.versionLabel,a=e.to,r=e.onClick;return n.createElement(l.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:n.createElement("b",null,n.createElement(i.Z,{to:a,onClick:r},n.createElement(l.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function v(e){var t,a=e.className,i=e.versionMetadata,l=(0,r.Z)().siteConfig.title,m=(0,s.gA)({failfast:!0}).pluginId,v=(0,c.J)(m).savePreferredVersionName,h=(0,s.Jo)(m),b=h.latestDocSuggestion,g=h.latestVersionSuggestion,E=null!=b?b:(t=g).docs.find((function(e){return e.id===t.mainDocId}));return n.createElement("div",{className:(0,o.Z)(a,c.kM.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},n.createElement("div",null,n.createElement(d,{siteTitle:l,versionMetadata:i})),n.createElement("div",{className:"margin-top--md"},n.createElement(u,{versionLabel:g.label,to:E.path,onClick:function(){return v(g.name)}})))}function h(e){var t=e.className,a=(0,c.E6)();return a.banner?n.createElement(v,{className:t,versionMetadata:a}):null}},9649:(e,t,a)=>{a.d(t,{Z:()=>h});var n=a(7462),r=a(3366),i=a(7294),l=a(6010),s=a(5999),c=a(2662);const o="anchorWithStickyNavbar_mojV",m="anchorWithHideOnScrollNavbar_R0VQ";var d=["as","id"],u=["as"];function v(e){var t=e.as,a=e.id,u=(0,r.Z)(e,d),v=(0,c.LU)().navbar.hideOnScroll;return a?i.createElement(t,(0,n.Z)({},u,{className:(0,l.Z)("anchor",v?m:o),id:a}),u.children,i.createElement("a",{className:"hash-link",href:"#"+a,title:(0,s.I)({id:"theme.common.headingLinkTitle",message:"Direct link to heading",description:"Title for link to heading"})},"\u200b")):i.createElement(t,u)}function h(e){var t=e.as,a=(0,r.Z)(e,u);return"h1"===t?i.createElement("h1",(0,n.Z)({},a,{id:void 0}),a.children):i.createElement(v,(0,n.Z)({as:t},a))}},1750:(e,t,a)=>{a.d(t,{Z:()=>i});var n=a(7294),r=a(9960);function i(e){var t=e.permalink,a=e.title,i=e.subLabel;return n.createElement(r.Z,{className:"pagination-nav__link",to:t},i&&n.createElement("div",{className:"pagination-nav__sublabel"},i),n.createElement("div",{className:"pagination-nav__label"},a))}}}]); \ No newline at end of file diff --git a/assets/js/17896441.77da63b4.js b/assets/js/17896441.77da63b4.js deleted file mode 100644 index a91ca5da..00000000 --- a/assets/js/17896441.77da63b4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7918],{4067:(e,t,a)=>{a.d(t,{Z:()=>u});var n=a(7294),l=a(2662);const s={breadcrumbsContainer:"breadcrumbsContainer_Xlws"};var r=a(6010),i=a(9960),o=a(4996);function c(e){var t=e.children,a=e.href,l="breadcrumbs__link";return a?n.createElement(i.Z,{className:l,href:a,itemProp:"item"},n.createElement("span",{itemProp:"name"},t)):n.createElement("span",{className:l,itemProp:"item name"},t)}function d(e){var t=e.children,a=e.active,l=e.index;return n.createElement("li",{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem",className:(0,r.Z)("breadcrumbs__item",{"breadcrumbs__item--active":a})},t,n.createElement("meta",{itemProp:"position",content:String(l+1)}))}function m(){var e=(0,o.Z)("/");return n.createElement("li",{className:"breadcrumbs__item"},n.createElement(i.Z,{className:(0,r.Z)("breadcrumbs__link",s.breadcrumbsItemLink),href:e},"\ud83c\udfe0"))}function u(){var e=(0,l.s1)(),t=(0,l.Ns)();return e?n.createElement("nav",{className:(0,r.Z)(l.kM.docs.docBreadcrumbs,s.breadcrumbsContainer),"aria-label":"breadcrumbs"},n.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&n.createElement(m,null),e.map((function(t,a){return n.createElement(d,{key:a,active:a===e.length-1,index:a},n.createElement(c,{href:a{a.r(t),a.d(t,{default:()=>B});var n=a(7294),l=a(6010),s=a(1101),r=a(4474),i=a(7597),o=a(5999),c=a(2662);function d(e){var t=e.lastUpdatedAt,a=e.formattedLastUpdatedAt;return n.createElement(o.Z,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:n.createElement("b",null,n.createElement("time",{dateTime:new Date(1e3*t).toISOString()},a))}}," on {date}")}function m(e){var t=e.lastUpdatedBy;return n.createElement(o.Z,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:n.createElement("b",null,t)}}," by {user}")}function u(e){var t=e.lastUpdatedAt,a=e.formattedLastUpdatedAt,l=e.lastUpdatedBy;return n.createElement("span",{className:c.kM.common.lastUpdated},n.createElement(o.Z,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t&&a?n.createElement(d,{lastUpdatedAt:t,formattedLastUpdatedAt:a}):"",byUser:l?n.createElement(m,{lastUpdatedBy:l}):""}},"Last updated{atDate}{byUser}"),!1)}var v=a(6753),b=a(8727);const p="lastUpdated_foO9";function E(e){return n.createElement("div",{className:(0,l.Z)(c.kM.docs.docFooterTagsRow,"row margin-bottom--sm")},n.createElement("div",{className:"col"},n.createElement(b.Z,e)))}function h(e){var t=e.editUrl,a=e.lastUpdatedAt,s=e.lastUpdatedBy,r=e.formattedLastUpdatedAt;return n.createElement("div",{className:(0,l.Z)(c.kM.docs.docFooterEditMetaRow,"row")},n.createElement("div",{className:"col"},t&&n.createElement(v.Z,{editUrl:t})),n.createElement("div",{className:(0,l.Z)("col",p)},(a||s)&&n.createElement(u,{lastUpdatedAt:a,formattedLastUpdatedAt:r,lastUpdatedBy:s})))}function g(e){var t=e.content.metadata,a=t.editUrl,s=t.lastUpdatedAt,r=t.formattedLastUpdatedAt,i=t.lastUpdatedBy,o=t.tags,d=o.length>0,m=!!(a||s||i);return d||m?n.createElement("footer",{className:(0,l.Z)(c.kM.docs.docFooter,"docusaurus-mt-lg")},d&&n.createElement(E,{tags:o}),m&&n.createElement(h,{editUrl:a,lastUpdatedAt:s,lastUpdatedBy:i,formattedLastUpdatedAt:r})):null}var f=a(1575);const N="tocCollapsible_jdIR",Z="tocCollapsibleButton_Fzxq",L="tocCollapsibleContent_MpvI",k="tocCollapsibleExpanded_laf4";var _=a(5002);function C(e){var t=e.toc,a=e.className,s=e.minHeadingLevel,r=e.maxHeadingLevel,i=(0,c.uR)({initialState:!0}),d=i.collapsed,m=i.toggleCollapsed;return n.createElement("div",{className:(0,l.Z)(N,!d&&k,a)},n.createElement("button",{type:"button",className:(0,l.Z)("clean-btn",Z),onClick:m},n.createElement(o.Z,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component"},"On this page")),n.createElement(c.zF,{lazy:!0,className:L,collapsed:d},n.createElement(_.Z,{toc:t,minHeadingLevel:s,maxHeadingLevel:r})))}var U=a(9649);const T="docItemContainer_vinB",y="docItemCol_DM6M",M="tocMobile_TmEX";var A=a(4067),w=a(2708);function x(e){var t,a=e.content,l=a.metadata,s=a.frontMatter,r=a.assets,i=s.keywords,o=l.description,d=l.title,m=null!=(t=r.image)?t:s.image;return n.createElement(c.d,{title:d,description:o,keywords:i,image:m})}function H(e){var t=e.content,a=t.metadata,o=t.frontMatter,d=o.hide_title,m=o.hide_table_of_contents,u=o.toc_min_heading_level,v=o.toc_max_heading_level,b=a.title,p=!d&&void 0===t.contentTitle,E=(0,c.iP)(),h=!m&&t.toc&&t.toc.length>0,N=h&&("desktop"===E||"ssr"===E);return n.createElement("div",{className:"row"},n.createElement("div",{className:(0,l.Z)("col",!m&&y)},n.createElement(r.Z,null),n.createElement("div",{className:T},n.createElement("article",null,n.createElement(A.Z,null),n.createElement(i.Z,null),h&&n.createElement(C,{toc:t.toc,minHeadingLevel:u,maxHeadingLevel:v,className:(0,l.Z)(c.kM.docs.docTocMobile,M)}),n.createElement("div",{className:(0,l.Z)(c.kM.docs.docMarkdown,"markdown")},p&&n.createElement("header",null,n.createElement(U.Z,{as:"h1"},b)),n.createElement(w.Z,null,n.createElement(t,null))),n.createElement(g,e)),n.createElement(s.Z,{previous:a.previous,next:a.next}))),N&&n.createElement("div",{className:"col col--3"},n.createElement(f.Z,{toc:t.toc,minHeadingLevel:u,maxHeadingLevel:v,className:c.kM.docs.docTocDesktop})))}function B(e){var t="docs-doc-id-"+e.content.metadata.unversionedId;return n.createElement(c.FG,{className:t},n.createElement(x,e),n.createElement(H,e))}},1101:(e,t,a)=>{a.d(t,{Z:()=>i});var n=a(7462),l=a(7294),s=a(5999),r=a(1750);function i(e){var t=e.previous,a=e.next;return l.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,s.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages navigation",description:"The ARIA label for the docs pagination"})},l.createElement("div",{className:"pagination-nav__item"},t&&l.createElement(r.Z,(0,n.Z)({},t,{subLabel:l.createElement(s.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")}))),l.createElement("div",{className:"pagination-nav__item pagination-nav__item--next"},a&&l.createElement(r.Z,(0,n.Z)({},a,{subLabel:l.createElement(s.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next")}))))}},7597:(e,t,a)=>{a.d(t,{Z:()=>i});var n=a(7294),l=a(5999),s=a(2662),r=a(6010);function i(e){var t=e.className,a=(0,s.E6)();return a.badge?n.createElement("span",{className:(0,r.Z)(t,s.kM.docs.docVersionBadge,"badge badge--secondary")},n.createElement(l.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:a.label}},"Version: {versionLabel}")):null}},4474:(e,t,a)=>{a.d(t,{Z:()=>b});var n=a(7294),l=a(2263),s=a(9960),r=a(5999),i=a(7944),o=a(2662),c=a(6010);var d={unreleased:function(e){var t=e.siteTitle,a=e.versionMetadata;return n.createElement(r.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){var t=e.siteTitle,a=e.versionMetadata;return n.createElement(r.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function m(e){var t=d[e.versionMetadata.banner];return n.createElement(t,e)}function u(e){var t=e.versionLabel,a=e.to,l=e.onClick;return n.createElement(r.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:n.createElement("b",null,n.createElement(s.Z,{to:a,onClick:l},n.createElement(r.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function v(e){var t,a=e.className,s=e.versionMetadata,r=(0,l.Z)().siteConfig.title,d=(0,i.gA)({failfast:!0}).pluginId,v=(0,o.J)(d).savePreferredVersionName,b=(0,i.Jo)(d),p=b.latestDocSuggestion,E=b.latestVersionSuggestion,h=null!=p?p:(t=E).docs.find((function(e){return e.id===t.mainDocId}));return n.createElement("div",{className:(0,c.Z)(a,o.kM.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},n.createElement("div",null,n.createElement(m,{siteTitle:r,versionMetadata:s})),n.createElement("div",{className:"margin-top--md"},n.createElement(u,{versionLabel:E.label,to:h.path,onClick:function(){return v(E.name)}})))}function b(e){var t=e.className,a=(0,o.E6)();return a.banner?n.createElement(v,{className:t,versionMetadata:a}):null}},1575:(e,t,a)=>{a.d(t,{Z:()=>d});var n=a(7462),l=a(3366),s=a(7294),r=a(6010),i=a(5002);const o="tableOfContents_cNA8";var c=["className"];function d(e){var t=e.className,a=(0,l.Z)(e,c);return s.createElement("div",{className:(0,r.Z)(o,"thin-scrollbar",t)},s.createElement(i.Z,(0,n.Z)({},a,{linkClassName:"table-of-contents__link toc-highlight",linkActiveClassName:"table-of-contents__link--active"})))}},5002:(e,t,a)=>{a.d(t,{Z:()=>c});var n=a(7462),l=a(3366),s=a(7294),r=a(2662),i=["toc","className","linkClassName","linkActiveClassName","minHeadingLevel","maxHeadingLevel"];function o(e){var t=e.toc,a=e.className,n=e.linkClassName,l=e.isChild;return t.length?s.createElement("ul",{className:l?void 0:a},t.map((function(e){return s.createElement("li",{key:e.id},s.createElement("a",{href:"#"+e.id,className:null!=n?n:void 0,dangerouslySetInnerHTML:{__html:e.value}}),s.createElement(o,{isChild:!0,toc:e.children,className:a,linkClassName:n}))}))):null}function c(e){var t=e.toc,a=e.className,c=void 0===a?"table-of-contents table-of-contents__left-border":a,d=e.linkClassName,m=void 0===d?"table-of-contents__link":d,u=e.linkActiveClassName,v=void 0===u?void 0:u,b=e.minHeadingLevel,p=e.maxHeadingLevel,E=(0,l.Z)(e,i),h=(0,r.LU)(),g=null!=b?b:h.tableOfContents.minHeadingLevel,f=null!=p?p:h.tableOfContents.maxHeadingLevel,N=(0,r.b9)({toc:t,minHeadingLevel:g,maxHeadingLevel:f}),Z=(0,s.useMemo)((function(){if(m&&v)return{linkClassName:m,linkActiveClassName:v,minHeadingLevel:g,maxHeadingLevel:f}}),[m,v,g,f]);return(0,r.Si)(Z),s.createElement(o,(0,n.Z)({toc:N,className:c,linkClassName:m},E))}}}]); \ No newline at end of file diff --git a/assets/js/17896441.c5b7685c.js b/assets/js/17896441.c5b7685c.js new file mode 100644 index 00000000..1e790527 --- /dev/null +++ b/assets/js/17896441.c5b7685c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7918],{1310:(e,t,a)=>{a.d(t,{Z:()=>E});var n=a(7462),l=a(7294),r=a(6010),i=a(5281),s=a(8425),o=a(8596),c=a(9960),d=a(5999),m=a(4996);function u(e){return l.createElement("svg",(0,n.Z)({viewBox:"0 0 24 24"},e),l.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}const v="breadcrumbHomeIcon_YNFT";function f(){var e=(0,m.Z)("/");return l.createElement("li",{className:"breadcrumbs__item"},l.createElement(c.Z,{"aria-label":(0,d.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e},l.createElement(u,{className:v})))}const h="breadcrumbsContainer_Z_bl";function b(e){var t=e.children,a=e.href,n="breadcrumbs__link";return e.isLast?l.createElement("span",{className:n,itemProp:"name"},t):a?l.createElement(c.Z,{className:n,href:a,itemProp:"item"},l.createElement("span",{itemProp:"name"},t)):l.createElement("span",{className:n},t)}function p(e){var t=e.children,a=e.active,i=e.index,s=e.addMicrodata;return l.createElement("li",(0,n.Z)({},s&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,r.Z)("breadcrumbs__item",{"breadcrumbs__item--active":a})}),t,l.createElement("meta",{itemProp:"position",content:String(i+1)}))}function E(){var e=(0,s.s1)(),t=(0,o.Ns)();return e?l.createElement("nav",{className:(0,r.Z)(i.k.docs.docBreadcrumbs,h),"aria-label":(0,d.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},l.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&l.createElement(f,null),e.map((function(t,a){var n=a===e.length-1;return l.createElement(p,{key:a,active:n,index:a,addMicrodata:!!t.href},l.createElement(b,{href:t.href,isLast:n},t.label))})))):null}},5154:(e,t,a)=>{a.r(t),a.d(t,{default:()=>Q});var n=a(7294),l=a(1944),r=a(9688),i=n.createContext(null);function s(e){var t=e.children,a=function(e){return(0,n.useMemo)((function(){return{metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc}}),[e])}(e.content);return n.createElement(i.Provider,{value:a},t)}function o(){var e=(0,n.useContext)(i);if(null===e)throw new r.i6("DocProvider");return e}function c(){var e,t=o(),a=t.metadata,r=t.frontMatter,i=t.assets;return n.createElement(l.d,{title:a.title,description:a.description,keywords:r.keywords,image:null!=(e=i.image)?e:r.image})}var d=a(6010),m=a(7524),u=a(49);function v(){var e=o().metadata;return n.createElement(u.Z,{previous:e.previous,next:e.next})}var f=a(3120),h=a(4364),b=a(5281),p=a(5999);function E(e){var t=e.lastUpdatedAt,a=e.formattedLastUpdatedAt;return n.createElement(p.Z,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:n.createElement("b",null,n.createElement("time",{dateTime:new Date(1e3*t).toISOString()},a))}}," on {date}")}function g(e){var t=e.lastUpdatedBy;return n.createElement(p.Z,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:n.createElement("b",null,t)}}," by {user}")}function L(e){var t=e.lastUpdatedAt,a=e.formattedLastUpdatedAt,l=e.lastUpdatedBy;return n.createElement("span",{className:b.k.common.lastUpdated},n.createElement(p.Z,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t&&a?n.createElement(E,{lastUpdatedAt:t,formattedLastUpdatedAt:a}):"",byUser:l?n.createElement(g,{lastUpdatedBy:l}):""}},"Last updated{atDate}{byUser}"),!1)}var N=a(4881),Z=a(6233);const k="lastUpdated_vwxv";function _(e){return n.createElement("div",{className:(0,d.Z)(b.k.docs.docFooterTagsRow,"row margin-bottom--sm")},n.createElement("div",{className:"col"},n.createElement(Z.Z,e)))}function C(e){var t=e.editUrl,a=e.lastUpdatedAt,l=e.lastUpdatedBy,r=e.formattedLastUpdatedAt;return n.createElement("div",{className:(0,d.Z)(b.k.docs.docFooterEditMetaRow,"row")},n.createElement("div",{className:"col"},t&&n.createElement(N.Z,{editUrl:t})),n.createElement("div",{className:(0,d.Z)("col",k)},(a||l)&&n.createElement(L,{lastUpdatedAt:a,formattedLastUpdatedAt:r,lastUpdatedBy:l})))}function x(){var e=o().metadata,t=e.editUrl,a=e.lastUpdatedAt,l=e.formattedLastUpdatedAt,r=e.lastUpdatedBy,i=e.tags,s=i.length>0,c=!!(t||a||r);return s||c?n.createElement("footer",{className:(0,d.Z)(b.k.docs.docFooter,"docusaurus-mt-lg")},s&&n.createElement(_,{tags:i}),c&&n.createElement(C,{editUrl:t,lastUpdatedAt:a,lastUpdatedBy:r,formattedLastUpdatedAt:l})):null}var T=a(6043),H=a(3743),U=a(7462),y=a(3366);const A="tocCollapsibleButton_TO0P",w="tocCollapsibleButtonExpanded_MG3E";var M=["collapsed"];function I(e){var t=e.collapsed,a=(0,y.Z)(e,M);return n.createElement("button",(0,U.Z)({type:"button"},a,{className:(0,d.Z)("clean-btn",A,!t&&w,a.className)}),n.createElement(p.Z,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component"},"On this page"))}const B="tocCollapsible_ETCw",O="tocCollapsibleContent_vkbj",S="tocCollapsibleExpanded_sAul";function V(e){var t=e.toc,a=e.className,l=e.minHeadingLevel,r=e.maxHeadingLevel,i=(0,T.u)({initialState:!0}),s=i.collapsed,o=i.toggleCollapsed;return n.createElement("div",{className:(0,d.Z)(B,!s&&S,a)},n.createElement(I,{collapsed:s,onClick:o}),n.createElement(T.z,{lazy:!0,className:O,collapsed:s},n.createElement(H.Z,{toc:t,minHeadingLevel:l,maxHeadingLevel:r})))}const D="tocMobile_ITEo";function P(){var e=o(),t=e.toc,a=e.frontMatter;return n.createElement(V,{toc:t,minHeadingLevel:a.toc_min_heading_level,maxHeadingLevel:a.toc_max_heading_level,className:(0,d.Z)(b.k.docs.docTocMobile,D)})}var R=a(9407);function F(){var e=o(),t=e.toc,a=e.frontMatter;return n.createElement(R.Z,{toc:t,minHeadingLevel:a.toc_min_heading_level,maxHeadingLevel:a.toc_max_heading_level,className:b.k.docs.docTocDesktop})}var j=a(2503),z=a(7525);function q(e){var t,a,l,r,i=e.children,s=(t=o(),a=t.metadata,l=t.frontMatter,r=t.contentTitle,l.hide_title||void 0!==r?null:a.title);return n.createElement("div",{className:(0,d.Z)(b.k.docs.docMarkdown,"markdown")},s&&n.createElement("header",null,n.createElement(j.Z,{as:"h1"},s)),n.createElement(z.Z,null,i))}var G=a(1310);const J="docItemContainer_Djhp",Y="docItemCol_VOVn";function K(e){var t,a,l,r,i,s,c=e.children,u=(t=o(),a=t.frontMatter,l=t.toc,r=(0,m.i)(),i=a.hide_table_of_contents,s=!i&&l.length>0,{hidden:i,mobile:s?n.createElement(P,null):void 0,desktop:!s||"desktop"!==r&&"ssr"!==r?void 0:n.createElement(F,null)});return n.createElement("div",{className:"row"},n.createElement("div",{className:(0,d.Z)("col",!u.hidden&&Y)},n.createElement(f.Z,null),n.createElement("div",{className:J},n.createElement("article",null,n.createElement(G.Z,null),n.createElement(h.Z,null),u.mobile,n.createElement(q,null,c),n.createElement(x,null)),n.createElement(v,null))),u.desktop&&n.createElement("div",{className:"col col--3"},u.desktop))}function Q(e){var t="docs-doc-id-"+e.content.metadata.unversionedId,a=e.content;return n.createElement(s,{content:e.content},n.createElement(l.FG,{className:t},n.createElement(c,null),n.createElement(K,null,n.createElement(a,null))))}},49:(e,t,a)=>{a.d(t,{Z:()=>s});var n=a(7462),l=a(7294),r=a(5999),i=a(2244);function s(e){var t=e.previous,a=e.next;return l.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,r.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"})},t&&l.createElement(i.Z,(0,n.Z)({},t,{subLabel:l.createElement(r.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),a&&l.createElement(i.Z,(0,n.Z)({},a,{subLabel:l.createElement(r.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}},4364:(e,t,a)=>{a.d(t,{Z:()=>o});var n=a(7294),l=a(6010),r=a(5999),i=a(5281),s=a(4477);function o(e){var t=e.className,a=(0,s.E)();return a.badge?n.createElement("span",{className:(0,l.Z)(t,i.k.docs.docVersionBadge,"badge badge--secondary")},n.createElement(r.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:a.label}},"Version: {versionLabel}")):null}},3120:(e,t,a)=>{a.d(t,{Z:()=>b});var n=a(7294),l=a(6010),r=a(2263),i=a(9960),s=a(5999),o=a(143),c=a(5281),d=a(373),m=a(4477);var u={unreleased:function(e){var t=e.siteTitle,a=e.versionMetadata;return n.createElement(s.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){var t=e.siteTitle,a=e.versionMetadata;return n.createElement(s.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function v(e){var t=u[e.versionMetadata.banner];return n.createElement(t,e)}function f(e){var t=e.versionLabel,a=e.to,l=e.onClick;return n.createElement(s.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:n.createElement("b",null,n.createElement(i.Z,{to:a,onClick:l},n.createElement(s.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function h(e){var t,a=e.className,i=e.versionMetadata,s=(0,r.Z)().siteConfig.title,m=(0,o.gA)({failfast:!0}).pluginId,u=(0,d.J)(m).savePreferredVersionName,h=(0,o.Jo)(m),b=h.latestDocSuggestion,p=h.latestVersionSuggestion,E=null!=b?b:(t=p).docs.find((function(e){return e.id===t.mainDocId}));return n.createElement("div",{className:(0,l.Z)(a,c.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},n.createElement("div",null,n.createElement(v,{siteTitle:s,versionMetadata:i})),n.createElement("div",{className:"margin-top--md"},n.createElement(f,{versionLabel:p.label,to:E.path,onClick:function(){return u(p.name)}})))}function b(e){var t=e.className,a=(0,m.E)();return a.banner?n.createElement(h,{className:t,versionMetadata:a}):null}},9407:(e,t,a)=>{a.d(t,{Z:()=>d});var n=a(7462),l=a(3366),r=a(7294),i=a(6010),s=a(3743);const o="tableOfContents_bqdL";var c=["className"];function d(e){var t=e.className,a=(0,l.Z)(e,c);return r.createElement("div",{className:(0,i.Z)(o,"thin-scrollbar",t)},r.createElement(s.Z,(0,n.Z)({},a,{linkClassName:"table-of-contents__link toc-highlight",linkActiveClassName:"table-of-contents__link--active"})))}},3743:(e,t,a)=>{a.d(t,{Z:()=>p});var n=a(7462),l=a(3366),r=a(7294),i=a(6668),s=["parentIndex"];function o(e){var t=e.map((function(e){return Object.assign({},e,{parentIndex:-1,children:[]})})),a=Array(7).fill(-1);t.forEach((function(e,t){var n=a.slice(2,e.level);e.parentIndex=Math.max.apply(Math,n),a[e.level]=t}));var n=[];return t.forEach((function(e){var a=e.parentIndex,r=(0,l.Z)(e,s);a>=0?t[a].children.push(r):n.push(r)})),n}function c(e){var t=e.toc,a=e.minHeadingLevel,n=e.maxHeadingLevel;return t.flatMap((function(e){var t=c({toc:e.children,minHeadingLevel:a,maxHeadingLevel:n});return function(e){return e.level>=a&&e.level<=n}(e)?[Object.assign({},e,{children:t})]:t}))}function d(e){var t=e.getBoundingClientRect();return t.top===t.bottom?d(e.parentNode):t}function m(e,t){var a,n,l=t.anchorTopOffset,r=e.find((function(e){return d(e).top>=l}));return r?function(e){return e.top>0&&e.bottom{n.d(e,{Zo:()=>d,kt:()=>k});var l=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function r(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);e&&(l=l.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,l)}return n}function o(t){for(var e=1;e=0||(a[n]=t[n]);return a}(t,e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(a[n]=t[n])}return a}var i=l.createContext({}),u=function(t){var e=l.useContext(i),n=e;return t&&(n="function"==typeof t?t(e):o(o({},e),t)),n},d=function(t){var e=u(t.components);return l.createElement(i.Provider,{value:e},t.children)},c={inlineCode:"code",wrapper:function(t){var e=t.children;return l.createElement(l.Fragment,{},e)}},p=l.forwardRef((function(t,e){var n=t.components,a=t.mdxType,r=t.originalType,i=t.parentName,d=s(t,["components","mdxType","originalType","parentName"]),p=u(n),k=a,h=p["".concat(i,".").concat(k)]||p[k]||c[k]||r;return n?l.createElement(h,o(o({ref:e},d),{},{components:n})):l.createElement(h,o({ref:e},d))}));function k(t,e){var n=arguments,a=e&&e.mdxType;if("string"==typeof t||a){var r=n.length,o=new Array(r);o[0]=p;var s={};for(var i in e)hasOwnProperty.call(e,i)&&(s[i]=e[i]);s.originalType=t,s.mdxType="string"==typeof t?t:a,o[1]=s;for(var u=2;u{n.r(e),n.d(e,{assets:()=>d,contentTitle:()=>i,default:()=>k,frontMatter:()=>s,metadata:()=>u,toc:()=>c});var l=n(7462),a=n(3366),r=(n(7294),n(3905)),o=["components"],s={},i="Running Your First Models",u={unversionedId:"first_model",id:"first_model",title:"Running Your First Models",description:"In this notebook, we demonstrate the basic use of UCLCHEM's python module by running a simple model and then using the analysis functions to examine the output.",source:"@site/docs/first_model.md",sourceDirName:".",slug:"/first_model",permalink:"/docs/next/first_model",draft:!1,tags:[],version:"current",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1689876832,formattedLastUpdatedAt:"Jul 20, 2023",frontMatter:{},sidebar:"docs",previous:{title:"Tutorials",permalink:"/docs/next/category/tutorials"},next:{title:"Advanced Physical Modelling",permalink:"/docs/next/modelling_objects"}},d={},c=[{value:"A Simple Cloud",id:"a-simple-cloud",level:2},{value:"Checking the output",id:"checking-the-output",level:2},{value:"Plotting Results",id:"plotting-results",level:2}],p={toc:c};function k(t){var e=t.components,s=(0,a.Z)(t,o);return(0,r.kt)("wrapper",(0,l.Z)({},p,s,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"running-your-first-models"},"Running Your First Models"),(0,r.kt)("p",null,"In this notebook, we demonstrate the basic use of UCLCHEM's python module by running a simple model and then using the analysis functions to examine the output."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},"import uclchem\n")),(0,r.kt)("h2",{id:"a-simple-cloud"},"A Simple Cloud"),(0,r.kt)("p",null,"UCLCHEM's ",(0,r.kt)("inlineCode",{parentName:"p"},"cloud()")," model is a spherical cloud of isothermal gas. We can keep a constant density or have it increase over time following a freefall equation. This model is generally useful whenever you want to model a homogeneous cloud of gas under constant conditions. For example, in the inner parts of a molecular cloud where Av ",(0,r.kt)("span",{parentName:"p",className:"math math-inline"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("mo",{parentName:"mrow"},"\u2273")),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\gtrsim")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.95916em",verticalAlign:"-0.22958em"}}),(0,r.kt)("span",{parentName:"span",className:"mrel amsrm"},"\u2273")))))," 10 there are very few depth dependent processes. You may wish to model the whole of this UV shielded portion of the cloud with a single ",(0,r.kt)("inlineCode",{parentName:"p"},"cloud()")," model."),(0,r.kt)("p",null,"Due to the large number of parameters in a chemical model and the way fortran and python interaction, we find it is easiest to do parameter input through python dictionaries. In this block, we define param_dict which contains the parameters we wish to modify for this run. Every ",(0,r.kt)("inlineCode",{parentName:"p"},"uclchem.model")," function accepts a dictionary as an optional argument. Every parameter has a default value which is overriden if that parameter is specified in this dictionary. You can find a complete list of modifiable parameters and their default values in ",(0,r.kt)("a",{parentName:"p",href:"/docs/parameters"},"our parameter docs"),"."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},'# set a parameter dictionary for Stage 1 collapse model\n\nout_species = ["SO","CO"]\nparam_dict = {\n "endAtFinalDensity": False,#stop at finalTime\n "freefall": False,#don\'t increase density in freefall\n "initialDens": 1e4, #starting density\n "initialTemp": 10.0,#temperature of gas\n "finalTime": 1.0e6, #final time\n "rout":0.1, #radius of cloud in pc\n "baseAv":1.0, #visual extinction at cloud edge.\n "outputFile": "../examples/test-output/static-full.dat",#full UCLCHEM output\n "abundSaveFile": "../examples/test-output/startstatic.dat",#save final abundances to file\n}\nresult = uclchem.model.cloud(param_dict=param_dict,out_species=out_species)\nprint(result)\n\n')),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"[1, 3.331065659699488e-11, 3.576305642378658e-05]\n")),(0,r.kt)("h2",{id:"checking-the-output"},"Checking the output"),(0,r.kt)("p",null,"At the end of the previous cell, we printed ",(0,r.kt)("inlineCode",{parentName:"p"},"result")," which is a list returned by every UCLCHEM model function. The first element is always an integer which will be positive if the code completed and negative otherwise. You can send negative values to ",(0,r.kt)("inlineCode",{parentName:"p"},"uclchem.utils.check_error()")," to get a more detailed error message."),(0,r.kt)("p",null,"The subsequent elements are the final abundances of any species listed in ",(0,r.kt)("inlineCode",{parentName:"p"},"out_species"),", in this case we have the abundance of SO and CO. This is useful when we want to use UCLCHEM as part of something like an MCMC procedure, obtaining abundances for given parameters. However, we also write the final abundances of all species to ",(0,r.kt)("inlineCode",{parentName:"p"},"abundSaveFile")," and the abundances of all species at every time step in ",(0,r.kt)("inlineCode",{parentName:"p"},"outputFile")," so it is not necessary to acquire abundances in this way."),(0,r.kt)("p",null,"The output file is just a simple csv with some header rows, UCLCHEM has a utility function to read that file into a pandas dataframe. Let's load it up and look at it."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},'result_df=uclchem.analysis.read_output_file("../examples/test-output/static-full.dat")\nresult_df.head()\n')),(0,r.kt)("div",null,(0,r.kt)("table",{border:"1",class:"dataframe"},(0,r.kt)("thead",null,(0,r.kt)("tr",null,(0,r.kt)("th",null),(0,r.kt)("th",null,"Time"),(0,r.kt)("th",null,"Density"),(0,r.kt)("th",null,"gasTemp"),(0,r.kt)("th",null,"av"),(0,r.kt)("th",null,"zeta"),(0,r.kt)("th",null,"point"),(0,r.kt)("th",null,"H"),(0,r.kt)("th",null,"#H"),(0,r.kt)("th",null,"H+"),(0,r.kt)("th",null,"@H"),(0,r.kt)("th",null,"..."),(0,r.kt)("th",null,"HS2+"),(0,r.kt)("th",null,"HSO2+"),(0,r.kt)("th",null,"H2S2+"),(0,r.kt)("th",null,"H2S2"),(0,r.kt)("th",null,"#H2S2"),(0,r.kt)("th",null,"@H2S2"),(0,r.kt)("th",null,"E-"),(0,r.kt)("th",null,"BULK"),(0,r.kt)("th",null,"SURFACE"),(0,r.kt)("th",null,"radfield"))),(0,r.kt)("tbody",null,(0,r.kt)("tr",null,(0,r.kt)("th",null,"0"),(0,r.kt)("td",null,"0.000000e+00"),(0,r.kt)("td",null,"10000.0"),(0,r.kt)("td",null,"10.0"),(0,r.kt)("td",null,"2.9287"),(0,r.kt)("td",null,"1.0"),(0,r.kt)("td",null,"1"),(0,r.kt)("td",null,"0.5"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"..."),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"0.000182"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.0")),(0,r.kt)("tr",null,(0,r.kt)("th",null,"1"),(0,r.kt)("td",null,"1.000000e-07"),(0,r.kt)("td",null,"10000.0"),(0,r.kt)("td",null,"10.0"),(0,r.kt)("td",null,"2.9287"),(0,r.kt)("td",null,"1.0"),(0,r.kt)("td",null,"1"),(0,r.kt)("td",null,"0.5"),(0,r.kt)("td",null,"5.680300e-13"),(0,r.kt)("td",null,"1.789040e-17"),(0,r.kt)("td",null,"4.269620e-20"),(0,r.kt)("td",null,"..."),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"0.000182"),(0,r.kt)("td",null,"5.629010e-20"),(0,r.kt)("td",null,"7.488850e-13"),(0,r.kt)("td",null,"1.0")),(0,r.kt)("tr",null,(0,r.kt)("th",null,"2"),(0,r.kt)("td",null,"1.000000e-06"),(0,r.kt)("td",null,"10000.0"),(0,r.kt)("td",null,"10.0"),(0,r.kt)("td",null,"2.9287"),(0,r.kt)("td",null,"1.0"),(0,r.kt)("td",null,"1"),(0,r.kt)("td",null,"0.5"),(0,r.kt)("td",null,"5.646510e-12"),(0,r.kt)("td",null,"1.789080e-16"),(0,r.kt)("td",null,"4.219000e-18"),(0,r.kt)("td",null,"..."),(0,r.kt)("td",null,"1.631720e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000020e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"0.000182"),(0,r.kt)("td",null,"5.562330e-18"),(0,r.kt)("td",null,"7.444370e-12"),(0,r.kt)("td",null,"1.0")),(0,r.kt)("tr",null,(0,r.kt)("th",null,"3"),(0,r.kt)("td",null,"1.000000e-05"),(0,r.kt)("td",null,"10000.0"),(0,r.kt)("td",null,"10.0"),(0,r.kt)("td",null,"2.9287"),(0,r.kt)("td",null,"1.0"),(0,r.kt)("td",null,"1"),(0,r.kt)("td",null,"0.5"),(0,r.kt)("td",null,"5.641430e-11"),(0,r.kt)("td",null,"1.789520e-15"),(0,r.kt)("td",null,"4.212520e-16"),(0,r.kt)("td",null,"..."),(0,r.kt)("td",null,"7.762720e-29"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000050e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000010e-30"),(0,r.kt)("td",null,"0.000182"),(0,r.kt)("td",null,"5.554260e-16"),(0,r.kt)("td",null,"7.438940e-11"),(0,r.kt)("td",null,"1.0")),(0,r.kt)("tr",null,(0,r.kt)("th",null,"4"),(0,r.kt)("td",null,"1.000000e-04"),(0,r.kt)("td",null,"10000.0"),(0,r.kt)("td",null,"10.0"),(0,r.kt)("td",null,"2.9287"),(0,r.kt)("td",null,"1.0"),(0,r.kt)("td",null,"1"),(0,r.kt)("td",null,"0.5"),(0,r.kt)("td",null,"5.480630e-10"),(0,r.kt)("td",null,"1.793810e-14"),(0,r.kt)("td",null,"4.079690e-14"),(0,r.kt)("td",null,"..."),(0,r.kt)("td",null,"7.864380e-27"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000070e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000150e-30"),(0,r.kt)("td",null,"0.000182"),(0,r.kt)("td",null,"5.425070e-14"),(0,r.kt)("td",null,"7.351600e-10"),(0,r.kt)("td",null,"1.0")))),(0,r.kt)("p",null,"5 rows \xd7 321 columns")),(0,r.kt)("p",null,"We can also test whether the model run went well by checking for element conservation. We do this because integrator errors often show up as a failure to conserve elemental abundances. "),(0,r.kt)("p",null,"We can use ",(0,r.kt)("inlineCode",{parentName:"p"},"check_element_conservation()")," to test whether we conserve elements in this run. This function returns a dictionary where each entry gives the change in the total abundance of an element as a percentage of the original abundance. In an ideal case, these values are 0\\% indicating the total abundance at the end of the model is exactly the same as the total at the start."),(0,r.kt)("p",null,"Changes of less than 1\\% are fine for many cases but if they are too high, you could consider changing the ",(0,r.kt)("inlineCode",{parentName:"p"},"reltol")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"abstol")," parameters that control the integrator accuracy. They are error tolerance so smaller values lead to smaller errors and (usually) longer integration times. The default values were chosen by running a large grid of models and choosing the tolerances with the lowest average run time from those that conserved elements well and rarely failed. Despite this, there are no one-size-fits-all perfect tolerances and you may run into issues with different networks or models."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},'conservation=uclchem.analysis.check_element_conservation(result_df,element_list=["H","N","C","O","S"])\nprint("Percentage change in total abundances:")\nprint(conservation)\n')),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"Percentage change in total abundances:\n{'H': '0.001%', 'N': '0.000%', 'C': '0.000%', 'O': '0.000%', 'S': '0.000%'}\n")),(0,r.kt)("h2",{id:"plotting-results"},"Plotting Results"),(0,r.kt)("p",null,"Finally, you will want to plot your results. This can be done with any plotting library but UCLCHEM does provide a few functions to make quick plots. Note the use of $ symbols in the species list below, this gets the total ice abundance of a species. For two phase models, this is just the surface abudance but for three phase it is the sum of surface and bulk."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},'species=["H","H2","$H","$H2","H2O","$H2O","CO","$CO","$CH3OH","CH3OH"]\nfig,ax=uclchem.analysis.create_abundance_plot(result_df,species,figsize=(10,7))\nax=ax.set(xscale="log",ylim=(1e-15,1),xlim=(1e3,1e6))\n')),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"png",src:n(1552).Z,width:"712",height:"496"})),(0,r.kt)("p",null,"and that's it! You've run your first UCLCHEM model, checked that the element conservation is correct, and plotted the abundances."))}k.isMDXComponent=!0},1552:(t,e,n)=>{n.d(e,{Z:()=>l});const l=n.p+"assets/images/first_model_9_0-fff8b0e800895dbb0e755cc2b9459720.png"}}]); \ No newline at end of file diff --git a/assets/js/197ac2f1.4ef2359b.js b/assets/js/197ac2f1.4ef2359b.js deleted file mode 100644 index 53cd39a4..00000000 --- a/assets/js/197ac2f1.4ef2359b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6556],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>k});var l=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=l.createContext({}),u=function(e){var t=l.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},d=function(e){var t=u(e.components);return l.createElement(i.Provider,{value:t},e.children)},c={inlineCode:"code",wrapper:function(e){var t=e.children;return l.createElement(l.Fragment,{},t)}},p=l.forwardRef((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,i=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=u(n),k=a,h=p["".concat(i,".").concat(k)]||p[k]||c[k]||r;return n?l.createElement(h,o(o({ref:t},d),{},{components:n})):l.createElement(h,o({ref:t},d))}));function k(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,o=new Array(r);o[0]=p;var s={};for(var i in t)hasOwnProperty.call(t,i)&&(s[i]=t[i]);s.originalType=e,s.mdxType="string"==typeof e?e:a,o[1]=s;for(var u=2;u{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>k,frontMatter:()=>s,metadata:()=>u,toc:()=>c});var l=n(7462),a=n(3366),r=(n(7294),n(3905)),o=["components"],s={},i="Running Your First Models",u={unversionedId:"first_model",id:"first_model",title:"Running Your First Models",description:"In this notebook, we demonstrate the basic use of UCLCHEM's python module by running a simple model and then using the analysis functions to examine the output.",source:"@site/docs/first_model.md",sourceDirName:".",slug:"/first_model",permalink:"/docs/next/first_model",tags:[],version:"current",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1676489846,formattedLastUpdatedAt:"2/15/2023",frontMatter:{},sidebar:"docs",previous:{title:"Tutorials",permalink:"/docs/next/category/tutorials"},next:{title:"Advanced Physical Modelling",permalink:"/docs/next/modelling_objects"}},d={},c=[{value:"A Simple Cloud",id:"a-simple-cloud",level:2},{value:"Checking the output",id:"checking-the-output",level:2},{value:"Plotting Results",id:"plotting-results",level:2}],p={toc:c};function k(e){var t=e.components,s=(0,a.Z)(e,o);return(0,r.kt)("wrapper",(0,l.Z)({},p,s,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"running-your-first-models"},"Running Your First Models"),(0,r.kt)("p",null,"In this notebook, we demonstrate the basic use of UCLCHEM's python module by running a simple model and then using the analysis functions to examine the output."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},"import uclchem\n")),(0,r.kt)("h2",{id:"a-simple-cloud"},"A Simple Cloud"),(0,r.kt)("p",null,"UCLCHEM's ",(0,r.kt)("inlineCode",{parentName:"p"},"cloud()")," model is a spherical cloud of isothermal gas. We can keep a constant density or have it increase over time following a freefall equation. This model is generally useful whenever you want to model a homogeneous cloud of gas under constant conditions. For example, in the inner parts of a molecular cloud where Av ",(0,r.kt)("span",{parentName:"p",className:"math math-inline"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("mo",{parentName:"mrow"},"\u2273")),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\gtrsim")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.95916em",verticalAlign:"-0.22958em"}}),(0,r.kt)("span",{parentName:"span",className:"mrel amsrm"},"\u2273")))))," 10 there are very few depth dependent processes. You may wish to model the whole of this UV shielded portion of the cloud with a single ",(0,r.kt)("inlineCode",{parentName:"p"},"cloud()")," model."),(0,r.kt)("p",null,"Due to the large number of parameters in a chemical model and the way fortran and python interaction, we find it is easiest to do parameter input through python dictionaries. In this block, we define param_dict which contains the parameters we wish to modify for this run. Every ",(0,r.kt)("inlineCode",{parentName:"p"},"uclchem.model")," function accepts a dictionary as an optional argument. Every parameter has a default value which is overriden if that parameter is specified in this dictionary. You can find a complete list of modifiable parameters and their default values in ",(0,r.kt)("a",{parentName:"p",href:"/docs/parameters"},"our parameter docs"),"."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},'# set a parameter dictionary for phase 1 collapse model\n\nout_species = ["SO","CO"]\nparam_dict = {\n "endAtFinalDensity": False,#stop at finalTime\n "freefall": False,#don\'t increase density in freefall\n "initialDens": 1e4, #starting density\n "initialTemp": 10.0,#temperature of gas\n "finalTime": 1.0e6, #final time\n "rout":0.1, #radius of cloud in pc\n "baseAv":1.0, #visual extinction at cloud edge.\n "outputFile": "../examples/test-output/static-full.dat",#full UCLCHEM output\n "abundSaveFile": "../examples/test-output/startstatic.dat",#save final abundances to file\n}\nresult = uclchem.model.cloud(param_dict=param_dict,out_species=out_species)\nprint(result)\n\n')),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"[1, 3.331065659699488e-11, 3.576305642378658e-05]\n")),(0,r.kt)("h2",{id:"checking-the-output"},"Checking the output"),(0,r.kt)("p",null,"At the end of the previous cell, we printed ",(0,r.kt)("inlineCode",{parentName:"p"},"result")," which is a list returned by every UCLCHEM model function. The first element is always an integer which will be positive if the code completed and negative otherwise. You can send negative values to ",(0,r.kt)("inlineCode",{parentName:"p"},"uclchem.utils.check_error()")," to get a more detailed error message."),(0,r.kt)("p",null,"The subsequent elements are the final abundances of any species listed in ",(0,r.kt)("inlineCode",{parentName:"p"},"out_species"),", in this case we have the abundance of SO and CO. This is useful when we want to use UCLCHEM as part of something like an MCMC procedure, obtaining abundances for given parameters. However, we also write the final abundances of all species to ",(0,r.kt)("inlineCode",{parentName:"p"},"abundSaveFile")," and the abundances of all species at every time step in ",(0,r.kt)("inlineCode",{parentName:"p"},"outputFile")," so it is not necessary to acquire abundances in this way."),(0,r.kt)("p",null,"The output file is just a simple csv with some header rows, UCLCHEM has a utility function to read that file into a pandas dataframe. Let's load it up and look at it."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},'result_df=uclchem.analysis.read_output_file("../examples/test-output/static-full.dat")\nresult_df.head()\n')),(0,r.kt)("div",null,(0,r.kt)("table",{border:"1",class:"dataframe"},(0,r.kt)("thead",null,(0,r.kt)("tr",null,(0,r.kt)("th",null),(0,r.kt)("th",null,"Time"),(0,r.kt)("th",null,"Density"),(0,r.kt)("th",null,"gasTemp"),(0,r.kt)("th",null,"av"),(0,r.kt)("th",null,"zeta"),(0,r.kt)("th",null,"point"),(0,r.kt)("th",null,"H"),(0,r.kt)("th",null,"#H"),(0,r.kt)("th",null,"H+"),(0,r.kt)("th",null,"@H"),(0,r.kt)("th",null,"..."),(0,r.kt)("th",null,"HS2+"),(0,r.kt)("th",null,"HSO2+"),(0,r.kt)("th",null,"H2S2+"),(0,r.kt)("th",null,"H2S2"),(0,r.kt)("th",null,"#H2S2"),(0,r.kt)("th",null,"@H2S2"),(0,r.kt)("th",null,"E-"),(0,r.kt)("th",null,"BULK"),(0,r.kt)("th",null,"SURFACE"),(0,r.kt)("th",null,"radfield"))),(0,r.kt)("tbody",null,(0,r.kt)("tr",null,(0,r.kt)("th",null,"0"),(0,r.kt)("td",null,"0.000000e+00"),(0,r.kt)("td",null,"10000.0"),(0,r.kt)("td",null,"10.0"),(0,r.kt)("td",null,"2.9287"),(0,r.kt)("td",null,"1.0"),(0,r.kt)("td",null,"1"),(0,r.kt)("td",null,"0.5"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"..."),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"0.000182"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.0")),(0,r.kt)("tr",null,(0,r.kt)("th",null,"1"),(0,r.kt)("td",null,"1.000000e-07"),(0,r.kt)("td",null,"10000.0"),(0,r.kt)("td",null,"10.0"),(0,r.kt)("td",null,"2.9287"),(0,r.kt)("td",null,"1.0"),(0,r.kt)("td",null,"1"),(0,r.kt)("td",null,"0.5"),(0,r.kt)("td",null,"5.680300e-13"),(0,r.kt)("td",null,"1.789040e-17"),(0,r.kt)("td",null,"4.269620e-20"),(0,r.kt)("td",null,"..."),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"0.000182"),(0,r.kt)("td",null,"5.629010e-20"),(0,r.kt)("td",null,"7.488850e-13"),(0,r.kt)("td",null,"1.0")),(0,r.kt)("tr",null,(0,r.kt)("th",null,"2"),(0,r.kt)("td",null,"1.000000e-06"),(0,r.kt)("td",null,"10000.0"),(0,r.kt)("td",null,"10.0"),(0,r.kt)("td",null,"2.9287"),(0,r.kt)("td",null,"1.0"),(0,r.kt)("td",null,"1"),(0,r.kt)("td",null,"0.5"),(0,r.kt)("td",null,"5.646510e-12"),(0,r.kt)("td",null,"1.789080e-16"),(0,r.kt)("td",null,"4.219000e-18"),(0,r.kt)("td",null,"..."),(0,r.kt)("td",null,"1.631720e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000020e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"0.000182"),(0,r.kt)("td",null,"5.562330e-18"),(0,r.kt)("td",null,"7.444370e-12"),(0,r.kt)("td",null,"1.0")),(0,r.kt)("tr",null,(0,r.kt)("th",null,"3"),(0,r.kt)("td",null,"1.000000e-05"),(0,r.kt)("td",null,"10000.0"),(0,r.kt)("td",null,"10.0"),(0,r.kt)("td",null,"2.9287"),(0,r.kt)("td",null,"1.0"),(0,r.kt)("td",null,"1"),(0,r.kt)("td",null,"0.5"),(0,r.kt)("td",null,"5.641430e-11"),(0,r.kt)("td",null,"1.789520e-15"),(0,r.kt)("td",null,"4.212520e-16"),(0,r.kt)("td",null,"..."),(0,r.kt)("td",null,"7.762720e-29"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000050e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000010e-30"),(0,r.kt)("td",null,"0.000182"),(0,r.kt)("td",null,"5.554260e-16"),(0,r.kt)("td",null,"7.438940e-11"),(0,r.kt)("td",null,"1.0")),(0,r.kt)("tr",null,(0,r.kt)("th",null,"4"),(0,r.kt)("td",null,"1.000000e-04"),(0,r.kt)("td",null,"10000.0"),(0,r.kt)("td",null,"10.0"),(0,r.kt)("td",null,"2.9287"),(0,r.kt)("td",null,"1.0"),(0,r.kt)("td",null,"1"),(0,r.kt)("td",null,"0.5"),(0,r.kt)("td",null,"5.480630e-10"),(0,r.kt)("td",null,"1.793810e-14"),(0,r.kt)("td",null,"4.079690e-14"),(0,r.kt)("td",null,"..."),(0,r.kt)("td",null,"7.864380e-27"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000070e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000150e-30"),(0,r.kt)("td",null,"0.000182"),(0,r.kt)("td",null,"5.425070e-14"),(0,r.kt)("td",null,"7.351600e-10"),(0,r.kt)("td",null,"1.0")))),(0,r.kt)("p",null,"5 rows \xd7 321 columns")),(0,r.kt)("p",null,"We can also test whether the model run went well by checking for element conservation. We do this because integrator errors often show up as a failure to conserve elemental abundances. "),(0,r.kt)("p",null,"We can use ",(0,r.kt)("inlineCode",{parentName:"p"},"check_element_conservation()")," to test whether we conserve elements in this run. This function returns a dictionary where each entry gives the change in the total abundance of an element as a percentage of the original abundance. In an ideal case, these values are 0\\% indicating the total abundance at the end of the model is exactly the same as the total at the start."),(0,r.kt)("p",null,"Changes of less than 1\\% are fine for many cases but if they are too high, you could consider changing the ",(0,r.kt)("inlineCode",{parentName:"p"},"reltol")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"abstol")," parameters that control the integrator accuracy. They are error tolerance so smaller values lead to smaller errors and (usually) longer integration times. The default values were chosen by running a large grid of models and choosing the tolerances with the lowest average run time from those that conserved elements well and rarely failed. Despite this, there are no one-size-fits-all perfect tolerances and you may run into issues with different networks or models."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},'conservation=uclchem.analysis.check_element_conservation(result_df,element_list=["H","N","C","O","S"])\nprint("Percentage change in total abundances:")\nprint(conservation)\n')),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"Percentage change in total abundances:\n{'H': '0.001%', 'N': '0.000%', 'C': '0.000%', 'O': '0.000%', 'S': '0.000%'}\n")),(0,r.kt)("h2",{id:"plotting-results"},"Plotting Results"),(0,r.kt)("p",null,"Finally, you will want to plot your results. This can be done with any plotting library but UCLCHEM does provide a few functions to make quick plots. Note the use of $ symbols in the species list below, this gets the total ice abundance of a species. For two phase models, this is just the surface abudance but for three phase it is the sum of surface and bulk."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},'species=["H","H2","$H","$H2","H2O","$H2O","CO","$CO","$CH3OH","CH3OH"]\nfig,ax=uclchem.analysis.create_abundance_plot(result_df,species,figsize=(10,7))\nax=ax.set(xscale="log",ylim=(1e-15,1),xlim=(1e3,1e6))\n')),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"png",src:n(1552).Z,width:"712",height:"496"})),(0,r.kt)("p",null,"and that's it! You've run your first UCLCHEM model, checked that the element conservation is correct, and plotted the abundances."))}k.isMDXComponent=!0},1552:(e,t,n)=>{n.d(t,{Z:()=>l});const l=n.p+"assets/images/first_model_9_0-fff8b0e800895dbb0e755cc2b9459720.png"}}]); \ No newline at end of file diff --git a/assets/js/19d37fc1.2dc159a9.js b/assets/js/19d37fc1.2dc159a9.js deleted file mode 100644 index e317b82e..00000000 --- a/assets/js/19d37fc1.2dc159a9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8530],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>d});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),c=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),h=c(r),d=o,m=h["".concat(l,".").concat(d)]||h[d]||u[d]||a;return r?n.createElement(m,i(i({ref:t},p),{},{components:r})):n.createElement(m,i({ref:t},p))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:o,i[1]=s;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>d,frontMatter:()=>s,metadata:()=>c,toc:()=>u});var n=r(7462),o=r(3366),a=(r(7294),r(3905)),i=["components"],s={title:"HITs - History Independent Tracers",authors:"jonholdship"},l=void 0,c={permalink:"/blog/2022/02/06/holdship-hits",source:"@site/blog/2022-02-06-holdship-hits.md",title:"HITs - History Independent Tracers",description:"Interpreting molecular observations through chemical and radiative transfer models is a common but complex practice. Whilst many uncertainties affect chemical models, one in particular is addressed in this work: the issue of time dependence. When modelling a molecular cloud or protostellar disk, how do we initialize the abundances? When is an appropriate time to compare our model to the observed object? Our paper on History Independent Tracers (HITs) side steps this issue by producing a list of molecules which are insensitive to the chemical history of the gas, essentially reaching steady state very quickly across a very wide range of gas conditions.",date:"2022-02-06T00:00:00.000Z",formattedDate:"February 6, 2022",tags:[],readingTime:1.285,truncated:!1,authors:[{name:"Jonathan Holdship",title:"UCLCHEM developer",url:"https://jonholdship.github.io",imageURL:"/img/jon.png",key:"jonholdship"}],frontMatter:{title:"HITs - History Independent Tracers",authors:"jonholdship"},prevItem:{title:"The Cosmic-ray Ionization Rate in NGC 253",permalink:"/blog/2022/04/14/crir-ngc253"},nextItem:{title:"First measurement of nitrogen fractionation in shocked clumps of the L1157 protostellar outflow. SOLIS XI",permalink:"/blog/2020/12/07/milena-nitrogen-solis"}},p={authorsImageUrls:[void 0]},u=[],h={toc:u};function d(e){var t=e.components,r=(0,o.Z)(e,i);return(0,a.kt)("wrapper",(0,n.Z)({},h,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Interpreting molecular observations through chemical and radiative transfer models is a common but complex practice. Whilst many uncertainties affect chemical models, one in particular is addressed in this work: the issue of time dependence. When modelling a molecular cloud or protostellar disk, how do we initialize the abundances? When is an appropriate time to compare our model to the observed object? Our paper on ",(0,a.kt)("a",{parentName:"p",href:"https://ui.adsabs.harvard.edu/abs/2022A%26A...658A.103H/abstract"},"History Independent Tracers (HITs)")," side steps this issue by producing a list of molecules which are insensitive to the chemical history of the gas, essentially reaching steady state very quickly across a very wide range of gas conditions."),(0,a.kt)("p",null,"However, having a list of molecules that are easy to model is only first step towards making useful inferences. We then use our HITs to determine which observables are the most informative about various physical parameters. We do this by producing a large dataset of synthetic observations using UCLCHEM and RADEX to produce line intensities for every transition of every HIT under a wide range of physical conditions. We then calculate the ",(0,a.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Mutual_information"},"mutual information")," between each molecular transition and each physical parameter and use these to rank the transitions. The information scores are all available on the ",(0,a.kt)("a",{parentName:"p",href:"https://hits.strw.leidenuniv.nl"},"HITs website")," which can be used to plan observations."),(0,a.kt)("p",null,"By choosing transitions of a HIT that have a high mutual information with your physical parameter of interest, you can obtain the best possible constraint on that parameter. Moreover, as a HIT, the chemical modelling of this species will not be subject to much uncertainty from the gas history."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/19d37fc1.e25f6ed7.js b/assets/js/19d37fc1.e25f6ed7.js new file mode 100644 index 00000000..121c6d30 --- /dev/null +++ b/assets/js/19d37fc1.e25f6ed7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8530],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>d});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),c=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=c(r),d=o,m=u["".concat(l,".").concat(d)]||u[d]||h[d]||a;return r?n.createElement(m,i(i({ref:t},p),{},{components:r})):n.createElement(m,i({ref:t},p))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:o,i[1]=s;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>d,frontMatter:()=>s,metadata:()=>c,toc:()=>h});var n=r(7462),o=r(3366),a=(r(7294),r(3905)),i=["components"],s={title:"HITs - History Independent Tracers",authors:"jonholdship"},l=void 0,c={permalink:"/blog/2022/02/06/holdship-hits",source:"@site/blog/2022-02-06-holdship-hits.md",title:"HITs - History Independent Tracers",description:"Interpreting molecular observations through chemical and radiative transfer models is a common but complex practice. Whilst many uncertainties affect chemical models, one in particular is addressed in this work: the issue of time dependence. When modelling a molecular cloud or protostellar disk, how do we initialize the abundances? When is an appropriate time to compare our model to the observed object? Our paper on History Independent Tracers (HITs) side steps this issue by producing a list of molecules which are insensitive to the chemical history of the gas, essentially reaching steady state very quickly across a very wide range of gas conditions.",date:"2022-02-06T00:00:00.000Z",formattedDate:"February 6, 2022",tags:[],readingTime:1.285,hasTruncateMarker:!1,authors:[{name:"Jonathan Holdship",title:"UCLCHEM developer",url:"https://jonholdship.github.io",imageURL:"/img/jon.png",key:"jonholdship"}],frontMatter:{title:"HITs - History Independent Tracers",authors:"jonholdship"},prevItem:{title:"The Cosmic-ray Ionization Rate in NGC 253",permalink:"/blog/2022/04/14/crir-ngc253"},nextItem:{title:"First measurement of nitrogen fractionation in shocked clumps of the L1157 protostellar outflow. SOLIS XI",permalink:"/blog/2020/12/07/milena-nitrogen-solis"}},p={authorsImageUrls:[void 0]},h=[],u={toc:h};function d(e){var t=e.components,r=(0,o.Z)(e,i);return(0,a.kt)("wrapper",(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Interpreting molecular observations through chemical and radiative transfer models is a common but complex practice. Whilst many uncertainties affect chemical models, one in particular is addressed in this work: the issue of time dependence. When modelling a molecular cloud or protostellar disk, how do we initialize the abundances? When is an appropriate time to compare our model to the observed object? Our paper on ",(0,a.kt)("a",{parentName:"p",href:"https://ui.adsabs.harvard.edu/abs/2022A%26A...658A.103H/abstract"},"History Independent Tracers (HITs)")," side steps this issue by producing a list of molecules which are insensitive to the chemical history of the gas, essentially reaching steady state very quickly across a very wide range of gas conditions."),(0,a.kt)("p",null,"However, having a list of molecules that are easy to model is only first step towards making useful inferences. We then use our HITs to determine which observables are the most informative about various physical parameters. We do this by producing a large dataset of synthetic observations using UCLCHEM and RADEX to produce line intensities for every transition of every HIT under a wide range of physical conditions. We then calculate the ",(0,a.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Mutual_information"},"mutual information")," between each molecular transition and each physical parameter and use these to rank the transitions. The information scores are all available on the ",(0,a.kt)("a",{parentName:"p",href:"https://hits.strw.leidenuniv.nl"},"HITs website")," which can be used to plan observations."),(0,a.kt)("p",null,"By choosing transitions of a HIT that have a high mutual information with your physical parameter of interest, you can obtain the best possible constraint on that parameter. Moreover, as a HIT, the chemical modelling of this species will not be subject to much uncertainty from the gas history."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8762eb7f.146f3bdc.js b/assets/js/1ba038cd.348df808.js similarity index 95% rename from assets/js/8762eb7f.146f3bdc.js rename to assets/js/1ba038cd.348df808.js index 4689068a..3ddec560 100644 --- a/assets/js/8762eb7f.146f3bdc.js +++ b/assets/js/1ba038cd.348df808.js @@ -1 +1 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5013],{3905:(a,e,t)=>{t.d(e,{Zo:()=>N,kt:()=>k});var s=t(7294);function n(a,e,t){return e in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function m(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.push.apply(t,s)}return t}function p(a){for(var e=1;e=0||(n[t]=a[t]);return n}(a,e);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(a);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(a,t)&&(n[t]=a[t])}return n}var i=s.createContext({}),l=function(a){var e=s.useContext(i),t=e;return a&&(t="function"==typeof a?a(e):p(p({},e),a)),t},N=function(a){var e=l(a.components);return s.createElement(i.Provider,{value:e},a.children)},o={inlineCode:"code",wrapper:function(a){var e=a.children;return s.createElement(s.Fragment,{},e)}},c=s.forwardRef((function(a,e){var t=a.components,n=a.mdxType,m=a.originalType,i=a.parentName,N=r(a,["components","mdxType","originalType","parentName"]),c=l(t),k=n,h=c["".concat(i,".").concat(k)]||c[k]||o[k]||m;return t?s.createElement(h,p(p({ref:e},N),{},{components:t})):s.createElement(h,p({ref:e},N))}));function k(a,e){var t=arguments,n=e&&e.mdxType;if("string"==typeof a||n){var m=t.length,p=new Array(m);p[0]=c;var r={};for(var i in e)hasOwnProperty.call(e,i)&&(r[i]=e[i]);r.originalType=a,r.mdxType="string"==typeof a?a:n,p[1]=r;for(var l=2;l{t.r(e),t.d(e,{assets:()=>N,contentTitle:()=>i,default:()=>k,frontMatter:()=>r,metadata:()=>l,toc:()=>o});var s=t(7462),n=t(3366),m=(t(7294),t(3905)),p=["components"],r={},i="Chemical Analysis",l={unversionedId:"chemical_analysis",id:"chemical_analysis",title:"Chemical Analysis",description:"Chemical networks are complex systems where the interplay between many elements often means that small changes in one aspect of the network can greatly effect the outcome in unexpected ways. Nevertheless, there are cases where a simple chemical explanation can be found for some observed behaviour in the model outputs. This tutorial demonstrates how to use some of the functionality of the UCLCHEM library to analyse model outputs and discover these explanations.",source:"@site/docs/chemical_analysis.md",sourceDirName:".",slug:"/chemical_analysis",permalink:"/docs/next/chemical_analysis",tags:[],version:"current",lastUpdatedBy:"jonholdship",lastUpdatedAt:1651073142,formattedLastUpdatedAt:"4/27/2022",frontMatter:{},sidebar:"docs",previous:{title:"Running a Grid",permalink:"/docs/next/running_a_grid"},next:{title:"Compilation Issues",permalink:"/docs/next/trouble-compile"}},N={},o=[{value:"H3O+ and SO",id:"h3o-and-so",level:2},{value:"1. Generate Test Cases",id:"1-generate-test-cases",level:3},{value:"2. Run the Analysis",id:"2-run-the-analysis",level:3},{value:"2.1 H_3O^+",id:"21-h_3o",level:4},{value:"2.2 SO",id:"22-so",level:4},{value:"Summary Notes",id:"summary-notes",level:2},{value:"Considerations",id:"considerations",level:2}],c={toc:o};function k(a){var e=a.components,r=(0,n.Z)(a,p);return(0,m.kt)("wrapper",(0,s.Z)({},c,r,{components:e,mdxType:"MDXLayout"}),(0,m.kt)("h1",{id:"chemical-analysis"},"Chemical Analysis"),(0,m.kt)("p",null,"Chemical networks are complex systems where the interplay between many elements often means that small changes in one aspect of the network can greatly effect the outcome in unexpected ways. Nevertheless, there are cases where a simple chemical explanation can be found for some observed behaviour in the model outputs. This tutorial demonstrates how to use some of the functionality of the UCLCHEM library to analyse model outputs and discover these explanations."),(0,m.kt)("p",null,"We do recommend caution when following the approach laid out in this tutorial. There are many pitfalls which we will try to point out as we go. Ultimately, a comprehensive view of how important a reaction is to the outcome of your model requires detailed statistical calculations such as the use of ",(0,m.kt)("a",{parentName:"p",href:"https://github.com/slundberg/shap"},"SHAP values")," to assign meaningful scores to how much various reactions in a network contribute to a species' abundance. Therefore, care must be taken by the user to ensure that the conclusions they draw from a simpler approach are sound."),(0,m.kt)("p",null,"We'll use an example from work that was recently published at the time of writing this tutorial to demonstrate the use of ",(0,m.kt)("inlineCode",{parentName:"p"},"uclchem.analysis.analysis()")," and how it can be used to draw conclusions about the most important reactions in a network for a given species/behaviour."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},"import uclchem\nfrom glob import glob\n")),(0,m.kt)("h2",{id:"h3o-and-so"},"H3O+ and SO"),(0,m.kt)("p",null,"In a piece of inference work in which we measured the cosmic ray ionization rate (CRIR) in NGC 253 ",(0,m.kt)("a",{parentName:"p",href:"https://ui.adsabs.harvard.edu/abs/2022arXiv220403668H/abstract"},"(Holdship et al. 2022)"),". We found that both H3O+ and SO were sensitive to the ionization rate. Furthermore, since H3O+ was increased in abundance by increasing CRIR and SO was destroyed, their ratio was extremely sensitive to the rate. "),(0,m.kt)("p",null,"In the work, we present the plot below which shows how the equilibrium abundance of each species changes with the CRIR as well as the ratio. We plot this for a range of temperatures to show that this behaviour is not particularly sensitive to the gas temperature."),(0,m.kt)("p",null,(0,m.kt)("img",{alt:"crir_h3o_so_example",src:t(360).Z,width:"1600",height:"1067"})),(0,m.kt)("p",null,"In a sense, this is all the information we need. A complex array of reactions all compete and contribute to produce the outcome of the model. Whatever they are, we see the abundance of these species are very sensitive to the CR over a wide range of temperature and density. However, we can only trust this conclusion as far as we trust the entire chemical network since we don't know what exactly causes this behaviour."),(0,m.kt)("p",null,"If we use the analysis function, we may find all of this is driven by a small handful of reactions. The benefit would then be that our trust in our conclusions only depends on how much we trust the rates of those specific reactions. If it is very important, we can evaluate those reactions and readers of our work can make the same decisions as information from experiment changes."),(0,m.kt)("h3",{id:"1-generate-test-cases"},"1. Generate Test Cases"),(0,m.kt)("p",null,"Ideally, we should run a huge grid of models and find some rigorous way to evaluate how important each reaction is to the outcome of the model. However, if we run a small grid representative of different conditions then any simple chemical explanation will be evident if it exists. If it no simple explanation is appropriate, then the analysis module is not appropriate for our task and we could consider more complex approaches."),(0,m.kt)("p",null,"Let's run a simple grid with all possible combinations of the following:"),(0,m.kt)("ul",null,(0,m.kt)("li",{parentName:"ul"},"A low CRIR (zeta=1) and high CRIR (zeta=1e4)"),(0,m.kt)("li",{parentName:"ul"},"A typical cloud density (n=1e4) and high density (n=1e6)"),(0,m.kt)("li",{parentName:"ul"},"The lower temperature bound of NGC 253 CMZ (50 K) and a high temperature (250 K)")),(0,m.kt)("p",null,"and that will give us enough to work with for our analysis."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'params={\'baseAv\':10, #UV shielded gas in our model\n \'freefall\':False,\n \'finalTime\':1e6\n }\nfor temperature in [50,250]:\n for density in [1e4,1e6]:\n for zeta in [1,1e4]:\n params["initialtemp"]=temperature\n params["initialdens"]=density\n params["zeta"]=zeta\n params["outputfile"]=f"../output/{temperature}_{density}_{zeta}.csv"\n uclchem.model.cloud(param_dict=params)\n')),(0,m.kt)("h3",{id:"2-run-the-analysis"},"2. Run the Analysis"),(0,m.kt)("p",null,"The ",(0,m.kt)("inlineCode",{parentName:"p"},"analysis")," function is very simple. For every time step in your model output, it will use UCLCHEM to calculate the rate of every reaction which includes a chosen species. It then uses the abundances at that time step to calculate the total contribution of that reaction to the rate of change of the species' abundance."),(0,m.kt)("p",null,"For example, if we care about H3O+ and find that it is created by ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"2")),(0,m.kt)("mi",{parentName:"mrow"},"O")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_2O")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O")))))," + ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"H"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+")))))))))))),", then UCLCHEM is called to get ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"k")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"))))),", the rate of that reaction and then analysis calculates"),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mover",{parentName:"mrow",accent:"true"},(0,m.kt)("mrow",{parentName:"mover"},(0,m.kt)("mi",{parentName:"mrow"},"Y"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+")),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,m.kt)("mo",{parentName:"mover"},"\u02d9")),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("mi",{parentName:"mrow"},"k"),(0,m.kt)("mi",{parentName:"mrow"},"Y"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"2")),(0,m.kt)("mi",{parentName:"mrow"},"O"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,m.kt)("mi",{parentName:"mrow"},"Y"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"H"),(0,m.kt)("mo",{parentName:"msup"},"+")),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"n"),(0,m.kt)("mi",{parentName:"msub"},"H"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\dot{Y(H_3O^+)} = k Y(H_2O) Y(H^+) n_H")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"1.23686em",verticalAlign:"-0.25em"}}),(0,m.kt)("span",{parentName:"span",className:"mord accent"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.9868600000000001em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"Y"),(0,m.kt)("span",{parentName:"span",className:"mopen"},"("),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.697331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.989em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+")))))))),(0,m.kt)("span",{parentName:"span",className:"mclose"},")"))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.319em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"accent-body",style:{left:"-0.13889em"}},(0,m.kt)("span",{parentName:"span",className:"mord"},"\u02d9")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.25em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"1.071331em",verticalAlign:"-0.25em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"Y"),(0,m.kt)("span",{parentName:"span",className:"mopen"},"("),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"mclose"},")"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"Y"),(0,m.kt)("span",{parentName:"span",className:"mopen"},"("),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.821331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.113em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+")))))))),(0,m.kt)("span",{parentName:"span",className:"mclose"},")"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))),(0,m.kt)("p",null,"where ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mover",{parentName:"mrow",accent:"true"},(0,m.kt)("mrow",{parentName:"mover"},(0,m.kt)("mi",{parentName:"mrow"},"Y"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+")),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,m.kt)("mo",{parentName:"mover"},"\u02d9"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\dot{Y(H_3O^+)}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"1.23686em",verticalAlign:"-0.25em"}}),(0,m.kt)("span",{parentName:"span",className:"mord accent"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.9868600000000001em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"Y"),(0,m.kt)("span",{parentName:"span",className:"mopen"},"("),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.697331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.989em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+")))))))),(0,m.kt)("span",{parentName:"span",className:"mclose"},")"))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.319em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"accent-body",style:{left:"-0.13889em"}},(0,m.kt)("span",{parentName:"span",className:"mord"},"\u02d9")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.25em"}},(0,m.kt)("span",{parentName:"span"})))))))))," is the rate of change of the ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("mi",{parentName:"mrow"},"O"),(0,m.kt)("mo",{parentName:"mrow"},"+")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"mord"},"+")))))," abundance due to the reaction. The ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mover",{parentName:"mrow",accent:"true"},(0,m.kt)("mi",{parentName:"mover"},"Y"),(0,m.kt)("mo",{parentName:"mover"},"\u02d9"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\dot{Y}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.9201900000000001em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord accent"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.9201900000000001em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"Y"))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.25233em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"accent-body",style:{left:"-0.13889em"}},(0,m.kt)("span",{parentName:"span",className:"mord"},"\u02d9")))))))))))," s of each reaction involving the ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," are then compared to see which reactions contribute the most to the destruction and formation of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("mi",{parentName:"mrow"},"O"),(0,m.kt)("mo",{parentName:"mrow"},"+")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"mord"},"+"))))),"."),(0,m.kt)("p",null,"Our plan then is to do this for the low zeta case and the high zeta case. Hopefully, we'll see the same reactions are most important to the abundance of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," and SO at all densities and tempertures. If we don't find that that's the case, then the chemistry is these species is fairly complex and perhaps trying to present a simple cause for the CRIR dependence is not a good idea."),(0,m.kt)("p",null,"So, let's analyse the outputs!"),(0,m.kt)("h4",{id:"21-h_3o"},"2.1 ",(0,m.kt)("span",{parentName:"h4",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))),(0,m.kt)("p",null,(0,m.kt)("inlineCode",{parentName:"p"},"analysis()")," takes three arguments: the species, the output file to analyse, and a file to store the analsis output. Let's run it for every model in our little grid so we can inspect the outputs."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'outputs=glob("../output/[0-9]*.csv") #all files that start with a number\nfor output in outputs:\n \n analysis_output="../output/H3O-analysis-"+output[10:]\n uclchem.analysis.analysis("H3O+",output,analysis_output)\n')),(0,m.kt)("p",null,"This will produce one file per model output with lists of the most important reactions at each time step. Analysis will only print a time step when the most important reactions change from the previous one so we often see many fewer steps than in the full output. Let's look at the low temperature, low density, low zeta case:"),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"New Important Reactions At: 7.90e+05 years\nFormation = 1.92e-18 from:\nH2 + H2O+ -> H3O+ + H : 78.49%\nH2O + HCO+ -> CO + H3O+ : 17.68%\nH3+ + H2O -> H3O+ + H2 : 3.40%\n\nDestruction = -1.92e-18 from:\nH3O+ + E- -> OH + H + H : 65.43%\nH3O+ + E- -> H2O + H : 15.21%\nH3O+ + E- -> OH + H2 : 11.52%\nH3O+ + H2S -> H3S+ + H2O : 5.17%\nH3O+ + E- -> O + H2 + H : 1.20%\nH3O+ + HCN -> HCNH+ + H2O : 0.33%\nH3O+ + SIO -> SIOH+ + H2O : 0.33%\n")),(0,m.kt)("p",null,"What this shows is the reactions that cause 99.9% of the formation and 99.9% of the destruction of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," at a time step. The total rate of formation and destruction in units of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"s"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"1")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"s^{-1}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"s"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1")))))))))))))," is given as well the percentage of the total that each reaction contributes. "),(0,m.kt)("p",null,"What we need to find is a pattern in these reactions which holds across time and across different densities and temperatures. It actually turns out that the reactions printed above are the dominate formation and destruction routes of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," for all parameters for all times. For example, at high temperature, high density and high zeta, we get:"),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"New Important Reactions At: 1.00e+04 years\nFormation = 2.03e-14 from:\nH2 + H2O+ -> H3O+ + H : 95.47%\nH3+ + H2O -> H3O+ + H2 : 3.14%\nH2O + HCO+ -> CO + H3O+ : 1.05%\n\nDestruction = -2.03e-14 from:\nH3O+ + E- -> OH + H + H : 69.82%\nH3O+ + E- -> H2O + H : 16.23%\nH3O+ + E- -> OH + H2 : 12.29%\nH3O+ + E- -> O + H2 + H : 1.28%\n")),(0,m.kt)("p",null,"The sole difference being that the formation rate is much higher. Since equilibrium is reached, the destruction rate is also higher and so we need to use the fact we know the ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," abundance increases with CRIR to infer that the destruction rate is only faster because there is more ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," to destroy."),(0,m.kt)("p",null,"However, there are some problems here! Why does ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"2"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_2")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," + ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"2")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_2O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," become so efficient at high CRIR? We know the rate of a two body reaction does not depend on CRIR (",(0,m.kt)("a",{parentName:"p",href:"/docs/gas"},"see the chemistry docs"),") so it must be that ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"2")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_2O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," is increasing in abundance. We can run analysis on ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"2")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_2O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," to see what is driving that. In fact, as we report in the paper, following this thread we find that a chain of hydrogenations starting from ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"O"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"H"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"OH^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," is the overall route of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," formation and that this chain starts with small ions that are primarly formed through cosmic ray reactions. ",(0,m.kt)("em",{parentName:"p"},"It will very often be the case that analysing one species requires you to run analysis on another.")),(0,m.kt)("h4",{id:"22-so"},"2.2 SO"),(0,m.kt)("p",null,"With a strong explanation for ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+")))))))))))),", we can now look at SO. We start by running analysis again and then by looking at the reactions as before."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'outputs=glob("../output/[0-9]*.csv") #won\'t pick up H3O+ analysis because it\'s not a number\nfor output in outputs:\n \n analysis_output="../output/SO-analysis-"+output[10:]\n uclchem.analysis.analysis("SO",output,analysis_output)\n')),(0,m.kt)("p",null,"Again, let's start by looking at the low temperature, high density, low zeta case:"),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"New Important Reactions At: 1.31e+04 years\nFormation = 3.67e-22 from:\n#SO + THERM -> SO : 68.11%\nHSO+ + E- -> SO + H : 21.04%\n#SO + DEUVCR -> SO : 9.87%\n\nDestruction = -3.78e-22 from:\nSO + FREEZE -> #SO : 78.04%\nHCO+ + SO -> HSO+ + CO : 20.97%\n")),(0,m.kt)("p",null,"An interesting point here is that equilbrium is reached at around ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1.31"),(0,m.kt)("mo",{parentName:"mrow"},"\xd7"),(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"4"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"1.31 \\times 10^4")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.72777em",verticalAlign:"-0.08333em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},"."),(0,m.kt)("span",{parentName:"span",className:"mord"},"3"),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mbin"},"\xd7"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"4"))))))))))))," yr in this model. Since ",(0,m.kt)("inlineCode",{parentName:"p"},"analysis()")," only prints a time step when the most important reactions are different to the last one, this time step is the last output from the analysis. We can see that we broadly reach an equilibrium between thermal desorption and freeze out of SO, with some formation and destruction via ions. "),(0,m.kt)("p",null,"This doesn't hold up at lower densities or higher temperatures, looking at the high temperature, low density, low zeta case, we see a second pattern of reactions:"),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"New Important Reactions At: 9.50e+05 years\nFormation = 1.05e-20 from:\nO2 + S -> SO + O : 98.10%\nO + NS -> SO + N : 1.48%\n\nDestruction = -1.02e-20 from:\nC + SO -> CS + O : 39.10%\nC + SO -> S + CO : 39.10%\nC+ + SO -> SO+ + C : 4.33%\nC+ + SO -> CS+ + O : 4.33%\nC+ + SO -> S+ + CO : 4.33%\nC+ + SO -> S + CO+ : 4.33%\nN + SO -> S + NO : 3.46%\nH+ + SO -> SO+ + H : 0.28%\n")),(0,m.kt)("p",null,"However, it's not so complex. All the low zeta outputs show one of these two sets of reactions. Essentially, higher temperatures are opening up gas phase reaction routes which form and destroy SO. These new routes are not particularly quick with a total rate of change of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"20"))),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"s"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"1")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"10^{-20} s^{-1}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0"))))))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"s"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))))))))))),". Note that quite a lot of these are due to reactions with ions."),(0,m.kt)("p",null,"Finally, we look at the high zeta cases and find that no matter the temperature or density, we see the same reactions:"),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"New Important Reactions At: 1.81e+04 years\nFormation = 5.64e-17 from:\nO2 + S -> SO + O : 85.30%\nHSO+ + E- -> SO + H : 13.19%\nO + NS -> SO + N : 1.19%\n\nDestruction = -5.64e-17 from:\nH+ + SO -> SO+ + H : 13.16%\nC+ + SO -> SO+ + C : 10.52%\nC+ + SO -> CS+ + O : 10.52%\nC+ + SO -> S+ + CO : 10.52%\nC+ + SO -> S + CO+ : 10.52%\nH3+ + SO -> HSO+ + H2 : 9.86%\nC + SO -> CS + O : 8.90%\nC + SO -> S + CO : 8.90%\nSO + CRPHOT -> S + O : 4.11%\nSO + CRPHOT -> SO+ + E- : 4.11%\nHCO+ + SO -> HSO+ + CO : 3.20%\nHE+ + SO -> S+ + O + HE : 1.93%\nHE+ + SO -> S + O+ + HE : 1.93%\nN + SO -> S + NO : 0.87%\n")),(0,m.kt)("p",null,"Ions take over the destruction of SO when the CRIR is high and these reactions are proceeding about 1000 times faster than the low zeta rates. This makes sense as increasing the CRIR will greatly increase the abundances of these simple ionic species."),(0,m.kt)("p",null,"All in all, we can conclude that a range of gas phase reactions control the abundance of SO at low zeta but once the CRIR is high, destruction via ions dominates the SO chemistry leading to the decreasing abundance that we see."),(0,m.kt)("h2",{id:"summary-notes"},"Summary Notes"),(0,m.kt)("p",null,"In this notebook, we've run some representative models to look at why the SO and ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," abundances seem to so heavily depend on the CRIR. We find that a chain of very efficient reactions starting with simple ions comprise the primary formation route of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," so that the total production of this species depends entirely on the abundance of those ions. With high CRIR, those ions become very abundant and we get a lot of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," formation."),(0,m.kt)("p",null,"SO is complex at first glance since the formation routes vary by parameter. However, looking at the destruction routes we can see that it's simply that SO can be easily destroyed by simple ions and, again, these are very abundant in gas exposed to a high CRIR."),(0,m.kt)("p",null,"An interesting note about SO is that we could potentially say that destruction via C",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," is the dominant destruction route. However, we would caution users to be careful with that kind of statement. Reactions with H",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+")))))))))))),", HE",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," and other also destroy SO. It could be that if we turned off the C",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," reactions, the SO chemistry would be unchanged as other ions take up the slack. Therefore, unless a single reaction is clearly dominant (as in ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," formation), it is best to test the importance of a reaction by removing it before concluding it is the single most important reaction."),(0,m.kt)("h2",{id:"considerations"},"Considerations"),(0,m.kt)("p",null,(0,m.kt)("inlineCode",{parentName:"p"},"uclchem.analysis.analysis()")," looks at a snapshot of the gas and calculates the instantaneous rate of change of important reactions. However, over the course of a time step, abundances change and reactions rise and fall in importance. More importantly, complex interplay between reactions can contribute to an outcome. This is ultimately a simple, first order look at what is happening in the network but in many cases, a deeper view will be required."),(0,m.kt)("p",null,"If you struggle to find an explanation that fits all time steps in your outputs and is true across a range of parameters, then it is best not to report simple conclusions about the chemistry and to look for other ways to understand the network."))}k.isMDXComponent=!0},360:(a,e,t)=>{t.d(e,{Z:()=>s});const s=t.p+"assets/images/holdship_ngc253-f2d6812a8c2a8fc94e669616d3410ee9.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2091],{3905:(a,e,t)=>{t.d(e,{Zo:()=>N,kt:()=>k});var s=t(7294);function n(a,e,t){return e in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function m(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.push.apply(t,s)}return t}function p(a){for(var e=1;e=0||(n[t]=a[t]);return n}(a,e);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(a);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(a,t)&&(n[t]=a[t])}return n}var i=s.createContext({}),l=function(a){var e=s.useContext(i),t=e;return a&&(t="function"==typeof a?a(e):p(p({},e),a)),t},N=function(a){var e=l(a.components);return s.createElement(i.Provider,{value:e},a.children)},o={inlineCode:"code",wrapper:function(a){var e=a.children;return s.createElement(s.Fragment,{},e)}},c=s.forwardRef((function(a,e){var t=a.components,n=a.mdxType,m=a.originalType,i=a.parentName,N=r(a,["components","mdxType","originalType","parentName"]),c=l(t),k=n,h=c["".concat(i,".").concat(k)]||c[k]||o[k]||m;return t?s.createElement(h,p(p({ref:e},N),{},{components:t})):s.createElement(h,p({ref:e},N))}));function k(a,e){var t=arguments,n=e&&e.mdxType;if("string"==typeof a||n){var m=t.length,p=new Array(m);p[0]=c;var r={};for(var i in e)hasOwnProperty.call(e,i)&&(r[i]=e[i]);r.originalType=a,r.mdxType="string"==typeof a?a:n,p[1]=r;for(var l=2;l{t.r(e),t.d(e,{assets:()=>N,contentTitle:()=>i,default:()=>k,frontMatter:()=>r,metadata:()=>l,toc:()=>o});var s=t(7462),n=t(3366),m=(t(7294),t(3905)),p=["components"],r={},i="Chemical Analysis",l={unversionedId:"chemical_analysis",id:"version-v3.1.0/chemical_analysis",title:"Chemical Analysis",description:"Chemical networks are complex systems where the interplay between many elements often means that small changes in one aspect of the network can greatly effect the outcome in unexpected ways. Nevertheless, there are cases where a simple chemical explanation can be found for some observed behaviour in the model outputs. This tutorial demonstrates how to use some of the functionality of the UCLCHEM library to analyse model outputs and discover these explanations.",source:"@site/versioned_docs/version-v3.1.0/chemical_analysis.md",sourceDirName:".",slug:"/chemical_analysis",permalink:"/docs/v3.1.0/chemical_analysis",draft:!1,tags:[],version:"v3.1.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{},sidebar:"docs",previous:{title:"Running a Grid",permalink:"/docs/v3.1.0/running_a_grid"},next:{title:"Compilation Issues",permalink:"/docs/v3.1.0/trouble-compile"}},N={},o=[{value:"H3O+ and SO",id:"h3o-and-so",level:2},{value:"1. Generate Test Cases",id:"1-generate-test-cases",level:3},{value:"2. Run the Analysis",id:"2-run-the-analysis",level:3},{value:"2.1 H_3O^+",id:"21-h_3o",level:4},{value:"2.2 SO",id:"22-so",level:4},{value:"Summary Notes",id:"summary-notes",level:2},{value:"Considerations",id:"considerations",level:2}],c={toc:o};function k(a){var e=a.components,r=(0,n.Z)(a,p);return(0,m.kt)("wrapper",(0,s.Z)({},c,r,{components:e,mdxType:"MDXLayout"}),(0,m.kt)("h1",{id:"chemical-analysis"},"Chemical Analysis"),(0,m.kt)("p",null,"Chemical networks are complex systems where the interplay between many elements often means that small changes in one aspect of the network can greatly effect the outcome in unexpected ways. Nevertheless, there are cases where a simple chemical explanation can be found for some observed behaviour in the model outputs. This tutorial demonstrates how to use some of the functionality of the UCLCHEM library to analyse model outputs and discover these explanations."),(0,m.kt)("p",null,"We do recommend caution when following the approach laid out in this tutorial. There are many pitfalls which we will try to point out as we go. Ultimately, a comprehensive view of how important a reaction is to the outcome of your model requires detailed statistical calculations such as the use of ",(0,m.kt)("a",{parentName:"p",href:"https://github.com/slundberg/shap"},"SHAP values")," to assign meaningful scores to how much various reactions in a network contribute to a species' abundance. Therefore, care must be taken by the user to ensure that the conclusions they draw from a simpler approach are sound."),(0,m.kt)("p",null,"We'll use an example from work that was recently published at the time of writing this tutorial to demonstrate the use of ",(0,m.kt)("inlineCode",{parentName:"p"},"uclchem.analysis.analysis()")," and how it can be used to draw conclusions about the most important reactions in a network for a given species/behaviour."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},"import uclchem\nfrom glob import glob\n")),(0,m.kt)("h2",{id:"h3o-and-so"},"H3O+ and SO"),(0,m.kt)("p",null,"In a piece of inference work in which we measured the cosmic ray ionization rate (CRIR) in NGC 253 ",(0,m.kt)("a",{parentName:"p",href:"https://ui.adsabs.harvard.edu/abs/2022arXiv220403668H/abstract"},"(Holdship et al. 2022)"),". We found that both H3O+ and SO were sensitive to the ionization rate. Furthermore, since H3O+ was increased in abundance by increasing CRIR and SO was destroyed, their ratio was extremely sensitive to the rate. "),(0,m.kt)("p",null,"In the work, we present the plot below which shows how the equilibrium abundance of each species changes with the CRIR as well as the ratio. We plot this for a range of temperatures to show that this behaviour is not particularly sensitive to the gas temperature."),(0,m.kt)("p",null,(0,m.kt)("img",{alt:"crir_h3o_so_example",src:t(3724).Z,width:"1600",height:"1067"})),(0,m.kt)("p",null,"In a sense, this is all the information we need. A complex array of reactions all compete and contribute to produce the outcome of the model. Whatever they are, we see the abundance of these species are very sensitive to the CR over a wide range of temperature and density. However, we can only trust this conclusion as far as we trust the entire chemical network since we don't know what exactly causes this behaviour."),(0,m.kt)("p",null,"If we use the analysis function, we may find all of this is driven by a small handful of reactions. The benefit would then be that our trust in our conclusions only depends on how much we trust the rates of those specific reactions. If it is very important, we can evaluate those reactions and readers of our work can make the same decisions as information from experiment changes."),(0,m.kt)("h3",{id:"1-generate-test-cases"},"1. Generate Test Cases"),(0,m.kt)("p",null,"Ideally, we should run a huge grid of models and find some rigorous way to evaluate how important each reaction is to the outcome of the model. However, if we run a small grid representative of different conditions then any simple chemical explanation will be evident if it exists. If it no simple explanation is appropriate, then the analysis module is not appropriate for our task and we could consider more complex approaches."),(0,m.kt)("p",null,"Let's run a simple grid with all possible combinations of the following:"),(0,m.kt)("ul",null,(0,m.kt)("li",{parentName:"ul"},"A low CRIR (zeta=1) and high CRIR (zeta=1e4)"),(0,m.kt)("li",{parentName:"ul"},"A typical cloud density (n=1e4) and high density (n=1e6)"),(0,m.kt)("li",{parentName:"ul"},"The lower temperature bound of NGC 253 CMZ (50 K) and a high temperature (250 K)")),(0,m.kt)("p",null,"and that will give us enough to work with for our analysis."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'params={\'baseAv\':10, #UV shielded gas in our model\n \'freefall\':False,\n \'finalTime\':1e6\n }\nfor temperature in [50,250]:\n for density in [1e4,1e6]:\n for zeta in [1,1e4]:\n params["initialtemp"]=temperature\n params["initialdens"]=density\n params["zeta"]=zeta\n params["outputfile"]=f"../output/{temperature}_{density}_{zeta}.csv"\n uclchem.model.cloud(param_dict=params)\n')),(0,m.kt)("h3",{id:"2-run-the-analysis"},"2. Run the Analysis"),(0,m.kt)("p",null,"The ",(0,m.kt)("inlineCode",{parentName:"p"},"analysis")," function is very simple. For every time step in your model output, it will use UCLCHEM to calculate the rate of every reaction which includes a chosen species. It then uses the abundances at that time step to calculate the total contribution of that reaction to the rate of change of the species' abundance."),(0,m.kt)("p",null,"For example, if we care about H3O+ and find that it is created by ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"2")),(0,m.kt)("mi",{parentName:"mrow"},"O")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_2O")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O")))))," + ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"H"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+")))))))))))),", then UCLCHEM is called to get ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"k")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"))))),", the rate of that reaction and then analysis calculates"),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mover",{parentName:"mrow",accent:"true"},(0,m.kt)("mrow",{parentName:"mover"},(0,m.kt)("mi",{parentName:"mrow"},"Y"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+")),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,m.kt)("mo",{parentName:"mover"},"\u02d9")),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("mi",{parentName:"mrow"},"k"),(0,m.kt)("mi",{parentName:"mrow"},"Y"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"2")),(0,m.kt)("mi",{parentName:"mrow"},"O"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,m.kt)("mi",{parentName:"mrow"},"Y"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"H"),(0,m.kt)("mo",{parentName:"msup"},"+")),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"n"),(0,m.kt)("mi",{parentName:"msub"},"H"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\dot{Y(H_3O^+)} = k Y(H_2O) Y(H^+) n_H")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"1.23686em",verticalAlign:"-0.25em"}}),(0,m.kt)("span",{parentName:"span",className:"mord accent"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.9868600000000001em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"Y"),(0,m.kt)("span",{parentName:"span",className:"mopen"},"("),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.697331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.989em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+")))))))),(0,m.kt)("span",{parentName:"span",className:"mclose"},")"))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.319em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"accent-body",style:{left:"-0.13889em"}},(0,m.kt)("span",{parentName:"span",className:"mord"},"\u02d9")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.25em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"1.071331em",verticalAlign:"-0.25em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"Y"),(0,m.kt)("span",{parentName:"span",className:"mopen"},"("),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"mclose"},")"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"Y"),(0,m.kt)("span",{parentName:"span",className:"mopen"},"("),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.821331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.113em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+")))))))),(0,m.kt)("span",{parentName:"span",className:"mclose"},")"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))),(0,m.kt)("p",null,"where ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mover",{parentName:"mrow",accent:"true"},(0,m.kt)("mrow",{parentName:"mover"},(0,m.kt)("mi",{parentName:"mrow"},"Y"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+")),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,m.kt)("mo",{parentName:"mover"},"\u02d9"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\dot{Y(H_3O^+)}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"1.23686em",verticalAlign:"-0.25em"}}),(0,m.kt)("span",{parentName:"span",className:"mord accent"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.9868600000000001em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"Y"),(0,m.kt)("span",{parentName:"span",className:"mopen"},"("),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.697331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.989em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+")))))))),(0,m.kt)("span",{parentName:"span",className:"mclose"},")"))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.319em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"accent-body",style:{left:"-0.13889em"}},(0,m.kt)("span",{parentName:"span",className:"mord"},"\u02d9")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.25em"}},(0,m.kt)("span",{parentName:"span"})))))))))," is the rate of change of the ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("mi",{parentName:"mrow"},"O"),(0,m.kt)("mo",{parentName:"mrow"},"+")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"mord"},"+")))))," abundance due to the reaction. The ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mover",{parentName:"mrow",accent:"true"},(0,m.kt)("mi",{parentName:"mover"},"Y"),(0,m.kt)("mo",{parentName:"mover"},"\u02d9"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\dot{Y}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.9201900000000001em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord accent"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.9201900000000001em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"Y"))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.25233em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"accent-body",style:{left:"-0.13889em"}},(0,m.kt)("span",{parentName:"span",className:"mord"},"\u02d9")))))))))))," s of each reaction involving the ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," are then compared to see which reactions contribute the most to the destruction and formation of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("mi",{parentName:"mrow"},"O"),(0,m.kt)("mo",{parentName:"mrow"},"+")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"mord"},"+"))))),"."),(0,m.kt)("p",null,"Our plan then is to do this for the low zeta case and the high zeta case. Hopefully, we'll see the same reactions are most important to the abundance of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," and SO at all densities and tempertures. If we don't find that that's the case, then the chemistry is these species is fairly complex and perhaps trying to present a simple cause for the CRIR dependence is not a good idea."),(0,m.kt)("p",null,"So, let's analyse the outputs!"),(0,m.kt)("h4",{id:"21-h_3o"},"2.1 ",(0,m.kt)("span",{parentName:"h4",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))),(0,m.kt)("p",null,(0,m.kt)("inlineCode",{parentName:"p"},"analysis()")," takes three arguments: the species, the output file to analyse, and a file to store the analsis output. Let's run it for every model in our little grid so we can inspect the outputs."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'outputs=glob("../output/[0-9]*.csv") #all files that start with a number\nfor output in outputs:\n \n analysis_output="../output/H3O-analysis-"+output[10:]\n uclchem.analysis.analysis("H3O+",output,analysis_output)\n')),(0,m.kt)("p",null,"This will produce one file per model output with lists of the most important reactions at each time step. Analysis will only print a time step when the most important reactions change from the previous one so we often see many fewer steps than in the full output. Let's look at the low temperature, low density, low zeta case:"),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"New Important Reactions At: 7.90e+05 years\nFormation = 1.92e-18 from:\nH2 + H2O+ -> H3O+ + H : 78.49%\nH2O + HCO+ -> CO + H3O+ : 17.68%\nH3+ + H2O -> H3O+ + H2 : 3.40%\n\nDestruction = -1.92e-18 from:\nH3O+ + E- -> OH + H + H : 65.43%\nH3O+ + E- -> H2O + H : 15.21%\nH3O+ + E- -> OH + H2 : 11.52%\nH3O+ + H2S -> H3S+ + H2O : 5.17%\nH3O+ + E- -> O + H2 + H : 1.20%\nH3O+ + HCN -> HCNH+ + H2O : 0.33%\nH3O+ + SIO -> SIOH+ + H2O : 0.33%\n")),(0,m.kt)("p",null,"What this shows is the reactions that cause 99.9% of the formation and 99.9% of the destruction of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," at a time step. The total rate of formation and destruction in units of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"s"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"1")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"s^{-1}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"s"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1")))))))))))))," is given as well the percentage of the total that each reaction contributes. "),(0,m.kt)("p",null,"What we need to find is a pattern in these reactions which holds across time and across different densities and temperatures. It actually turns out that the reactions printed above are the dominate formation and destruction routes of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," for all parameters for all times. For example, at high temperature, high density and high zeta, we get:"),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"New Important Reactions At: 1.00e+04 years\nFormation = 2.03e-14 from:\nH2 + H2O+ -> H3O+ + H : 95.47%\nH3+ + H2O -> H3O+ + H2 : 3.14%\nH2O + HCO+ -> CO + H3O+ : 1.05%\n\nDestruction = -2.03e-14 from:\nH3O+ + E- -> OH + H + H : 69.82%\nH3O+ + E- -> H2O + H : 16.23%\nH3O+ + E- -> OH + H2 : 12.29%\nH3O+ + E- -> O + H2 + H : 1.28%\n")),(0,m.kt)("p",null,"The sole difference being that the formation rate is much higher. Since equilibrium is reached, the destruction rate is also higher and so we need to use the fact we know the ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," abundance increases with CRIR to infer that the destruction rate is only faster because there is more ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," to destroy."),(0,m.kt)("p",null,"However, there are some problems here! Why does ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"2"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_2")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," + ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"2")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_2O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," become so efficient at high CRIR? We know the rate of a two body reaction does not depend on CRIR (",(0,m.kt)("a",{parentName:"p",href:"/docs/gas"},"see the chemistry docs"),") so it must be that ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"2")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_2O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," is increasing in abundance. We can run analysis on ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"2")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_2O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," to see what is driving that. In fact, as we report in the paper, following this thread we find that a chain of hydrogenations starting from ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"O"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"H"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"OH^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," is the overall route of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," formation and that this chain starts with small ions that are primarly formed through cosmic ray reactions. ",(0,m.kt)("em",{parentName:"p"},"It will very often be the case that analysing one species requires you to run analysis on another.")),(0,m.kt)("h4",{id:"22-so"},"2.2 SO"),(0,m.kt)("p",null,"With a strong explanation for ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+")))))))))))),", we can now look at SO. We start by running analysis again and then by looking at the reactions as before."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'outputs=glob("../output/[0-9]*.csv") #won\'t pick up H3O+ analysis because it\'s not a number\nfor output in outputs:\n \n analysis_output="../output/SO-analysis-"+output[10:]\n uclchem.analysis.analysis("SO",output,analysis_output)\n')),(0,m.kt)("p",null,"Again, let's start by looking at the low temperature, high density, low zeta case:"),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"New Important Reactions At: 1.31e+04 years\nFormation = 3.67e-22 from:\n#SO + THERM -> SO : 68.11%\nHSO+ + E- -> SO + H : 21.04%\n#SO + DEUVCR -> SO : 9.87%\n\nDestruction = -3.78e-22 from:\nSO + FREEZE -> #SO : 78.04%\nHCO+ + SO -> HSO+ + CO : 20.97%\n")),(0,m.kt)("p",null,"An interesting point here is that equilbrium is reached at around ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1.31"),(0,m.kt)("mo",{parentName:"mrow"},"\xd7"),(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"4"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"1.31 \\times 10^4")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.72777em",verticalAlign:"-0.08333em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},"."),(0,m.kt)("span",{parentName:"span",className:"mord"},"3"),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mbin"},"\xd7"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"4"))))))))))))," yr in this model. Since ",(0,m.kt)("inlineCode",{parentName:"p"},"analysis()")," only prints a time step when the most important reactions are different to the last one, this time step is the last output from the analysis. We can see that we broadly reach an equilibrium between thermal desorption and freeze out of SO, with some formation and destruction via ions. "),(0,m.kt)("p",null,"This doesn't hold up at lower densities or higher temperatures, looking at the high temperature, low density, low zeta case, we see a second pattern of reactions:"),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"New Important Reactions At: 9.50e+05 years\nFormation = 1.05e-20 from:\nO2 + S -> SO + O : 98.10%\nO + NS -> SO + N : 1.48%\n\nDestruction = -1.02e-20 from:\nC + SO -> CS + O : 39.10%\nC + SO -> S + CO : 39.10%\nC+ + SO -> SO+ + C : 4.33%\nC+ + SO -> CS+ + O : 4.33%\nC+ + SO -> S+ + CO : 4.33%\nC+ + SO -> S + CO+ : 4.33%\nN + SO -> S + NO : 3.46%\nH+ + SO -> SO+ + H : 0.28%\n")),(0,m.kt)("p",null,"However, it's not so complex. All the low zeta outputs show one of these two sets of reactions. Essentially, higher temperatures are opening up gas phase reaction routes which form and destroy SO. These new routes are not particularly quick with a total rate of change of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"20"))),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"s"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"1")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"10^{-20} s^{-1}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0"))))))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"s"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))))))))))),". Note that quite a lot of these are due to reactions with ions."),(0,m.kt)("p",null,"Finally, we look at the high zeta cases and find that no matter the temperature or density, we see the same reactions:"),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"New Important Reactions At: 1.81e+04 years\nFormation = 5.64e-17 from:\nO2 + S -> SO + O : 85.30%\nHSO+ + E- -> SO + H : 13.19%\nO + NS -> SO + N : 1.19%\n\nDestruction = -5.64e-17 from:\nH+ + SO -> SO+ + H : 13.16%\nC+ + SO -> SO+ + C : 10.52%\nC+ + SO -> CS+ + O : 10.52%\nC+ + SO -> S+ + CO : 10.52%\nC+ + SO -> S + CO+ : 10.52%\nH3+ + SO -> HSO+ + H2 : 9.86%\nC + SO -> CS + O : 8.90%\nC + SO -> S + CO : 8.90%\nSO + CRPHOT -> S + O : 4.11%\nSO + CRPHOT -> SO+ + E- : 4.11%\nHCO+ + SO -> HSO+ + CO : 3.20%\nHE+ + SO -> S+ + O + HE : 1.93%\nHE+ + SO -> S + O+ + HE : 1.93%\nN + SO -> S + NO : 0.87%\n")),(0,m.kt)("p",null,"Ions take over the destruction of SO when the CRIR is high and these reactions are proceeding about 1000 times faster than the low zeta rates. This makes sense as increasing the CRIR will greatly increase the abundances of these simple ionic species."),(0,m.kt)("p",null,"All in all, we can conclude that a range of gas phase reactions control the abundance of SO at low zeta but once the CRIR is high, destruction via ions dominates the SO chemistry leading to the decreasing abundance that we see."),(0,m.kt)("h2",{id:"summary-notes"},"Summary Notes"),(0,m.kt)("p",null,"In this notebook, we've run some representative models to look at why the SO and ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," abundances seem to so heavily depend on the CRIR. We find that a chain of very efficient reactions starting with simple ions comprise the primary formation route of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," so that the total production of this species depends entirely on the abundance of those ions. With high CRIR, those ions become very abundant and we get a lot of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," formation."),(0,m.kt)("p",null,"SO is complex at first glance since the formation routes vary by parameter. However, looking at the destruction routes we can see that it's simply that SO can be easily destroyed by simple ions and, again, these are very abundant in gas exposed to a high CRIR."),(0,m.kt)("p",null,"An interesting note about SO is that we could potentially say that destruction via C",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," is the dominant destruction route. However, we would caution users to be careful with that kind of statement. Reactions with H",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+")))))))))))),", HE",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," and other also destroy SO. It could be that if we turned off the C",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," reactions, the SO chemistry would be unchanged as other ions take up the slack. Therefore, unless a single reaction is clearly dominant (as in ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," formation), it is best to test the importance of a reaction by removing it before concluding it is the single most important reaction."),(0,m.kt)("h2",{id:"considerations"},"Considerations"),(0,m.kt)("p",null,(0,m.kt)("inlineCode",{parentName:"p"},"uclchem.analysis.analysis()")," looks at a snapshot of the gas and calculates the instantaneous rate of change of important reactions. However, over the course of a time step, abundances change and reactions rise and fall in importance. More importantly, complex interplay between reactions can contribute to an outcome. This is ultimately a simple, first order look at what is happening in the network but in many cases, a deeper view will be required."),(0,m.kt)("p",null,"If you struggle to find an explanation that fits all time steps in your outputs and is true across a range of parameters, then it is best not to report simple conclusions about the chemistry and to look for other ways to understand the network."))}k.isMDXComponent=!0},3724:(a,e,t)=>{t.d(e,{Z:()=>s});const s=t.p+"assets/images/holdship_ngc253-f2d6812a8c2a8fc94e669616d3410ee9.png"}}]); \ No newline at end of file diff --git a/assets/js/1ba038cd.8f97d7d4.js b/assets/js/1ba038cd.8f97d7d4.js deleted file mode 100644 index f631e396..00000000 --- a/assets/js/1ba038cd.8f97d7d4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2091],{3905:(a,e,t)=>{t.d(e,{Zo:()=>N,kt:()=>k});var s=t(7294);function n(a,e,t){return e in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function m(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.push.apply(t,s)}return t}function p(a){for(var e=1;e=0||(n[t]=a[t]);return n}(a,e);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(a);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(a,t)&&(n[t]=a[t])}return n}var i=s.createContext({}),l=function(a){var e=s.useContext(i),t=e;return a&&(t="function"==typeof a?a(e):p(p({},e),a)),t},N=function(a){var e=l(a.components);return s.createElement(i.Provider,{value:e},a.children)},o={inlineCode:"code",wrapper:function(a){var e=a.children;return s.createElement(s.Fragment,{},e)}},c=s.forwardRef((function(a,e){var t=a.components,n=a.mdxType,m=a.originalType,i=a.parentName,N=r(a,["components","mdxType","originalType","parentName"]),c=l(t),k=n,h=c["".concat(i,".").concat(k)]||c[k]||o[k]||m;return t?s.createElement(h,p(p({ref:e},N),{},{components:t})):s.createElement(h,p({ref:e},N))}));function k(a,e){var t=arguments,n=e&&e.mdxType;if("string"==typeof a||n){var m=t.length,p=new Array(m);p[0]=c;var r={};for(var i in e)hasOwnProperty.call(e,i)&&(r[i]=e[i]);r.originalType=a,r.mdxType="string"==typeof a?a:n,p[1]=r;for(var l=2;l{t.r(e),t.d(e,{assets:()=>N,contentTitle:()=>i,default:()=>k,frontMatter:()=>r,metadata:()=>l,toc:()=>o});var s=t(7462),n=t(3366),m=(t(7294),t(3905)),p=["components"],r={},i="Chemical Analysis",l={unversionedId:"chemical_analysis",id:"version-v3.1.0/chemical_analysis",title:"Chemical Analysis",description:"Chemical networks are complex systems where the interplay between many elements often means that small changes in one aspect of the network can greatly effect the outcome in unexpected ways. Nevertheless, there are cases where a simple chemical explanation can be found for some observed behaviour in the model outputs. This tutorial demonstrates how to use some of the functionality of the UCLCHEM library to analyse model outputs and discover these explanations.",source:"@site/versioned_docs/version-v3.1.0/chemical_analysis.md",sourceDirName:".",slug:"/chemical_analysis",permalink:"/docs/v3.1.0/chemical_analysis",tags:[],version:"v3.1.0",frontMatter:{},sidebar:"docs",previous:{title:"Running a Grid",permalink:"/docs/v3.1.0/running_a_grid"},next:{title:"Compilation Issues",permalink:"/docs/v3.1.0/trouble-compile"}},N={},o=[{value:"H3O+ and SO",id:"h3o-and-so",level:2},{value:"1. Generate Test Cases",id:"1-generate-test-cases",level:3},{value:"2. Run the Analysis",id:"2-run-the-analysis",level:3},{value:"2.1 H_3O^+",id:"21-h_3o",level:4},{value:"2.2 SO",id:"22-so",level:4},{value:"Summary Notes",id:"summary-notes",level:2},{value:"Considerations",id:"considerations",level:2}],c={toc:o};function k(a){var e=a.components,r=(0,n.Z)(a,p);return(0,m.kt)("wrapper",(0,s.Z)({},c,r,{components:e,mdxType:"MDXLayout"}),(0,m.kt)("h1",{id:"chemical-analysis"},"Chemical Analysis"),(0,m.kt)("p",null,"Chemical networks are complex systems where the interplay between many elements often means that small changes in one aspect of the network can greatly effect the outcome in unexpected ways. Nevertheless, there are cases where a simple chemical explanation can be found for some observed behaviour in the model outputs. This tutorial demonstrates how to use some of the functionality of the UCLCHEM library to analyse model outputs and discover these explanations."),(0,m.kt)("p",null,"We do recommend caution when following the approach laid out in this tutorial. There are many pitfalls which we will try to point out as we go. Ultimately, a comprehensive view of how important a reaction is to the outcome of your model requires detailed statistical calculations such as the use of ",(0,m.kt)("a",{parentName:"p",href:"https://github.com/slundberg/shap"},"SHAP values")," to assign meaningful scores to how much various reactions in a network contribute to a species' abundance. Therefore, care must be taken by the user to ensure that the conclusions they draw from a simpler approach are sound."),(0,m.kt)("p",null,"We'll use an example from work that was recently published at the time of writing this tutorial to demonstrate the use of ",(0,m.kt)("inlineCode",{parentName:"p"},"uclchem.analysis.analysis()")," and how it can be used to draw conclusions about the most important reactions in a network for a given species/behaviour."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},"import uclchem\nfrom glob import glob\n")),(0,m.kt)("h2",{id:"h3o-and-so"},"H3O+ and SO"),(0,m.kt)("p",null,"In a piece of inference work in which we measured the cosmic ray ionization rate (CRIR) in NGC 253 ",(0,m.kt)("a",{parentName:"p",href:"https://ui.adsabs.harvard.edu/abs/2022arXiv220403668H/abstract"},"(Holdship et al. 2022)"),". We found that both H3O+ and SO were sensitive to the ionization rate. Furthermore, since H3O+ was increased in abundance by increasing CRIR and SO was destroyed, their ratio was extremely sensitive to the rate. "),(0,m.kt)("p",null,"In the work, we present the plot below which shows how the equilibrium abundance of each species changes with the CRIR as well as the ratio. We plot this for a range of temperatures to show that this behaviour is not particularly sensitive to the gas temperature."),(0,m.kt)("p",null,(0,m.kt)("img",{alt:"crir_h3o_so_example",src:t(3724).Z,width:"1600",height:"1067"})),(0,m.kt)("p",null,"In a sense, this is all the information we need. A complex array of reactions all compete and contribute to produce the outcome of the model. Whatever they are, we see the abundance of these species are very sensitive to the CR over a wide range of temperature and density. However, we can only trust this conclusion as far as we trust the entire chemical network since we don't know what exactly causes this behaviour."),(0,m.kt)("p",null,"If we use the analysis function, we may find all of this is driven by a small handful of reactions. The benefit would then be that our trust in our conclusions only depends on how much we trust the rates of those specific reactions. If it is very important, we can evaluate those reactions and readers of our work can make the same decisions as information from experiment changes."),(0,m.kt)("h3",{id:"1-generate-test-cases"},"1. Generate Test Cases"),(0,m.kt)("p",null,"Ideally, we should run a huge grid of models and find some rigorous way to evaluate how important each reaction is to the outcome of the model. However, if we run a small grid representative of different conditions then any simple chemical explanation will be evident if it exists. If it no simple explanation is appropriate, then the analysis module is not appropriate for our task and we could consider more complex approaches."),(0,m.kt)("p",null,"Let's run a simple grid with all possible combinations of the following:"),(0,m.kt)("ul",null,(0,m.kt)("li",{parentName:"ul"},"A low CRIR (zeta=1) and high CRIR (zeta=1e4)"),(0,m.kt)("li",{parentName:"ul"},"A typical cloud density (n=1e4) and high density (n=1e6)"),(0,m.kt)("li",{parentName:"ul"},"The lower temperature bound of NGC 253 CMZ (50 K) and a high temperature (250 K)")),(0,m.kt)("p",null,"and that will give us enough to work with for our analysis."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'params={\'baseAv\':10, #UV shielded gas in our model\n \'freefall\':False,\n \'finalTime\':1e6\n }\nfor temperature in [50,250]:\n for density in [1e4,1e6]:\n for zeta in [1,1e4]:\n params["initialtemp"]=temperature\n params["initialdens"]=density\n params["zeta"]=zeta\n params["outputfile"]=f"../output/{temperature}_{density}_{zeta}.csv"\n uclchem.model.cloud(param_dict=params)\n')),(0,m.kt)("h3",{id:"2-run-the-analysis"},"2. Run the Analysis"),(0,m.kt)("p",null,"The ",(0,m.kt)("inlineCode",{parentName:"p"},"analysis")," function is very simple. For every time step in your model output, it will use UCLCHEM to calculate the rate of every reaction which includes a chosen species. It then uses the abundances at that time step to calculate the total contribution of that reaction to the rate of change of the species' abundance."),(0,m.kt)("p",null,"For example, if we care about H3O+ and find that it is created by ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"2")),(0,m.kt)("mi",{parentName:"mrow"},"O")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_2O")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O")))))," + ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"H"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+")))))))))))),", then UCLCHEM is called to get ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"k")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"))))),", the rate of that reaction and then analysis calculates"),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mover",{parentName:"mrow",accent:"true"},(0,m.kt)("mrow",{parentName:"mover"},(0,m.kt)("mi",{parentName:"mrow"},"Y"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+")),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,m.kt)("mo",{parentName:"mover"},"\u02d9")),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("mi",{parentName:"mrow"},"k"),(0,m.kt)("mi",{parentName:"mrow"},"Y"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"2")),(0,m.kt)("mi",{parentName:"mrow"},"O"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,m.kt)("mi",{parentName:"mrow"},"Y"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"H"),(0,m.kt)("mo",{parentName:"msup"},"+")),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"n"),(0,m.kt)("mi",{parentName:"msub"},"H"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\dot{Y(H_3O^+)} = k Y(H_2O) Y(H^+) n_H")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"1.23686em",verticalAlign:"-0.25em"}}),(0,m.kt)("span",{parentName:"span",className:"mord accent"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.9868600000000001em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"Y"),(0,m.kt)("span",{parentName:"span",className:"mopen"},"("),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.697331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.989em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+")))))))),(0,m.kt)("span",{parentName:"span",className:"mclose"},")"))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.319em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"accent-body",style:{left:"-0.13889em"}},(0,m.kt)("span",{parentName:"span",className:"mord"},"\u02d9")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.25em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"1.071331em",verticalAlign:"-0.25em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"Y"),(0,m.kt)("span",{parentName:"span",className:"mopen"},"("),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"mclose"},")"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"Y"),(0,m.kt)("span",{parentName:"span",className:"mopen"},"("),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.821331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.113em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+")))))))),(0,m.kt)("span",{parentName:"span",className:"mclose"},")"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))),(0,m.kt)("p",null,"where ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mover",{parentName:"mrow",accent:"true"},(0,m.kt)("mrow",{parentName:"mover"},(0,m.kt)("mi",{parentName:"mrow"},"Y"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+")),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,m.kt)("mo",{parentName:"mover"},"\u02d9"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\dot{Y(H_3O^+)}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"1.23686em",verticalAlign:"-0.25em"}}),(0,m.kt)("span",{parentName:"span",className:"mord accent"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.9868600000000001em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"Y"),(0,m.kt)("span",{parentName:"span",className:"mopen"},"("),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.697331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.989em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+")))))))),(0,m.kt)("span",{parentName:"span",className:"mclose"},")"))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.319em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"accent-body",style:{left:"-0.13889em"}},(0,m.kt)("span",{parentName:"span",className:"mord"},"\u02d9")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.25em"}},(0,m.kt)("span",{parentName:"span"})))))))))," is the rate of change of the ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("mi",{parentName:"mrow"},"O"),(0,m.kt)("mo",{parentName:"mrow"},"+")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"mord"},"+")))))," abundance due to the reaction. The ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mover",{parentName:"mrow",accent:"true"},(0,m.kt)("mi",{parentName:"mover"},"Y"),(0,m.kt)("mo",{parentName:"mover"},"\u02d9"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\dot{Y}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.9201900000000001em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord accent"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.9201900000000001em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"Y"))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.25233em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"accent-body",style:{left:"-0.13889em"}},(0,m.kt)("span",{parentName:"span",className:"mord"},"\u02d9")))))))))))," s of each reaction involving the ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," are then compared to see which reactions contribute the most to the destruction and formation of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("mi",{parentName:"mrow"},"O"),(0,m.kt)("mo",{parentName:"mrow"},"+")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"mord"},"+"))))),"."),(0,m.kt)("p",null,"Our plan then is to do this for the low zeta case and the high zeta case. Hopefully, we'll see the same reactions are most important to the abundance of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," and SO at all densities and tempertures. If we don't find that that's the case, then the chemistry is these species is fairly complex and perhaps trying to present a simple cause for the CRIR dependence is not a good idea."),(0,m.kt)("p",null,"So, let's analyse the outputs!"),(0,m.kt)("h4",{id:"21-h_3o"},"2.1 ",(0,m.kt)("span",{parentName:"h4",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))),(0,m.kt)("p",null,(0,m.kt)("inlineCode",{parentName:"p"},"analysis()")," takes three arguments: the species, the output file to analyse, and a file to store the analsis output. Let's run it for every model in our little grid so we can inspect the outputs."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'outputs=glob("../output/[0-9]*.csv") #all files that start with a number\nfor output in outputs:\n \n analysis_output="../output/H3O-analysis-"+output[10:]\n uclchem.analysis.analysis("H3O+",output,analysis_output)\n')),(0,m.kt)("p",null,"This will produce one file per model output with lists of the most important reactions at each time step. Analysis will only print a time step when the most important reactions change from the previous one so we often see many fewer steps than in the full output. Let's look at the low temperature, low density, low zeta case:"),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"New Important Reactions At: 7.90e+05 years\nFormation = 1.92e-18 from:\nH2 + H2O+ -> H3O+ + H : 78.49%\nH2O + HCO+ -> CO + H3O+ : 17.68%\nH3+ + H2O -> H3O+ + H2 : 3.40%\n\nDestruction = -1.92e-18 from:\nH3O+ + E- -> OH + H + H : 65.43%\nH3O+ + E- -> H2O + H : 15.21%\nH3O+ + E- -> OH + H2 : 11.52%\nH3O+ + H2S -> H3S+ + H2O : 5.17%\nH3O+ + E- -> O + H2 + H : 1.20%\nH3O+ + HCN -> HCNH+ + H2O : 0.33%\nH3O+ + SIO -> SIOH+ + H2O : 0.33%\n")),(0,m.kt)("p",null,"What this shows is the reactions that cause 99.9% of the formation and 99.9% of the destruction of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," at a time step. The total rate of formation and destruction in units of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"s"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"1")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"s^{-1}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"s"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1")))))))))))))," is given as well the percentage of the total that each reaction contributes. "),(0,m.kt)("p",null,"What we need to find is a pattern in these reactions which holds across time and across different densities and temperatures. It actually turns out that the reactions printed above are the dominate formation and destruction routes of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," for all parameters for all times. For example, at high temperature, high density and high zeta, we get:"),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"New Important Reactions At: 1.00e+04 years\nFormation = 2.03e-14 from:\nH2 + H2O+ -> H3O+ + H : 95.47%\nH3+ + H2O -> H3O+ + H2 : 3.14%\nH2O + HCO+ -> CO + H3O+ : 1.05%\n\nDestruction = -2.03e-14 from:\nH3O+ + E- -> OH + H + H : 69.82%\nH3O+ + E- -> H2O + H : 16.23%\nH3O+ + E- -> OH + H2 : 12.29%\nH3O+ + E- -> O + H2 + H : 1.28%\n")),(0,m.kt)("p",null,"The sole difference being that the formation rate is much higher. Since equilibrium is reached, the destruction rate is also higher and so we need to use the fact we know the ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," abundance increases with CRIR to infer that the destruction rate is only faster because there is more ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," to destroy."),(0,m.kt)("p",null,"However, there are some problems here! Why does ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"2"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_2")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," + ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"2")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_2O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," become so efficient at high CRIR? We know the rate of a two body reaction does not depend on CRIR (",(0,m.kt)("a",{parentName:"p",href:"/docs/gas"},"see the chemistry docs"),") so it must be that ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"2")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_2O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," is increasing in abundance. We can run analysis on ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"2")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_2O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," to see what is driving that. In fact, as we report in the paper, following this thread we find that a chain of hydrogenations starting from ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"O"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"H"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"OH^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," is the overall route of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," formation and that this chain starts with small ions that are primarly formed through cosmic ray reactions. ",(0,m.kt)("em",{parentName:"p"},"It will very often be the case that analysing one species requires you to run analysis on another.")),(0,m.kt)("h4",{id:"22-so"},"2.2 SO"),(0,m.kt)("p",null,"With a strong explanation for ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+")))))))))))),", we can now look at SO. We start by running analysis again and then by looking at the reactions as before."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'outputs=glob("../output/[0-9]*.csv") #won\'t pick up H3O+ analysis because it\'s not a number\nfor output in outputs:\n \n analysis_output="../output/SO-analysis-"+output[10:]\n uclchem.analysis.analysis("SO",output,analysis_output)\n')),(0,m.kt)("p",null,"Again, let's start by looking at the low temperature, high density, low zeta case:"),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"New Important Reactions At: 1.31e+04 years\nFormation = 3.67e-22 from:\n#SO + THERM -> SO : 68.11%\nHSO+ + E- -> SO + H : 21.04%\n#SO + DEUVCR -> SO : 9.87%\n\nDestruction = -3.78e-22 from:\nSO + FREEZE -> #SO : 78.04%\nHCO+ + SO -> HSO+ + CO : 20.97%\n")),(0,m.kt)("p",null,"An interesting point here is that equilbrium is reached at around ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1.31"),(0,m.kt)("mo",{parentName:"mrow"},"\xd7"),(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"4"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"1.31 \\times 10^4")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.72777em",verticalAlign:"-0.08333em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},"."),(0,m.kt)("span",{parentName:"span",className:"mord"},"3"),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mbin"},"\xd7"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"4"))))))))))))," yr in this model. Since ",(0,m.kt)("inlineCode",{parentName:"p"},"analysis()")," only prints a time step when the most important reactions are different to the last one, this time step is the last output from the analysis. We can see that we broadly reach an equilibrium between thermal desorption and freeze out of SO, with some formation and destruction via ions. "),(0,m.kt)("p",null,"This doesn't hold up at lower densities or higher temperatures, looking at the high temperature, low density, low zeta case, we see a second pattern of reactions:"),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"New Important Reactions At: 9.50e+05 years\nFormation = 1.05e-20 from:\nO2 + S -> SO + O : 98.10%\nO + NS -> SO + N : 1.48%\n\nDestruction = -1.02e-20 from:\nC + SO -> CS + O : 39.10%\nC + SO -> S + CO : 39.10%\nC+ + SO -> SO+ + C : 4.33%\nC+ + SO -> CS+ + O : 4.33%\nC+ + SO -> S+ + CO : 4.33%\nC+ + SO -> S + CO+ : 4.33%\nN + SO -> S + NO : 3.46%\nH+ + SO -> SO+ + H : 0.28%\n")),(0,m.kt)("p",null,"However, it's not so complex. All the low zeta outputs show one of these two sets of reactions. Essentially, higher temperatures are opening up gas phase reaction routes which form and destroy SO. These new routes are not particularly quick with a total rate of change of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"20"))),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"s"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"1")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"10^{-20} s^{-1}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0"))))))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"s"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))))))))))),". Note that quite a lot of these are due to reactions with ions."),(0,m.kt)("p",null,"Finally, we look at the high zeta cases and find that no matter the temperature or density, we see the same reactions:"),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"New Important Reactions At: 1.81e+04 years\nFormation = 5.64e-17 from:\nO2 + S -> SO + O : 85.30%\nHSO+ + E- -> SO + H : 13.19%\nO + NS -> SO + N : 1.19%\n\nDestruction = -5.64e-17 from:\nH+ + SO -> SO+ + H : 13.16%\nC+ + SO -> SO+ + C : 10.52%\nC+ + SO -> CS+ + O : 10.52%\nC+ + SO -> S+ + CO : 10.52%\nC+ + SO -> S + CO+ : 10.52%\nH3+ + SO -> HSO+ + H2 : 9.86%\nC + SO -> CS + O : 8.90%\nC + SO -> S + CO : 8.90%\nSO + CRPHOT -> S + O : 4.11%\nSO + CRPHOT -> SO+ + E- : 4.11%\nHCO+ + SO -> HSO+ + CO : 3.20%\nHE+ + SO -> S+ + O + HE : 1.93%\nHE+ + SO -> S + O+ + HE : 1.93%\nN + SO -> S + NO : 0.87%\n")),(0,m.kt)("p",null,"Ions take over the destruction of SO when the CRIR is high and these reactions are proceeding about 1000 times faster than the low zeta rates. This makes sense as increasing the CRIR will greatly increase the abundances of these simple ionic species."),(0,m.kt)("p",null,"All in all, we can conclude that a range of gas phase reactions control the abundance of SO at low zeta but once the CRIR is high, destruction via ions dominates the SO chemistry leading to the decreasing abundance that we see."),(0,m.kt)("h2",{id:"summary-notes"},"Summary Notes"),(0,m.kt)("p",null,"In this notebook, we've run some representative models to look at why the SO and ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," abundances seem to so heavily depend on the CRIR. We find that a chain of very efficient reactions starting with simple ions comprise the primary formation route of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," so that the total production of this species depends entirely on the abundance of those ions. With high CRIR, those ions become very abundant and we get a lot of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," formation."),(0,m.kt)("p",null,"SO is complex at first glance since the formation routes vary by parameter. However, looking at the destruction routes we can see that it's simply that SO can be easily destroyed by simple ions and, again, these are very abundant in gas exposed to a high CRIR."),(0,m.kt)("p",null,"An interesting note about SO is that we could potentially say that destruction via C",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," is the dominant destruction route. However, we would caution users to be careful with that kind of statement. Reactions with H",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+")))))))))))),", HE",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," and other also destroy SO. It could be that if we turned off the C",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," reactions, the SO chemistry would be unchanged as other ions take up the slack. Therefore, unless a single reaction is clearly dominant (as in ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," formation), it is best to test the importance of a reaction by removing it before concluding it is the single most important reaction."),(0,m.kt)("h2",{id:"considerations"},"Considerations"),(0,m.kt)("p",null,(0,m.kt)("inlineCode",{parentName:"p"},"uclchem.analysis.analysis()")," looks at a snapshot of the gas and calculates the instantaneous rate of change of important reactions. However, over the course of a time step, abundances change and reactions rise and fall in importance. More importantly, complex interplay between reactions can contribute to an outcome. This is ultimately a simple, first order look at what is happening in the network but in many cases, a deeper view will be required."),(0,m.kt)("p",null,"If you struggle to find an explanation that fits all time steps in your outputs and is true across a range of parameters, then it is best not to report simple conclusions about the chemistry and to look for other ways to understand the network."))}k.isMDXComponent=!0},3724:(a,e,t)=>{t.d(e,{Z:()=>s});const s=t.p+"assets/images/holdship_ngc253-f2d6812a8c2a8fc94e669616d3410ee9.png"}}]); \ No newline at end of file diff --git a/assets/js/1be78505.ed24d4e8.js b/assets/js/1be78505.ed24d4e8.js new file mode 100644 index 00000000..36767bff --- /dev/null +++ b/assets/js/1be78505.ed24d4e8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9514,4972],{9963:(e,t,a)=>{a.r(t),a.d(t,{default:()=>Te});var n=a(7294),r=a(6010),l=a(1944),i=a(5281),o=a(3320),c=a(8425),s=a(4477),d=a(1116),m=a(7961),u=a(5999),b=a(2466),p=a(5936);const h="backToTopButton_sjWU",v="backToTopButtonShow_xfvO";function E(){var e=function(e){var t=e.threshold,a=(0,n.useState)(!1),r=a[0],l=a[1],i=(0,n.useRef)(!1),o=(0,b.Ct)(),c=o.startScroll,s=o.cancelScroll;return(0,b.RF)((function(e,a){var n=e.scrollY,r=null==a?void 0:a.scrollY;r&&(i.current?i.current=!1:n>=r?(s(),l(!1)):n{a.r(t),a.d(t,{default:()=>o});var n=a(7294),r=a(5999),l=a(1944),i=a(7961);function o(){return n.createElement(n.Fragment,null,n.createElement(l.d,{title:(0,r.I)({id:"theme.NotFound.title",message:"Page Not Found"})}),n.createElement(i.Z,null,n.createElement("main",{className:"container margin-vert--xl"},n.createElement("div",{className:"row"},n.createElement("div",{className:"col col--6 col--offset-3"},n.createElement("h1",{className:"hero__title"},n.createElement(r.Z,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),n.createElement("p",null,n.createElement(r.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),n.createElement("p",null,n.createElement(r.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))))}}}]); \ No newline at end of file diff --git a/assets/js/1be78505.faff00ea.js b/assets/js/1be78505.faff00ea.js deleted file mode 100644 index ae21f49a..00000000 --- a/assets/js/1be78505.faff00ea.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9514,4608],{1579:(e,t,a)=>{a.r(t),a.d(t,{default:()=>ee});var n=a(7294),l=a(8790),r=a(2600),o=a(2662),i=a(6010),c=a(5537),s=a(7462);function d(e){return n.createElement("svg",(0,s.Z)({width:"20",height:"20","aria-hidden":"true"},e),n.createElement("g",{fill:"#7a7a7a"},n.createElement("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),n.createElement("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})))}var m=a(5999);const u="collapseSidebarButton_FykI",b="collapseSidebarButtonIcon_DTRl";function p(e){var t=e.onClick;return n.createElement("button",{type:"button",title:(0,m.I)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,m.I)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,i.Z)("button button--secondary button--outline",u),onClick:t},n.createElement(d,{className:b}))}var f=a(3366),v=a(9960),h=a(3919),E=a(541);const g="menuHtmlItem_fVIQ",_="menuExternalLink_tcZa";var k=a(2389),C=["item"],S=["item","onItemClick","activePath","level","index"],I=["item","onItemClick","activePath","level","index"];function N(e){var t=e.item,a=(0,f.Z)(e,C);switch(t.type){case"category":return n.createElement(Z,(0,s.Z)({item:t},a));case"html":return n.createElement(T,(0,s.Z)({item:t},a));default:return n.createElement(M,(0,s.Z)({item:t},a))}}function Z(e){var t=e.item,a=e.onItemClick,l=e.activePath,r=e.level,c=e.index,d=(0,f.Z)(e,S),u=t.items,b=t.label,p=t.collapsible,h=t.className,E=t.href,g=function(e){var t=(0,k.Z)();return(0,n.useMemo)((function(){return e.href?e.href:!t&&e.collapsible?(0,o.Wl)(e):void 0}),[e,t])}(t),_=(0,o._F)(t,l),C=(0,o.Mg)(E,l),I=(0,o.uR)({initialState:function(){return!!p&&(!_&&t.collapsed)}}),N=I.collapsed,Z=I.setCollapsed;!function(e){var t=e.isActive,a=e.collapsed,l=e.setCollapsed,r=(0,o.D9)(t);(0,n.useEffect)((function(){t&&!r&&a&&l(!1)}),[t,r,a,l])}({isActive:_,collapsed:N,setCollapsed:Z});var T=(0,o.fP)(),M=T.expandedItem,y=T.setExpandedItem;function L(e){void 0===e&&(e=!N),y(e?null:c),Z(e)}var A=(0,o.LU)().autoCollapseSidebarCategories;return(0,n.useEffect)((function(){p&&M&&M!==c&&A&&Z(!0)}),[p,M,c,Z,A]),n.createElement("li",{className:(0,i.Z)(o.kM.docs.docSidebarItemCategory,o.kM.docs.docSidebarItemCategoryLevel(r),"menu__list-item",{"menu__list-item--collapsed":N},h)},n.createElement("div",{className:(0,i.Z)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":C})},n.createElement(v.Z,(0,s.Z)({className:(0,i.Z)("menu__link",{"menu__link--sublist":p,"menu__link--sublist-caret":!E,"menu__link--active":_}),onClick:p?function(e){null==a||a(t),E?L(!1):(e.preventDefault(),L())}:function(){null==a||a(t)},"aria-current":C?"page":void 0,"aria-expanded":p?!N:void 0,href:p?null!=g?g:"#":g},d),b),E&&p&&n.createElement("button",{"aria-label":(0,m.I)({id:"theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel",message:"Toggle the collapsible sidebar category '{label}'",description:"The ARIA label to toggle the collapsible sidebar category"},{label:b}),type:"button",className:"clean-btn menu__caret",onClick:function(e){e.preventDefault(),L()}})),n.createElement(o.zF,{lazy:!0,as:"ul",className:"menu__list",collapsed:N},n.createElement(x,{items:u,tabIndex:N?-1:0,onItemClick:a,activePath:l,level:r+1})))}function T(e){var t=e.item,a=e.level,l=e.index,r=t.value,c=t.defaultStyle,s=t.className;return n.createElement("li",{className:(0,i.Z)(o.kM.docs.docSidebarItemLink,o.kM.docs.docSidebarItemLinkLevel(a),c&&g+" menu__list-item",s),key:l,dangerouslySetInnerHTML:{__html:r}})}function M(e){var t=e.item,a=e.onItemClick,l=e.activePath,r=e.level,c=(e.index,(0,f.Z)(e,I)),d=t.href,m=t.label,u=t.className,b=(0,o._F)(t,l),p=(0,h.Z)(d);return n.createElement("li",{className:(0,i.Z)(o.kM.docs.docSidebarItemLink,o.kM.docs.docSidebarItemLinkLevel(r),"menu__list-item",u),key:m},n.createElement(v.Z,(0,s.Z)({className:(0,i.Z)("menu__link",!p&&_,{"menu__link--active":b}),"aria-current":b?"page":void 0,to:d},p&&{onClick:a?function(){return a(t)}:void 0},c),m,!p&&n.createElement(E.Z,null)))}var y=["items"];function L(e){var t=e.items,a=(0,f.Z)(e,y);return n.createElement(o.D_,null,t.map((function(e,t){return n.createElement(N,(0,s.Z)({key:t,item:e,index:t},a))})))}const x=(0,n.memo)(L),A="menu_izAj",F="menuWithAnnouncementBar_l2a_";function P(e){var t=e.path,a=e.sidebar,l=e.className,r=function(){var e=(0,o.nT)().isActive,t=(0,n.useState)(e),a=t[0],l=t[1];return(0,o.RF)((function(t){var a=t.scrollY;e&&l(0===a)}),[e]),e&&a}();return n.createElement("nav",{className:(0,i.Z)("menu thin-scrollbar",A,r&&F,l)},n.createElement("ul",{className:(0,i.Z)(o.kM.docs.docSidebarMenu,"menu__list")},n.createElement(x,{items:a,activePath:t,level:1})))}const w="sidebar_RiAD",B="sidebarWithHideableNavbar_d0QC",D="sidebarHidden_Lg_2",R="sidebarLogo_YUvz";function H(e){var t=e.path,a=e.sidebar,l=e.onCollapse,r=e.isHidden,s=(0,o.LU)(),d=s.navbar.hideOnScroll,m=s.hideableSidebar;return n.createElement("div",{className:(0,i.Z)(w,d&&B,r&&D)},d&&n.createElement(c.Z,{tabIndex:-1,className:R}),n.createElement(P,{path:t,sidebar:a}),m&&n.createElement(p,{onClick:l}))}const W=n.memo(H);var z=function(e){var t=e.sidebar,a=e.path,l=(0,o.el)();return n.createElement("ul",{className:(0,i.Z)(o.kM.docs.docSidebarMenu,"menu__list")},n.createElement(x,{items:t,activePath:a,onItemClick:function(e){"category"===e.type&&e.href&&l.toggle(),"link"===e.type&&l.toggle()},level:1}))};function Y(e){return n.createElement(o.Zo,{component:z,props:e})}const q=n.memo(Y);function U(e){var t=(0,o.iP)(),a="desktop"===t||"ssr"===t,l="mobile"===t;return n.createElement(n.Fragment,null,a&&n.createElement(W,e),l&&n.createElement(q,e))}var V=a(4608);const G="backToTopButton_RiI4",K="backToTopButtonShow_ssHd";function Q(){var e=(0,n.useRef)(null);return{smoothScrollTop:function(){var t;e.current=(t=null,function e(){var a=document.documentElement.scrollTop;a>0&&(t=requestAnimationFrame(e),window.scrollTo(0,Math.floor(.85*a)))}(),function(){return t&&cancelAnimationFrame(t)})},cancelScrollToTop:function(){return null==e.current?void 0:e.current()}}}function X(){var e=(0,n.useState)(!1),t=e[0],a=e[1],l=(0,n.useRef)(!1),r=Q(),c=r.smoothScrollTop,s=r.cancelScrollToTop;return(0,o.RF)((function(e,t){var n=e.scrollY,r=null==t?void 0:t.scrollY;if(r)if(l.current)l.current=!1;else{var o=n{a.r(t),a.d(t,{default:()=>i});var n=a(7294),l=a(2600),r=a(5999),o=a(2662);function i(){return n.createElement(n.Fragment,null,n.createElement(o.d,{title:(0,r.I)({id:"theme.NotFound.title",message:"Page Not Found"})}),n.createElement(l.Z,null,n.createElement("main",{className:"container margin-vert--xl"},n.createElement("div",{className:"row"},n.createElement("div",{className:"col col--6 col--offset-3"},n.createElement("h1",{className:"hero__title"},n.createElement(r.Z,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),n.createElement("p",null,n.createElement(r.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),n.createElement("p",null,n.createElement(r.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))))}}}]); \ No newline at end of file diff --git a/assets/js/1cd6d774.79c43cfc.js b/assets/js/1cd6d774.b5b7ef87.js similarity index 99% rename from assets/js/1cd6d774.79c43cfc.js rename to assets/js/1cd6d774.b5b7ef87.js index 5257faa8..6c785be7 100644 --- a/assets/js/1cd6d774.79c43cfc.js +++ b/assets/js/1cd6d774.b5b7ef87.js @@ -1 +1 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1898],{4503:(e,a,t)=>{t.d(a,{Z:()=>Qe});var c,l,r,n,i,s,m,o,h,f,d,p,y,E,u,Z,M,x,b,g,v,w,q,O,C,N,k,A,j,S,H,T,I,L,G,P,U,F,V,_,z,B,D,J,W,Y,R,X,Q,K,$,ee,ae,te,ce,le,re,ne,ie,se,me,oe,he,fe,de,pe,ye,Ee,ue,Ze,Me,xe,be,ge,ve,we,qe,Oe,Ce,Ne,ke,Ae,je,Se,He,Te,Ie,Le,Ge,Pe,Ue,Fe,Ve,_e,ze,Be,De,Je,We=t(7294),Ye=["title","titleId"];function Re(){return Re=Object.assign?Object.assign.bind():function(e){for(var a=1;a=0||(l[t]=e[t]);return l}(e,a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(c=0;c=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(l[t]=e[t])}return l}const Qe=function(e){var a=e.title,t=e.titleId,Qe=Xe(e,Ye);return We.createElement("svg",Re({"data-name":"Layer 1",xmlns:"http://www.w3.org/2000/svg",width:1100,height:806.74,viewBox:"0 0 1100 806.74","aria-labelledby":t},Qe),c||(c=We.createElement("defs",null,We.createElement("linearGradient",{id:"a",x1:459.23,y1:847.99,x2:459.23,y2:385.75,gradientTransform:"translate(250.84)",gradientUnits:"userSpaceOnUse"},We.createElement("stop",{offset:0,stopColor:"gray",stopOpacity:.25}),We.createElement("stop",{offset:.54,stopColor:"gray",stopOpacity:.12}),We.createElement("stop",{offset:1,stopColor:"gray",stopOpacity:.1})))),void 0===a?We.createElement("title",{id:t},"operating system"):a?We.createElement("title",{id:t},a):null,l||(l=We.createElement("ellipse",{cx:629.72,cy:780.56,rx:122.56,ry:26.18,fill:"#604687",opacity:.1})),r||(r=We.createElement("path",{d:"M1070.55 683.84c-24.35 20.2-59 28.56-92.51 33.84l-5.64.86c-58.57 8.74-118.32 10.52-177.79 12.28-165.87 4.91-332.17 9.81-497.6-1.51-73.16-5-148.13-13.76-212.25-43.7l-1.67-.79c-.83-.39-1.66-.78-2.49-1.19A224.11 224.11 0 0 1 48 664.54c-18.31-13.06-33.43-29-41.42-47.91-12.52-29.66-5.9-63 8.4-92s35.8-55.12 54.34-82.43c5.44-8 10.6-16.3 15.4-24.81 30-53.37 44.88-115.13 13.43-166.56a228.58 228.58 0 0 0-13.43-19c-7.67-10-15.47-20-20.74-31.07-12.29-25.76-9.65-54.73-5.17-82.25 6-36.59 17.05-76 51.38-98.86 35.67-23.74 86.3-22.54 130.57-14 68.83 13.19 132.36 40.8 196.49 65.7s131.35 47.58 201.86 50.02c62.26 2.17 134.89-14 176.23-56.08 40.15-40.85 115.6-43.94 170-19.27 51.91 23.54 85.48 73.36 83 123.12-3.16 62.1-54.93 111.83-95.9 164.7-6.81 8.79-13.33 17.68-19.28 26.72-19.42 29.53-33.15 65-19.78 96.88 7.5 17.85 21.81 31.47 39.06 43.36 38.65 26.63 92 44.55 116 81.83 20.67 32.16 13.01 75.56-17.89 101.21Z",fill:"#604687",opacity:.1})),n||(n=We.createElement("ellipse",{cx:972.5,cy:704.85,rx:57.01,ry:10.96,fill:"#604687"})),i||(i=We.createElement("ellipse",{cx:971.55,cy:700.19,rx:6.64,ry:8.69,fill:"#3f3d56"})),s||(s=We.createElement("ellipse",{cx:971.55,cy:689.57,rx:6.64,ry:8.69,fill:"#3f3d56"})),m||(m=We.createElement("ellipse",{cx:971.55,cy:678.94,rx:6.64,ry:8.69,fill:"#3f3d56"})),o||(o=We.createElement("ellipse",{cx:971.55,cy:668.32,rx:6.64,ry:8.69,fill:"#3f3d56"})),h||(h=We.createElement("ellipse",{cx:971.55,cy:657.7,rx:6.64,ry:8.69,fill:"#3f3d56"})),f||(f=We.createElement("ellipse",{cx:971.55,cy:647.08,rx:6.64,ry:8.69,fill:"#3f3d56"})),d||(d=We.createElement("ellipse",{cx:971.55,cy:636.46,rx:6.64,ry:8.69,fill:"#3f3d56"})),p||(p=We.createElement("path",{d:"M996.4 563.78a31 31 0 0 0 2.47-3.64l-17.44-2.86 18.86.14a31.78 31.78 0 0 0 .61-25.2l-25.31 13.15 23.34-17.15a31.8 31.8 0 1 0-52.51 35.58 31.55 31.55 0 0 0-3.63 5.8l22.64 11.77-24.14-8.1a31.79 31.79 0 0 0 5.13 29.86 31.8 31.8 0 1 0 50 0 31.78 31.78 0 0 0 0-39.32Z",fill:"#604687"})),y||(y=We.createElement("path",{d:"M939.61 583.44a31.68 31.68 0 0 0 6.81 19.66 31.8 31.8 0 1 0 50 0c4.24-5.41-56.81-23.23-56.81-19.66Z",opacity:.1})),E||(E=We.createElement("path",{d:"M134.73 673.91c0 5.59-21.81 10.21-50 10.87h-1.67c-.83-.39-1.66-.78-2.49-1.19A224.11 224.11 0 0 1 48 664.54c6.85-.8 14.64-1.34 23-1.52h1.13c1.82 0 3.67-.06 5.54-.06h7.05c28.2.73 50.01 5.41 50.01 10.95Z",fill:"#604687"})),u||(u=We.createElement("ellipse",{cx:76.76,cy:669.25,rx:6.64,ry:8.69,fill:"#3f3d56"})),Z||(Z=We.createElement("ellipse",{cx:76.76,cy:658.63,rx:6.64,ry:8.69,fill:"#3f3d56"})),M||(M=We.createElement("ellipse",{cx:76.76,cy:648.01,rx:6.64,ry:8.69,fill:"#3f3d56"})),x||(x=We.createElement("ellipse",{cx:76.76,cy:637.39,rx:6.64,ry:8.69,fill:"#3f3d56"})),b||(b=We.createElement("ellipse",{cx:76.76,cy:626.77,rx:6.64,ry:8.69,fill:"#3f3d56"})),g||(g=We.createElement("ellipse",{cx:76.76,cy:616.15,rx:6.64,ry:8.69,fill:"#3f3d56"})),v||(v=We.createElement("ellipse",{cx:76.76,cy:605.52,rx:6.64,ry:8.69,fill:"#3f3d56"})),w||(w=We.createElement("path",{d:"M101.61 532.84a32.28 32.28 0 0 0 2.48-3.63l-17.45-2.84 18.87.14a31.8 31.8 0 0 0 .6-25.19l-25.3 13.13 23.34-17.16a31.8 31.8 0 1 0-52.52 35.58 32.45 32.45 0 0 0-3.63 5.8l22.64 11.7-24.14-8.07a31.87 31.87 0 0 0 5.13 29.86 31.8 31.8 0 1 0 50 0 31.78 31.78 0 0 0 0-39.32Z",fill:"#604687"})),q||(q=We.createElement("path",{d:"M44.83 552.5a31.67 31.67 0 0 0 6.8 19.66 31.8 31.8 0 1 0 50 0c4.24-5.41-56.8-23.23-56.8-19.66Z",opacity:.1})),O||(O=We.createElement("g",{opacity:.2},We.createElement("path",{d:"M305.84 555.29c0 .94-.1 1.86-.2 2.76q-11.64-4.68-22.92-9.93a18.59 18.59 0 0 1-10.6-5.17c-2.19-1.1-4.37-2.24-6.54-3.39a26.82 26.82 0 0 1 1.66-3c4.2-6.66 10.6-10.83 17.65-10.6s13.15 4.78 16.93 11.66a34.37 34.37 0 0 1 4.02 17.67Z",fill:"#3f3d56"}),We.createElement("path",{d:"M307 520.37a34.56 34.56 0 0 1-5.13 17.32c-4.21 6.64-10.6 10.81-17.65 10.58-.49 0-1-.06-1.45-.1a18.59 18.59 0 0 1-10.6-5.17 25.27 25.27 0 0 1-4.88-6.37 35.82 35.82 0 0 1 1.1-35c4.21-6.66 10.6-10.83 17.65-10.6s13.15 4.78 16.93 11.66a34.47 34.47 0 0 1 4.03 17.68Z",fill:"#3f3d56"}),We.createElement("ellipse",{cx:336.18,cy:531.28,rx:28.63,ry:21.87,transform:"rotate(-88.19 287.148 533.775)",fill:"#3f3d56"}),We.createElement("ellipse",{cx:337.29,cy:496.31,rx:28.63,ry:21.87,transform:"rotate(-88.19 288.252 498.807)",fill:"#3f3d56"}),We.createElement("ellipse",{cx:338.39,cy:461.34,rx:28.63,ry:21.87,transform:"rotate(-88.19 289.351 463.833)",fill:"#3f3d56"}),We.createElement("path",{d:"M214.12 172.83a105.78 105.78 0 0 1-7.76-12.24l57.72-7.62-62.08-1.5a104.92 104.92 0 0 1 .62-83l82 45.85-75.15-58.95a104.75 104.75 0 1 1 169.22 122.65A105.13 105.13 0 0 1 390 197.48l-75.77 36.38 80.33-24.17a104.85 104.85 0 0 1-20 97.78A104.75 104.75 0 1 1 210 302.28a104.73 104.73 0 0 1 4.08-129.45Z",fill:"#604687"}),We.createElement("path",{d:"M399.05 243.45a104.29 104.29 0 0 1-24.44 64A104.75 104.75 0 1 1 210 302.28c-13.43-18.25 189.42-70.58 189.05-58.83Z",opacity:.1}))),C||(C=We.createElement("g",{opacity:.2},We.createElement("path",{d:"M798.18 480.51c0 .67-.07 1.32-.14 2q-8.31-3.29-16.31-7.06a13.31 13.31 0 0 1-7.55-3.68c-1.55-.79-3.11-1.6-4.65-2.41a19.78 19.78 0 0 1 1.18-2.13c3-4.74 7.54-7.7 12.56-7.54s9.36 3.4 12.05 8.3a24.5 24.5 0 0 1 2.86 12.52Z",fill:"#3f3d56"}),We.createElement("path",{d:"M799 455.62a24.56 24.56 0 0 1-3.65 12.33c-3 4.72-7.54 7.69-12.56 7.53l-1-.07a13.31 13.31 0 0 1-7.55-3.68 18.32 18.32 0 0 1-3.47-4.54 25.51 25.51 0 0 1 .78-24.88c3-4.74 7.55-7.71 12.56-7.55s9.37 3.4 12.05 8.3a24.55 24.55 0 0 1 2.84 12.56Z",fill:"#3f3d56"}),We.createElement("ellipse",{cx:834.19,cy:476.87,rx:20.37,ry:15.56,transform:"rotate(-88.19 785.171 479.34)",fill:"#3f3d56"}),We.createElement("ellipse",{cx:834.98,cy:451.98,rx:20.37,ry:15.56,transform:"rotate(-88.19 785.957 454.46)",fill:"#3f3d56"}),We.createElement("ellipse",{cx:835.76,cy:427.1,rx:20.37,ry:15.56,transform:"rotate(-88.19 786.738 429.573)",fill:"#3f3d56"}),We.createElement("path",{d:"M732.91 208.37a73.57 73.57 0 0 1-5.52-8.71l41.08-5.42-44.21-1.07a74.67 74.67 0 0 1 .43-59.07L783 166.69l-53.4-41.93A74.55 74.55 0 1 1 850 212.02a74.71 74.71 0 0 1 8.06 13.86l-53.89 25.89 57.17-17.2a74.55 74.55 0 0 1-14.22 69.58A74.54 74.54 0 1 1 730 300.46a74.55 74.55 0 0 1 2.91-92.09Z",fill:"#604687"}),We.createElement("path",{d:"M864.52 258.59a74.2 74.2 0 0 1-17.4 45.56A74.54 74.54 0 1 1 730 300.46c-9.58-13 134.78-50.23 134.52-41.87Z",opacity:.1}))),N||(N=We.createElement("g",{opacity:.2},We.createElement("path",{d:"M585 402.46c0 .67-.08 1.32-.15 2q-8.31-3.29-16.31-7.06a13.28 13.28 0 0 1-7.54-3.68c-1.56-.79-3.11-1.6-4.65-2.41a19 19 0 0 1 1.17-2.13c3-4.73 7.55-7.7 12.56-7.54s9.36 3.4 12.05 8.3a24.5 24.5 0 0 1 2.87 12.52Z",fill:"#3f3d56"}),We.createElement("path",{d:"M585.74 377.57a24.56 24.56 0 0 1-3.65 12.33c-3 4.72-7.54 7.69-12.56 7.53-.35 0-.68 0-1-.07a13.28 13.28 0 0 1-7.54-3.68 18.11 18.11 0 0 1-3.48-4.54 25.48 25.48 0 0 1 .79-24.88c3-4.74 7.54-7.71 12.56-7.55s9.36 3.4 12 8.3a24.54 24.54 0 0 1 2.88 12.56Z",fill:"#3f3d56"}),We.createElement("ellipse",{cx:620.97,cy:398.82,rx:20.37,ry:15.56,transform:"rotate(-88.3 571.11 401.206)",fill:"#3f3d56"}),We.createElement("ellipse",{cx:621.75,cy:373.93,rx:20.37,ry:15.56,transform:"rotate(-88.19 572.718 376.417)",fill:"#3f3d56"}),We.createElement("ellipse",{cx:622.54,cy:349.05,rx:20.37,ry:15.56,transform:"rotate(-88.19 573.504 351.525)",fill:"#3f3d56"}),We.createElement("path",{d:"M519.68 130.28a74.87 74.87 0 0 1-5.52-8.71l41.08-5.42-44.24-1.07a74.62 74.62 0 0 1 .44-59.07l58.33 32.63-53.39-41.93a74.54 74.54 0 1 1 120.42 87.26 74.76 74.76 0 0 1 8.07 13.86L591 173.72l57.16-17.2a74.55 74.55 0 0 1-14.22 69.58 74.54 74.54 0 1 1-117.16-3.73 74.57 74.57 0 0 1 2.9-92.13Z",fill:"#604687"}),We.createElement("path",{d:"M651.29 180.54a74.2 74.2 0 0 1-17.4 45.56 74.54 74.54 0 1 1-117.11-3.73c-9.59-12.95 134.77-50.19 134.51-41.83Z",opacity:.1}))),k||(k=We.createElement("path",{d:"M972.4 500.81v217.73c-58.57 8.74-118.32 10.52-177.79 12.28-165.87 4.91-332.17 9.81-497.6-1.51-73.16-5-148.13-13.76-212.25-43.7V417.37c.24-185-.76 0 0-185.56v-66.59a14.1 14.1 0 0 1 14.1-14.1H958.3a14.1 14.1 0 0 1 14.1 14.1v168.63c.6 166.52-.4.52 0 166.96Z",fill:"#3f3d56"})),A||(A=We.createElement("rect",{x:344.15,y:217.75,width:368.86,height:28.56,rx:5.22,fill:"#604687",opacity:.3})),j||(j=We.createElement("path",{d:"M687.94 233.22h-.61l-.23-.19a5.1 5.1 0 0 0 1.19-3.25 4.94 4.94 0 1 0-4.92 5 5.09 5.09 0 0 0 3.24-1.18l.22.19v.58l3.81 3.82 1.14-1.14Zm-4.57 0a3.44 3.44 0 1 1 3.43-3.44 3.42 3.42 0 0 1-3.43 3.44Z",fill:"#444053"})),S||(S=We.createElement("rect",{x:222.84,y:493.2,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),H||(H=We.createElement("rect",{x:222.84,y:522.95,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),T||(T=We.createElement("rect",{x:222.84,y:508.08,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),I||(I=We.createElement("path",{d:"M164.57 522.58a5.74 5.74 0 0 0-5.8 5.69 3.88 3.88 0 0 1-3.87 3.79 10 10 0 0 0 7.73 3.8 7.67 7.67 0 0 0 7.75-7.59 5.75 5.75 0 0 0-5.81-5.69Zm26.53-17.76-2.6-2.55a1.94 1.94 0 0 0-2.72 0l-17.34 17 5.32 5.22 17.32-17a1.86 1.86 0 0 0 .02-2.67Z",fill:"#604687"})),L||(L=We.createElement("rect",{x:222.84,y:345.66,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),G||(G=We.createElement("rect",{x:222.84,y:375.41,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),P||(P=We.createElement("rect",{x:222.84,y:360.53,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),U||(U=We.createElement("path",{d:"M191.18 378.15 176 362.87a10.82 10.82 0 0 0-2.51-11.58 11 11 0 0 0-12.35-2.18l7.18 7.22-5 5-7.32-7.18a10.86 10.86 0 0 0 2.17 12.41 10.66 10.66 0 0 0 11.51 2.52l15.15 15.29a1.61 1.61 0 0 0 2.34 0l3.84-3.86a1.51 1.51 0 0 0 .17-2.35Z",fill:"#604687"})),F||(F=We.createElement("rect",{x:509.6,y:493.2,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),V||(V=We.createElement("rect",{x:509.6,y:522.95,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),_||(_=We.createElement("rect",{x:509.6,y:508.08,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),z||(z=We.createElement("path",{d:"M459.44 526a10 10 0 0 1-9.89 0c-3.87 1.19-6.24 5.09-7.12 8.54h24.12c-.87-3.45-3.23-7.35-7.11-8.54Zm-4.94-18.37a8.69 8.69 0 1 0 8.69 8.68 8.69 8.69 0 0 0-8.69-8.68Zm0 15.3a6.71 6.71 0 0 1-6.07-4.14h12.14a6.71 6.71 0 0 1-6.07 4.14Z",fill:"#604687"})),B||(B=We.createElement("path",{d:"M472.09 521.37a10.07 10.07 0 0 1-8.4.69 12 12 0 0 1-2.3 2.86 11.24 11.24 0 0 1 4.9 4.33h12.91a10.72 10.72 0 0 0-7.11-7.88Zm-4.94-18.38a8.71 8.71 0 0 0-7.33 4 10.78 10.78 0 0 1 5.15 7.14h8.25a6.72 6.72 0 0 1-6.07 4.12 6 6 0 0 1-2.08-.38 11.65 11.65 0 0 1-.54 2.07 8.35 8.35 0 0 0 2.62.4 8.69 8.69 0 0 0 0-17.38Z",fill:"#604687"})),D||(D=We.createElement("rect",{x:222.84,y:603.86,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),J||(J=We.createElement("rect",{x:222.84,y:633.61,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),W||(W=We.createElement("rect",{x:222.84,y:618.74,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),Y||(Y=We.createElement("path",{d:"M176.57 607.62h-9.82a3.28 3.28 0 0 0-3.32 3.24v.7h-.62a3.28 3.28 0 0 0-3.32 3.24v23.63a3.34 3.34 0 0 0 3.32 3.32h17.08a3.27 3.27 0 0 0 3.23-3.32v-.62h.71a3.27 3.27 0 0 0 3.23-3.32v-16.37Zm0 3.66 6.84 6.84h-6.84Zm3.94 27.15a.67.67 0 0 1-.62.7h-17.08a.73.73 0 0 1-.69-.7V614.8a.67.67 0 0 1 .69-.62h.62v21c0 1.82.86 2.66 2.67 2.66h14.41Zm3.93-3.94a.66.66 0 0 1-.61.7h-17.08a.73.73 0 0 1-.69-.7v-23.63a.67.67 0 0 1 .69-.62h7.19v10.51h10.5Z",fill:"#604687"})),R||(R=We.createElement("rect",{x:509.6,y:345.66,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),X||(X=We.createElement("rect",{x:509.6,y:375.41,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),Q||(Q=We.createElement("rect",{x:509.6,y:360.53,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),K||(K=We.createElement("path",{d:"M457.32 353.37h-11.38a3.51 3.51 0 0 0-3.5 3.51v19.25a3.5 3.5 0 0 0 3.5 3.5h29.76a3.5 3.5 0 0 0 3.5-3.5v-15.34a3.51 3.51 0 0 0-3.5-3.5h-14.88l-3.5-3.94Z",fill:"#604687"})),$||($=We.createElement("rect",{x:792.79,y:493.2,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),ee||(ee=We.createElement("rect",{x:792.79,y:522.95,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),ae||(ae=We.createElement("rect",{x:792.79,y:508.08,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),te||(te=We.createElement("path",{d:"m762.93 509.28-6.77-.32-.4-4.41a1.7 1.7 0 0 0-1.88-1.52l-24.27 2a1.67 1.67 0 0 0-1.59 1.79l1.73 19.35a1.7 1.7 0 0 0 1.88 1.49l1.23-.09-.19 3.76a1.87 1.87 0 0 0 1.83 1.93l27.09 1.28a1.88 1.88 0 0 0 2-1.74l1.14-21.6a1.86 1.86 0 0 0-1.8-1.92Zm-29.12.44-.58 11.06-1.44 2-1.32-14.61v-.09a.89.89 0 0 1 .78-.77l21.42-1.75a.81.81 0 0 1 .87.64l.21 2.52-18-.86a1.9 1.9 0 0 0-1.94 1.86Zm27.4 19.44-7-8.17-3.07 2.82-5.67-6.63-10.07 10.72.86-16.33a.94.94 0 0 1 1-.74l23.9 1.16a.87.87 0 0 1 .85.83Z",fill:"#604687"})),ce||(ce=We.createElement("path",{d:"M756.89 518.79a2.63 2.63 0 1 0-2.62-2.63 2.64 2.64 0 0 0 2.62 2.63Z",fill:"#604687"})),le||(le=We.createElement("rect",{x:795.17,y:345.66,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),re||(re=We.createElement("rect",{x:795.17,y:375.41,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),ne||(ne=We.createElement("rect",{x:795.17,y:360.53,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),ie||(ie=We.createElement("circle",{cx:762.56,cy:356.63,r:5.25,fill:"#604687"})),se||(se=We.createElement("path",{d:"m758.53 362.82-10.42 6.94-14.44-9.62v-3.51l14.44 9.63 8.3-5.53a7.39 7.39 0 0 1-.1-8h-23.07a3.52 3.52 0 0 0-3.51 3.51v21.88a3.52 3.52 0 0 0 3.51 3.51H763a3.51 3.51 0 0 0 3.5-3.51v-15.2a7.37 7.37 0 0 1-8-.06Z",fill:"#604687"})),me||(me=We.createElement("ellipse",{cx:509.64,cy:746.02,rx:26.08,ry:5.01,fill:"#604687"})),oe||(oe=We.createElement("ellipse",{cx:509.21,cy:743.89,rx:3.04,ry:3.97,fill:"#3f3d56"})),he||(he=We.createElement("ellipse",{cx:509.21,cy:739.03,rx:3.04,ry:3.97,fill:"#3f3d56"})),fe||(fe=We.createElement("ellipse",{cx:509.21,cy:734.17,rx:3.04,ry:3.97,fill:"#3f3d56"})),de||(de=We.createElement("ellipse",{cx:509.21,cy:729.31,rx:3.04,ry:3.97,fill:"#3f3d56"})),pe||(pe=We.createElement("ellipse",{cx:509.21,cy:724.46,rx:3.04,ry:3.97,fill:"#3f3d56"})),ye||(ye=We.createElement("ellipse",{cx:509.21,cy:719.6,rx:3.04,ry:3.97,fill:"#3f3d56"})),Ee||(Ee=We.createElement("ellipse",{cx:509.21,cy:714.74,rx:3.04,ry:3.97,fill:"#3f3d56"})),ue||(ue=We.createElement("path",{d:"M520.57 681.5a13.59 13.59 0 0 0 1.13-1.67l-8-1.31 8.62.07a14.59 14.59 0 0 0 .28-11.52l-11.57 6 10.67-7.85a14.54 14.54 0 1 0-24 16.28 15.11 15.11 0 0 0-1.66 2.65l10.36 5.38-11-3.7a14.53 14.53 0 0 0 2.34 13.65 14.54 14.54 0 1 0 22.86 0 14.55 14.55 0 0 0 0-18Z",fill:"#604687"})),Ze||(Ze=We.createElement("path",{d:"M494.6 690.49a14.45 14.45 0 0 0 3.11 9 14.54 14.54 0 1 0 22.86 0c1.95-2.48-25.97-10.63-25.97-9Z",opacity:.1})),Me||(Me=We.createElement("path",{d:"M802 436.86a13.68 13.68 0 0 1-1-2.7c-.1-1.07.32-2.48-.63-3-.53-.29-1.27-.07-1.74-.45a2.15 2.15 0 0 1-.51-1.2 4.1 4.1 0 0 0-3.8-3c1-2.71 4.68-3.37 6.3-5.76.81-1.19.55-3.38-.88-3.39a2.49 2.49 0 0 0-1 .25l-5.33 2.2a27.35 27.35 0 0 0-3 1.39c-2.93 1.67-5.12 4.38-7.09 7.13a30.49 30.49 0 0 0-4.41 8 18 18 0 0 0-.94 5.49v.56c-.87.15-1.58.53-2.49.71l-2.07 5.47a6.93 6.93 0 0 1-1.35 2.49 12.52 12.52 0 0 1-1.46 1.15 8.45 8.45 0 0 0-2.91 7.37 7.93 7.93 0 0 0-4.66 9.78 9.31 9.31 0 0 0-6.81 6 4.43 4.43 0 0 1-.89 1.88 3.55 3.55 0 0 1-2.37.73c-2.34.15-4.38 2-6.49 1a13.21 13.21 0 0 0-7.71-1.08 5.77 5.77 0 0 1-1.65.15 4.43 4.43 0 0 1-1.35-.47 10.46 10.46 0 0 0-3.06-1.21 2.84 2.84 0 0 0-2.9 1.12c-.74-.81-1.18-1.86-1.85-2.73a3 3 0 0 0-2.82-1.35c.7-.63 0-1.89-.93-2.11a11.56 11.56 0 0 0-2.81.1c-2.44 0-4.32-2.24-6.69-2.83-2.18-.53-5.09.11-6.21-1.85-.35-.63-.45-1.45-1-1.92a3.64 3.64 0 0 0-.71-1.45c-.9-1-2.41-1.16-3.76-1.12a15.68 15.68 0 0 0-4.37.75c0-.17-.09-.36-.15-.56a11.09 11.09 0 0 0-4.84-5.94 20 20 0 0 0-5.66-2.26v-.53a22.55 22.55 0 0 1 1.16-7.43c.08-.26.18-.52.27-.78a26.6 26.6 0 0 0 12-44.63 6.83 6.83 0 0 0-.21-1.6 7.86 7.86 0 0 0-1.6-3.12c-1.22-2.72-3.12-3.92-5.55-5.06-.7-.33-1.44-.65-2.22-1-3.87-1.74-7.61-4.3-12-4.29-4 0-7.86 2.21-11.82 2.13h-.95c-1.11-.13-2.44-.39-3.17.46a4.5 4.5 0 0 0-.56 1.09 2.64 2.64 0 0 1-.2.37 4.4 4.4 0 0 1-.51.69c-1.28 1.4-3.43 2-5.2 2.94-4 2.05-6.62 6.23-7.66 10.61s-.68 9 .1 13.44c.4 2.22 1.26 4.74 2.84 6.14s-13.37 9.51-10.93 10.86c1.33.74 6.87-2.77 11.64-6.12.05.2.09.41.15.61a44 44 0 0 0 2.18 6.25c1 2.39 2.44 5 4.93 5.69a5.36 5.36 0 0 0 1.69.19h.44a39.39 39.39 0 0 1-1.15 10.87 6.61 6.61 0 0 0-4.09 1.13 3.29 3.29 0 0 1-1.66.88 2.89 2.89 0 0 1-1.71-.84 9.7 9.7 0 0 0-12.14.64c-4.84 4.57-4.29 13.49-10 16.95-1.56.95-3.56 1.46-4.48 3.05a11.41 11.41 0 0 1-.77 1.47 4.05 4.05 0 0 1-1.36 1 26.48 26.48 0 0 0-4.68 2.7 6.72 6.72 0 0 0-2.69 4.54 8.61 8.61 0 0 0 .82 3.81 36.44 36.44 0 0 0 3.12 6 6.38 6.38 0 0 0-1.26 2.95c-.4 2.81.94 5.58 1.09 8.42.13 2.48-.66 4.9-1.1 7.34-1.76 9.54 1.61 19.2 5 28.26a14.58 14.58 0 0 1 1.2 4.65c.09 3-1.6 5.67-2.07 8.59-1 6.14 3.53 11.92 3.63 18.13 0 2.87-.86 5.78-.14 8.55.47 1.85 1.62 3.44 2.44 5.17 1.44 3.06 1.83 6.53 3.21 9.62a23.07 23.07 0 0 0 7.12 8.48c1.73 5.49-.73 12.12 0 18q1.41-.56 2.85-1a41.17 41.17 0 0 0 6.3 24.84c1.55 2.42 3.37 4.68 4.54 7.31a34.26 34.26 0 0 1 1.77 5.79q2.51 10.47 5 20.92c1.36 5.65 2.73 11.4 2.32 17.2-.28 4-1.3 8.57 1.18 11.77a8.51 8.51 0 0 1 1.49 2.06 5.22 5.22 0 0 1 0 2.72 180.71 180.71 0 0 0-2.48 20.39c-.56.75-1.12 1.51-1.63 2.26-4.11 6-6.09 13.21-7.69 20.32a245.83 245.83 0 0 0-5.16 42.44 28.38 28.38 0 0 0-5.26 6.41c-2.15 4-2.43 8.7-2.66 13.24a4.73 4.73 0 0 0 .24 2.18 4.48 4.48 0 0 0 2.24 1.68l1.24.59c-.27 1-.51 2-.72 3.05-1.58-1.78-4.39-4.6-4.87-2.54a101.78 101.78 0 0 0-2.56 21 1.77 1.77 0 0 0 1.9 2.12A116.25 116.25 0 0 0 660 848c5.65 0 11.29-.46 16.92-.89l5.77-.44a127.7 127.7 0 0 0 17.67-2.19c2.55-.56 5.18-1.35 7.1-3.14s2.86-4.85 1.54-7.12c-1.61-2.74-5.37-2.94-8.51-3.38a27.85 27.85 0 0 1-8.92-2.84c-.63-.32-1.24-.68-1.85-1 .16 0 .33-.08.48-.14 2.7-.91 4.85-3 7.39-4.25 3-1.45 6.31-1.78 9.57-2.19s6.62-1 9.33-2.86c2.54-1.74 4.34-4.91 3.75-7.89a5.15 5.15 0 0 0-.16-.62c-1-3.23-4.5-5-7.76-5.8s-6.8-1.28-9.44-3.38l-.39-.31c-.22-.19-.45-.37-.69-.56a5.62 5.62 0 0 0 .77-3.26c-.14-1.79-1.18-3.37-1.89-5-1.39-3.25-1.5-6.88-1.88-10.39-.94-8.83-3.65-17.35-5.69-26-.23-1-.45-2-.67-3a62.86 62.86 0 0 1 7.27-11.64 38 38 0 0 0 7-13.77c.42-1.54.73-3.1 1.05-4.67Q713.18 694.18 718 667a45.19 45.19 0 0 0 .91-7.84 23.89 23.89 0 0 0 1.35-7.43c.94-3.67 1.89-7.52 1.12-9.92-.54-1.7-.81-7.51-1.11-13.08a50.24 50.24 0 0 0-.54-8.93c-.09-.51-.19-1-.3-1.51q-.09-.45-.18-.75a25.68 25.68 0 0 0-1.76-4.86 23.63 23.63 0 0 0-1.32-2.71 12.34 12.34 0 0 0-1-1.48 62 62 0 0 1 6.22.58c.5.07 1.12.11 1.43-.3a1.47 1.47 0 0 0 .18-.77 12.75 12.75 0 0 0-1.62-6.76c-.8-1.42-1.91-2.8-1.88-4.43a6.53 6.53 0 0 1 .55-2.2l2.77-7.44c2.35-6.29 1.23-13.58 2.45-20.18a118.46 118.46 0 0 0 1.82-15.61c.23-4.47.09-9.32-2.6-12.9a14.73 14.73 0 0 1-2-2.84 8.41 8.41 0 0 1-.48-3.39q-.07-10.51.42-21a206.38 206.38 0 0 0 35.05-4 22 22 0 0 0 4-1.08 20.19 20.19 0 0 0 4-2.53c3.93-2.84 7.92-5.73 10.91-9.55a32.36 32.36 0 0 0 6.46-15.94c2.84-2.63 4.35-6.37 5.77-10a15.42 15.42 0 0 0 1.32-4.85c.07-1.72-1.06-3.52-.74-5.21a13.78 13.78 0 0 1 4.19-7.58 2.74 2.74 0 0 0 1-1.33 2.12 2.12 0 0 0-.23-1.3l-.09-.15c.28-.17.54-.35.81-.53.93-.66 1.82-1.39 2.69-2.1a17 17 0 0 0 3.49-3.54 5.75 5.75 0 0 0 .94-4.7ZM673.69 820.15c-.24 0-.48 0-.71.06a9.57 9.57 0 0 0-2.54.73l-.19.1c1.1-2.38 2.14-4.8 3.08-7.26.11-.29.21-.58.32-.88l-.12 1.64a20.22 20.22 0 0 0 .16 5.61Z",transform:"translate(-50 -46.63)",fill:"url(#a)"})),xe||(xe=We.createElement("path",{d:"M638 409.1c.1 3.88 1.42 7.64 1.62 11.52-11.43.57-22.72-5-34-3.28 3.17-2.05 4.86-5.74 5.86-9.37a38.9 38.9 0 0 0 1.11-14.41 6.61 6.61 0 0 0-.14-.79c-.42-1.9-1.51-4.59-1.22-6.08.39-2 2.25-1.59 3.93-1.48a150.51 150.51 0 0 1 15.26 2c1.32.23 14.13 3.43 14.33 3.1a59.69 59.69 0 0 0-5.55 11.43 22.32 22.32 0 0 0-1.2 7.36ZM751.05 397.1a16.64 16.64 0 0 1-3.49 3.52c-.87.71-1.76 1.44-2.69 2.09a11.5 11.5 0 0 1-5.72 2.33c-2.72.18-8.51-1.42-10.2-3.75a6.77 6.77 0 0 1-1-3.91 17.88 17.88 0 0 1 .94-5.46 30.42 30.42 0 0 1 4.41-8c2-2.74 4.16-5.43 7.09-7.09a27.35 27.35 0 0 1 3-1.39l5.33-2.18a2.5 2.5 0 0 1 1-.26c1.43 0 1.69 2.2.88 3.38-1.62 2.38-5.27 3-6.3 5.73a4.09 4.09 0 0 1 3.8 2.95 2.11 2.11 0 0 0 .51 1.19c.47.37 1.21.16 1.74.45.95.5.53 1.91.63 3a13.5 13.5 0 0 0 1 2.68 5.69 5.69 0 0 1-.93 4.72Z",fill:"#ee8e9e"})),be||(be=We.createElement("path",{d:"M593.4 786.45c.88-.88 2.32-.73 3.55-.54a132 132 0 0 0 19.95 1.61c.84-4.08-1.59-8-2.37-12.14a10.76 10.76 0 0 0-.8-3.08c-.94-1.8-3.06-2.63-5.05-3-3.59-.76-9.21-2.09-11.22 1.54-2.41 4.31-3.18 10.75-4.06 15.61Z",fill:"#65617d"})),ge||(ge=We.createElement("path",{d:"M666.49 771.02c-2.71 1.85-6.07 2.42-9.33 2.84s-6.61.74-9.57 2.19c-2.54 1.26-4.69 3.32-7.39 4.22a15.31 15.31 0 0 1-7.67.12c-3-.57-6.26-1.67-7.89-4.29-1.46-2.32-1.31-5.27-1.11-8 .24-3.09.47-6.2.69-9.3a4.4 4.4 0 0 1 .58-2.24c2.19-3.2 7.52 1.33 10.37 1.33 4.52 0 9.37-2.46 12.62-5.45a3.89 3.89 0 0 1 1-.74c1.29-.58 2.58.49 3.72 1.42l.39.31c2.64 2.09 6.18 2.52 9.44 3.37s6.75 2.55 7.76 5.77a4.57 4.57 0 0 1 .16.61c.57 2.95-1.26 6.1-3.77 7.84Z",fill:"#3f3d56"})),ve||(ve=We.createElement("path",{d:"M666.49 771.02c-2.71 1.85-6.07 2.42-9.33 2.84s-6.61.74-9.57 2.19c-2.54 1.26-4.69 3.32-7.39 4.22a15.31 15.31 0 0 1-7.67.12c-3-.57-6.26-1.67-7.89-4.29-1.46-2.32-1.31-5.27-1.11-8 .24-3.09.47-6.2.69-9.3a4.4 4.4 0 0 1 .58-2.24c2.19-3.2 7.52 1.33 10.37 1.33 4.52 0 9.37-2.46 12.62-5.45a3.89 3.89 0 0 1 1-.74c1.29-.58 2.58.49 3.72 1.42l.39.31c2.64 2.09 6.18 2.52 9.44 3.37s6.75 2.55 7.76 5.77a4.57 4.57 0 0 1 .16.61c.57 2.95-1.26 6.1-3.77 7.84Z",fill:"#434175"})),we||(we=We.createElement("path",{d:"M666.49 772.06c-2.71 1.85-6.07 2.43-9.33 2.85s-6.61.73-9.57 2.18c-2.54 1.26-4.69 3.32-7.39 4.22a15.31 15.31 0 0 1-7.67.12 12.6 12.6 0 0 1-7.89-5.33c-1.46-2.32-1.31-5.27-1.11-8 .24-3.09.47-6.2.69-9.3a4.4 4.4 0 0 1 .58-2.24c2.19-3.2 7.52 1.33 10.37 1.33 4.52 0 9.37-2.46 12.62-5.45a3.89 3.89 0 0 1 1-.74c1.29-.58 2.58.49 3.72 1.42a26.4 26.4 0 0 1-3.17 6.56 13.63 13.63 0 0 1-10 6.22c-2 .15-4.09-.25-6 .27s-3.77 2.52-3.08 4.42 3.06 2.25 5 2.36a22.38 22.38 0 0 0 8.21-.58c1.6-.53 3.07-1.41 4.62-2.06 6.62-2.74 15-1.21 20.46-5.85a13 13 0 0 1 1.67-1.28c1.45 2.99-1.22 7.19-3.73 8.88Z",fill:"#e8eaf2"})),qe||(qe=We.createElement("path",{d:"M666.49 772.06c-2.71 1.85-6.07 2.43-9.33 2.85s-6.61.73-9.57 2.18c-2.54 1.26-4.69 3.32-7.39 4.22a15.31 15.31 0 0 1-7.67.12 12.6 12.6 0 0 1-7.89-5.33c-1.46-2.32-1.31-5.27-1.11-8 .24-3.09.47-6.2.69-9.3a4.4 4.4 0 0 1 .58-2.24c2.19-3.2 7.52 1.33 10.37 1.33 4.52 0 9.37-2.46 12.62-5.45a3.89 3.89 0 0 1 1-.74c1.29-.58 2.58.49 3.72 1.42a26.4 26.4 0 0 1-3.17 6.56 13.63 13.63 0 0 1-10 6.22c-2 .15-4.09-.25-6 .27s-3.77 2.52-3.08 4.42 3.06 2.25 5 2.36a22.38 22.38 0 0 0 8.21-.58c1.6-.53 3.07-1.41 4.62-2.06 6.62-2.74 15-1.21 20.46-5.85a13 13 0 0 1 1.67-1.28c1.45 2.99-1.22 7.19-3.73 8.88Z",opacity:.05})),Oe||(Oe=We.createElement("path",{d:"M594.64 569.44a40.77 40.77 0 0 0 5.58 30c1.55 2.4 3.37 4.66 4.54 7.27a33.77 33.77 0 0 1 1.77 5.77l5 20.8c1.36 5.62 2.73 11.34 2.32 17.11-.28 4-1.3 8.53 1.18 11.71a8.46 8.46 0 0 1 1.49 2.05 5.15 5.15 0 0 1 0 2.7c-2.54 15.11-4.43 30.9.16 45.51 4.17 13.25 4.41 27.93 7.95 41.35a9.24 9.24 0 0 0 2.19 4.59 7.27 7.27 0 0 0 3.3 1.56c5.22 1.25 10.73-.21 15.59-2.46 3.42-1.59 7.1-4.37 6.81-8.12-.14-1.79-1.18-3.36-1.89-5-1.39-3.23-1.5-6.83-1.88-10.33-.94-8.78-3.65-17.26-5.69-25.84s-3.44-17.57-1.71-26.23a229.79 229.79 0 0 1 16.87-51.9 6.27 6.27 0 0 1 1.55-2.32 16.86 16.86 0 0 0 2.19-1.49 6.66 6.66 0 0 0 1-2.72c.76-2.74 3-4.77 4.53-7.17 3.83-6.08 2.62-13.87 2.48-21.05-.14-7 .86-14-.28-20.92s-5.04-13.94-11.69-16.06c-3.29-1.07-6.85-.82-10.29-.48-18.23 1.8-35.95 5.11-53.07 11.67Z",fill:"#696791"})),Ce||(Ce=We.createElement("path",{d:"M594.64 570.44a40.77 40.77 0 0 0 5.58 30c1.55 2.4 3.37 4.66 4.54 7.27a33.77 33.77 0 0 1 1.77 5.77l5 20.8c1.36 5.62 2.73 11.34 2.32 17.11-.28 4-1.3 8.53 1.18 11.71a8.46 8.46 0 0 1 1.49 2.05 5.15 5.15 0 0 1 0 2.7c-2.54 15.11-4.43 30.9.16 45.51 4.17 13.25 4.41 27.93 7.95 41.35a9.24 9.24 0 0 0 2.19 4.59 7.27 7.27 0 0 0 3.3 1.56c5.22 1.25 10.73-.21 15.59-2.46 3.42-1.59 7.1-4.37 6.81-8.12-.14-1.79-1.18-3.36-1.89-5-1.39-3.23-1.5-6.83-1.88-10.33-.94-8.78-3.65-17.26-5.69-25.84s-3.44-17.57-1.71-26.23a229.79 229.79 0 0 1 16.87-51.9 6.27 6.27 0 0 1 1.55-2.32 16.86 16.86 0 0 0 2.19-1.49 6.66 6.66 0 0 0 1-2.72c.76-2.74 3-4.77 4.53-7.17 3.83-6.08 2.62-13.87 2.48-21.05-.14-7 .86-14-.28-20.92s-5.04-13.94-11.69-16.06c-3.29-1.07-6.85-.82-10.29-.48-18.23 1.8-35.95 5.11-53.07 11.67Z",opacity:.1})),Ne||(Ne=We.createElement("path",{d:"M668.92 613.23a44 44 0 0 1-.91 8.07q-4.83 27-10.28 54c-.32 1.56-.63 3.12-1.05 4.65a37.78 37.78 0 0 1-7 13.7c-15.15 18.89-16.46 46.32-24.68 69.1-.56 1.54-1.11 3.09-1.7 4.61a115.75 115.75 0 0 1-5.07 11.31 3.22 3.22 0 0 1-1 1.35 3.08 3.08 0 0 1-1.65.33 48.31 48.31 0 0 1-21.36-4.86 4.48 4.48 0 0 1-2.27-1.89 4.66 4.66 0 0 1-.24-2.17c.23-4.51.51-9.19 2.66-13.16a28.22 28.22 0 0 1 5.26-6.38 242.36 242.36 0 0 1 5.16-42.22c1.6-7.08 3.58-14.23 7.69-20.21 3-4.42 7.38-8.78 6.84-14.11-.23-2.34-1.21-5.25.69-6.62.83-.61 2.06-.69 2.63-1.55a3 3 0 0 0 .37-1.32 32.66 32.66 0 0 0-.68-10.93 58.79 58.79 0 0 1-1.63-7.13 9 9 0 0 1 1.79-6.88c.1-4.87 0-9.92.07-14.78a27.16 27.16 0 0 0-.69-8.25c-.36-1.27-.93-2.49-1.21-3.79-1-4.67 1.52-10.27-1.5-14-1.26-1.54-3.2-2.31-4.85-3.42a17.71 17.71 0 0 1-6.66-9.57 52.59 52.59 0 0 1-1.9-11.74 11.28 11.28 0 0 1 0-2.53 4.35 4.35 0 0 1 .34-1.27c.94-2.11 3.46-2.93 5.71-3.47a185.15 185.15 0 0 1 43.61-5.1c5.44-3.7 8.49-2.37 10.8 1.54a41.09 41.09 0 0 1 3.07 7.51c1 3.18 1.12 21 2.14 24.17 1.3 4.15-2.55 12.65-2.5 17.01Z",fill:"#696791"})),ke||(ke=We.createElement("path",{d:"M570.68 451.29c-.4 2.8.94 5.55 1.09 8.38.13 2.47-.66 4.88-1.1 7.31-1.76 9.48 1.61 19.09 5 28.11a14.4 14.4 0 0 1 1.2 4.62c.09 2.94-1.6 5.64-2.07 8.55-1 6.11 3.53 11.85 3.63 18 0 2.85-.86 5.75-.14 8.5.47 1.84 1.62 3.43 2.43 5.14 1.45 3 1.84 6.5 3.22 9.57 2.49 5.55 7.84 9.18 12.94 12.51 2.89-1 6-2.11 7.62-4.72a11.63 11.63 0 0 0 1.33-4.14c1.1-6.33 1.06-12.79 1-19.21a118.59 118.59 0 0 0-.83-16.54c-1-7-3.29-13.7-4.92-20.57-2-8.65-3.09-17.59-6.28-25.9-2.81-7.29-7.17-13.84-11.77-20.12-1.75-2.39-3.14-5.81-6.54-5.26a7.13 7.13 0 0 0-5.81 5.77Z",fill:"#434175"})),Ae||(Ae=We.createElement("path",{d:"M570.68 449.29c-.4 2.8.94 5.55 1.09 8.38.13 2.47-.66 4.88-1.1 7.31-1.76 9.48 1.61 19.09 5 28.11a14.4 14.4 0 0 1 1.2 4.62c.09 2.94-1.6 5.64-2.07 8.55-1 6.11 3.53 11.85 3.63 18 0 2.85-.86 5.75-.14 8.5.47 1.84 1.62 3.43 2.43 5.14 1.45 3 1.84 6.5 3.22 9.57 2.49 5.55 7.84 9.18 12.94 12.51 2.89-1 6-2.11 7.62-4.72a11.63 11.63 0 0 0 1.33-4.14c1.1-6.33 1.06-12.79 1-19.21a118.59 118.59 0 0 0-.83-16.54c-1-7-3.29-13.7-4.92-20.57-2-8.65-3.09-17.59-6.28-25.9-2.81-7.29-7.17-13.84-11.77-20.12-1.75-2.39-3.14-5.81-6.54-5.26a7.13 7.13 0 0 0-5.81 5.77Z",opacity:.05})),je||(je=We.createElement("path",{d:"M644.66 390.28a59.69 59.69 0 0 0-5.55 11.43 26.19 26.19 0 0 1-6.3.76c-8.25 0-14.08-4.69-18.93-10.62-.42-1.9-3-3.67-2.74-5.16.39-2 2.25-1.59 3.93-1.48a150.51 150.51 0 0 1 15.26 2c1.32.16 14.13 3.4 14.33 3.07Z",opacity:.1})),Se||(Se=We.createElement("circle",{cx:632.81,cy:375.34,r:26.41,fill:"#ee8e9e"})),He||(He=We.createElement("path",{d:"M666.18 564.56c-4.57-.27-9.18-.08-13.76.1a47.15 47.15 0 0 0-8.55.88c-3.47.79-6.71 2.37-10.13 3.36-5.48 1.59-11.26 1.66-16.93 2.22a94.36 94.36 0 0 0-11.09 1.74 4.35 4.35 0 0 1 .34-1.27c.94-2.11 3.46-2.93 5.71-3.47a185.15 185.15 0 0 1 43.61-5.1c5.44-3.65 8.49-2.37 10.8 1.54Z",opacity:.1})),Te||(Te=We.createElement("path",{d:"M648.18 418.58c-1.15 1.33-2.7 2.8-4.4 2.37a6.08 6.08 0 0 1-1.72-.92c-3-2-6.78-2.42-10.36-3a152.4 152.4 0 0 1-21.34-4.8 21.93 21.93 0 0 0-6.32-1.28c-4.47 0-8.44 3-11.24 6.48s-4.8 7.57-7.55 11.1c-2 2.52-4.3 4.74-6.13 7.35-4.62 6.59-5.62 15.19-4.42 23.15s4.37 15.47 7.53 22.88a78.47 78.47 0 0 0 6.14 12.46c-1.06 6-.5 13 2.38 18.4.93 1.77 2.08 3.49 2.39 5.47a13.85 13.85 0 0 1-.16 4l-1.35 9.56c-.41 2.91-.82 5.82-1.35 8.72-1 5.29-2.28 11 .17 15.82 2.93 5.74-.15 13.09.62 19.49a97.8 97.8 0 0 1 25.74-6.11c5.67-.56 11.45-.63 16.93-2.22 3.42-1 6.66-2.57 10.13-3.37a47 47 0 0 1 8.55-.87c6.33-.25 12.7-.51 19 .42.5.08 1.12.12 1.43-.29a1.47 1.47 0 0 0 .19-.75 12.63 12.63 0 0 0-1.62-6.72c-.8-1.41-1.91-2.79-1.88-4.41a6.48 6.48 0 0 1 .55-2.19l2.77-7.4c2.35-6.25 1.23-13.51 2.45-20.07a117.46 117.46 0 0 0 1.82-15.53c.23-4.45.09-9.27-2.6-12.83a14.67 14.67 0 0 1-2-2.83 8.34 8.34 0 0 1-.48-3.37q-.09-13.36.73-26.72c-2.34-4.21-4.79-8.51-7.13-12.72-2.73-4.9-5.49-9.9-6.59-15.4-.73-3.63-.71-7.38-1.23-11.05a4.9 4.9 0 0 0-.93-2.59 4.69 4.69 0 0 0-3.76-1.11 16.44 16.44 0 0 0-4.96.88Z",fill:"#434175"})),Ie||(Ie=We.createElement("path",{d:"M744.87 402.71a11.5 11.5 0 0 1-5.72 2.33c-2.72.18-8.51-1.42-10.2-3.75a6.77 6.77 0 0 1-1-3.91 4.91 4.91 0 0 1 1.14-.22 29.88 29.88 0 0 1 8.86.36c2.88.7 5.66 2.45 6.87 5.16Z",opacity:.1})),Le||(Le=We.createElement("path",{d:"M657 459.83c1.61 2 3.28 4.06 5.56 5.25 2.63 1.36 5.72 1.39 8.67 1.33a208 208 0 0 0 36.23-4 22.81 22.81 0 0 0 4-1.07 20.6 20.6 0 0 0 4-2.52c3.93-2.82 7.92-5.7 10.91-9.51a32.05 32.05 0 0 0 6.46-15.85c2.84-2.61 4.35-6.34 5.77-9.93a15.24 15.24 0 0 0 1.32-4.82c.07-1.71-1.06-3.5-.74-5.18a13.64 13.64 0 0 1 4.19-7.54 2.74 2.74 0 0 0 1-1.33 2.1 2.1 0 0 0-.23-1.29c-1.22-2.71-4-4.45-6.88-5.16a29.61 29.61 0 0 0-8.87-.36 20.06 20.06 0 0 0-2.9.78l-2.07 5.43a6.88 6.88 0 0 1-1.35 2.48 12.52 12.52 0 0 1-1.46 1.15 8.38 8.38 0 0 0-2.91 7.33 7.88 7.88 0 0 0-4.66 9.72 9.3 9.3 0 0 0-6.81 6 4.45 4.45 0 0 1-.89 1.87 3.66 3.66 0 0 1-2.34.76c-2.34.14-4.38 2-6.49 1a13.29 13.29 0 0 0-7.71-1.08 5.77 5.77 0 0 1-1.65.15 4.43 4.43 0 0 1-1.35-.47 10.72 10.72 0 0 0-3.06-1.2 2.84 2.84 0 0 0-2.9 1.12c-.74-.81-1.18-1.85-1.85-2.72a3 3 0 0 0-2.82-1.35c.7-.62 0-1.87-.93-2.1a12.66 12.66 0 0 0-2.81.1c-2.44 0-4.32-2.23-6.69-2.81-2.18-.53-5.09.11-6.21-1.84-.39-.69-.47-1.63-1.14-2a2.2 2.2 0 0 0-1.48-.17 14.24 14.24 0 0 0-4.45 1.35c-2.29 9-1.09 18.24.65 27.3a24.07 24.07 0 0 0 4.89 11.18Z",fill:"#434175"})),Ge||(Ge=We.createElement("path",{d:"m656.93 491.88-11.37 22.94c1.23-2.13 3.82-3 5.87-4.31a15.54 15.54 0 0 0 5.57-7.54 47.14 47.14 0 0 0 2.15-9.29c.23-1.45.71-3.49 0-4.81-1.26.27-1.68 1.94-2.22 3.01ZM624.21 511.37c-2.57 2.54-5.71 4.41-8.53 6.66-6.6 5.26-11.3 12.46-15.89 19.53a30.77 30.77 0 0 0-3.25 5.92c.54.46 1.34 0 1.88-.49l8.93-7.84a20.19 20.19 0 0 0 3-3c1.55-2.09 2.24-4.69 3.65-6.88a26.84 26.84 0 0 1 5.43-5.53c2.05-1.76 11.47-9.73 9.18-12.83-1.69.8-3.05 3.1-4.4 4.46Z",opacity:.1})),Pe||(Pe=We.createElement("path",{d:"M643.72 411.95a26.78 26.78 0 0 0-9.45-3.11 20 20 0 0 0-6-.43c-1.86.23-3.65.95-5.52 1-2.63.15-5.14-.92-7.68-1.61s-5.47-1-7.6.57a3.29 3.29 0 0 1-1.66.88 3 3 0 0 1-1.71-.84 9.74 9.74 0 0 0-12.14.64c-4.84 4.54-4.29 13.41-10 16.86-1.56 1-3.56 1.45-4.48 3a12 12 0 0 1-.77 1.46 4 4 0 0 1-1.36 1 26.43 26.43 0 0 0-4.68 2.69 6.66 6.66 0 0 0-2.69 4.51 8.53 8.53 0 0 0 .82 3.79 35.62 35.62 0 0 0 34.61 22.13 5.42 5.42 0 0 0 3.63-1.13 6.93 6.93 0 0 0 1.27-2.09c2.67-5.59 7.68-9.72 10.86-15 1.89-3.17 3.11-6.72 5.09-9.84 3-4.73 7.54-8.23 12-11.62 2.52-1.91 5.31-3.92 8.47-3.79 2.81.12 4.86.27 3.82-3.17a11 11 0 0 0-4.83-5.9Z",fill:"#434175"})),Ue||(Ue=We.createElement("path",{d:"M643.72 411.95a26.78 26.78 0 0 0-9.45-3.11 20 20 0 0 0-6-.43c-1.86.23-3.65.95-5.52 1-2.63.15-5.14-.92-7.68-1.61s-5.47-1-7.6.57a3.29 3.29 0 0 1-1.66.88 3 3 0 0 1-1.71-.84 9.74 9.74 0 0 0-12.14.64c-4.84 4.54-4.29 13.41-10 16.86-1.56 1-3.56 1.45-4.48 3a12 12 0 0 1-.77 1.46 4 4 0 0 1-1.36 1 26.43 26.43 0 0 0-4.68 2.69 6.66 6.66 0 0 0-2.69 4.51 8.53 8.53 0 0 0 .82 3.79 35.62 35.62 0 0 0 34.61 22.13 5.42 5.42 0 0 0 3.63-1.13 6.93 6.93 0 0 0 1.27-2.09c2.67-5.59 7.68-9.72 10.86-15 1.89-3.17 3.11-6.72 5.09-9.84 3-4.73 7.54-8.23 12-11.62 2.52-1.91 5.31-3.92 8.47-3.79 2.81.12 4.86.27 3.82-3.17a11 11 0 0 0-4.83-5.9Z",opacity:.05})),Fe||(Fe=We.createElement("path",{d:"M657.47 794.73c-1.92 1.79-4.55 2.57-7.1 3.12a127.7 127.7 0 0 1-17.67 2.19l-5.77.44c-5.63.43-11.27.86-16.92.88a117.17 117.17 0 0 1-20.82-1.8 2.28 2.28 0 0 1-1.65-.8 2.24 2.24 0 0 1-.25-1.31 100.74 100.74 0 0 1 2.56-20.9c.65-2.81 5.7 3.5 5.93 3.77a5.76 5.76 0 0 0 4.59 2.43c5.81.32 12.32-3.21 16.93-6.35a22.18 22.18 0 0 1 3.14-1.95 9.19 9.19 0 0 1 2.54-.72 15.28 15.28 0 0 1 8.64 1.75c3.47 1.72 6.51 4.19 10 6a28.06 28.06 0 0 0 8.92 2.82c3.14.43 6.9.64 8.51 3.36 1.28 2.25.32 5.29-1.58 7.07Z",fill:"#434175"})),Ve||(Ve=We.createElement("path",{d:"M657.47 795.77c-1.92 1.79-4.55 2.57-7.1 3.12a127.7 127.7 0 0 1-17.67 2.19l-5.77.44c-5.63.43-11.27.86-16.92.88a116.24 116.24 0 0 1-20.82-1.8 2.27 2.27 0 0 1-1.65-.79 9.26 9.26 0 0 1-1.29-2.36c.12-7 2-14.05 3.6-20.9.65-2.81 5.7 3.5 5.93 3.77a5.76 5.76 0 0 0 4.59 2.43c5.81.32 12.32-3.21 16.93-6.35a22.18 22.18 0 0 1 3.14-1.95 9.19 9.19 0 0 1 2.54-.72c-.75 4.18-6.74 9.23-9.84 10.77-6.26 3.11-13.7 1.55-20.68 1.92a3 3 0 0 0-1.47.35c-.83.56-.88 1.75-.86 2.75.06 1.66.27 3.62 1.72 4.46a4.94 4.94 0 0 0 2.32.49 327.89 327.89 0 0 0 51.57-1.81 28.23 28.23 0 0 0 8.4-1.87 21.44 21.44 0 0 0 4.87-3.14c2.2 1.72.36 6.34-1.54 8.12Z",fill:"#e8eaf2"})),_e||(_e=We.createElement("path",{d:"M643.09 375.06c-.1 2.73 1.76 8-3.35 6.55-3-.88-3.9-4.49-7.76-3.69s-4.76 5.57-6.06 8.68a16.59 16.59 0 0 1-12 9.72 7.26 7.26 0 0 1-3.31 0c-2.49-.71-3.91-3.28-4.93-5.66a44.08 44.08 0 0 1-2.18-6.22 25.31 25.31 0 0 1-.79-4.56 19.48 19.48 0 0 1 0-3.15c.46-6.21 4-11.87 8.52-16.15s10-7.38 15.45-10.43a22.9 22.9 0 0 1 5.7-2.54 19.21 19.21 0 0 1 6-.24 20.85 20.85 0 0 1 7.66 1.8 10.71 10.71 0 0 1 2.69 1.89 8.11 8.11 0 0 1 2.34 3.89c1 4-1.58 7.63-3.66 10.8-1.9 2.81-4.19 5.79-4.32 9.31Z",fill:"#434175"})),ze||(ze=We.createElement("path",{d:"M729 433.67c-1.09-2.75-5.67-10.36-4.35-13a33.77 33.77 0 0 1 3.49 6.24c.86 2.15.18 5.01.86 6.76ZM647.47 365.74c2.08-3.17 4.64-6.79 3.66-10.8a8.35 8.35 0 0 0-3-4.44 7.27 7.27 0 0 1 .76 1.87c1 4-1.58 7.62-3.66 10.8-1.85 2.82-4.14 5.81-4.28 9.32-.1 2.73 1.77 8-3.34 6.55-3-.88-3.9-4.49-7.77-3.69s-4.75 5.56-6.06 8.68a16.57 16.57 0 0 1-12 9.72 7.26 7.26 0 0 1-3.31 0 5.05 5.05 0 0 1-1.56-.77 6.76 6.76 0 0 0 3.77 3.34 7.44 7.44 0 0 0 3.32 0 16.63 16.63 0 0 0 12-9.73c1.31-3.12 2.16-7.86 6.06-8.67s4.72 2.8 7.77 3.68c5.11 1.48 3.24-3.82 3.34-6.55.16-3.5 2.46-6.49 4.3-9.31Z",opacity:.1})),Be||(Be=We.createElement("path",{d:"M648.6 360.31a21.84 21.84 0 0 1-1.56 2.24 26.58 26.58 0 0 1-3.61 3.74c-.79.68-1.6 1.31-2.44 1.91a38.47 38.47 0 0 1-4.93 2.95 91.47 91.47 0 0 1-15.78 5.65l-10.54 3.07c-1.3 1-3.67 2.74-6.28 4.57a25.31 25.31 0 0 1-.79-4.56 19.48 19.48 0 0 1 0-3.15c.46-6.21 4-11.87 8.52-16.15s10-7.38 15.45-10.43a22.9 22.9 0 0 1 5.7-2.54 19.21 19.21 0 0 1 6-.24 20.85 20.85 0 0 1 7.66 1.8 10.71 10.71 0 0 1 2.69 1.89 10.14 10.14 0 0 1 1.35 2.86c.66 2.15-.26 4.45-1.44 6.39Z",opacity:.1})),De||(De=We.createElement("path",{d:"M648.6 359.6a21.84 21.84 0 0 1-1.56 2.24 26.58 26.58 0 0 1-3.61 3.74c-.79.68-1.6 1.31-2.44 1.91a39.65 39.65 0 0 1-4.93 2.95 91.47 91.47 0 0 1-15.78 5.65l-10.54 3.06c-3.68 2.79-16 11.91-18.07 10.77-2.44-1.34 10.93-10.81 10.93-10.81l.61.47c-2-1.23-3-4.08-3.42-6.55-.78-4.42-1.15-9-.1-13.37s3.67-8.51 7.66-10.55c1.77-.92 3.92-1.53 5.2-2.93a4.4 4.4 0 0 0 .51-.69 2.08 2.08 0 0 0 .2-.36 4.32 4.32 0 0 1 .56-1.09c.73-.84 2.06-.59 3.17-.45h.36a5.68 5.68 0 0 0 .59 0c4 .09 7.81-2.12 11.82-2.12 4.39 0 8.13 2.54 12 4.28.78.35 1.52.67 2.22 1 2.8 1.3 4.9 2.69 6 6.38.72 2.24-.2 4.55-1.38 6.47Z",fill:"#604687"})),Je||(Je=We.createElement("path",{d:"M617.94 343.65a1.8 1.8 0 0 1-.42 2.32 3.2 3.2 0 0 1-1.66.59 11.2 11.2 0 0 1-1.3.1 3.58 3.58 0 0 1-1.71-.29 2.2 2.2 0 0 1-.3-.19 4.4 4.4 0 0 0 .51-.69c.1.08.2.06.59 0a9.13 9.13 0 0 0 2.14-.36 2.38 2.38 0 0 0 .8-.39 2.48 2.48 0 0 0 .76-1.15ZM602.86 379.01a4.87 4.87 0 0 0 1.83.68 8.29 8.29 0 0 0 1.41.23 7.84 7.84 0 0 0 3.45-1",opacity:.1})))}},7156:(e,a,t)=>{t.d(a,{Z:()=>K});var c,l,r,n,i,s,m,o,h,f,d,p,y,E,u,Z,M,x,b,g,v,w,q,O,C,N,k,A,j,S,H,T,I,L,G,P,U,F,V,_,z,B,D,J,W,Y=t(7294),R=["title","titleId"];function X(){return X=Object.assign?Object.assign.bind():function(e){for(var a=1;a=0||(l[t]=e[t]);return l}(e,a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(c=0;c=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(l[t]=e[t])}return l}const K=function(e){var a=e.title,t=e.titleId,K=Q(e,R);return Y.createElement("svg",X({"data-name":"Layer 1",xmlns:"http://www.w3.org/2000/svg",width:1108,height:731.18,viewBox:"0 0 1108 731.18","aria-labelledby":t},K),void 0===a?Y.createElement("title",{id:t},"react"):a?Y.createElement("title",{id:t},a):null,c||(c=Y.createElement("path",{d:"m767.68 330.79 6.89-2.7c.66-.26 1.31-.54 2-.81a59.85 59.85 0 0 1 15.28-115.77l-4.8 24.2 18.22-23.92h.16a59.87 59.87 0 0 1 51.16 67.45c-.15 1.13-.39 2.23-.6 3.34 5.61-4.43 10.87-9.32 14.81-15 8-11.54 10.71-25.76 13.47-43.17 5.47-34.48 10.4-69.34 14.84-104.18a59.83 59.83 0 0 1-42-65.36c.25-1.82.6-3.59 1-5.34.1-.44.2-.88.31-1.31.43-1.69.91-3.35 1.47-5 .09-.27.21-.52.3-.78.5-1.37 1-2.72 1.65-4 .22-.5.44-1 .67-1.47a57.69 57.69 0 0 1 2.22-4.19c.27-.45.56-.88.83-1.33.62-1 1.27-2 1.94-2.93.36-.5.71-1 1.08-1.49l.27-.39a59.81 59.81 0 0 1 74.64-17l-6.24 31.49 18-23.64a59.5 59.5 0 0 1 16.32 68.62h.07c-.17.4-.38.78-.55 1.18-.33.74-.67 1.47-1 2.2-.46.93-1 1.84-1.45 2.74-.38.68-.75 1.36-1.16 2-.59 1-1.23 1.9-1.87 2.83-.38.54-.73 1.1-1.12 1.63-1 1.39-2.12 2.72-3.26 4-.4.45-.83.86-1.25 1.3-.81.86-1.62 1.71-2.48 2.52-.53.5-1.09 1-1.64 1.46-.79.7-1.6 1.38-2.43 2-.59.47-1.19.92-1.79 1.36a77.101 77.101 0 0 1-4.45 2.96c-1 .61-2.05 1.17-3.1 1.72-.53.27-1 .57-1.59.83-1.58.77-3.2 1.48-4.85 2.11-.31.12-.64.21-.95.32-1.38.5-2.77 1-4.18 1.35-.61.17-1.23.31-1.85.46-1.15.28-2.31.54-3.48.76q-1 .18-2.07.33c-1.15.17-2.31.3-3.48.4-.69.06-1.37.12-2.07.16-1.26.06-2.53.07-3.8.06a2.08 2.08 0 0 0-.25 0q-2.82 22-5.92 44a59.82 59.82 0 0 1 86.4-10.32l-15.68 26.58 25.21-16.59a59.68 59.68 0 0 1 11.5 44.16 58.76 58.76 0 0 1-4.5 15.94 59.83 59.83 0 0 1-111.19-4c-.23 1.48-.45 3-.68 4.46-2.44 15.35-5.47 34.46-16.23 50-7.29 10.56-17.33 18.36-27.09 25.22q-9.52 6.7-19.48 12.77a59.85 59.85 0 0 1-24.53 13.74q-16 8.19-32.69 14.81l-6.95 2.72c-6.25 2.44-12.65 4.94-19 7.6 1 .09 2 .17 3 .3a59.9 59.9 0 0 1 50.86 49.05l-42.31 23.11 42.18-1.89A59.16 59.16 0 0 1 797 450.13a59.87 59.87 0 0 1-82.7 11.74l2.1 3.91c1.4 2.58 2.78 5.15 4.12 7.7 18.33 34.74 19.66 64.74 3.75 84.49l-13-10.45c15.49-19.22 3.2-49.77-5.5-66.27-1.32-2.5-2.68-5-4-7.56-11.77-21.83-25.12-46.57-19.77-72.9 8-39.7 51.05-56.5 85.68-70ZM269.6 519.01l-5.38-2.11c-.52-.2-1-.43-1.54-.63a46.75 46.75 0 0 0-11.94-90.42l3.75 18.9-14.22-18.68h-.13a46.76 46.76 0 0 0-40 52.68c.12.89.31 1.74.47 2.61a55.84 55.84 0 0 1-11.56-11.73c-6.23-9-8.37-20.12-10.53-33.71-4.23-26.93-8.07-54.15-11.52-81.33a46.72 46.72 0 0 0 32.77-51.05c-.2-1.42-.47-2.8-.79-4.17l-.24-1a48.36 48.36 0 0 0-1.15-3.88c-.07-.21-.16-.41-.24-.61a48.24 48.24 0 0 0-1.28-3.15c-.18-.38-.35-.77-.53-1.15-.54-1.11-1.11-2.2-1.73-3.26-.21-.36-.44-.7-.65-1-.49-.78-1-1.55-1.52-2.29-.28-.39-.55-.79-.84-1.17l-.21-.3a46.76 46.76 0 0 0-58.29-13.32l4.88 24.6-14.07-18.46a46.48 46.48 0 0 0-12.75 53.59h-.05c.13.31.29.61.43.92.26.58.52 1.15.8 1.72q.54 1.08 1.14 2.13c.29.54.58 1.07.9 1.59.46.75 1 1.48 1.46 2.21.3.42.57.86.88 1.27.8 1.08 1.65 2.12 2.54 3.13.31.35.65.67 1 1 .63.67 1.27 1.33 1.94 2 .41.4.85.77 1.28 1.14q.93.83 1.89 1.59c.46.36.93.71 1.4 1.06.68.49 1.37 1 2.06 1.41.47.31.94.61 1.42.9.79.48 1.6.91 2.42 1.34.42.22.82.45 1.24.66 1.24.6 2.5 1.15 3.79 1.64.24.1.5.16.74.25 1.07.39 2.16.75 3.27 1.06.47.13 1 .24 1.44.35.9.22 1.8.43 2.72.6l1.61.26c.9.13 1.81.23 2.72.31.54.05 1.07.09 1.62.12 1 .05 2 .06 3 .05h.19q2.2 17.22 4.62 34.41a46.71 46.71 0 0 0-67.48-8.14l12.14 20.64-19.68-12.95a46.57 46.57 0 0 0-9 34.49 45.8 45.8 0 0 0 3.53 12.46 46.73 46.73 0 0 0 86.84-3.12c.18 1.15.35 2.32.53 3.48 1.9 12 4.27 26.92 12.67 39.08 5.7 8.24 13.54 14.33 21.16 19.69q7.44 5.24 15.21 10a46.88 46.88 0 0 0 19.16 10.74c8.32 4.26 16.84 8.14 25.54 11.56l5.42 2.13c4.88 1.9 9.88 3.85 14.81 5.93-.78.07-1.57.13-2.36.24a46.77 46.77 0 0 0-39.72 38.27l33 18-32.94-1.47a46.78 46.78 0 0 0 73.57 29.2c-.55 1-1.09 2-1.64 3.05-1.09 2-2.17 4-3.22 6-14.31 27.13-15.35 50.57-2.92 66l10.13-8.16c-12.1-15-2.5-38.87 4.3-51.76 1-1.95 2.09-3.92 3.16-5.9 9.19-17 19.61-36.37 15.46-56.94-6.21-30.94-39.86-44.02-66.9-54.6Z",fill:"#f2f2f2"})),l||(l=Y.createElement("ellipse",{cx:554,cy:707.68,rx:554,ry:23.5,fill:"#3f3d56"})),r||(r=Y.createElement("ellipse",{cx:554,cy:707.68,rx:554,ry:23.5,opacity:.1})),n||(n=Y.createElement("ellipse",{cx:554,cy:694.68,rx:554,ry:23.5,fill:"#3f3d56"})),i||(i=Y.createElement("path",{d:"M85 686.32c-3-5.51.4-12.26 4.28-17.18s8.61-10 8.51-16.29c-.14-9-9.7-14.31-17.33-19.08a84.78 84.78 0 0 1-15.56-12.51 23 23 0 0 1-4.78-6.4c-1.58-3.52-1.53-7.52-1.43-11.38q.5-19.26 1.9-38.48",fill:"none",stroke:"#3f3d56",strokeMiterlimit:10,strokeWidth:4})),s||(s=Y.createElement("path",{d:"M46.11 564.29a14 14 0 0 1 7-11.49l3.14 6.21-.09-7.52a13.86 13.86 0 0 1 4.62-.56 14 14 0 1 1-14.67 13.36ZM71.14 659.29a14 14 0 0 0 26.5-5.76 13.82 13.82 0 0 0-.91-5.69 14 14 0 0 0-26.27.15l8.77 7.13-9.64-2.24a13.89 13.89 0 0 0 1.55 6.41ZM78.07 632.04a14 14 0 0 0 4.46-27.54l.07 5.79-3.18-6.29a14.04 14.04 0 0 0-1.31 28.05ZM44 609.37a14.016 14.016 0 0 0 1.32-28 13.88 13.88 0 0 0-7.52 1.78l2.48 6.8-5.11-4.9a14 14 0 0 0-4.53 9.69 13.33 13.33 0 0 0 .36 3.85 14 14 0 0 0 13 10.78Z",fill:"#604687"})),m||(m=Y.createElement("path",{d:"M48 568.03c3.24.36 6.39 1.37 9.64 1.57s6.82-.58 8.88-3.1c1.11-1.37 1.66-3.09 2.59-4.57a10.08 10.08 0 0 1 3.54-3.33 14 14 0 1 1-26.24 9.32c.53.02 1.06.06 1.59.11ZM44 609.37a14 14 0 0 0 13.35-20 10.4 10.4 0 0 0-2.82 2.83c-1 1.51-1.61 3.25-2.78 4.64-2.19 2.57-5.92 3.41-9.31 3.25s-6.66-1.11-10-1.42c-.47 0-.94-.08-1.41-.09A14 14 0 0 0 44 609.37ZM78.07 632.04a14 14 0 0 0 13.47-19.76 11.36 11.36 0 0 0-3 2.85c-1.09 1.54-1.77 3.31-3 4.73-2.36 2.64-6.34 3.57-9.93 3.48s-6.82-.93-10.28-1.19a14 14 0 0 0 12.74 9.89ZM71.14 659.29a14 14 0 0 0 26.5-5.76 13.82 13.82 0 0 0-.91-5.69 14 14 0 0 0-3.08 2.74c-1.34 1.63-2.21 3.47-3.76 5-2.87 2.82-7.5 4-11.62 4.09a62.35 62.35 0 0 1-7.13-.38Z",opacity:.1})),o||(o=Y.createElement("path",{d:"M106.19 679.98s-11.08-.34-14.41-2.72-17-5.22-17.87-1.4-16.65 19-4.14 19.06 29.06-2 32.39-4 4.03-10.94 4.03-10.94Z",fill:"#656380"})),h||(h=Y.createElement("path",{d:"M69.54 693.59c12.51.1 29.06-2 32.4-4 2.53-1.54 3.54-7.09 3.88-9.65h.37s-.7 8.93-4 11-19.89 4.08-32.39 4c-3.61 0-4.86-1.31-4.79-3.22.47 1.13 1.85 1.87 4.53 1.87Z",opacity:.2})),f||(f=Y.createElement("path",{d:"M1055 695.32c-3-5.51.4-12.26 4.28-17.18s8.61-10 8.51-16.29c-.14-9-9.7-14.31-17.33-19.08a84.78 84.78 0 0 1-15.56-12.51 23 23 0 0 1-4.78-6.4c-1.58-3.52-1.53-7.52-1.43-11.38q.49-19.26 1.9-38.48",fill:"none",stroke:"#3f3d56",strokeMiterlimit:10,strokeWidth:4})),d||(d=Y.createElement("path",{d:"M1016.11 573.29a14 14 0 0 1 7-11.49l3.14 6.21-.09-7.52a13.86 13.86 0 0 1 4.62-.56 14 14 0 1 1-14.68 13.36ZM1041.14 668.29a14 14 0 0 0 26.5-5.76 13.82 13.82 0 0 0-.91-5.69 14 14 0 0 0-26.27.15l8.77 7.13-9.64-2.24a13.89 13.89 0 0 0 1.55 6.41ZM1048.07 641.04a14 14 0 0 0 4.46-27.54l.07 5.79-3.18-6.29a14.04 14.04 0 0 0-1.31 28.05ZM1014 618.37a14.016 14.016 0 0 0 1.32-28 13.88 13.88 0 0 0-7.52 1.78l2.48 6.8-5.11-4.9a14 14 0 0 0-4.53 9.69 13.33 13.33 0 0 0 .36 3.85 14 14 0 0 0 13 10.78Z",fill:"#604687"})),p||(p=Y.createElement("path",{d:"M1018 577.03c3.24.36 6.39 1.37 9.64 1.57s6.82-.58 8.88-3.1c1.11-1.37 1.66-3.09 2.59-4.57a10.08 10.08 0 0 1 3.54-3.33 14 14 0 1 1-26.24 9.32c.53.02 1.06.06 1.59.11ZM1014 618.37a14 14 0 0 0 13.35-20 10.4 10.4 0 0 0-2.82 2.83c-1 1.51-1.61 3.25-2.78 4.64-2.19 2.57-5.92 3.41-9.31 3.25s-6.66-1.11-10-1.42c-.47 0-.94-.08-1.41-.09a14 14 0 0 0 12.97 10.79ZM1048.07 641.04a14 14 0 0 0 13.47-19.76 11.36 11.36 0 0 0-3 2.85c-1.09 1.54-1.77 3.31-3 4.73-2.36 2.64-6.34 3.57-9.93 3.48s-6.82-.93-10.28-1.19a14 14 0 0 0 12.74 9.89ZM1041.14 668.29a14 14 0 0 0 26.5-5.76 13.82 13.82 0 0 0-.91-5.69 14 14 0 0 0-3.08 2.74c-1.34 1.63-2.21 3.47-3.76 5-2.87 2.82-7.5 4-11.62 4.09a62.35 62.35 0 0 1-7.13-.38Z",opacity:.1})),y||(y=Y.createElement("path",{d:"M1076.19 688.98s-11.08-.34-14.41-2.72-17-5.22-17.87-1.4-16.65 19-4.14 19.06 29.06-2 32.39-4 4.03-10.94 4.03-10.94Z",fill:"#656380"})),E||(E=Y.createElement("path",{d:"M1039.54 702.59c12.51.1 29.06-2 32.4-4 2.53-1.54 3.54-7.09 3.88-9.65h.37s-.7 8.93-4 11-19.89 4.08-32.39 4c-3.61 0-4.86-1.31-4.79-3.22.47 1.13 1.85 1.87 4.53 1.87Z",opacity:.2})),u||(u=Y.createElement("path",{d:"M745.57 331.15q-9.92-3.4-20-6.3 1.66-6.79 3.09-13.65c15.14-73.51 5.24-132.73-28.57-152.22-32.42-18.7-85.44.8-139 47.39q-7.92 6.92-15.47 14.2-5.07-4.85-10.3-9.51c-56.11-49.83-112.32-70.82-146.14-51.27-32.39 18.75-42 74.42-28.35 144.09q2 10.35 4.59 20.58c-7.95 2.26-15.64 4.67-23 7.24-65.79 22.89-107.81 58.89-107.81 96.18 0 38.51 45.11 77.14 113.64 100.56q8.34 2.83 16.8 5.26-2.74 11-4.88 22.18c-13 68.46-2.84 122.82 29.46 141.45 33.37 19.26 89.37-.54 143.89-48.2 4.31-3.77 8.63-7.77 13-11.95q8.18 7.89 16.79 15.32c52.82 45.45 105 63.81 137.26 45.12 33.33-19.29 44.16-77.69 30.1-148.73q-1.6-8.14-3.73-16.61 5.91-1.74 11.56-3.61c71.24-23.6 117.6-61.76 117.6-100.79 0-37.43-43.38-73.62-110.5-96.73Z",fill:"#53c1de"})),Z||(Z=Y.createElement("path",{d:"M730.12 503.47c-3.4 1.13-6.88 2.21-10.44 3.27a621.6 621.6 0 0 0-31.47-78.73 623.06 623.06 0 0 0 30.25-77.58c6.35 1.84 12.53 3.78 18.47 5.83 57.51 19.79 92.59 49.06 92.59 71.62 0 24-37.89 55.21-99.4 75.59Zm-25.52 50.58c6.22 31.41 7.1 59.81 3 82-3.7 19.95-11.14 33.25-20.34 38.58-19.59 11.33-61.47-3.4-106.64-42.27q-7.77-6.69-15.63-14.25a624.23 624.23 0 0 0 52.09-66.14 620.2 620.2 0 0 0 84.17-13q1.9 7.68 3.37 15ZM446.48 672.69c-19.14 6.76-34.38 6.95-43.59 1.64-19.6-11.31-27.75-55-16.63-113.5q2-10.37 4.53-20.63a625.79 625.79 0 0 0 83.75 12.13 645.09 645.09 0 0 0 53.35 65.9q-5.79 5.61-11.84 10.91c-24.11 21.08-48.28 36-69.57 43.55Zm-89.64-169.37c-30.31-10.36-55.33-23.82-72.49-38.5-15.41-13.2-23.19-26.31-23.19-36.94 0-22.63 33.74-51.5 90-71.11q10.6-3.69 21.39-6.73a637.08 637.08 0 0 0 30.29 78.48 646.29 646.29 0 0 0-30.66 79.6q-7.74-2.21-15.34-4.8Zm30.05-204.54c-11.68-59.69-3.93-104.72 15.59-116 20.79-12 66.76 5.12 115.22 48.15 3.1 2.75 6.21 5.63 9.32 8.6a635.89 635.89 0 0 0-52.93 65.52 648.42 648.42 0 0 0-82.93 12.89q-2.39-9.52-4.27-19.15ZM655 364.97q-9.11-15.74-18.89-31.08c19.83 2.51 38.82 5.83 56.66 9.91a565.54 565.54 0 0 1-19.89 53.51q-8.61-16.35-17.88-32.34ZM545.64 258.5a569.3 569.3 0 0 1 36.57 44.14q-36.71-1.73-73.45 0c12.07-15.92 24.44-30.72 36.88-44.13Zm-110 106.65q-9.15 15.87-17.55 32.14c-7.73-18.33-14.34-36.36-19.74-53.77 17.73-4 36.64-7.21 56.34-9.68q-9.92 15.44-19.07 31.31Zm19.61 158.65a564.64 564.64 0 0 1-57.25-9.21c5.49-17.71 12.25-36.13 20.15-54.86q8.43 16.29 17.61 32.16 9.34 16.19 19.47 31.91Zm91.14 75.33c-12.6-13.54-25.15-28.54-37.39-44.75q17.85.71 36.36.71 19 0 37.51-.84a563.94 563.94 0 0 1-36.5 44.88Zm126.69-140.35A562.82 562.82 0 0 1 694 513.44a561.35 561.35 0 0 1-58 9.89q9.85-15.63 19.08-31.63 9.38-16.26 18-32.92Zm-41 19.66q-14.12 24.52-29.81 48.1c-18.44 1.32-37.49 2-56.91 2s-38.15-.6-56.27-1.78q-16.09-23.5-30.39-48.17t-26.51-50.08q12.27-25.53 26.43-50.1 14.14-24.56 30.13-48c18.49-1.4 37.43-2.13 56.59-2.13s38.22.74 56.69 2.14q15.81 23.37 30 47.81t26.79 49.87q-12.45 25.62-26.71 50.3Zm54.77-296.46c20.81 12 28.9 60.4 15.83 123.87q-1.29 6.19-2.8 12.35a635.74 635.74 0 0 0-83.09-13.13 625.16 625.16 0 0 0-52.53-65.56q7-6.74 14.29-13.11c45.88-39.93 88.76-55.69 108.3-44.42Z",fill:"#fff"})),M||(M=Y.createElement("path",{d:"M545.34 372.38a55.5 55.5 0 1 1-55.5 55.5 55.49 55.49 0 0 1 55.5-55.5",fill:"#53c1de"})),x||(x=Y.createElement("path",{d:"M559.26 20.4a16.6 16.6 0 1 1-16.6-16.6 16.52 16.52 0 0 1 16.6 16.6Z",fill:"#3f3d56"})),b||(b=Y.createElement("path",{d:"M529.4 24.59A16.62 16.62 0 0 1 541.89.05a16.6 16.6 0 1 0 1.41 33.07 16.6 16.6 0 0 1-13.9-8.53ZM521.91 43.52h44.47v69.37h-44.47z",fill:"#3f3d56"})),g||(g=Y.createElement("path",{opacity:.1,d:"M521.91 43.52h44.47v69.37h-44.47z"})),v||(v=Y.createElement("path",{d:"M451.66 295.2s-4.75 13.05-16 14.83-17.79 4.74-17.79 4.74l26.68 17.19 14.23-1.78s1.78-18.38 7.71-22.53-14.83-12.45-14.83-12.45ZM644.34 295.2s4.75 13.05 16 14.83 17.79 4.74 17.79 4.74l-26.68 17.19-14.23-1.78s-1.78-18.38-7.71-22.53 14.83-12.45 14.83-12.45Z",fill:"#a0616a"})),w||(w=Y.createElement("path",{d:"M514.5 180.18s-7.11 3.56-9.48 10.68c0 0-13 4.15-20.16 15.41 0 0-8.9 9.49-10.08 14.23S460 253.7 460 253.7s-13.64 44.47-20.75 49.21c0 0 22.53-4.74 26.68 17.79 0 0 5.33 0 11.26-20.75s20.16-46.25 20.16-46.25 4.74-17.78 8.89-20.75 10.67-16.6 16.6-13 45.06-.6 45.06-.6 23.1 10.64 23.68 17.75 4.74 7.71 5.33 13.64 22.53 52.76 22.53 52.76 4.15 13 5.34 16c0 0 13-31.42 30.24-13.63 0 0-.6-11.86-5.93-19s-28.46-62.84-28.46-62.84-2.37-8.3-4.74-10.67-20.76-21.35-27.28-21.35c0 0-3.55-8.89-7.7-10.08ZM461.14 326.03a28.89 28.89 0 0 1-28.22-3.79 56.37 56.37 0 0 0-12.59-7.3c-6.29-2.54-13.81-4.42-16.1-.17-4.15 7.71 50.39 26.68 50.39 26.68s7.12-4.15 6.52-15.42ZM634.86 326.03a28.89 28.89 0 0 0 28.22-3.79 56.37 56.37 0 0 1 12.59-7.3c6.29-2.54 13.81-4.42 16.1-.17 4.15 7.71-50.39 26.68-50.39 26.68s-7.12-4.15-6.52-15.42Z",fill:"#3f3d56"})),q||(q=Y.createElement("path",{d:"M533.88 82.67c-.22 2.06-.9 4.29-2.66 5.38-1.44.9-3.26.83-4.92 1.17a11.46 11.46 0 0 0-7.82 6.77 17.51 17.51 0 0 0-.75 10.55 39.22 39.22 0 0 0 1.52 5.06c1.74 4.92 3.84 9.8 7.09 13.89a59 59 0 0 0 9.3 8.77c2.11 1.72 4.29 3.47 6.89 4.28a21.75 21.75 0 0 0 5.4.72c2.25.1 4.65.17 6.6-.95 3-1.73 3.89-5.55 5.52-8.62 1.38-2.6 3.44-4.81 4.73-7.46a29.49 29.49 0 0 0 2-6.52l2.77-12.3c1-4.47 1.92-9.51-.59-13.34a2.28 2.28 0 0 0-.74-.77 2.79 2.79 0 0 0-1.52-.15 16.44 16.44 0 0 1-9.15-2.09 3.93 3.93 0 0 1-1.15-.9 4.72 4.72 0 0 1-.7-2.12 22.2 22.2 0 0 0-1.28-4.45 3 3 0 0 0-.87-1.34 3.15 3.15 0 0 0-1.41-.47 114.47 114.47 0 0 0-12.93-1.35c-1.42-.07-3.56-.64-4.54.62s-.67 4.12-.79 5.62Z",fill:"#a0616a"})),O||(O=Y.createElement("path",{d:"M533.88 82.67c-.22 2.06-.9 4.29-2.66 5.38-1.44.9-3.26.83-4.92 1.17a11.46 11.46 0 0 0-7.82 6.77 17.51 17.51 0 0 0-.75 10.55 39.22 39.22 0 0 0 1.52 5.06c1.74 4.92 3.84 9.8 7.09 13.89a59 59 0 0 0 9.3 8.77c2.11 1.72 4.29 3.47 6.89 4.28a21.75 21.75 0 0 0 5.4.72c2.25.1 4.65.17 6.6-.95 3-1.73 3.89-5.55 5.52-8.62 1.38-2.6 3.44-4.81 4.73-7.46a29.49 29.49 0 0 0 2-6.52l2.77-12.3c1-4.47 1.92-9.51-.59-13.34a2.28 2.28 0 0 0-.74-.77 2.79 2.79 0 0 0-1.52-.15 16.44 16.44 0 0 1-9.15-2.09 3.93 3.93 0 0 1-1.15-.9 4.72 4.72 0 0 1-.7-2.12 22.2 22.2 0 0 0-1.28-4.45 3 3 0 0 0-.87-1.34 3.15 3.15 0 0 0-1.41-.47 114.47 114.47 0 0 0-12.93-1.35c-1.42-.07-3.56-.64-4.54.62s-.67 4.12-.79 5.62Z",opacity:.1})),C||(C=Y.createElement("path",{d:"M525.85 89.74a26.93 26.93 0 0 0-7.13-1.12c-5.72-.14-11.84 1.83-15.14 6.5a15.34 15.34 0 0 0-2.29 11.47 23.57 23.57 0 0 0 5.2 10.66 32 32 0 0 1 4 5.24c1.58 3 1.63 6.59 2.06 10 1 8.12 4.46 15.75 5.83 23.82s.19 17.42-6.18 22.55c-1.07.86-2.37 1.77-2.46 3.14-.14 2.19 2.71 3.12 4.9 3.33 6.55.62 13.27 1.23 19.63-.46 2.63-.7 5.17-1.79 7.85-2.29 6.8-1.27 13.64 1.34 20.45 2.59a90.61 90.61 0 0 0 14.91 1.21 7.94 7.94 0 0 0 3.43-.45 2.75 2.75 0 0 0 1.74-2.74 4.76 4.76 0 0 0-1.18-2c-3.44-4.25-4.49-9.9-5.43-15.29l-3.15-18.11c-1.69-9.68-3.26-20.2 1.32-28.89 3.29-6.25 9.36-10.65 12.83-16.8a9.84 9.84 0 0 0 1.55-6.28c-.52-3.09-3.31-5.3-6.17-6.59a23.21 23.21 0 0 0-17.42-.64c.1 4.33-1 8.71-1.71 13l-1.21 7a88.83 88.83 0 0 1-2.71 12.2 12.85 12.85 0 0 1-2.17 4.42 11.43 11.43 0 0 1-3.83 2.79 22.83 22.83 0 0 1-10.14 2.32 13.54 13.54 0 0 1-4.48-.69 19 19 0 0 1-6.17-4.34 10.11 10.11 0 0 1-1.63-1.77 9.93 9.93 0 0 1-1.11-2.67 55.42 55.42 0 0 1-1.91-7.48c-.3-1.94-.4-3.91-.54-5.87-.39-5.79-.39-12.19-1.54-17.76Z",fill:"#604687"})),N||(N=Y.createElement("path",{d:"M519.84 204.49s-2.37 31.43 12.45 36.76 1.78-26.09 1.78-26.09l-4.75-9.48ZM570.23 204.49s2.37 31.43-12.45 36.76-1.78-26.09-1.78-26.09l4.75-9.48Z",fill:"#a0616a"})),k||(k=Y.createElement("path",{d:"m506.79 99.59-4.74 7.71s4.15 26.68 4.74 31.42a62.2 62.2 0 0 0 2.38 10.08s.59 14.23.59 19.57 3 14.23 3 14.23a64.82 64.82 0 0 0 3 14.82c2.37 6.52 4.74 14.23 4.74 14.23s3-8.3 14.82 4.15a7.18 7.18 0 0 0 0-10.08s-3.55-16-3.55-24.31-6.53-48-6.53-48-4.24-45.12-18.45-33.82Z",opacity:.1})),A||(A=Y.createElement("path",{d:"m505.61 98.96-4.74 7.71s4.15 26.68 4.74 31.42a61.84 61.84 0 0 0 2.39 10.08s.59 14.23.59 19.56 3 14.23 3 14.23a64.53 64.53 0 0 0 3 14.82c2.37 6.53 4.75 14.23 4.75 14.23s3-8.3 14.82 4.15a7.18 7.18 0 0 0 0-10.07s-3.56-16-3.56-24.31-6.52-48-6.52-48-4.24-45.09-18.47-33.82Z",fill:"#604687"})),j||(j=Y.createElement("path",{d:"m583.87 94.81 3 3.53s3.49 20.18-4.22 45.68l-2.37 23.12s-4.15 19.57-4.74 24.31-.59 5.33-1.78 7.11a2.29 2.29 0 0 0 0 3l-3.56 13s-5.33-6.52-16 1.78c0 0-3-4.74-.6-8.89s2.37-5.93 1.78-7.12 2.37-7.11 2.37-8.3 4.18-28.44 4.18-28.44 1.78-26.68 3.56-35.57c1.09-5.47 1.07-17.66.88-26.24-.19-8.94 10.63-13.78 17-7.5.15.16.33.31.5.53Z",opacity:.1})),S||(S=Y.createElement("path",{d:"m585.65 93.59 3 3.53s3.49 20.19-4.22 45.68l-2.37 23.12s-4.15 19.57-4.74 24.31-.6 5.34-1.78 7.12a2.28 2.28 0 0 0 0 3L572 213.39s-5.33-6.53-16 1.77c0 0-3-4.74-.59-8.89s2.37-5.93 1.78-7.11 2.37-7.12 2.37-8.3 4.15-28.46 4.15-28.46 1.78-26.68 3.56-35.58.59-35.57.59-35.57 9.49-6.52 17.79 2.34Z",fill:"#604687"})),H||(H=Y.createElement("circle",{cx:545.92,cy:61.61,r:23.72,fill:"#a0616a"})),T||(T=Y.createElement("path",{d:"M558.29 26a16.6 16.6 0 0 1-31.09.44c9.26-3.73 18.72-.41 18.72-.41 4.73-1.66 8.83-1.51 12.37-.03Z",opacity:.1})),I||(I=Y.createElement("path",{d:"M545.92 27.22s-45.65-16-34.38 61.66c0 0 10.08 6.52 17.78 2.37 0 0-5.33-53.95 15.42-51.58s17.19 50.4 17.19 50.4 11.86 3.55 15.42-3-1.19-70.48-31.43-59.85Z",fill:"#3f3d56"})),L||(L=Y.createElement("path",{d:"M544.74 36.11c-14.24-1.62-16.2 23.27-16 39.05.17-15.69 2.81-37 16-35.49 14.81 1.69 17.24 26.66 17.41 40.8.17-12.98-1.25-42.51-17.41-44.36ZM511.54 85.32a159.38 159.38 0 0 1-1.77-20.53 152.12 152.12 0 0 0 1.77 24.09s10.08 6.52 17.78 2.37c0 0-.12-1.28-.26-3.43-7.67 3.87-17.52-2.5-17.52-2.5ZM577.35 83.59c-3.32 6.08-13.83 3.41-15.25 3-.07 2.2-.17 3.52-.17 3.52s11.86 3.55 15.42-3c.73-1.34 1.11-5.13 1-10.2-.1 3.25-.45 5.68-1 6.68Z",opacity:.1})),G||(G=Y.createElement("path",{d:"M826.73 672.96c4.74-8.78-.64-19.54-6.82-27.37s-13.73-16-13.57-26c.23-14.35 15.45-22.81 27.62-30.42a134.77 134.77 0 0 0 24.79-19.93c3-3.05 5.87-6.31 7.62-10.21 2.52-5.6 2.45-12 2.29-18.12q-.79-30.71-3-61.34",fill:"none",stroke:"#3f3d56",strokeMiterlimit:10,strokeWidth:4})),P||(P=Y.createElement("path",{d:"M888.74 478.49a22.31 22.31 0 0 0-11.16-18.32l-5 9.9.15-12a22.37 22.37 0 1 0 16 20.41ZM848.86 629.88a22.36 22.36 0 1 1 1.08-18l-14 11.37 15.37-3.57a22.25 22.25 0 0 1-2.45 10.2ZM837.81 586.45a22.37 22.37 0 0 1-7.09-43.86l-.12 9.22 5.06-10h.06a22.37 22.37 0 1 1 2.09 44.69ZM892.11 550.32a22.37 22.37 0 1 1 9.89-41.86l-4 10.83 8.13-7.8a22.37 22.37 0 0 1-14.07 38.83Z",fill:"#604687"})),U||(U=Y.createElement("path",{d:"M885.74 484.45c-5.17.57-10.19 2.18-15.37 2.5s-10.87-.92-14.14-5c-1.77-2.17-2.65-4.91-4.14-7.28a16 16 0 0 0-5.63-5.3 22.37 22.37 0 1 0 41.81 14.84c-.85.09-1.69.15-2.53.24ZM892.11 550.32a22.39 22.39 0 0 1-21.28-31.91 16.37 16.37 0 0 1 4.5 4.51c1.59 2.4 2.56 5.18 4.43 7.39 3.48 4.09 9.44 5.43 14.84 5.19s10.6-1.78 16-2.28c.75-.06 1.5-.11 2.26-.13a22.37 22.37 0 0 1-20.75 17.23ZM837.81 586.45a22.37 22.37 0 0 1-21.46-31.49 17.83 17.83 0 0 1 4.73 4.55c1.74 2.45 2.82 5.27 4.86 7.54 3.77 4.2 10.11 5.68 15.83 5.54 5.54-.12 10.87-1.48 16.38-1.9a22.36 22.36 0 0 1-20.34 15.76ZM848.86 629.88a22.37 22.37 0 0 1-40.78-18.29 22.27 22.27 0 0 1 4.91 4.38c2.13 2.59 3.53 5.53 6 7.94 4.57 4.49 11.95 6.34 18.52 6.51a97.1 97.1 0 0 0 11.35-.54Z",opacity:.1})),F||(F=Y.createElement("path",{d:"M793 662.85s17.65-.54 23-4.33 27.16-8.31 28.48-2.24 26.53 30.22 6.6 30.38-46.31-3.1-51.62-6.34-6.46-17.47-6.46-17.47Z",fill:"#656380"})),V||(V=Y.createElement("path",{d:"M851.4 684.59c-19.93.16-46.31-3.11-51.62-6.34-4-2.47-5.65-11.3-6.19-15.38H793s1.12 14.24 6.43 17.47 31.69 6.5 51.62 6.34c5.75 0 7.74-2.09 7.63-5.12-.8 1.81-2.99 2.95-7.28 3.03Z",opacity:.2})),_||(_=Y.createElement("path",{d:"m323 42.86-18.25 11.57 11.08-20.15a18 18 0 0 0-11-3.94h-.3a21.58 21.58 0 0 1-3.78-.28l-6.19 3.92 2.65-4.82a22.06 22.06 0 0 1-10.82-8.21l-11.07 7 7-12.72c-6.48-7.77-15.2-12.54-24.81-12.54-11.51 0-21.76 6.85-28.38 17.52a21.24 21.24 0 0 1-18.76 10.12h-.62c-12.71 0-23 14.41-23 32.19s10.3 32.18 23 32.18a17.2 17.2 0 0 0 8-2c8.29-4.31 19.17-4.39 27.85-.54a29 29 0 0 0 23.68.05c8.62-3.77 19.37-3.69 27.61.54a17.23 17.23 0 0 0 7.93 2c12.71 0 23-14.41 23-32.18A40.86 40.86 0 0 0 323 42.86Z",fill:"#f2f2f2"})),z||(z=Y.createElement("path",{d:"M288.59 89.95a34 34 0 0 0-19.72 2.14 29 29 0 0 1-23.67-.05c-8.69-3.85-19.57-3.77-27.86.54a17.2 17.2 0 0 1-8 2c-11.29 0-20.68-11.38-22.64-26.38a21.58 21.58 0 0 0 5.64-6.08c6.66-10.66 16.87-17.53 28.38-17.53s21.64 6.77 28.26 17.32a21.79 21.79 0 0 0 18.76 10.31h.26c9 .01 16.8 7.22 20.59 17.73Z",opacity:.03})),B||(B=Y.createElement("path",{d:"M800.07 66.42 791 72.19l5.53-10a9 9 0 0 0-5.51-2h-.14a10.79 10.79 0 0 1-1.89-.14l-3.09 2 1.3-2.46a11 11 0 0 1-5.4-4.09l-5.52 3.5 3.49-6.34a16.17 16.17 0 0 0-12.37-6.26c-5.75 0-10.86 3.42-14.16 8.74a10.57 10.57 0 0 1-9.36 5h-.31c-6.34 0-11.48 7.19-11.48 16s5.14 16.05 11.48 16.05a8.62 8.62 0 0 0 4-1 16.56 16.56 0 0 1 13.89-.27 14.52 14.52 0 0 0 11.81 0 16.58 16.58 0 0 1 13.77.27 8.61 8.61 0 0 0 4 1c6.34 0 11.48-7.18 11.48-16.05a20.28 20.28 0 0 0-2.45-9.72Z",fill:"#f2f2f2"})),D||(D=Y.createElement("path",{d:"M782.92 89.91a17 17 0 0 0-9.83 1.07 14.52 14.52 0 0 1-11.81 0 16.58 16.58 0 0 0-13.9.27 8.55 8.55 0 0 1-4 1c-5.64 0-10.32-5.67-11.3-13.15a10.93 10.93 0 0 0 2.82-3c3.3-5.32 8.42-8.73 14.16-8.73s10.79 3.37 14.09 8.63a10.85 10.85 0 0 0 9.36 5.14h.15c4.49-.07 8.34 3.53 10.26 8.77Z",opacity:.03})),J||(J=Y.createElement("path",{d:"m204.34 215.86 14.66 9.28-8.88-16.15a14.48 14.48 0 0 1 8.85-3.15h.23a17.08 17.08 0 0 0 3-.22l4.95 3.14-2.15-3.86a17.78 17.78 0 0 0 8.67-6.58l8.87 5.62-5.54-10.19c5.19-6.22 12.18-10 19.87-10 9.23 0 17.44 5.48 22.75 14a17 17 0 0 0 15 8.11h.5c10.18 0 18.43 11.54 18.43 25.78s-8.25 25.79-18.43 25.79a13.86 13.86 0 0 1-6.43-1.61 26.59 26.59 0 0 0-22.31-.43 23.28 23.28 0 0 1-19 0 26.64 26.64 0 0 0-22.12.43 13.9 13.9 0 0 1-6.35 1.57c-10.19 0-18.44-11.54-18.44-25.79a32.78 32.78 0 0 1 3.87-15.74Z",fill:"#f2f2f2"})),W||(W=Y.createElement("path",{d:"M231.89 253.59a27.36 27.36 0 0 1 15.8 1.72 23.28 23.28 0 0 0 19 0 26.61 26.61 0 0 1 22.32.43 13.82 13.82 0 0 0 6.42 1.61c9.05 0 16.57-9.11 18.14-21.13a17.44 17.44 0 0 1-4.52-4.88c-5.31-8.54-13.52-14-22.75-14s-17.33 5.42-22.64 13.88a17.44 17.44 0 0 1-15 8.25h-.23c-7.26-.07-13.5 5.71-16.54 14.12Z",opacity:.03})))}},8538:(e,a,t)=>{t.d(a,{Z:()=>H});var c,l,r,n,i,s,m,o,h,f,d,p,y,E,u,Z,M,x,b,g,v,w,q,O,C,N,k=t(7294),A=["title","titleId"];function j(){return j=Object.assign?Object.assign.bind():function(e){for(var a=1;a=0||(l[t]=e[t]);return l}(e,a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(c=0;c=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(l[t]=e[t])}return l}const H=function(e){var a=e.title,t=e.titleId,H=S(e,A);return k.createElement("svg",j({"data-name":"Layer 1",xmlns:"http://www.w3.org/2000/svg",width:1038.23,height:693.31,viewBox:"0 0 1038.23 693.31","aria-labelledby":t},H),c||(c=k.createElement("defs",null,k.createElement("linearGradient",{id:"a",x1:320.96,y1:796.01,x2:320.96,y2:284.81,gradientUnits:"userSpaceOnUse"},k.createElement("stop",{offset:0,stopColor:"gray",stopOpacity:.25}),k.createElement("stop",{offset:.54,stopColor:"gray",stopOpacity:.12}),k.createElement("stop",{offset:1,stopColor:"gray",stopOpacity:.1})))),void 0===a?k.createElement("title",{id:t},"version control"):a?k.createElement("title",{id:t},a):null,l||(l=k.createElement("path",{d:"M615.24 111.4c-64.72-2.25-126.36-23.14-185.23-46S312.85 17.21 249.68 5.1c-40.63-7.79-87.09-8.89-119.83 12.89-31.5 21-41.68 57.15-47.16 90.72-4.11 25.27-6.54 51.85 4.75 75.5 7.83 16.42 21.74 30.22 31.36 45.95 33.46 54.72 9.81 122.2-26.46 175.63-17 25.06-36.74 49-49.87 75.66s-19.2 57.25-7.72 84.47c11.39 27 38.52 47.24 67.9 61.49 59.69 28.94 130 37.23 198.62 41.92 151.82 10.39 304.46 5.89 456.68 1.39 56.34-1.67 112.92-3.36 168.34-12.07 30.78-4.84 62.56-12.52 84.9-31 28.36-23.53 35.39-63.38 16.39-92.88-31.88-49.49-120-61.79-142.31-114.9-12.27-29.23.33-61.8 18.15-88.91 38.24-58.17 102.33-109.19 105.71-175.68 2.32-45.66-28.49-91.39-76.13-113-49.94-22.65-119.18-19.8-156 17.69-37.96 38.56-104.62 53.41-161.76 51.43Z",fill:"#6c63ff",opacity:.1})),r||(r=k.createElement("path",{d:"M529.62 754.84c-1-3.62-2-7.28-4-10.43a36.53 36.53 0 0 0-6.55-7.17c-7.25-6.58-16.15-13.26-25.76-11.6a34.39 34.39 0 0 0-8.54 3.12c-1.4.65-2.81 1.3-4.25 1.85a21.17 21.17 0 0 1-12.82 1.12c-2.2-.59-4.25-1.65-6.42-2.31a20.35 20.35 0 0 0-3.15-.68 53.64 53.64 0 0 0 6.09-3.21c10.78-6.6 19.38-18.53 18.18-31.29-.41-4.29-1.88-8.4-3.34-12.45l-3.84-10.62c-1.66-4.6-3.38-9.29-6.41-13.11-3.37-4.26-8.17-7.15-13.13-9.3-10.65-4.63-22.29-6.26-33.78-7.84l-.8-.11V516.68a8 8 0 0 0-8-8H398q-1-6.12-2-12.22c-1.9-11.61-3.87-23.43-9.22-33.88-3.5-6.84-9.07-13.37-16.58-14.71a16.08 16.08 0 0 1-4.31-1c-2.2-1.08-3.4-3.48-5.09-5.25-4.36-4.57-11.45-4.64-17.29-7-5.16-2.05-9.38-5.91-14.08-8.88s-10.54-5.08-15.74-3.15c0 .38-.07.76-.11 1.13l-3.34-1.54c-3.6-1.67-7.27-3.38-10.16-6.12-3.71-3.5-5.69-8.14-7.23-13.07-.16-.51-.31-1-.47-1.55a46.43 46.43 0 0 0 12.44-23.75l.81 2.63a17.45 17.45 0 0 0 .64 1.74 6.86 6.86 0 0 0 2 2.83 3.55 3.55 0 0 0 .84.49 3.5 3.5 0 0 0 .86.22 3.2 3.2 0 0 0 1.24-.09 4.73 4.73 0 0 0 3-2.78 6 6 0 0 0 .35-1.22 6.31 6.31 0 0 0 .07-.76v-1.04c0-.1 0-.33-.05-.5v-.26c0-.2-.06-.4-.1-.59s0-.11 0-.16c-.05-.25-.11-.51-.16-.76v-.19c0-.06-.09-.41-.14-.62s-.07-.27-.1-.41v-.06c-.1-.4-.19-.79-.28-1.19a34.38 34.38 0 0 1-.55-10.56 113.08 113.08 0 0 1 2.86-15.35l.21-.91c.08-.35.16-.7.23-1.06.16-.72.32-1.44.47-2.17l.36-1.84.27-1.64v-.21A47.41 47.41 0 0 0 318 330c-.46-5.23-2.08-10.18-5.63-14.12-2.51-2.79-5.82-4.85-8.15-7.78-2.18-2.74-3.41-6.12-5.67-8.81-6.24-7.45-22.26-13.19-32.09-14.19-11.26-1.14-29.45 1.74-38.53 8.39-3.36 2.45-5.66 6-8 9.36-4.3 6.25-9.18 12.49-16.07 16-2.6 1.32-5.58 2.32-7.31 4.62a12.49 12.49 0 0 0-1.95 5.18 102.71 102.71 0 0 0-2.06 19.78v2.5a18.23 18.23 0 0 0 1.56 7.23c.16.34.34.67.53 1l.12.21a39.78 39.78 0 0 1 3.2 5.45 7.22 7.22 0 0 1 .49 1.66 12.24 12.24 0 0 1-.28 4.38c0 .22-.09.44-.13.66l-.09.43c0 .15 0 .3-.08.44-.08.43-.15.86-.21 1.28a9 9 0 0 0 .22 3.46 4.55 4.55 0 0 0 2.22 3 6.5 6.5 0 0 0 1.8.56c.63.11 1.27.18 1.89.32a9.33 9.33 0 0 1 2.29.85 9.22 9.22 0 0 1 1.93 1.24 11 11 0 0 1 .83.84 14 14 0 0 1 1.42 1.94q.32.53.6 1.08a24.67 24.67 0 0 1 1.71 4.52c.26.93.48 1.87.67 2.81.09.42.17.84.24 1.25s.14.83.2 1.24a2.91 2.91 0 0 0 .8-.16c1.47-.53 2.29-2.24 2.75-3.9.08-.28.15-.55.21-.82.23-1 .47-2.1.7-3.15a46.37 46.37 0 0 0 18.25 20.1c.28.83.55 1.65.79 2.49 1.31 4.53 1.94 9.27-.33 13.23-1.62 2.81-4.34 4.54-7.38 5.74a4.88 4.88 0 0 0-1.65-1.4c-2.63-1.32-5.79.28-8 2.25-4 3.62-7.26 8.81-12.52 10-1.9.44-4 .35-5.58 1.51a13 13 0 0 0-2.59 3.4 11.92 11.92 0 0 1-10.23 5.1c-1.83-.09-4-.51-5.25.83-.93 1-1 2.58-2 3.53-1.34 1.32-3.54.68-5.41.6-3.56-.15-6.87 2.15-8.9 5.1s-3 6.48-4 10v.06a7.15 7.15 0 0 0-.73.61 10.55 10.55 0 0 0-2.21 3.58 170.87 170.87 0 0 0-14.1 58.18 6 6 0 0 1-.64 2.82 13.87 13.87 0 0 1-1.47 1.6 5.61 5.61 0 0 0 .93 8 6.3 6.3 0 0 1 1.07-1.42c-.11.46-.21.91-.28 1.32a35.49 35.49 0 0 0-.11 8.8q1.42 20.84 2.87 41.65c.27 3.93.54 7.85.9 11.77q1.05 11.38 3 22.67c.06.34.13.69.22 1-8.15 2.59-15.4 7.27-18.45 15.08-1.06 2.7-1.54 5.64-2.84 8.23-1.43 2.84-3.78 5.11-5.34 7.89-2.69 4.78-2.81 10.64-1.83 16 1.89 10.45 7.54 19.79 15 27.39h-1a15.64 15.64 0 0 0-6.83 2.45c-15.78 9.22-24.8 29-21.51 47.06.65 3.53 1.78 7.11 4.14 9.8a15.51 15.51 0 0 0 7.28 4.46 25.29 25.29 0 0 0 5.37 1c12.3 1 24.21-4.7 36.54-5.18a98 98 0 0 1 12.23.57q8.91.74 17.85.94c9.69.23 15.14-2.35 21.32-9.59a26.1 26.1 0 0 0 3.77-5.94c5.26-.3 11.07-.76 15.27-1.1l.06.58c.23 2 .58 4.3 2.18 5.56a7.61 7.61 0 0 0 3 1.23c10.1 2.48 20.32 5 30.72 5a129.71 129.71 0 0 0 14.59-1.12l18.27-2.11a91 91 0 0 1 15.7 3.42c5.28 1.79 10.21 4.45 15.37 6.56 12 4.86 24.9 6.6 37.68 8.3 2.18.29 4.68.49 6.29-1 2.08-2 1.39-5.34.8-8.14-.24-1.15-.42-2.3-.56-3.46a175.25 175.25 0 0 1 25.24 8.76l1.43.63c.42 2.18 2.43 3.92 4.36 6.27a16 16 0 0 0 2.21 2.74 7.37 7.37 0 0 0 3.17 1.14 147.82 147.82 0 0 0 40.93 1.85 41.86 41.86 0 0 1 8.44-.29 36.58 36.58 0 0 1 6.1 1.37l11.57 3.32c8.53 2.44 17.26 4.91 26.11 4.36a33.4 33.4 0 0 0 5.33-.77c7-1.62 13.52-5.53 16.88-11.82 4.75-8.55 2.56-19.07 0-28.47Z",transform:"translate(-80.89 -103.35)",fill:"url(#a)"})),n||(n=k.createElement("path",{d:"M125.02 649.54c-2.11-4.8-4.11-10.32-2-15.12a12.85 12.85 0 0 1 6.65-6.25 32 32 0 0 1 9-2.22 125.61 125.61 0 0 1 29.26-.4c.71 5.62-.79 11.32-2.08 16.75-1.17 5-1.84 5.74-7 6-3.34.18-33.04 3.01-33.83 1.24Z",fill:"#fbbebe"})),i||(i=k.createElement("ellipse",{cx:214.07,cy:577.16,rx:143,ry:40,fill:"#464353"})),s||(s=k.createElement("ellipse",{cx:214.07,cy:577.16,rx:143,ry:40,opacity:.1})),m||(m=k.createElement("path",{d:"M239.71 366a44.49 44.49 0 0 1-22.94 20.84 57.58 57.58 0 0 1-18.21 3.46c-6.79.31-13.72-.13-20.1-2.45-8.56-3.1-15.67-9.44-21-16.83s-9-15.83-12.19-24.34c-1.68-4.43-3.28-9.15-2.49-13.83 5.15-1.17 10.79-2.89 13.45-7.46 2.27-3.92 1.64-8.62.33-13.1-.37-1.27-.8-2.53-1.23-3.74-1-2.9-4.45-8.41-2-10.89 1.53-1.57 7.94-2.37 10.15-3.39 6.81-3.14 13.09-7.68 20.57-9.17 6.47-1.29 13.15-.08 19.61 1.26a6.45 6.45 0 0 1 2.42.87 5.82 5.82 0 0 1 1.8 2.7c1.84 4.48 2.92 9.43 4.4 14.1 1.54 4.89 3.52 9.48 7.23 12.95 2.89 2.71 6.57 4.41 10.17 6.06l8.86 4.06a11.65 11.65 0 0 1 4.19 2.71 10.61 10.61 0 0 1 2 5.44 50.82 50.82 0 0 1-5.02 30.75Z",fill:"#fbbebe"})),o||(o=k.createElement("path",{d:"M212.24 304.03a46 46 0 0 1-55.67 8.26c-.37-1.27-.8-2.53-1.23-3.74-1-2.9-4.45-8.41-2-10.89 1.53-1.57 7.94-2.37 10.15-3.39 6.81-3.14 13.09-7.68 20.57-9.17 6.47-1.29 13.15-.08 19.61 1.26a6.45 6.45 0 0 1 2.42.87 5.82 5.82 0 0 1 1.8 2.7c1.79 4.48 2.87 9.43 4.35 14.1Z",opacity:.1})),h||(h=k.createElement("circle",{cx:179.07,cy:270.16,r:46,fill:"#fbbebe"})),f||(f=k.createElement("path",{d:"m319.22 419.45-3.78-22.9c-1.91-11.49-3.88-23.2-9.22-33.55-3.51-6.78-9.08-13.24-16.59-14.58a16.05 16.05 0 0 1-4.32-1c-2.2-1.06-3.4-3.44-5.09-5.2-4.36-4.52-11.46-4.59-17.3-6.89-5.16-2-9.38-5.85-14.08-8.79s-10.55-5-15.75-3.12c-.84 8.95-1.73 18.1-5.53 26.25a39.28 39.28 0 0 1-59.26 14.76c-8.91-6.71-14.62-17.06-17.28-27.89-.65-2.64-1.39-5.67-3.82-6.88-2.63-1.32-5.79.28-8 2.22-4 3.59-7.27 8.73-12.53 9.94-1.9.44-4 .35-5.58 1.5a12.7 12.7 0 0 0-2.6 3.37 12 12 0 0 1-10.23 5.06c-1.83-.09-4-.51-5.25.82-.93 1-1 2.56-2 3.49-1.35 1.31-3.54.67-5.42.6-3.56-.15-6.87 2.13-8.91 5s-3 6.42-4 9.86c10.93 24.34 20.93 48.71 31.86 73.05a6.23 6.23 0 0 1 .79 3 7.31 7.31 0 0 1-1.36 3c-5.36 8.61-5.19 19.44-4.6 29.56s1.31 20.81-3.21 29.88c-1.23 2.49-2.83 4.77-4 7.26-2.74 5.64-3.73 23.68-2.13 29.74h226.08c-4.31-11.85-2.67-35.63-1.77-48.21.63-8.8-1-17.59-1.7-26.39-1.53-17.97-.45-35.02-3.42-52.96Z",fill:"#6c63ff"})),d||(d=k.createElement("path",{d:"M65.36 445.65a35.4 35.4 0 0 0-.12 8.73l2.87 41.27c.27 3.89.54 7.77.9 11.65.69 7.53 1.72 15 3 22.46a4 4 0 0 0 4.1 3.89c12.65 2.68 25.72 2.57 38.63 1.84 19.7-1.1 39.37-3.61 59.1-3.18 5.08.11 11 0 14.08-4s1.29-10.47-2.73-13.7-9.48-4-14.64-4c-6.83-.07-13.66.9-20.47.5-6.25-.37-12.36-1.88-18.42-3.39l-17-4.23c.65-5.15 2.61-10 4.47-14.89 3.34-8.67 6.46-17.63 6.52-26.92s-3.44-19.06-11.05-24.38c-6.26-4.37-14.32-5.18-21.95-5-5.55.16-15.14-1.17-20.21 1-4.01 1.76-6.33 8.42-7.08 12.35Z",fill:"#fbbebe"})),p||(p=k.createElement("path",{d:"M330.79 540.01c3.33-1.27 7-.81 10.57-.33 11.49 1.57 23.15 3.18 33.8 7.77 5 2.14 9.76 5 13.14 9.21 3 3.79 4.75 8.43 6.41 13l3.84 10.52c1.46 4 2.94 8.08 3.35 12.33 1.2 12.59-7.41 24.46-18.24 31s-23.58 8.87-36 11.31-24.89 5.14-37.26 8a150 150 0 0 1-17.53 3.45c-13.24 1.5-27.08-.71-39.66 3.67-5 1.75-9.91 4.35-15.1 5.56a93.93 93.93 0 0 1-10.44 1.59l-23.81 2.72a129.89 129.89 0 0 1-14.6 1.12c-10.4 0-20.63-2.46-30.73-4.92a7.77 7.77 0 0 1-3-1.21c-1.6-1.26-1.95-3.49-2.18-5.51q-1.53-13.41-2.68-26.85c-.24-2.91-.42-6.06 1.17-8.51 2-3 5.9-3.94 9.46-4.52a246.88 246.88 0 0 1 45.68-3.17c5.81-5.81 15.39-5.84 23-9a68.39 68.39 0 0 0 8.11-4.41 106 106 0 0 1 44.53-14.07 41.45 41.45 0 0 0 9.11-1.3c5.89-1.83 11.26-6.81 17.31-5.59.75-2.07 1.27-4.84 3-6.26.86-.73 1.92-1.22 2.71-2 1.67-1.69 1.82-4.35 1.57-6.71s-.81-4.78-.2-7.08a9.79 9.79 0 0 1 1.11-2.47c3-5.18 7.53-7.84 13.56-7.34Z",fill:"#464353"})),y||(y=k.createElement("path",{d:"M330.79 540.01c3.33-1.27 7-.81 10.57-.33 11.49 1.57 23.15 3.18 33.8 7.77 5 2.14 9.76 5 13.14 9.21 3 3.79 4.75 8.43 6.41 13l3.84 10.52c1.46 4 2.94 8.08 3.35 12.33 1.2 12.59-7.41 24.46-18.24 31s-23.58 8.87-36 11.31-24.89 5.14-37.26 8a150 150 0 0 1-17.53 3.45c-13.24 1.5-27.08-.71-39.66 3.67-5 1.75-9.91 4.35-15.1 5.56a93.93 93.93 0 0 1-10.44 1.59l-23.81 2.72a129.89 129.89 0 0 1-14.6 1.12c-10.4 0-20.63-2.46-30.73-4.92a7.77 7.77 0 0 1-3-1.21c-1.6-1.26-1.95-3.49-2.18-5.51q-1.53-13.41-2.68-26.85c-.24-2.91-.42-6.06 1.17-8.51 2-3 5.9-3.94 9.46-4.52a246.88 246.88 0 0 1 45.68-3.17c5.81-5.81 15.39-5.84 23-9a68.39 68.39 0 0 0 8.11-4.41 106 106 0 0 1 44.53-14.07 41.45 41.45 0 0 0 9.11-1.3c5.89-1.83 11.26-6.81 17.31-5.59.75-2.07 1.27-4.84 3-6.26.86-.73 1.92-1.22 2.71-2 1.67-1.69 1.82-4.35 1.57-6.71s-.81-4.78-.2-7.08a9.79 9.79 0 0 1 1.11-2.47c3-5.18 7.53-7.84 13.56-7.34Z",opacity:.05})),E||(E=k.createElement("path",{d:"M134.22 655.72c-6.19 7.17-11.64 9.73-21.33 9.5q-8.94-.21-17.86-.93a100.2 100.2 0 0 0-12.24-.57c-12.34.48-24.25 6.13-36.56 5.14a25.92 25.92 0 0 1-5.37-1 15.63 15.63 0 0 1-7.29-4.42c-2.36-2.67-3.49-6.21-4.14-9.71-3.29-17.94 5.73-37.48 21.52-46.61a15.78 15.78 0 0 1 6.84-2.43 16.21 16.21 0 0 1 6.92 1.52l.15.06A52.33 52.33 0 0 1 82 617.71a9.66 9.66 0 0 0 2.62 2.11 9 9 0 0 0 3.09.58l13.14.83a31.14 31.14 0 0 1 6.6.91 52.46 52.46 0 0 1 6.94 3c7.07 3.16 14.91 4 22.55 5.22a3.37 3.37 0 0 1 2 .8 3.13 3.13 0 0 1 .62 1.3 25.51 25.51 0 0 1-5.34 23.26Z",fill:"#3f3d56"})),u||(u=k.createElement("path",{d:"M64.86 606.28a78.9 78.9 0 0 0-13.15 16.44 82.28 82.28 0 0 0-10.74 32.54 60.4 60.4 0 0 0-.11 12.61 15.63 15.63 0 0 1-7.29-4.42c-2.36-2.67-3.49-6.21-4.14-9.71-3.29-17.94 5.73-37.48 21.52-46.61a15.78 15.78 0 0 1 6.84-2.43 16.21 16.21 0 0 1 6.92 1.52Z",opacity:.1})),Z||(Z=k.createElement("path",{d:"M319.35 631.16c7.35-.2 15.6-.57 21 4.38 5.15 4.68 5.83 12.4 6.17 19.35l.39 8.07c.12 2.46.22 5-.77 7.28-1.76 4-6.59 5.93-11 5.7s-8.46-2.16-12.49-3.9a175.7 175.7 0 0 0-34-10.71q.57-8.37 1.9-16.66c.61-3.83.71-10.24 3.27-13.42 2.71-3.36 6.24-1.54 9.92-.92a79.63 79.63 0 0 0 15.61.83Z",fill:"#fbbebe"})),M||(M=k.createElement("path",{d:"M125.11 550.07c0 1-1.57 0-1.71-1.07-1.1-8.09-7.52-14.76-15-18s-16-3.41-24.1-2.64c-12.25 1.16-26 5.85-30.48 17.3-1.06 2.68-1.54 5.58-2.84 8.15-1.44 2.82-3.79 5.07-5.35 7.81-2.69 4.74-2.8 10.55-1.83 15.91 2.61 14.3 12.39 26.53 24.24 35s25.7 13.53 39.51 18.09a685.19 685.19 0 0 0 112 26.75c6.16.93 12.38 1.79 18.28 3.77 5.28 1.77 10.22 4.42 15.38 6.5 12 4.82 24.91 6.54 37.7 8.23 2.18.28 4.68.48 6.29-1 2.08-1.93 1.39-5.29.8-8.06a43.35 43.35 0 0 1 5.11-30.76c2.14-3.6 4.92-7.29 4.52-11.46-.48-4.86-5.32-8.3-10.14-9.08s-9.72.37-14.56 1c-1.67.22-3.49.36-4.95-.49a9.89 9.89 0 0 1-1.94-1.72 21.93 21.93 0 0 0-25.54-3.57c-1.79 1-4.5-1.23-6.36-2.07l-21.03-9.52c-24.16-10.93-48.44-21.91-74-28.83a15.54 15.54 0 0 1-5.7-2.37c-1.27-1-2.18-2.36-3.35-3.47-2.55-2.41-6.1-3.37-9.16-5.08s-6.49-5.89-5.79-9.32Z",fill:"#464353"})),x||(x=k.createElement("path",{d:"M449.32 680.76c-3.36 6.23-9.88 10.11-16.88 11.71a33.5 33.5 0 0 1-5.34.76c-8.85.55-17.59-1.9-26.12-4.32l-11.58-3.26a36.55 36.55 0 0 0-6.1-1.36 41.86 41.86 0 0 0-8.44.29 149.59 149.59 0 0 1-41-1.84 7.23 7.23 0 0 1-3.17-1.13 15.75 15.75 0 0 1-2.21-2.71c-3.15-3.79-6.54-6-2.81-11 2.15-2.9 6.14-4.35 7.81-7.68s.6-8.06-.39-11.5c-1.35-4.75-5.79-6.8-7.38-11.16-1.19-3.29.81-7.11 3.82-8.9s6.73-1.93 10.2-1.47 6.87 1.44 10.36 1.71c10.26.82 20.75-4.47 30.6-1.49 2.17.66 4.22 1.71 6.42 2.29a21.35 21.35 0 0 0 12.83-1.11c1.44-.54 2.85-1.19 4.25-1.83a34.23 34.23 0 0 1 8.55-3.09c9.61-1.65 18.52 5 25.77 11.49a36.44 36.44 0 0 1 6.55 7.1c2 3.12 3.06 6.75 4 10.33 2.65 9.25 4.84 19.67.26 28.17Z",fill:"#3f3d56"})),b||(b=k.createElement("path",{d:"M449.32 680.76c-3.36 6.23-9.88 10.11-16.88 11.71a32.69 32.69 0 0 0 3.55-17.16c-.6-9.51-4.78-18.47-10.11-26.37a93.4 93.4 0 0 0-11.14-13.57c-3.18-3.2-7.09-5.74-10.51-8.67a34.23 34.23 0 0 1 8.55-3.09c9.61-1.65 18.52 5 25.77 11.49a36.44 36.44 0 0 1 6.55 7.1c2 3.12 3.06 6.75 4 10.33 2.61 9.31 4.8 19.73.22 28.23Z",opacity:.1})),g||(g=k.createElement("path",{d:"M82.11 372.26a10.35 10.35 0 0 0-2.22 3.55 167.86 167.86 0 0 0-14.1 57.62 5.76 5.76 0 0 1-.65 2.79 12.21 12.21 0 0 1-1.47 1.59 5.52 5.52 0 0 0 .94 8c1.65-3.11 5.6-4.12 9.11-4.39 16.81-1.33 33.23 6.49 50.09 5.9-1.19-4.11-2.9-8.06-3.87-12.22-4.29-18.47 6.41-38.58-.15-56.37-1.31-3.56-3.5-7.06-6.95-8.62a18.51 18.51 0 0 0-4.45-1.18c-4.26-.77-12.74-4.06-16.86-2.74-1.52.49-2.12 1.92-3.38 2.78-1.91 1.23-4.45 1.68-6.04 3.29Z",fill:"#6c63ff"})),v||(v=k.createElement("rect",{x:117.57,y:408.66,width:223,height:142,rx:7.97,fill:"#3f3d56"})),w||(w=k.createElement("circle",{cx:228.57,cy:479.66,r:6,fill:"#fff"})),q||(q=k.createElement("path",{d:"M147.29 195.5c-3.36 2.43-5.66 5.92-8 9.27-4.31 6.19-9.19 12.37-16.08 15.82-2.61 1.31-5.59 2.3-7.32 4.58a12.34 12.34 0 0 0-1.95 5.13 101.65 101.65 0 0 0-2.06 19.6c0 3.28.14 6.66 1.59 9.64 1.37 2.8 3.84 5.17 4.35 8.22.39 2.38-.49 4.75-.8 7.14s.23 5.22 2.44 6.36a14.79 14.79 0 0 0 3.7.87c6.65 1.48 8.88 9.28 9.89 15.73 2.26-.13 3.28-2.72 3.75-4.83l6.93-30.81c.75-3.34 2-7.21 5.33-8.38 2.23-.77 4.67-.05 7 .15 9.15.75 16.89-6.32 25.84-8.27a33 33 0 0 1 8.71-.58c7.06.35 15.27 3.25 16.77 9.84.25 1.07.4 2.35 1.4 2.88s2.05.08 3.1 0c4.48-.45 7.12 4.59 8.41 8.71l4.7 15c.7 2.27 1.88 4.94 4.34 5.23 2.27.28 4.2-1.87 4.54-4s-.4-4.34-.89-6.48c-2.21-9.85 1.17-19.93 3.23-29.8s2.43-21.21-4.48-28.81c-2.51-2.75-5.81-4.8-8.15-7.7-2.18-2.72-3.41-6.06-5.67-8.73-6.25-7.37-22.28-13.06-32.11-14-11.23-1.22-29.43 1.63-38.51 8.22Z",fill:"#3f3d56"})),O||(O=k.createElement("g",{opacity:.1},k.createElement("path",{d:"M229.37 279.8c-2.46-.3-3.64-3-4.34-5.23q-2.35-7.51-4.7-15c-1.29-4.13-3.93-9.17-8.41-8.71-1.05.11-2.18.52-3.1 0s-1.15-1.81-1.4-2.88c-1.5-6.6-9.71-9.49-16.77-9.84a33.43 33.43 0 0 0-8.71.57c-8.95 2-16.69 9-25.84 8.27-2.36-.19-4.8-.91-7-.14-3.37 1.16-4.58 5-5.33 8.38l-6.93 30.8c-.47 2.12-1.49 4.71-3.75 4.83-1-6.44-3.24-14.24-9.89-15.72a15.72 15.72 0 0 1-3.7-.87 4.34 4.34 0 0 1-1.93-2.15c-.18.93-.39 1.86-.51 2.79-.3 2.38.23 5.22 2.44 6.36a14.79 14.79 0 0 0 3.7.87c6.65 1.48 8.88 9.28 9.89 15.73 2.26-.13 3.28-2.72 3.75-4.83l6.93-30.81c.75-3.34 2-7.21 5.33-8.38 2.23-.77 4.67-.05 7 .15 9.15.75 16.89-6.32 25.84-8.27a33 33 0 0 1 8.71-.58c7.06.35 15.27 3.25 16.77 9.84.25 1.07.4 2.35 1.4 2.88s2.05.08 3.1 0c4.48-.45 7.12 4.59 8.41 8.71q2.34 7.51 4.7 15c.7 2.27 1.88 4.94 4.34 5.23 2.27.28 4.2-1.87 4.54-4a13.58 13.58 0 0 0-.6-5.31 4.13 4.13 0 0 1-3.94 2.31ZM117.83 260.76c-.51-3.05-3-5.42-4.35-8.22a16.45 16.45 0 0 1-1.48-6c0 1.12-.1 2.24-.11 3.37 0 3.28.14 6.66 1.59 9.64 1.11 2.27 2.94 4.27 3.86 6.58a15.06 15.06 0 0 0 .49-5.37ZM236.25 239.48c-1.82 8.72-4.66 17.6-3.78 26.34.57-6.45 2.45-12.94 3.78-19.34a51 51 0 0 0 1.16-14.83 61.14 61.14 0 0 1-1.16 7.83Z"}))),C||(C=k.createElement("g",{opacity:.8},k.createElement("path",{fill:"none",stroke:"#3f3d56",strokeMiterlimit:10,strokeWidth:3,d:"M330.04 290.49H955.1M385.57 290.48s29.89 4.15 14.41-27.92 42-26 42-26M584.64 290.48s29.89-4.14 14.41 27.93 42 26 42 26M871.27 290.48s-29.9-4.14-14.41 27.93-42 26-42 26M814.86 344.4H649.93"}),k.createElement("circle",{cx:330.04,cy:290.49,r:18.25,fill:"#6c63ff"}),k.createElement("circle",{cx:442.29,cy:236.3,r:18.25,fill:"#3acc6c"}),k.createElement("circle",{cx:442.29,cy:290.49,r:18.25,fill:"#6c63ff"}),k.createElement("circle",{cx:514.73,cy:290.49,r:18.25,fill:"#6c63ff"}),k.createElement("circle",{cx:641.35,cy:344.13,r:18.25,fill:"#ff6584"}),k.createElement("circle",{cx:737.03,cy:344.13,r:18.25,fill:"#ff6584"}),k.createElement("circle",{cx:732.04,cy:290.49,r:18.25,fill:"#6c63ff"}),k.createElement("circle",{cx:950.48,cy:290.49,r:18.25,fill:"#6c63ff"}),k.createElement("circle",{cx:861.12,cy:290.49,r:18.25,fill:"#6c63ff"}),k.createElement("path",{fill:"#6c63ff",d:"M299.38 122.66h61.23v42.2h-61.23z"}),k.createElement("path",{fill:"#3acc6c",d:"M411.9 122.66h61.23v42.2H411.9z"}),k.createElement("path",{fill:"#ff6584",d:"M610.48 122.66h61.23v42.2h-61.23z"}))),N||(N=k.createElement("path",{d:"M86.35 299.36s-74.77-31.44-84.57 25.29c0 0-5.11 8.84 2 16.14 0 0 1.53-3.92 8.75.13a37.17 37.17 0 0 0 8.16 3.32 18.36 18.36 0 0 0 11.62-.62s24.59-1.33 45.27-33.5c0 0 8.87-5.48 9.31-7.54l-14.82 1s1.14 10.85-5 17.36c0 0 5.44-16.84 2.83-17.31-.53-.1-7.83.86-7.83.86s1.89 18.87-8 28.63c0 0 9.18-19.19 5.19-28.29l-10.94 2.11s3 19.85-7.82 31.39c0 0 8.9-20.4 5.46-30.76l-10.47 3.52s2.52 19.41-6.53 29c0 0 7.9-24.61 4.18-28 0 0-9.42 3.82-11.43 6 0 0 1.49 14-4.26 19.05 0 0 3.53-17 1.78-17.7 0 0-10.94 8.24-14.28 15.35 0 0 4.16-10.86 12.91-17 0 0-7.35-1.24-13 1.83 0 0 3.78-7.21 15.65-3.79 0 0 8.79-6.09 10.55-6 0 0-11.23-5-19.34-4.38 0 0 8.7-5 22.08 3.35l10.45-3.77s-14.5-7.43-21.76-7.4c0 0 9.66-3.74 24.47 6.66l10.7-2.18s-12-7.35-20.09-9.06c0 0 9.7-1.54 23.18 8.55l7.31-.61s-8.85-5.22-11.53-6.49-2.56-2.09-2.56-2.09a34.89 34.89 0 0 1 17.14 8.18s15.18-.3 15.24-1.23ZM83.59 243s-26.48-61.27-64.63-33.17c0 0-8.06 2.34-8 10.7 0 0 3.14-1.46 5.13 5.07a30.1 30.1 0 0 0 3 6.61 15 15 0 0 0 7.25 6.25s15.37 13.22 46 5.89c0 0 8.4 1.79 9.83.83l-9.36-7.87s-5.51 7.1-12.89 7.44c0 0 12.83-6.9 11.55-8.67-.26-.36-5.15-3.94-5.15-3.94s-9.62 12.28-21 12.47c0 0 16.39-6.18 19.2-13.85l-7.7-5s-9.71 13.51-22.71 14.21c0 0 16.91-7.05 20.77-15.17l-8.23-3.87s-9.56 13-20.37 13.49c0 0 18.72-10.12 18.43-14.25 0 0-7.77-3.1-10.24-2.92 0 0-7.07 9.15-13.38 8.89 0 0 11.79-8.09 11.15-9.5 0 0-11.2-1.34-17.23 1 0 0 8.66-4.08 17.35-2.74 0 0-3.66-4.93-8.75-6.3 0 0 6.36-2.13 11.46 6.65 0 0 8.68 1.4 9.7 2.44 0 0-3.81-9.39-9-13.62 0 0 8 2 11.2 14.57l8.36 3.71s-4.38-12.68-8.72-16.79c0 0 7.87 3.28 10.75 17.9l7.6 4.79s-2.94-11.2-6.77-16.83c0 0 6.64 4.62 8.89 18.29l4.7 3.8s-2.29-8.14-3.16-10.42-.33-2.7-.33-2.7a28.65 28.65 0 0 1 5.49 14.68s9.24 8.44 9.81 7.93Z",fill:"#6c63ff",opacity:.1})))}},6566:(e,a,t)=>{t.d(a,{Z:()=>o});var c=t(7462),l=t(7294),r=t(6010);const n="features_xdhU",i="featureSvg__8YW";var s=[{title:"Gas-Grain Chemistry",Svg:t(7156).Z,description:l.createElement(l.Fragment,null,"Detailed, consistent treatment of chemistry across the gas phase and both the surface and the bulk of the ice mantles around dust grains.")},{title:"Modular Physics",Svg:t(4503).Z,description:l.createElement(l.Fragment,null,"Flexible, interchangeable modules to model all kinds of astrophysical objects such as molecular clouds, protostellar cores and C/J-type shocks.")},{title:"Active Development",Svg:t(8538).Z,description:l.createElement(l.Fragment,null,"Teams at UCL and Leiden Observatory are working with international collaborators to extend and improve UCLCHEM. Check our ",l.createElement("a",{href:"./blog/index.html"},"blog")," for recent updates.")}];function m(e){var a=e.Svg,t=e.title,c=e.description;return l.createElement("div",{className:(0,r.Z)("col col--4")},l.createElement("div",{className:"text--center"},l.createElement(a,{className:i,alt:t})),l.createElement("div",{className:"text--center padding-horiz--md"},l.createElement("h3",null,t),l.createElement("p",null,c)))}function o(){return l.createElement("section",{className:n},l.createElement("div",{className:"container"},l.createElement("div",{className:"row"},s.map((function(e,a){return l.createElement(m,(0,c.Z)({key:a},e))})))))}},1247:(e,a,t)=>{t.r(a),t.d(a,{default:()=>y});var c=t(7294),l=t(6010),r=t(2600),n=t(9960),i=t(2263),s=t(1207);t(6566);function m(){(0,i.Z)().siteConfig;return c.createElement("header",{className:(0,l.Z)("hero hero--primary",s.Z.heroBanner)},c.createElement("div",{className:"container"},c.createElement("h1",{className:"hero__title"},"Chemulator"),c.createElement("div",{className:"mybuttons"},c.createElement(n.Z,{className:"mybuttons button button--secondary button--lg",to:"https://github.com/uclchem/Chemulator"},"View on GitHub"),c.createElement(n.Z,{className:"mybuttons button button--secondary button--lg",to:"https://github.com/uclchem/Chemulator/zipball/master"},"Get a Zip"),c.createElement(n.Z,{className:"mybuttons button button--secondary button--lg",to:"https://github.com/uclchem/Chemulator/tarball/master"},"Get a Tarball"),c.createElement(n.Z,{className:"mybuttons button button--secondary button--lg",to:"https://arxiv.org/abs/2106.14789"},"View Article"))))}function o(){return c.createElement("div",{className:"mycontainer"},c.createElement("h3",null," Fast, accurate chemistry for hydrodynamical models "),c.createElement("p",null," Chemistry is important to hydrodynamical models as it effectively sets the gas temperature by determining the abundances of important coolants. However, full chemical networks such as those used in UCLCHEM are typically too computationally expensive to include in a hydrodynamical model. Similarly, solving the chemistry in a time dependent way can also be a huge computational burden and equilibrium is often assumed instead. "),c.createElement("p",null," Chemulator is a neural network based emulator which can calculate the time dependent temperature and chemical abundances of a gas. This significantly faster than solving the chemical network directly and can be embedded in hydrodynamical models to obtain accurate temperatures without the computational cost of a full chemical and radiative trasfer solver. "))}function h(){return c.createElement("div",{className:"mycontainer"},c.createElement("h2",null," Authors, Contributors "),c.createElement("h3",null," Main author: Jonathan Holdship "),c.createElement("p",null," Contributors: S. Viti, T. J. Haworth and J. D. Ilee "),c.createElement("p",null," You are free to download, modify, and use the code for your work. The development of the code has been funded by STFC grants ST/H001794/1 and ST/J001511/1. "))}function f(){(0,i.Z)().siteConfig;return c.createElement("header",{className:(0,l.Z)("hero hero--primary",s.Z.heroBanner)},c.createElement("div",{className:"container"},c.createElement("h1",{className:"hero__title"},"Emulchem"),c.createElement("div",{className:"mybuttons"},c.createElement(n.Z,{className:"mybuttons button button--secondary button--lg",to:"https://github.com/drd13/emulchem"},"View on GitHub"),c.createElement(n.Z,{className:"mybuttons button button--secondary button--lg",to:"https://github.com/drd13/emulchem/zipball/master"},"Get a Zip"),c.createElement(n.Z,{className:"mybuttons button button--secondary button--lg",to:"https://github.com/drd13/emulchem/tarball/master"},"Get a Tarball"),c.createElement(n.Z,{className:"mybuttons button button--secondary button--lg",to:"https://arxiv.org/abs/1907.07472"},"View Article"))))}function d(){return c.createElement("div",{className:"mycontainer"},c.createElement("h3",null," Fast, accurate chemistry for hydrodynamical models "),c.createElement("p",null," A collection of statistical emulators for the UCLCHEM and RADEX astronomical codes. The UCLCHEM emulators can be used to obtain chemical abundances for various molecules under varying physical conditions. The RADEX emulator can be used to estimate the strength of molecular lines. Both emulators are built using neural networks. For more detail on the emulation procedure and its applications, please refer to the associated paper. "))}function p(){return c.createElement("div",{className:"mycontainer"},c.createElement("h2",null," Authors, Contributors "),c.createElement("h3",null," Main author: Damien de Mijolla "),c.createElement("p",null," Contributors: Serena Viti, Jonathan Holdship, Ioanna Manolopoulou, Jeremy Yates "),c.createElement("p",null," The software is released, as is, under an MIT license. "))}function y(){var e=(0,i.Z)().siteConfig;return c.createElement(r.Z,{title:"Chemulator - "+e.title,description:"Description will go into a meta tag in "},c.createElement(m,null),c.createElement("div",{className:"container"},c.createElement(o,null)),c.createElement("div",{className:"container"},c.createElement(h,null)),c.createElement(f,null),c.createElement("div",{className:"container"},c.createElement(d,null)),c.createElement("div",{className:"container"},c.createElement(p,null)))}},1207:(e,a,t)=>{t.d(a,{Z:()=>c});const c={heroBanner:"heroBanner_qdFl",buttons:"buttons_AeoN"}}}]); \ No newline at end of file +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1898],{4503:(e,a,t)=>{t.d(a,{Z:()=>Qe});var c,l,r,n,i,s,m,o,h,f,d,p,y,E,u,Z,M,x,b,g,v,w,q,O,C,N,k,A,j,S,H,T,I,L,G,P,U,F,V,_,z,B,D,J,W,Y,R,X,Q,K,$,ee,ae,te,ce,le,re,ne,ie,se,me,oe,he,fe,de,pe,ye,Ee,ue,Ze,Me,xe,be,ge,ve,we,qe,Oe,Ce,Ne,ke,Ae,je,Se,He,Te,Ie,Le,Ge,Pe,Ue,Fe,Ve,_e,ze,Be,De,Je,We=t(7294),Ye=["title","titleId"];function Re(){return Re=Object.assign?Object.assign.bind():function(e){for(var a=1;a=0||(l[t]=e[t]);return l}(e,a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(c=0;c=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(l[t]=e[t])}return l}const Qe=function(e){var a=e.title,t=e.titleId,Qe=Xe(e,Ye);return We.createElement("svg",Re({"data-name":"Layer 1",xmlns:"http://www.w3.org/2000/svg",width:1100,height:806.74,viewBox:"0 0 1100 806.74","aria-labelledby":t},Qe),c||(c=We.createElement("defs",null,We.createElement("linearGradient",{id:"a",x1:459.23,y1:847.99,x2:459.23,y2:385.75,gradientTransform:"translate(250.84)",gradientUnits:"userSpaceOnUse"},We.createElement("stop",{offset:0,stopColor:"gray",stopOpacity:.25}),We.createElement("stop",{offset:.54,stopColor:"gray",stopOpacity:.12}),We.createElement("stop",{offset:1,stopColor:"gray",stopOpacity:.1})))),void 0===a?We.createElement("title",{id:t},"operating system"):a?We.createElement("title",{id:t},a):null,l||(l=We.createElement("ellipse",{cx:629.72,cy:780.56,rx:122.56,ry:26.18,fill:"#604687",opacity:.1})),r||(r=We.createElement("path",{d:"M1070.55 683.84c-24.35 20.2-59 28.56-92.51 33.84l-5.64.86c-58.57 8.74-118.32 10.52-177.79 12.28-165.87 4.91-332.17 9.81-497.6-1.51-73.16-5-148.13-13.76-212.25-43.7l-1.67-.79c-.83-.39-1.66-.78-2.49-1.19A224.11 224.11 0 0 1 48 664.54c-18.31-13.06-33.43-29-41.42-47.91-12.52-29.66-5.9-63 8.4-92s35.8-55.12 54.34-82.43c5.44-8 10.6-16.3 15.4-24.81 30-53.37 44.88-115.13 13.43-166.56a228.58 228.58 0 0 0-13.43-19c-7.67-10-15.47-20-20.74-31.07-12.29-25.76-9.65-54.73-5.17-82.25 6-36.59 17.05-76 51.38-98.86 35.67-23.74 86.3-22.54 130.57-14 68.83 13.19 132.36 40.8 196.49 65.7s131.35 47.58 201.86 50.02c62.26 2.17 134.89-14 176.23-56.08 40.15-40.85 115.6-43.94 170-19.27 51.91 23.54 85.48 73.36 83 123.12-3.16 62.1-54.93 111.83-95.9 164.7-6.81 8.79-13.33 17.68-19.28 26.72-19.42 29.53-33.15 65-19.78 96.88 7.5 17.85 21.81 31.47 39.06 43.36 38.65 26.63 92 44.55 116 81.83 20.67 32.16 13.01 75.56-17.89 101.21Z",fill:"#604687",opacity:.1})),n||(n=We.createElement("ellipse",{cx:972.5,cy:704.85,rx:57.01,ry:10.96,fill:"#604687"})),i||(i=We.createElement("ellipse",{cx:971.55,cy:700.19,rx:6.64,ry:8.69,fill:"#3f3d56"})),s||(s=We.createElement("ellipse",{cx:971.55,cy:689.57,rx:6.64,ry:8.69,fill:"#3f3d56"})),m||(m=We.createElement("ellipse",{cx:971.55,cy:678.94,rx:6.64,ry:8.69,fill:"#3f3d56"})),o||(o=We.createElement("ellipse",{cx:971.55,cy:668.32,rx:6.64,ry:8.69,fill:"#3f3d56"})),h||(h=We.createElement("ellipse",{cx:971.55,cy:657.7,rx:6.64,ry:8.69,fill:"#3f3d56"})),f||(f=We.createElement("ellipse",{cx:971.55,cy:647.08,rx:6.64,ry:8.69,fill:"#3f3d56"})),d||(d=We.createElement("ellipse",{cx:971.55,cy:636.46,rx:6.64,ry:8.69,fill:"#3f3d56"})),p||(p=We.createElement("path",{d:"M996.4 563.78a31 31 0 0 0 2.47-3.64l-17.44-2.86 18.86.14a31.78 31.78 0 0 0 .61-25.2l-25.31 13.15 23.34-17.15a31.8 31.8 0 1 0-52.51 35.58 31.55 31.55 0 0 0-3.63 5.8l22.64 11.77-24.14-8.1a31.79 31.79 0 0 0 5.13 29.86 31.8 31.8 0 1 0 50 0 31.78 31.78 0 0 0 0-39.32Z",fill:"#604687"})),y||(y=We.createElement("path",{d:"M939.61 583.44a31.68 31.68 0 0 0 6.81 19.66 31.8 31.8 0 1 0 50 0c4.24-5.41-56.81-23.23-56.81-19.66Z",opacity:.1})),E||(E=We.createElement("path",{d:"M134.73 673.91c0 5.59-21.81 10.21-50 10.87h-1.67c-.83-.39-1.66-.78-2.49-1.19A224.11 224.11 0 0 1 48 664.54c6.85-.8 14.64-1.34 23-1.52h1.13c1.82 0 3.67-.06 5.54-.06h7.05c28.2.73 50.01 5.41 50.01 10.95Z",fill:"#604687"})),u||(u=We.createElement("ellipse",{cx:76.76,cy:669.25,rx:6.64,ry:8.69,fill:"#3f3d56"})),Z||(Z=We.createElement("ellipse",{cx:76.76,cy:658.63,rx:6.64,ry:8.69,fill:"#3f3d56"})),M||(M=We.createElement("ellipse",{cx:76.76,cy:648.01,rx:6.64,ry:8.69,fill:"#3f3d56"})),x||(x=We.createElement("ellipse",{cx:76.76,cy:637.39,rx:6.64,ry:8.69,fill:"#3f3d56"})),b||(b=We.createElement("ellipse",{cx:76.76,cy:626.77,rx:6.64,ry:8.69,fill:"#3f3d56"})),g||(g=We.createElement("ellipse",{cx:76.76,cy:616.15,rx:6.64,ry:8.69,fill:"#3f3d56"})),v||(v=We.createElement("ellipse",{cx:76.76,cy:605.52,rx:6.64,ry:8.69,fill:"#3f3d56"})),w||(w=We.createElement("path",{d:"M101.61 532.84a32.28 32.28 0 0 0 2.48-3.63l-17.45-2.84 18.87.14a31.8 31.8 0 0 0 .6-25.19l-25.3 13.13 23.34-17.16a31.8 31.8 0 1 0-52.52 35.58 32.45 32.45 0 0 0-3.63 5.8l22.64 11.7-24.14-8.07a31.87 31.87 0 0 0 5.13 29.86 31.8 31.8 0 1 0 50 0 31.78 31.78 0 0 0 0-39.32Z",fill:"#604687"})),q||(q=We.createElement("path",{d:"M44.83 552.5a31.67 31.67 0 0 0 6.8 19.66 31.8 31.8 0 1 0 50 0c4.24-5.41-56.8-23.23-56.8-19.66Z",opacity:.1})),O||(O=We.createElement("g",{opacity:.2},We.createElement("path",{d:"M305.84 555.29c0 .94-.1 1.86-.2 2.76q-11.64-4.68-22.92-9.93a18.59 18.59 0 0 1-10.6-5.17c-2.19-1.1-4.37-2.24-6.54-3.39a26.82 26.82 0 0 1 1.66-3c4.2-6.66 10.6-10.83 17.65-10.6s13.15 4.78 16.93 11.66a34.37 34.37 0 0 1 4.02 17.67Z",fill:"#3f3d56"}),We.createElement("path",{d:"M307 520.37a34.56 34.56 0 0 1-5.13 17.32c-4.21 6.64-10.6 10.81-17.65 10.58-.49 0-1-.06-1.45-.1a18.59 18.59 0 0 1-10.6-5.17 25.27 25.27 0 0 1-4.88-6.37 35.82 35.82 0 0 1 1.1-35c4.21-6.66 10.6-10.83 17.65-10.6s13.15 4.78 16.93 11.66a34.47 34.47 0 0 1 4.03 17.68Z",fill:"#3f3d56"}),We.createElement("ellipse",{cx:336.18,cy:531.28,rx:28.63,ry:21.87,transform:"rotate(-88.19 287.148 533.775)",fill:"#3f3d56"}),We.createElement("ellipse",{cx:337.29,cy:496.31,rx:28.63,ry:21.87,transform:"rotate(-88.19 288.252 498.807)",fill:"#3f3d56"}),We.createElement("ellipse",{cx:338.39,cy:461.34,rx:28.63,ry:21.87,transform:"rotate(-88.19 289.351 463.833)",fill:"#3f3d56"}),We.createElement("path",{d:"M214.12 172.83a105.78 105.78 0 0 1-7.76-12.24l57.72-7.62-62.08-1.5a104.92 104.92 0 0 1 .62-83l82 45.85-75.15-58.95a104.75 104.75 0 1 1 169.22 122.65A105.13 105.13 0 0 1 390 197.48l-75.77 36.38 80.33-24.17a104.85 104.85 0 0 1-20 97.78A104.75 104.75 0 1 1 210 302.28a104.73 104.73 0 0 1 4.08-129.45Z",fill:"#604687"}),We.createElement("path",{d:"M399.05 243.45a104.29 104.29 0 0 1-24.44 64A104.75 104.75 0 1 1 210 302.28c-13.43-18.25 189.42-70.58 189.05-58.83Z",opacity:.1}))),C||(C=We.createElement("g",{opacity:.2},We.createElement("path",{d:"M798.18 480.51c0 .67-.07 1.32-.14 2q-8.31-3.29-16.31-7.06a13.31 13.31 0 0 1-7.55-3.68c-1.55-.79-3.11-1.6-4.65-2.41a19.78 19.78 0 0 1 1.18-2.13c3-4.74 7.54-7.7 12.56-7.54s9.36 3.4 12.05 8.3a24.5 24.5 0 0 1 2.86 12.52Z",fill:"#3f3d56"}),We.createElement("path",{d:"M799 455.62a24.56 24.56 0 0 1-3.65 12.33c-3 4.72-7.54 7.69-12.56 7.53l-1-.07a13.31 13.31 0 0 1-7.55-3.68 18.32 18.32 0 0 1-3.47-4.54 25.51 25.51 0 0 1 .78-24.88c3-4.74 7.55-7.71 12.56-7.55s9.37 3.4 12.05 8.3a24.55 24.55 0 0 1 2.84 12.56Z",fill:"#3f3d56"}),We.createElement("ellipse",{cx:834.19,cy:476.87,rx:20.37,ry:15.56,transform:"rotate(-88.19 785.171 479.34)",fill:"#3f3d56"}),We.createElement("ellipse",{cx:834.98,cy:451.98,rx:20.37,ry:15.56,transform:"rotate(-88.19 785.957 454.46)",fill:"#3f3d56"}),We.createElement("ellipse",{cx:835.76,cy:427.1,rx:20.37,ry:15.56,transform:"rotate(-88.19 786.738 429.573)",fill:"#3f3d56"}),We.createElement("path",{d:"M732.91 208.37a73.57 73.57 0 0 1-5.52-8.71l41.08-5.42-44.21-1.07a74.67 74.67 0 0 1 .43-59.07L783 166.69l-53.4-41.93A74.55 74.55 0 1 1 850 212.02a74.71 74.71 0 0 1 8.06 13.86l-53.89 25.89 57.17-17.2a74.55 74.55 0 0 1-14.22 69.58A74.54 74.54 0 1 1 730 300.46a74.55 74.55 0 0 1 2.91-92.09Z",fill:"#604687"}),We.createElement("path",{d:"M864.52 258.59a74.2 74.2 0 0 1-17.4 45.56A74.54 74.54 0 1 1 730 300.46c-9.58-13 134.78-50.23 134.52-41.87Z",opacity:.1}))),N||(N=We.createElement("g",{opacity:.2},We.createElement("path",{d:"M585 402.46c0 .67-.08 1.32-.15 2q-8.31-3.29-16.31-7.06a13.28 13.28 0 0 1-7.54-3.68c-1.56-.79-3.11-1.6-4.65-2.41a19 19 0 0 1 1.17-2.13c3-4.73 7.55-7.7 12.56-7.54s9.36 3.4 12.05 8.3a24.5 24.5 0 0 1 2.87 12.52Z",fill:"#3f3d56"}),We.createElement("path",{d:"M585.74 377.57a24.56 24.56 0 0 1-3.65 12.33c-3 4.72-7.54 7.69-12.56 7.53-.35 0-.68 0-1-.07a13.28 13.28 0 0 1-7.54-3.68 18.11 18.11 0 0 1-3.48-4.54 25.48 25.48 0 0 1 .79-24.88c3-4.74 7.54-7.71 12.56-7.55s9.36 3.4 12 8.3a24.54 24.54 0 0 1 2.88 12.56Z",fill:"#3f3d56"}),We.createElement("ellipse",{cx:620.97,cy:398.82,rx:20.37,ry:15.56,transform:"rotate(-88.3 571.11 401.206)",fill:"#3f3d56"}),We.createElement("ellipse",{cx:621.75,cy:373.93,rx:20.37,ry:15.56,transform:"rotate(-88.19 572.718 376.417)",fill:"#3f3d56"}),We.createElement("ellipse",{cx:622.54,cy:349.05,rx:20.37,ry:15.56,transform:"rotate(-88.19 573.504 351.525)",fill:"#3f3d56"}),We.createElement("path",{d:"M519.68 130.28a74.87 74.87 0 0 1-5.52-8.71l41.08-5.42-44.24-1.07a74.62 74.62 0 0 1 .44-59.07l58.33 32.63-53.39-41.93a74.54 74.54 0 1 1 120.42 87.26 74.76 74.76 0 0 1 8.07 13.86L591 173.72l57.16-17.2a74.55 74.55 0 0 1-14.22 69.58 74.54 74.54 0 1 1-117.16-3.73 74.57 74.57 0 0 1 2.9-92.13Z",fill:"#604687"}),We.createElement("path",{d:"M651.29 180.54a74.2 74.2 0 0 1-17.4 45.56 74.54 74.54 0 1 1-117.11-3.73c-9.59-12.95 134.77-50.19 134.51-41.83Z",opacity:.1}))),k||(k=We.createElement("path",{d:"M972.4 500.81v217.73c-58.57 8.74-118.32 10.52-177.79 12.28-165.87 4.91-332.17 9.81-497.6-1.51-73.16-5-148.13-13.76-212.25-43.7V417.37c.24-185-.76 0 0-185.56v-66.59a14.1 14.1 0 0 1 14.1-14.1H958.3a14.1 14.1 0 0 1 14.1 14.1v168.63c.6 166.52-.4.52 0 166.96Z",fill:"#3f3d56"})),A||(A=We.createElement("rect",{x:344.15,y:217.75,width:368.86,height:28.56,rx:5.22,fill:"#604687",opacity:.3})),j||(j=We.createElement("path",{d:"M687.94 233.22h-.61l-.23-.19a5.1 5.1 0 0 0 1.19-3.25 4.94 4.94 0 1 0-4.92 5 5.09 5.09 0 0 0 3.24-1.18l.22.19v.58l3.81 3.82 1.14-1.14Zm-4.57 0a3.44 3.44 0 1 1 3.43-3.44 3.42 3.42 0 0 1-3.43 3.44Z",fill:"#444053"})),S||(S=We.createElement("rect",{x:222.84,y:493.2,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),H||(H=We.createElement("rect",{x:222.84,y:522.95,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),T||(T=We.createElement("rect",{x:222.84,y:508.08,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),I||(I=We.createElement("path",{d:"M164.57 522.58a5.74 5.74 0 0 0-5.8 5.69 3.88 3.88 0 0 1-3.87 3.79 10 10 0 0 0 7.73 3.8 7.67 7.67 0 0 0 7.75-7.59 5.75 5.75 0 0 0-5.81-5.69Zm26.53-17.76-2.6-2.55a1.94 1.94 0 0 0-2.72 0l-17.34 17 5.32 5.22 17.32-17a1.86 1.86 0 0 0 .02-2.67Z",fill:"#604687"})),L||(L=We.createElement("rect",{x:222.84,y:345.66,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),G||(G=We.createElement("rect",{x:222.84,y:375.41,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),P||(P=We.createElement("rect",{x:222.84,y:360.53,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),U||(U=We.createElement("path",{d:"M191.18 378.15 176 362.87a10.82 10.82 0 0 0-2.51-11.58 11 11 0 0 0-12.35-2.18l7.18 7.22-5 5-7.32-7.18a10.86 10.86 0 0 0 2.17 12.41 10.66 10.66 0 0 0 11.51 2.52l15.15 15.29a1.61 1.61 0 0 0 2.34 0l3.84-3.86a1.51 1.51 0 0 0 .17-2.35Z",fill:"#604687"})),F||(F=We.createElement("rect",{x:509.6,y:493.2,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),V||(V=We.createElement("rect",{x:509.6,y:522.95,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),_||(_=We.createElement("rect",{x:509.6,y:508.08,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),z||(z=We.createElement("path",{d:"M459.44 526a10 10 0 0 1-9.89 0c-3.87 1.19-6.24 5.09-7.12 8.54h24.12c-.87-3.45-3.23-7.35-7.11-8.54Zm-4.94-18.37a8.69 8.69 0 1 0 8.69 8.68 8.69 8.69 0 0 0-8.69-8.68Zm0 15.3a6.71 6.71 0 0 1-6.07-4.14h12.14a6.71 6.71 0 0 1-6.07 4.14Z",fill:"#604687"})),B||(B=We.createElement("path",{d:"M472.09 521.37a10.07 10.07 0 0 1-8.4.69 12 12 0 0 1-2.3 2.86 11.24 11.24 0 0 1 4.9 4.33h12.91a10.72 10.72 0 0 0-7.11-7.88Zm-4.94-18.38a8.71 8.71 0 0 0-7.33 4 10.78 10.78 0 0 1 5.15 7.14h8.25a6.72 6.72 0 0 1-6.07 4.12 6 6 0 0 1-2.08-.38 11.65 11.65 0 0 1-.54 2.07 8.35 8.35 0 0 0 2.62.4 8.69 8.69 0 0 0 0-17.38Z",fill:"#604687"})),D||(D=We.createElement("rect",{x:222.84,y:603.86,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),J||(J=We.createElement("rect",{x:222.84,y:633.61,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),W||(W=We.createElement("rect",{x:222.84,y:618.74,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),Y||(Y=We.createElement("path",{d:"M176.57 607.62h-9.82a3.28 3.28 0 0 0-3.32 3.24v.7h-.62a3.28 3.28 0 0 0-3.32 3.24v23.63a3.34 3.34 0 0 0 3.32 3.32h17.08a3.27 3.27 0 0 0 3.23-3.32v-.62h.71a3.27 3.27 0 0 0 3.23-3.32v-16.37Zm0 3.66 6.84 6.84h-6.84Zm3.94 27.15a.67.67 0 0 1-.62.7h-17.08a.73.73 0 0 1-.69-.7V614.8a.67.67 0 0 1 .69-.62h.62v21c0 1.82.86 2.66 2.67 2.66h14.41Zm3.93-3.94a.66.66 0 0 1-.61.7h-17.08a.73.73 0 0 1-.69-.7v-23.63a.67.67 0 0 1 .69-.62h7.19v10.51h10.5Z",fill:"#604687"})),R||(R=We.createElement("rect",{x:509.6,y:345.66,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),X||(X=We.createElement("rect",{x:509.6,y:375.41,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),Q||(Q=We.createElement("rect",{x:509.6,y:360.53,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),K||(K=We.createElement("path",{d:"M457.32 353.37h-11.38a3.51 3.51 0 0 0-3.5 3.51v19.25a3.5 3.5 0 0 0 3.5 3.5h29.76a3.5 3.5 0 0 0 3.5-3.5v-15.34a3.51 3.51 0 0 0-3.5-3.5h-14.88l-3.5-3.94Z",fill:"#604687"})),$||($=We.createElement("rect",{x:792.79,y:493.2,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),ee||(ee=We.createElement("rect",{x:792.79,y:522.95,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),ae||(ae=We.createElement("rect",{x:792.79,y:508.08,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),te||(te=We.createElement("path",{d:"m762.93 509.28-6.77-.32-.4-4.41a1.7 1.7 0 0 0-1.88-1.52l-24.27 2a1.67 1.67 0 0 0-1.59 1.79l1.73 19.35a1.7 1.7 0 0 0 1.88 1.49l1.23-.09-.19 3.76a1.87 1.87 0 0 0 1.83 1.93l27.09 1.28a1.88 1.88 0 0 0 2-1.74l1.14-21.6a1.86 1.86 0 0 0-1.8-1.92Zm-29.12.44-.58 11.06-1.44 2-1.32-14.61v-.09a.89.89 0 0 1 .78-.77l21.42-1.75a.81.81 0 0 1 .87.64l.21 2.52-18-.86a1.9 1.9 0 0 0-1.94 1.86Zm27.4 19.44-7-8.17-3.07 2.82-5.67-6.63-10.07 10.72.86-16.33a.94.94 0 0 1 1-.74l23.9 1.16a.87.87 0 0 1 .85.83Z",fill:"#604687"})),ce||(ce=We.createElement("path",{d:"M756.89 518.79a2.63 2.63 0 1 0-2.62-2.63 2.64 2.64 0 0 0 2.62 2.63Z",fill:"#604687"})),le||(le=We.createElement("rect",{x:795.17,y:345.66,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),re||(re=We.createElement("rect",{x:795.17,y:375.41,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),ne||(ne=We.createElement("rect",{x:795.17,y:360.53,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),ie||(ie=We.createElement("circle",{cx:762.56,cy:356.63,r:5.25,fill:"#604687"})),se||(se=We.createElement("path",{d:"m758.53 362.82-10.42 6.94-14.44-9.62v-3.51l14.44 9.63 8.3-5.53a7.39 7.39 0 0 1-.1-8h-23.07a3.52 3.52 0 0 0-3.51 3.51v21.88a3.52 3.52 0 0 0 3.51 3.51H763a3.51 3.51 0 0 0 3.5-3.51v-15.2a7.37 7.37 0 0 1-8-.06Z",fill:"#604687"})),me||(me=We.createElement("ellipse",{cx:509.64,cy:746.02,rx:26.08,ry:5.01,fill:"#604687"})),oe||(oe=We.createElement("ellipse",{cx:509.21,cy:743.89,rx:3.04,ry:3.97,fill:"#3f3d56"})),he||(he=We.createElement("ellipse",{cx:509.21,cy:739.03,rx:3.04,ry:3.97,fill:"#3f3d56"})),fe||(fe=We.createElement("ellipse",{cx:509.21,cy:734.17,rx:3.04,ry:3.97,fill:"#3f3d56"})),de||(de=We.createElement("ellipse",{cx:509.21,cy:729.31,rx:3.04,ry:3.97,fill:"#3f3d56"})),pe||(pe=We.createElement("ellipse",{cx:509.21,cy:724.46,rx:3.04,ry:3.97,fill:"#3f3d56"})),ye||(ye=We.createElement("ellipse",{cx:509.21,cy:719.6,rx:3.04,ry:3.97,fill:"#3f3d56"})),Ee||(Ee=We.createElement("ellipse",{cx:509.21,cy:714.74,rx:3.04,ry:3.97,fill:"#3f3d56"})),ue||(ue=We.createElement("path",{d:"M520.57 681.5a13.59 13.59 0 0 0 1.13-1.67l-8-1.31 8.62.07a14.59 14.59 0 0 0 .28-11.52l-11.57 6 10.67-7.85a14.54 14.54 0 1 0-24 16.28 15.11 15.11 0 0 0-1.66 2.65l10.36 5.38-11-3.7a14.53 14.53 0 0 0 2.34 13.65 14.54 14.54 0 1 0 22.86 0 14.55 14.55 0 0 0 0-18Z",fill:"#604687"})),Ze||(Ze=We.createElement("path",{d:"M494.6 690.49a14.45 14.45 0 0 0 3.11 9 14.54 14.54 0 1 0 22.86 0c1.95-2.48-25.97-10.63-25.97-9Z",opacity:.1})),Me||(Me=We.createElement("path",{d:"M802 436.86a13.68 13.68 0 0 1-1-2.7c-.1-1.07.32-2.48-.63-3-.53-.29-1.27-.07-1.74-.45a2.15 2.15 0 0 1-.51-1.2 4.1 4.1 0 0 0-3.8-3c1-2.71 4.68-3.37 6.3-5.76.81-1.19.55-3.38-.88-3.39a2.49 2.49 0 0 0-1 .25l-5.33 2.2a27.35 27.35 0 0 0-3 1.39c-2.93 1.67-5.12 4.38-7.09 7.13a30.49 30.49 0 0 0-4.41 8 18 18 0 0 0-.94 5.49v.56c-.87.15-1.58.53-2.49.71l-2.07 5.47a6.93 6.93 0 0 1-1.35 2.49 12.52 12.52 0 0 1-1.46 1.15 8.45 8.45 0 0 0-2.91 7.37 7.93 7.93 0 0 0-4.66 9.78 9.31 9.31 0 0 0-6.81 6 4.43 4.43 0 0 1-.89 1.88 3.55 3.55 0 0 1-2.37.73c-2.34.15-4.38 2-6.49 1a13.21 13.21 0 0 0-7.71-1.08 5.77 5.77 0 0 1-1.65.15 4.43 4.43 0 0 1-1.35-.47 10.46 10.46 0 0 0-3.06-1.21 2.84 2.84 0 0 0-2.9 1.12c-.74-.81-1.18-1.86-1.85-2.73a3 3 0 0 0-2.82-1.35c.7-.63 0-1.89-.93-2.11a11.56 11.56 0 0 0-2.81.1c-2.44 0-4.32-2.24-6.69-2.83-2.18-.53-5.09.11-6.21-1.85-.35-.63-.45-1.45-1-1.92a3.64 3.64 0 0 0-.71-1.45c-.9-1-2.41-1.16-3.76-1.12a15.68 15.68 0 0 0-4.37.75c0-.17-.09-.36-.15-.56a11.09 11.09 0 0 0-4.84-5.94 20 20 0 0 0-5.66-2.26v-.53a22.55 22.55 0 0 1 1.16-7.43c.08-.26.18-.52.27-.78a26.6 26.6 0 0 0 12-44.63 6.83 6.83 0 0 0-.21-1.6 7.86 7.86 0 0 0-1.6-3.12c-1.22-2.72-3.12-3.92-5.55-5.06-.7-.33-1.44-.65-2.22-1-3.87-1.74-7.61-4.3-12-4.29-4 0-7.86 2.21-11.82 2.13h-.95c-1.11-.13-2.44-.39-3.17.46a4.5 4.5 0 0 0-.56 1.09 2.64 2.64 0 0 1-.2.37 4.4 4.4 0 0 1-.51.69c-1.28 1.4-3.43 2-5.2 2.94-4 2.05-6.62 6.23-7.66 10.61s-.68 9 .1 13.44c.4 2.22 1.26 4.74 2.84 6.14s-13.37 9.51-10.93 10.86c1.33.74 6.87-2.77 11.64-6.12.05.2.09.41.15.61a44 44 0 0 0 2.18 6.25c1 2.39 2.44 5 4.93 5.69a5.36 5.36 0 0 0 1.69.19h.44a39.39 39.39 0 0 1-1.15 10.87 6.61 6.61 0 0 0-4.09 1.13 3.29 3.29 0 0 1-1.66.88 2.89 2.89 0 0 1-1.71-.84 9.7 9.7 0 0 0-12.14.64c-4.84 4.57-4.29 13.49-10 16.95-1.56.95-3.56 1.46-4.48 3.05a11.41 11.41 0 0 1-.77 1.47 4.05 4.05 0 0 1-1.36 1 26.48 26.48 0 0 0-4.68 2.7 6.72 6.72 0 0 0-2.69 4.54 8.61 8.61 0 0 0 .82 3.81 36.44 36.44 0 0 0 3.12 6 6.38 6.38 0 0 0-1.26 2.95c-.4 2.81.94 5.58 1.09 8.42.13 2.48-.66 4.9-1.1 7.34-1.76 9.54 1.61 19.2 5 28.26a14.58 14.58 0 0 1 1.2 4.65c.09 3-1.6 5.67-2.07 8.59-1 6.14 3.53 11.92 3.63 18.13 0 2.87-.86 5.78-.14 8.55.47 1.85 1.62 3.44 2.44 5.17 1.44 3.06 1.83 6.53 3.21 9.62a23.07 23.07 0 0 0 7.12 8.48c1.73 5.49-.73 12.12 0 18q1.41-.56 2.85-1a41.17 41.17 0 0 0 6.3 24.84c1.55 2.42 3.37 4.68 4.54 7.31a34.26 34.26 0 0 1 1.77 5.79q2.51 10.47 5 20.92c1.36 5.65 2.73 11.4 2.32 17.2-.28 4-1.3 8.57 1.18 11.77a8.51 8.51 0 0 1 1.49 2.06 5.22 5.22 0 0 1 0 2.72 180.71 180.71 0 0 0-2.48 20.39c-.56.75-1.12 1.51-1.63 2.26-4.11 6-6.09 13.21-7.69 20.32a245.83 245.83 0 0 0-5.16 42.44 28.38 28.38 0 0 0-5.26 6.41c-2.15 4-2.43 8.7-2.66 13.24a4.73 4.73 0 0 0 .24 2.18 4.48 4.48 0 0 0 2.24 1.68l1.24.59c-.27 1-.51 2-.72 3.05-1.58-1.78-4.39-4.6-4.87-2.54a101.78 101.78 0 0 0-2.56 21 1.77 1.77 0 0 0 1.9 2.12A116.25 116.25 0 0 0 660 848c5.65 0 11.29-.46 16.92-.89l5.77-.44a127.7 127.7 0 0 0 17.67-2.19c2.55-.56 5.18-1.35 7.1-3.14s2.86-4.85 1.54-7.12c-1.61-2.74-5.37-2.94-8.51-3.38a27.85 27.85 0 0 1-8.92-2.84c-.63-.32-1.24-.68-1.85-1 .16 0 .33-.08.48-.14 2.7-.91 4.85-3 7.39-4.25 3-1.45 6.31-1.78 9.57-2.19s6.62-1 9.33-2.86c2.54-1.74 4.34-4.91 3.75-7.89a5.15 5.15 0 0 0-.16-.62c-1-3.23-4.5-5-7.76-5.8s-6.8-1.28-9.44-3.38l-.39-.31c-.22-.19-.45-.37-.69-.56a5.62 5.62 0 0 0 .77-3.26c-.14-1.79-1.18-3.37-1.89-5-1.39-3.25-1.5-6.88-1.88-10.39-.94-8.83-3.65-17.35-5.69-26-.23-1-.45-2-.67-3a62.86 62.86 0 0 1 7.27-11.64 38 38 0 0 0 7-13.77c.42-1.54.73-3.1 1.05-4.67Q713.18 694.18 718 667a45.19 45.19 0 0 0 .91-7.84 23.89 23.89 0 0 0 1.35-7.43c.94-3.67 1.89-7.52 1.12-9.92-.54-1.7-.81-7.51-1.11-13.08a50.24 50.24 0 0 0-.54-8.93c-.09-.51-.19-1-.3-1.51q-.09-.45-.18-.75a25.68 25.68 0 0 0-1.76-4.86 23.63 23.63 0 0 0-1.32-2.71 12.34 12.34 0 0 0-1-1.48 62 62 0 0 1 6.22.58c.5.07 1.12.11 1.43-.3a1.47 1.47 0 0 0 .18-.77 12.75 12.75 0 0 0-1.62-6.76c-.8-1.42-1.91-2.8-1.88-4.43a6.53 6.53 0 0 1 .55-2.2l2.77-7.44c2.35-6.29 1.23-13.58 2.45-20.18a118.46 118.46 0 0 0 1.82-15.61c.23-4.47.09-9.32-2.6-12.9a14.73 14.73 0 0 1-2-2.84 8.41 8.41 0 0 1-.48-3.39q-.07-10.51.42-21a206.38 206.38 0 0 0 35.05-4 22 22 0 0 0 4-1.08 20.19 20.19 0 0 0 4-2.53c3.93-2.84 7.92-5.73 10.91-9.55a32.36 32.36 0 0 0 6.46-15.94c2.84-2.63 4.35-6.37 5.77-10a15.42 15.42 0 0 0 1.32-4.85c.07-1.72-1.06-3.52-.74-5.21a13.78 13.78 0 0 1 4.19-7.58 2.74 2.74 0 0 0 1-1.33 2.12 2.12 0 0 0-.23-1.3l-.09-.15c.28-.17.54-.35.81-.53.93-.66 1.82-1.39 2.69-2.1a17 17 0 0 0 3.49-3.54 5.75 5.75 0 0 0 .94-4.7ZM673.69 820.15c-.24 0-.48 0-.71.06a9.57 9.57 0 0 0-2.54.73l-.19.1c1.1-2.38 2.14-4.8 3.08-7.26.11-.29.21-.58.32-.88l-.12 1.64a20.22 20.22 0 0 0 .16 5.61Z",transform:"translate(-50 -46.63)",fill:"url(#a)"})),xe||(xe=We.createElement("path",{d:"M638 409.1c.1 3.88 1.42 7.64 1.62 11.52-11.43.57-22.72-5-34-3.28 3.17-2.05 4.86-5.74 5.86-9.37a38.9 38.9 0 0 0 1.11-14.41 6.61 6.61 0 0 0-.14-.79c-.42-1.9-1.51-4.59-1.22-6.08.39-2 2.25-1.59 3.93-1.48a150.51 150.51 0 0 1 15.26 2c1.32.23 14.13 3.43 14.33 3.1a59.69 59.69 0 0 0-5.55 11.43 22.32 22.32 0 0 0-1.2 7.36ZM751.05 397.1a16.64 16.64 0 0 1-3.49 3.52c-.87.71-1.76 1.44-2.69 2.09a11.5 11.5 0 0 1-5.72 2.33c-2.72.18-8.51-1.42-10.2-3.75a6.77 6.77 0 0 1-1-3.91 17.88 17.88 0 0 1 .94-5.46 30.42 30.42 0 0 1 4.41-8c2-2.74 4.16-5.43 7.09-7.09a27.35 27.35 0 0 1 3-1.39l5.33-2.18a2.5 2.5 0 0 1 1-.26c1.43 0 1.69 2.2.88 3.38-1.62 2.38-5.27 3-6.3 5.73a4.09 4.09 0 0 1 3.8 2.95 2.11 2.11 0 0 0 .51 1.19c.47.37 1.21.16 1.74.45.95.5.53 1.91.63 3a13.5 13.5 0 0 0 1 2.68 5.69 5.69 0 0 1-.93 4.72Z",fill:"#ee8e9e"})),be||(be=We.createElement("path",{d:"M593.4 786.45c.88-.88 2.32-.73 3.55-.54a132 132 0 0 0 19.95 1.61c.84-4.08-1.59-8-2.37-12.14a10.76 10.76 0 0 0-.8-3.08c-.94-1.8-3.06-2.63-5.05-3-3.59-.76-9.21-2.09-11.22 1.54-2.41 4.31-3.18 10.75-4.06 15.61Z",fill:"#65617d"})),ge||(ge=We.createElement("path",{d:"M666.49 771.02c-2.71 1.85-6.07 2.42-9.33 2.84s-6.61.74-9.57 2.19c-2.54 1.26-4.69 3.32-7.39 4.22a15.31 15.31 0 0 1-7.67.12c-3-.57-6.26-1.67-7.89-4.29-1.46-2.32-1.31-5.27-1.11-8 .24-3.09.47-6.2.69-9.3a4.4 4.4 0 0 1 .58-2.24c2.19-3.2 7.52 1.33 10.37 1.33 4.52 0 9.37-2.46 12.62-5.45a3.89 3.89 0 0 1 1-.74c1.29-.58 2.58.49 3.72 1.42l.39.31c2.64 2.09 6.18 2.52 9.44 3.37s6.75 2.55 7.76 5.77a4.57 4.57 0 0 1 .16.61c.57 2.95-1.26 6.1-3.77 7.84Z",fill:"#3f3d56"})),ve||(ve=We.createElement("path",{d:"M666.49 771.02c-2.71 1.85-6.07 2.42-9.33 2.84s-6.61.74-9.57 2.19c-2.54 1.26-4.69 3.32-7.39 4.22a15.31 15.31 0 0 1-7.67.12c-3-.57-6.26-1.67-7.89-4.29-1.46-2.32-1.31-5.27-1.11-8 .24-3.09.47-6.2.69-9.3a4.4 4.4 0 0 1 .58-2.24c2.19-3.2 7.52 1.33 10.37 1.33 4.52 0 9.37-2.46 12.62-5.45a3.89 3.89 0 0 1 1-.74c1.29-.58 2.58.49 3.72 1.42l.39.31c2.64 2.09 6.18 2.52 9.44 3.37s6.75 2.55 7.76 5.77a4.57 4.57 0 0 1 .16.61c.57 2.95-1.26 6.1-3.77 7.84Z",fill:"#434175"})),we||(we=We.createElement("path",{d:"M666.49 772.06c-2.71 1.85-6.07 2.43-9.33 2.85s-6.61.73-9.57 2.18c-2.54 1.26-4.69 3.32-7.39 4.22a15.31 15.31 0 0 1-7.67.12 12.6 12.6 0 0 1-7.89-5.33c-1.46-2.32-1.31-5.27-1.11-8 .24-3.09.47-6.2.69-9.3a4.4 4.4 0 0 1 .58-2.24c2.19-3.2 7.52 1.33 10.37 1.33 4.52 0 9.37-2.46 12.62-5.45a3.89 3.89 0 0 1 1-.74c1.29-.58 2.58.49 3.72 1.42a26.4 26.4 0 0 1-3.17 6.56 13.63 13.63 0 0 1-10 6.22c-2 .15-4.09-.25-6 .27s-3.77 2.52-3.08 4.42 3.06 2.25 5 2.36a22.38 22.38 0 0 0 8.21-.58c1.6-.53 3.07-1.41 4.62-2.06 6.62-2.74 15-1.21 20.46-5.85a13 13 0 0 1 1.67-1.28c1.45 2.99-1.22 7.19-3.73 8.88Z",fill:"#e8eaf2"})),qe||(qe=We.createElement("path",{d:"M666.49 772.06c-2.71 1.85-6.07 2.43-9.33 2.85s-6.61.73-9.57 2.18c-2.54 1.26-4.69 3.32-7.39 4.22a15.31 15.31 0 0 1-7.67.12 12.6 12.6 0 0 1-7.89-5.33c-1.46-2.32-1.31-5.27-1.11-8 .24-3.09.47-6.2.69-9.3a4.4 4.4 0 0 1 .58-2.24c2.19-3.2 7.52 1.33 10.37 1.33 4.52 0 9.37-2.46 12.62-5.45a3.89 3.89 0 0 1 1-.74c1.29-.58 2.58.49 3.72 1.42a26.4 26.4 0 0 1-3.17 6.56 13.63 13.63 0 0 1-10 6.22c-2 .15-4.09-.25-6 .27s-3.77 2.52-3.08 4.42 3.06 2.25 5 2.36a22.38 22.38 0 0 0 8.21-.58c1.6-.53 3.07-1.41 4.62-2.06 6.62-2.74 15-1.21 20.46-5.85a13 13 0 0 1 1.67-1.28c1.45 2.99-1.22 7.19-3.73 8.88Z",opacity:.05})),Oe||(Oe=We.createElement("path",{d:"M594.64 569.44a40.77 40.77 0 0 0 5.58 30c1.55 2.4 3.37 4.66 4.54 7.27a33.77 33.77 0 0 1 1.77 5.77l5 20.8c1.36 5.62 2.73 11.34 2.32 17.11-.28 4-1.3 8.53 1.18 11.71a8.46 8.46 0 0 1 1.49 2.05 5.15 5.15 0 0 1 0 2.7c-2.54 15.11-4.43 30.9.16 45.51 4.17 13.25 4.41 27.93 7.95 41.35a9.24 9.24 0 0 0 2.19 4.59 7.27 7.27 0 0 0 3.3 1.56c5.22 1.25 10.73-.21 15.59-2.46 3.42-1.59 7.1-4.37 6.81-8.12-.14-1.79-1.18-3.36-1.89-5-1.39-3.23-1.5-6.83-1.88-10.33-.94-8.78-3.65-17.26-5.69-25.84s-3.44-17.57-1.71-26.23a229.79 229.79 0 0 1 16.87-51.9 6.27 6.27 0 0 1 1.55-2.32 16.86 16.86 0 0 0 2.19-1.49 6.66 6.66 0 0 0 1-2.72c.76-2.74 3-4.77 4.53-7.17 3.83-6.08 2.62-13.87 2.48-21.05-.14-7 .86-14-.28-20.92s-5.04-13.94-11.69-16.06c-3.29-1.07-6.85-.82-10.29-.48-18.23 1.8-35.95 5.11-53.07 11.67Z",fill:"#696791"})),Ce||(Ce=We.createElement("path",{d:"M594.64 570.44a40.77 40.77 0 0 0 5.58 30c1.55 2.4 3.37 4.66 4.54 7.27a33.77 33.77 0 0 1 1.77 5.77l5 20.8c1.36 5.62 2.73 11.34 2.32 17.11-.28 4-1.3 8.53 1.18 11.71a8.46 8.46 0 0 1 1.49 2.05 5.15 5.15 0 0 1 0 2.7c-2.54 15.11-4.43 30.9.16 45.51 4.17 13.25 4.41 27.93 7.95 41.35a9.24 9.24 0 0 0 2.19 4.59 7.27 7.27 0 0 0 3.3 1.56c5.22 1.25 10.73-.21 15.59-2.46 3.42-1.59 7.1-4.37 6.81-8.12-.14-1.79-1.18-3.36-1.89-5-1.39-3.23-1.5-6.83-1.88-10.33-.94-8.78-3.65-17.26-5.69-25.84s-3.44-17.57-1.71-26.23a229.79 229.79 0 0 1 16.87-51.9 6.27 6.27 0 0 1 1.55-2.32 16.86 16.86 0 0 0 2.19-1.49 6.66 6.66 0 0 0 1-2.72c.76-2.74 3-4.77 4.53-7.17 3.83-6.08 2.62-13.87 2.48-21.05-.14-7 .86-14-.28-20.92s-5.04-13.94-11.69-16.06c-3.29-1.07-6.85-.82-10.29-.48-18.23 1.8-35.95 5.11-53.07 11.67Z",opacity:.1})),Ne||(Ne=We.createElement("path",{d:"M668.92 613.23a44 44 0 0 1-.91 8.07q-4.83 27-10.28 54c-.32 1.56-.63 3.12-1.05 4.65a37.78 37.78 0 0 1-7 13.7c-15.15 18.89-16.46 46.32-24.68 69.1-.56 1.54-1.11 3.09-1.7 4.61a115.75 115.75 0 0 1-5.07 11.31 3.22 3.22 0 0 1-1 1.35 3.08 3.08 0 0 1-1.65.33 48.31 48.31 0 0 1-21.36-4.86 4.48 4.48 0 0 1-2.27-1.89 4.66 4.66 0 0 1-.24-2.17c.23-4.51.51-9.19 2.66-13.16a28.22 28.22 0 0 1 5.26-6.38 242.36 242.36 0 0 1 5.16-42.22c1.6-7.08 3.58-14.23 7.69-20.21 3-4.42 7.38-8.78 6.84-14.11-.23-2.34-1.21-5.25.69-6.62.83-.61 2.06-.69 2.63-1.55a3 3 0 0 0 .37-1.32 32.66 32.66 0 0 0-.68-10.93 58.79 58.79 0 0 1-1.63-7.13 9 9 0 0 1 1.79-6.88c.1-4.87 0-9.92.07-14.78a27.16 27.16 0 0 0-.69-8.25c-.36-1.27-.93-2.49-1.21-3.79-1-4.67 1.52-10.27-1.5-14-1.26-1.54-3.2-2.31-4.85-3.42a17.71 17.71 0 0 1-6.66-9.57 52.59 52.59 0 0 1-1.9-11.74 11.28 11.28 0 0 1 0-2.53 4.35 4.35 0 0 1 .34-1.27c.94-2.11 3.46-2.93 5.71-3.47a185.15 185.15 0 0 1 43.61-5.1c5.44-3.7 8.49-2.37 10.8 1.54a41.09 41.09 0 0 1 3.07 7.51c1 3.18 1.12 21 2.14 24.17 1.3 4.15-2.55 12.65-2.5 17.01Z",fill:"#696791"})),ke||(ke=We.createElement("path",{d:"M570.68 451.29c-.4 2.8.94 5.55 1.09 8.38.13 2.47-.66 4.88-1.1 7.31-1.76 9.48 1.61 19.09 5 28.11a14.4 14.4 0 0 1 1.2 4.62c.09 2.94-1.6 5.64-2.07 8.55-1 6.11 3.53 11.85 3.63 18 0 2.85-.86 5.75-.14 8.5.47 1.84 1.62 3.43 2.43 5.14 1.45 3 1.84 6.5 3.22 9.57 2.49 5.55 7.84 9.18 12.94 12.51 2.89-1 6-2.11 7.62-4.72a11.63 11.63 0 0 0 1.33-4.14c1.1-6.33 1.06-12.79 1-19.21a118.59 118.59 0 0 0-.83-16.54c-1-7-3.29-13.7-4.92-20.57-2-8.65-3.09-17.59-6.28-25.9-2.81-7.29-7.17-13.84-11.77-20.12-1.75-2.39-3.14-5.81-6.54-5.26a7.13 7.13 0 0 0-5.81 5.77Z",fill:"#434175"})),Ae||(Ae=We.createElement("path",{d:"M570.68 449.29c-.4 2.8.94 5.55 1.09 8.38.13 2.47-.66 4.88-1.1 7.31-1.76 9.48 1.61 19.09 5 28.11a14.4 14.4 0 0 1 1.2 4.62c.09 2.94-1.6 5.64-2.07 8.55-1 6.11 3.53 11.85 3.63 18 0 2.85-.86 5.75-.14 8.5.47 1.84 1.62 3.43 2.43 5.14 1.45 3 1.84 6.5 3.22 9.57 2.49 5.55 7.84 9.18 12.94 12.51 2.89-1 6-2.11 7.62-4.72a11.63 11.63 0 0 0 1.33-4.14c1.1-6.33 1.06-12.79 1-19.21a118.59 118.59 0 0 0-.83-16.54c-1-7-3.29-13.7-4.92-20.57-2-8.65-3.09-17.59-6.28-25.9-2.81-7.29-7.17-13.84-11.77-20.12-1.75-2.39-3.14-5.81-6.54-5.26a7.13 7.13 0 0 0-5.81 5.77Z",opacity:.05})),je||(je=We.createElement("path",{d:"M644.66 390.28a59.69 59.69 0 0 0-5.55 11.43 26.19 26.19 0 0 1-6.3.76c-8.25 0-14.08-4.69-18.93-10.62-.42-1.9-3-3.67-2.74-5.16.39-2 2.25-1.59 3.93-1.48a150.51 150.51 0 0 1 15.26 2c1.32.16 14.13 3.4 14.33 3.07Z",opacity:.1})),Se||(Se=We.createElement("circle",{cx:632.81,cy:375.34,r:26.41,fill:"#ee8e9e"})),He||(He=We.createElement("path",{d:"M666.18 564.56c-4.57-.27-9.18-.08-13.76.1a47.15 47.15 0 0 0-8.55.88c-3.47.79-6.71 2.37-10.13 3.36-5.48 1.59-11.26 1.66-16.93 2.22a94.36 94.36 0 0 0-11.09 1.74 4.35 4.35 0 0 1 .34-1.27c.94-2.11 3.46-2.93 5.71-3.47a185.15 185.15 0 0 1 43.61-5.1c5.44-3.65 8.49-2.37 10.8 1.54Z",opacity:.1})),Te||(Te=We.createElement("path",{d:"M648.18 418.58c-1.15 1.33-2.7 2.8-4.4 2.37a6.08 6.08 0 0 1-1.72-.92c-3-2-6.78-2.42-10.36-3a152.4 152.4 0 0 1-21.34-4.8 21.93 21.93 0 0 0-6.32-1.28c-4.47 0-8.44 3-11.24 6.48s-4.8 7.57-7.55 11.1c-2 2.52-4.3 4.74-6.13 7.35-4.62 6.59-5.62 15.19-4.42 23.15s4.37 15.47 7.53 22.88a78.47 78.47 0 0 0 6.14 12.46c-1.06 6-.5 13 2.38 18.4.93 1.77 2.08 3.49 2.39 5.47a13.85 13.85 0 0 1-.16 4l-1.35 9.56c-.41 2.91-.82 5.82-1.35 8.72-1 5.29-2.28 11 .17 15.82 2.93 5.74-.15 13.09.62 19.49a97.8 97.8 0 0 1 25.74-6.11c5.67-.56 11.45-.63 16.93-2.22 3.42-1 6.66-2.57 10.13-3.37a47 47 0 0 1 8.55-.87c6.33-.25 12.7-.51 19 .42.5.08 1.12.12 1.43-.29a1.47 1.47 0 0 0 .19-.75 12.63 12.63 0 0 0-1.62-6.72c-.8-1.41-1.91-2.79-1.88-4.41a6.48 6.48 0 0 1 .55-2.19l2.77-7.4c2.35-6.25 1.23-13.51 2.45-20.07a117.46 117.46 0 0 0 1.82-15.53c.23-4.45.09-9.27-2.6-12.83a14.67 14.67 0 0 1-2-2.83 8.34 8.34 0 0 1-.48-3.37q-.09-13.36.73-26.72c-2.34-4.21-4.79-8.51-7.13-12.72-2.73-4.9-5.49-9.9-6.59-15.4-.73-3.63-.71-7.38-1.23-11.05a4.9 4.9 0 0 0-.93-2.59 4.69 4.69 0 0 0-3.76-1.11 16.44 16.44 0 0 0-4.96.88Z",fill:"#434175"})),Ie||(Ie=We.createElement("path",{d:"M744.87 402.71a11.5 11.5 0 0 1-5.72 2.33c-2.72.18-8.51-1.42-10.2-3.75a6.77 6.77 0 0 1-1-3.91 4.91 4.91 0 0 1 1.14-.22 29.88 29.88 0 0 1 8.86.36c2.88.7 5.66 2.45 6.87 5.16Z",opacity:.1})),Le||(Le=We.createElement("path",{d:"M657 459.83c1.61 2 3.28 4.06 5.56 5.25 2.63 1.36 5.72 1.39 8.67 1.33a208 208 0 0 0 36.23-4 22.81 22.81 0 0 0 4-1.07 20.6 20.6 0 0 0 4-2.52c3.93-2.82 7.92-5.7 10.91-9.51a32.05 32.05 0 0 0 6.46-15.85c2.84-2.61 4.35-6.34 5.77-9.93a15.24 15.24 0 0 0 1.32-4.82c.07-1.71-1.06-3.5-.74-5.18a13.64 13.64 0 0 1 4.19-7.54 2.74 2.74 0 0 0 1-1.33 2.1 2.1 0 0 0-.23-1.29c-1.22-2.71-4-4.45-6.88-5.16a29.61 29.61 0 0 0-8.87-.36 20.06 20.06 0 0 0-2.9.78l-2.07 5.43a6.88 6.88 0 0 1-1.35 2.48 12.52 12.52 0 0 1-1.46 1.15 8.38 8.38 0 0 0-2.91 7.33 7.88 7.88 0 0 0-4.66 9.72 9.3 9.3 0 0 0-6.81 6 4.45 4.45 0 0 1-.89 1.87 3.66 3.66 0 0 1-2.34.76c-2.34.14-4.38 2-6.49 1a13.29 13.29 0 0 0-7.71-1.08 5.77 5.77 0 0 1-1.65.15 4.43 4.43 0 0 1-1.35-.47 10.72 10.72 0 0 0-3.06-1.2 2.84 2.84 0 0 0-2.9 1.12c-.74-.81-1.18-1.85-1.85-2.72a3 3 0 0 0-2.82-1.35c.7-.62 0-1.87-.93-2.1a12.66 12.66 0 0 0-2.81.1c-2.44 0-4.32-2.23-6.69-2.81-2.18-.53-5.09.11-6.21-1.84-.39-.69-.47-1.63-1.14-2a2.2 2.2 0 0 0-1.48-.17 14.24 14.24 0 0 0-4.45 1.35c-2.29 9-1.09 18.24.65 27.3a24.07 24.07 0 0 0 4.89 11.18Z",fill:"#434175"})),Ge||(Ge=We.createElement("path",{d:"m656.93 491.88-11.37 22.94c1.23-2.13 3.82-3 5.87-4.31a15.54 15.54 0 0 0 5.57-7.54 47.14 47.14 0 0 0 2.15-9.29c.23-1.45.71-3.49 0-4.81-1.26.27-1.68 1.94-2.22 3.01ZM624.21 511.37c-2.57 2.54-5.71 4.41-8.53 6.66-6.6 5.26-11.3 12.46-15.89 19.53a30.77 30.77 0 0 0-3.25 5.92c.54.46 1.34 0 1.88-.49l8.93-7.84a20.19 20.19 0 0 0 3-3c1.55-2.09 2.24-4.69 3.65-6.88a26.84 26.84 0 0 1 5.43-5.53c2.05-1.76 11.47-9.73 9.18-12.83-1.69.8-3.05 3.1-4.4 4.46Z",opacity:.1})),Pe||(Pe=We.createElement("path",{d:"M643.72 411.95a26.78 26.78 0 0 0-9.45-3.11 20 20 0 0 0-6-.43c-1.86.23-3.65.95-5.52 1-2.63.15-5.14-.92-7.68-1.61s-5.47-1-7.6.57a3.29 3.29 0 0 1-1.66.88 3 3 0 0 1-1.71-.84 9.74 9.74 0 0 0-12.14.64c-4.84 4.54-4.29 13.41-10 16.86-1.56 1-3.56 1.45-4.48 3a12 12 0 0 1-.77 1.46 4 4 0 0 1-1.36 1 26.43 26.43 0 0 0-4.68 2.69 6.66 6.66 0 0 0-2.69 4.51 8.53 8.53 0 0 0 .82 3.79 35.62 35.62 0 0 0 34.61 22.13 5.42 5.42 0 0 0 3.63-1.13 6.93 6.93 0 0 0 1.27-2.09c2.67-5.59 7.68-9.72 10.86-15 1.89-3.17 3.11-6.72 5.09-9.84 3-4.73 7.54-8.23 12-11.62 2.52-1.91 5.31-3.92 8.47-3.79 2.81.12 4.86.27 3.82-3.17a11 11 0 0 0-4.83-5.9Z",fill:"#434175"})),Ue||(Ue=We.createElement("path",{d:"M643.72 411.95a26.78 26.78 0 0 0-9.45-3.11 20 20 0 0 0-6-.43c-1.86.23-3.65.95-5.52 1-2.63.15-5.14-.92-7.68-1.61s-5.47-1-7.6.57a3.29 3.29 0 0 1-1.66.88 3 3 0 0 1-1.71-.84 9.74 9.74 0 0 0-12.14.64c-4.84 4.54-4.29 13.41-10 16.86-1.56 1-3.56 1.45-4.48 3a12 12 0 0 1-.77 1.46 4 4 0 0 1-1.36 1 26.43 26.43 0 0 0-4.68 2.69 6.66 6.66 0 0 0-2.69 4.51 8.53 8.53 0 0 0 .82 3.79 35.62 35.62 0 0 0 34.61 22.13 5.42 5.42 0 0 0 3.63-1.13 6.93 6.93 0 0 0 1.27-2.09c2.67-5.59 7.68-9.72 10.86-15 1.89-3.17 3.11-6.72 5.09-9.84 3-4.73 7.54-8.23 12-11.62 2.52-1.91 5.31-3.92 8.47-3.79 2.81.12 4.86.27 3.82-3.17a11 11 0 0 0-4.83-5.9Z",opacity:.05})),Fe||(Fe=We.createElement("path",{d:"M657.47 794.73c-1.92 1.79-4.55 2.57-7.1 3.12a127.7 127.7 0 0 1-17.67 2.19l-5.77.44c-5.63.43-11.27.86-16.92.88a117.17 117.17 0 0 1-20.82-1.8 2.28 2.28 0 0 1-1.65-.8 2.24 2.24 0 0 1-.25-1.31 100.74 100.74 0 0 1 2.56-20.9c.65-2.81 5.7 3.5 5.93 3.77a5.76 5.76 0 0 0 4.59 2.43c5.81.32 12.32-3.21 16.93-6.35a22.18 22.18 0 0 1 3.14-1.95 9.19 9.19 0 0 1 2.54-.72 15.28 15.28 0 0 1 8.64 1.75c3.47 1.72 6.51 4.19 10 6a28.06 28.06 0 0 0 8.92 2.82c3.14.43 6.9.64 8.51 3.36 1.28 2.25.32 5.29-1.58 7.07Z",fill:"#434175"})),Ve||(Ve=We.createElement("path",{d:"M657.47 795.77c-1.92 1.79-4.55 2.57-7.1 3.12a127.7 127.7 0 0 1-17.67 2.19l-5.77.44c-5.63.43-11.27.86-16.92.88a116.24 116.24 0 0 1-20.82-1.8 2.27 2.27 0 0 1-1.65-.79 9.26 9.26 0 0 1-1.29-2.36c.12-7 2-14.05 3.6-20.9.65-2.81 5.7 3.5 5.93 3.77a5.76 5.76 0 0 0 4.59 2.43c5.81.32 12.32-3.21 16.93-6.35a22.18 22.18 0 0 1 3.14-1.95 9.19 9.19 0 0 1 2.54-.72c-.75 4.18-6.74 9.23-9.84 10.77-6.26 3.11-13.7 1.55-20.68 1.92a3 3 0 0 0-1.47.35c-.83.56-.88 1.75-.86 2.75.06 1.66.27 3.62 1.72 4.46a4.94 4.94 0 0 0 2.32.49 327.89 327.89 0 0 0 51.57-1.81 28.23 28.23 0 0 0 8.4-1.87 21.44 21.44 0 0 0 4.87-3.14c2.2 1.72.36 6.34-1.54 8.12Z",fill:"#e8eaf2"})),_e||(_e=We.createElement("path",{d:"M643.09 375.06c-.1 2.73 1.76 8-3.35 6.55-3-.88-3.9-4.49-7.76-3.69s-4.76 5.57-6.06 8.68a16.59 16.59 0 0 1-12 9.72 7.26 7.26 0 0 1-3.31 0c-2.49-.71-3.91-3.28-4.93-5.66a44.08 44.08 0 0 1-2.18-6.22 25.31 25.31 0 0 1-.79-4.56 19.48 19.48 0 0 1 0-3.15c.46-6.21 4-11.87 8.52-16.15s10-7.38 15.45-10.43a22.9 22.9 0 0 1 5.7-2.54 19.21 19.21 0 0 1 6-.24 20.85 20.85 0 0 1 7.66 1.8 10.71 10.71 0 0 1 2.69 1.89 8.11 8.11 0 0 1 2.34 3.89c1 4-1.58 7.63-3.66 10.8-1.9 2.81-4.19 5.79-4.32 9.31Z",fill:"#434175"})),ze||(ze=We.createElement("path",{d:"M729 433.67c-1.09-2.75-5.67-10.36-4.35-13a33.77 33.77 0 0 1 3.49 6.24c.86 2.15.18 5.01.86 6.76ZM647.47 365.74c2.08-3.17 4.64-6.79 3.66-10.8a8.35 8.35 0 0 0-3-4.44 7.27 7.27 0 0 1 .76 1.87c1 4-1.58 7.62-3.66 10.8-1.85 2.82-4.14 5.81-4.28 9.32-.1 2.73 1.77 8-3.34 6.55-3-.88-3.9-4.49-7.77-3.69s-4.75 5.56-6.06 8.68a16.57 16.57 0 0 1-12 9.72 7.26 7.26 0 0 1-3.31 0 5.05 5.05 0 0 1-1.56-.77 6.76 6.76 0 0 0 3.77 3.34 7.44 7.44 0 0 0 3.32 0 16.63 16.63 0 0 0 12-9.73c1.31-3.12 2.16-7.86 6.06-8.67s4.72 2.8 7.77 3.68c5.11 1.48 3.24-3.82 3.34-6.55.16-3.5 2.46-6.49 4.3-9.31Z",opacity:.1})),Be||(Be=We.createElement("path",{d:"M648.6 360.31a21.84 21.84 0 0 1-1.56 2.24 26.58 26.58 0 0 1-3.61 3.74c-.79.68-1.6 1.31-2.44 1.91a38.47 38.47 0 0 1-4.93 2.95 91.47 91.47 0 0 1-15.78 5.65l-10.54 3.07c-1.3 1-3.67 2.74-6.28 4.57a25.31 25.31 0 0 1-.79-4.56 19.48 19.48 0 0 1 0-3.15c.46-6.21 4-11.87 8.52-16.15s10-7.38 15.45-10.43a22.9 22.9 0 0 1 5.7-2.54 19.21 19.21 0 0 1 6-.24 20.85 20.85 0 0 1 7.66 1.8 10.71 10.71 0 0 1 2.69 1.89 10.14 10.14 0 0 1 1.35 2.86c.66 2.15-.26 4.45-1.44 6.39Z",opacity:.1})),De||(De=We.createElement("path",{d:"M648.6 359.6a21.84 21.84 0 0 1-1.56 2.24 26.58 26.58 0 0 1-3.61 3.74c-.79.68-1.6 1.31-2.44 1.91a39.65 39.65 0 0 1-4.93 2.95 91.47 91.47 0 0 1-15.78 5.65l-10.54 3.06c-3.68 2.79-16 11.91-18.07 10.77-2.44-1.34 10.93-10.81 10.93-10.81l.61.47c-2-1.23-3-4.08-3.42-6.55-.78-4.42-1.15-9-.1-13.37s3.67-8.51 7.66-10.55c1.77-.92 3.92-1.53 5.2-2.93a4.4 4.4 0 0 0 .51-.69 2.08 2.08 0 0 0 .2-.36 4.32 4.32 0 0 1 .56-1.09c.73-.84 2.06-.59 3.17-.45h.36a5.68 5.68 0 0 0 .59 0c4 .09 7.81-2.12 11.82-2.12 4.39 0 8.13 2.54 12 4.28.78.35 1.52.67 2.22 1 2.8 1.3 4.9 2.69 6 6.38.72 2.24-.2 4.55-1.38 6.47Z",fill:"#604687"})),Je||(Je=We.createElement("path",{d:"M617.94 343.65a1.8 1.8 0 0 1-.42 2.32 3.2 3.2 0 0 1-1.66.59 11.2 11.2 0 0 1-1.3.1 3.58 3.58 0 0 1-1.71-.29 2.2 2.2 0 0 1-.3-.19 4.4 4.4 0 0 0 .51-.69c.1.08.2.06.59 0a9.13 9.13 0 0 0 2.14-.36 2.38 2.38 0 0 0 .8-.39 2.48 2.48 0 0 0 .76-1.15ZM602.86 379.01a4.87 4.87 0 0 0 1.83.68 8.29 8.29 0 0 0 1.41.23 7.84 7.84 0 0 0 3.45-1",opacity:.1})))}},7156:(e,a,t)=>{t.d(a,{Z:()=>K});var c,l,r,n,i,s,m,o,h,f,d,p,y,E,u,Z,M,x,b,g,v,w,q,O,C,N,k,A,j,S,H,T,I,L,G,P,U,F,V,_,z,B,D,J,W,Y=t(7294),R=["title","titleId"];function X(){return X=Object.assign?Object.assign.bind():function(e){for(var a=1;a=0||(l[t]=e[t]);return l}(e,a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(c=0;c=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(l[t]=e[t])}return l}const K=function(e){var a=e.title,t=e.titleId,K=Q(e,R);return Y.createElement("svg",X({"data-name":"Layer 1",xmlns:"http://www.w3.org/2000/svg",width:1108,height:731.18,viewBox:"0 0 1108 731.18","aria-labelledby":t},K),void 0===a?Y.createElement("title",{id:t},"react"):a?Y.createElement("title",{id:t},a):null,c||(c=Y.createElement("path",{d:"m767.68 330.79 6.89-2.7c.66-.26 1.31-.54 2-.81a59.85 59.85 0 0 1 15.28-115.77l-4.8 24.2 18.22-23.92h.16a59.87 59.87 0 0 1 51.16 67.45c-.15 1.13-.39 2.23-.6 3.34 5.61-4.43 10.87-9.32 14.81-15 8-11.54 10.71-25.76 13.47-43.17 5.47-34.48 10.4-69.34 14.84-104.18a59.83 59.83 0 0 1-42-65.36c.25-1.82.6-3.59 1-5.34.1-.44.2-.88.31-1.31.43-1.69.91-3.35 1.47-5 .09-.27.21-.52.3-.78.5-1.37 1-2.72 1.65-4 .22-.5.44-1 .67-1.47a57.69 57.69 0 0 1 2.22-4.19c.27-.45.56-.88.83-1.33.62-1 1.27-2 1.94-2.93.36-.5.71-1 1.08-1.49l.27-.39a59.81 59.81 0 0 1 74.64-17l-6.24 31.49 18-23.64a59.5 59.5 0 0 1 16.32 68.62h.07c-.17.4-.38.78-.55 1.18-.33.74-.67 1.47-1 2.2-.46.93-1 1.84-1.45 2.74-.38.68-.75 1.36-1.16 2-.59 1-1.23 1.9-1.87 2.83-.38.54-.73 1.1-1.12 1.63-1 1.39-2.12 2.72-3.26 4-.4.45-.83.86-1.25 1.3-.81.86-1.62 1.71-2.48 2.52-.53.5-1.09 1-1.64 1.46-.79.7-1.6 1.38-2.43 2-.59.47-1.19.92-1.79 1.36a77.101 77.101 0 0 1-4.45 2.96c-1 .61-2.05 1.17-3.1 1.72-.53.27-1 .57-1.59.83-1.58.77-3.2 1.48-4.85 2.11-.31.12-.64.21-.95.32-1.38.5-2.77 1-4.18 1.35-.61.17-1.23.31-1.85.46-1.15.28-2.31.54-3.48.76q-1 .18-2.07.33c-1.15.17-2.31.3-3.48.4-.69.06-1.37.12-2.07.16-1.26.06-2.53.07-3.8.06a2.08 2.08 0 0 0-.25 0q-2.82 22-5.92 44a59.82 59.82 0 0 1 86.4-10.32l-15.68 26.58 25.21-16.59a59.68 59.68 0 0 1 11.5 44.16 58.76 58.76 0 0 1-4.5 15.94 59.83 59.83 0 0 1-111.19-4c-.23 1.48-.45 3-.68 4.46-2.44 15.35-5.47 34.46-16.23 50-7.29 10.56-17.33 18.36-27.09 25.22q-9.52 6.7-19.48 12.77a59.85 59.85 0 0 1-24.53 13.74q-16 8.19-32.69 14.81l-6.95 2.72c-6.25 2.44-12.65 4.94-19 7.6 1 .09 2 .17 3 .3a59.9 59.9 0 0 1 50.86 49.05l-42.31 23.11 42.18-1.89A59.16 59.16 0 0 1 797 450.13a59.87 59.87 0 0 1-82.7 11.74l2.1 3.91c1.4 2.58 2.78 5.15 4.12 7.7 18.33 34.74 19.66 64.74 3.75 84.49l-13-10.45c15.49-19.22 3.2-49.77-5.5-66.27-1.32-2.5-2.68-5-4-7.56-11.77-21.83-25.12-46.57-19.77-72.9 8-39.7 51.05-56.5 85.68-70ZM269.6 519.01l-5.38-2.11c-.52-.2-1-.43-1.54-.63a46.75 46.75 0 0 0-11.94-90.42l3.75 18.9-14.22-18.68h-.13a46.76 46.76 0 0 0-40 52.68c.12.89.31 1.74.47 2.61a55.84 55.84 0 0 1-11.56-11.73c-6.23-9-8.37-20.12-10.53-33.71-4.23-26.93-8.07-54.15-11.52-81.33a46.72 46.72 0 0 0 32.77-51.05c-.2-1.42-.47-2.8-.79-4.17l-.24-1a48.36 48.36 0 0 0-1.15-3.88c-.07-.21-.16-.41-.24-.61a48.24 48.24 0 0 0-1.28-3.15c-.18-.38-.35-.77-.53-1.15-.54-1.11-1.11-2.2-1.73-3.26-.21-.36-.44-.7-.65-1-.49-.78-1-1.55-1.52-2.29-.28-.39-.55-.79-.84-1.17l-.21-.3a46.76 46.76 0 0 0-58.29-13.32l4.88 24.6-14.07-18.46a46.48 46.48 0 0 0-12.75 53.59h-.05c.13.31.29.61.43.92.26.58.52 1.15.8 1.72q.54 1.08 1.14 2.13c.29.54.58 1.07.9 1.59.46.75 1 1.48 1.46 2.21.3.42.57.86.88 1.27.8 1.08 1.65 2.12 2.54 3.13.31.35.65.67 1 1 .63.67 1.27 1.33 1.94 2 .41.4.85.77 1.28 1.14q.93.83 1.89 1.59c.46.36.93.71 1.4 1.06.68.49 1.37 1 2.06 1.41.47.31.94.61 1.42.9.79.48 1.6.91 2.42 1.34.42.22.82.45 1.24.66 1.24.6 2.5 1.15 3.79 1.64.24.1.5.16.74.25 1.07.39 2.16.75 3.27 1.06.47.13 1 .24 1.44.35.9.22 1.8.43 2.72.6l1.61.26c.9.13 1.81.23 2.72.31.54.05 1.07.09 1.62.12 1 .05 2 .06 3 .05h.19q2.2 17.22 4.62 34.41a46.71 46.71 0 0 0-67.48-8.14l12.14 20.64-19.68-12.95a46.57 46.57 0 0 0-9 34.49 45.8 45.8 0 0 0 3.53 12.46 46.73 46.73 0 0 0 86.84-3.12c.18 1.15.35 2.32.53 3.48 1.9 12 4.27 26.92 12.67 39.08 5.7 8.24 13.54 14.33 21.16 19.69q7.44 5.24 15.21 10a46.88 46.88 0 0 0 19.16 10.74c8.32 4.26 16.84 8.14 25.54 11.56l5.42 2.13c4.88 1.9 9.88 3.85 14.81 5.93-.78.07-1.57.13-2.36.24a46.77 46.77 0 0 0-39.72 38.27l33 18-32.94-1.47a46.78 46.78 0 0 0 73.57 29.2c-.55 1-1.09 2-1.64 3.05-1.09 2-2.17 4-3.22 6-14.31 27.13-15.35 50.57-2.92 66l10.13-8.16c-12.1-15-2.5-38.87 4.3-51.76 1-1.95 2.09-3.92 3.16-5.9 9.19-17 19.61-36.37 15.46-56.94-6.21-30.94-39.86-44.02-66.9-54.6Z",fill:"#f2f2f2"})),l||(l=Y.createElement("ellipse",{cx:554,cy:707.68,rx:554,ry:23.5,fill:"#3f3d56"})),r||(r=Y.createElement("ellipse",{cx:554,cy:707.68,rx:554,ry:23.5,opacity:.1})),n||(n=Y.createElement("ellipse",{cx:554,cy:694.68,rx:554,ry:23.5,fill:"#3f3d56"})),i||(i=Y.createElement("path",{d:"M85 686.32c-3-5.51.4-12.26 4.28-17.18s8.61-10 8.51-16.29c-.14-9-9.7-14.31-17.33-19.08a84.78 84.78 0 0 1-15.56-12.51 23 23 0 0 1-4.78-6.4c-1.58-3.52-1.53-7.52-1.43-11.38q.5-19.26 1.9-38.48",fill:"none",stroke:"#3f3d56",strokeMiterlimit:10,strokeWidth:4})),s||(s=Y.createElement("path",{d:"M46.11 564.29a14 14 0 0 1 7-11.49l3.14 6.21-.09-7.52a13.86 13.86 0 0 1 4.62-.56 14 14 0 1 1-14.67 13.36ZM71.14 659.29a14 14 0 0 0 26.5-5.76 13.82 13.82 0 0 0-.91-5.69 14 14 0 0 0-26.27.15l8.77 7.13-9.64-2.24a13.89 13.89 0 0 0 1.55 6.41ZM78.07 632.04a14 14 0 0 0 4.46-27.54l.07 5.79-3.18-6.29a14.04 14.04 0 0 0-1.31 28.05ZM44 609.37a14.016 14.016 0 0 0 1.32-28 13.88 13.88 0 0 0-7.52 1.78l2.48 6.8-5.11-4.9a14 14 0 0 0-4.53 9.69 13.33 13.33 0 0 0 .36 3.85 14 14 0 0 0 13 10.78Z",fill:"#604687"})),m||(m=Y.createElement("path",{d:"M48 568.03c3.24.36 6.39 1.37 9.64 1.57s6.82-.58 8.88-3.1c1.11-1.37 1.66-3.09 2.59-4.57a10.08 10.08 0 0 1 3.54-3.33 14 14 0 1 1-26.24 9.32c.53.02 1.06.06 1.59.11ZM44 609.37a14 14 0 0 0 13.35-20 10.4 10.4 0 0 0-2.82 2.83c-1 1.51-1.61 3.25-2.78 4.64-2.19 2.57-5.92 3.41-9.31 3.25s-6.66-1.11-10-1.42c-.47 0-.94-.08-1.41-.09A14 14 0 0 0 44 609.37ZM78.07 632.04a14 14 0 0 0 13.47-19.76 11.36 11.36 0 0 0-3 2.85c-1.09 1.54-1.77 3.31-3 4.73-2.36 2.64-6.34 3.57-9.93 3.48s-6.82-.93-10.28-1.19a14 14 0 0 0 12.74 9.89ZM71.14 659.29a14 14 0 0 0 26.5-5.76 13.82 13.82 0 0 0-.91-5.69 14 14 0 0 0-3.08 2.74c-1.34 1.63-2.21 3.47-3.76 5-2.87 2.82-7.5 4-11.62 4.09a62.35 62.35 0 0 1-7.13-.38Z",opacity:.1})),o||(o=Y.createElement("path",{d:"M106.19 679.98s-11.08-.34-14.41-2.72-17-5.22-17.87-1.4-16.65 19-4.14 19.06 29.06-2 32.39-4 4.03-10.94 4.03-10.94Z",fill:"#656380"})),h||(h=Y.createElement("path",{d:"M69.54 693.59c12.51.1 29.06-2 32.4-4 2.53-1.54 3.54-7.09 3.88-9.65h.37s-.7 8.93-4 11-19.89 4.08-32.39 4c-3.61 0-4.86-1.31-4.79-3.22.47 1.13 1.85 1.87 4.53 1.87Z",opacity:.2})),f||(f=Y.createElement("path",{d:"M1055 695.32c-3-5.51.4-12.26 4.28-17.18s8.61-10 8.51-16.29c-.14-9-9.7-14.31-17.33-19.08a84.78 84.78 0 0 1-15.56-12.51 23 23 0 0 1-4.78-6.4c-1.58-3.52-1.53-7.52-1.43-11.38q.49-19.26 1.9-38.48",fill:"none",stroke:"#3f3d56",strokeMiterlimit:10,strokeWidth:4})),d||(d=Y.createElement("path",{d:"M1016.11 573.29a14 14 0 0 1 7-11.49l3.14 6.21-.09-7.52a13.86 13.86 0 0 1 4.62-.56 14 14 0 1 1-14.68 13.36ZM1041.14 668.29a14 14 0 0 0 26.5-5.76 13.82 13.82 0 0 0-.91-5.69 14 14 0 0 0-26.27.15l8.77 7.13-9.64-2.24a13.89 13.89 0 0 0 1.55 6.41ZM1048.07 641.04a14 14 0 0 0 4.46-27.54l.07 5.79-3.18-6.29a14.04 14.04 0 0 0-1.31 28.05ZM1014 618.37a14.016 14.016 0 0 0 1.32-28 13.88 13.88 0 0 0-7.52 1.78l2.48 6.8-5.11-4.9a14 14 0 0 0-4.53 9.69 13.33 13.33 0 0 0 .36 3.85 14 14 0 0 0 13 10.78Z",fill:"#604687"})),p||(p=Y.createElement("path",{d:"M1018 577.03c3.24.36 6.39 1.37 9.64 1.57s6.82-.58 8.88-3.1c1.11-1.37 1.66-3.09 2.59-4.57a10.08 10.08 0 0 1 3.54-3.33 14 14 0 1 1-26.24 9.32c.53.02 1.06.06 1.59.11ZM1014 618.37a14 14 0 0 0 13.35-20 10.4 10.4 0 0 0-2.82 2.83c-1 1.51-1.61 3.25-2.78 4.64-2.19 2.57-5.92 3.41-9.31 3.25s-6.66-1.11-10-1.42c-.47 0-.94-.08-1.41-.09a14 14 0 0 0 12.97 10.79ZM1048.07 641.04a14 14 0 0 0 13.47-19.76 11.36 11.36 0 0 0-3 2.85c-1.09 1.54-1.77 3.31-3 4.73-2.36 2.64-6.34 3.57-9.93 3.48s-6.82-.93-10.28-1.19a14 14 0 0 0 12.74 9.89ZM1041.14 668.29a14 14 0 0 0 26.5-5.76 13.82 13.82 0 0 0-.91-5.69 14 14 0 0 0-3.08 2.74c-1.34 1.63-2.21 3.47-3.76 5-2.87 2.82-7.5 4-11.62 4.09a62.35 62.35 0 0 1-7.13-.38Z",opacity:.1})),y||(y=Y.createElement("path",{d:"M1076.19 688.98s-11.08-.34-14.41-2.72-17-5.22-17.87-1.4-16.65 19-4.14 19.06 29.06-2 32.39-4 4.03-10.94 4.03-10.94Z",fill:"#656380"})),E||(E=Y.createElement("path",{d:"M1039.54 702.59c12.51.1 29.06-2 32.4-4 2.53-1.54 3.54-7.09 3.88-9.65h.37s-.7 8.93-4 11-19.89 4.08-32.39 4c-3.61 0-4.86-1.31-4.79-3.22.47 1.13 1.85 1.87 4.53 1.87Z",opacity:.2})),u||(u=Y.createElement("path",{d:"M745.57 331.15q-9.92-3.4-20-6.3 1.66-6.79 3.09-13.65c15.14-73.51 5.24-132.73-28.57-152.22-32.42-18.7-85.44.8-139 47.39q-7.92 6.92-15.47 14.2-5.07-4.85-10.3-9.51c-56.11-49.83-112.32-70.82-146.14-51.27-32.39 18.75-42 74.42-28.35 144.09q2 10.35 4.59 20.58c-7.95 2.26-15.64 4.67-23 7.24-65.79 22.89-107.81 58.89-107.81 96.18 0 38.51 45.11 77.14 113.64 100.56q8.34 2.83 16.8 5.26-2.74 11-4.88 22.18c-13 68.46-2.84 122.82 29.46 141.45 33.37 19.26 89.37-.54 143.89-48.2 4.31-3.77 8.63-7.77 13-11.95q8.18 7.89 16.79 15.32c52.82 45.45 105 63.81 137.26 45.12 33.33-19.29 44.16-77.69 30.1-148.73q-1.6-8.14-3.73-16.61 5.91-1.74 11.56-3.61c71.24-23.6 117.6-61.76 117.6-100.79 0-37.43-43.38-73.62-110.5-96.73Z",fill:"#53c1de"})),Z||(Z=Y.createElement("path",{d:"M730.12 503.47c-3.4 1.13-6.88 2.21-10.44 3.27a621.6 621.6 0 0 0-31.47-78.73 623.06 623.06 0 0 0 30.25-77.58c6.35 1.84 12.53 3.78 18.47 5.83 57.51 19.79 92.59 49.06 92.59 71.62 0 24-37.89 55.21-99.4 75.59Zm-25.52 50.58c6.22 31.41 7.1 59.81 3 82-3.7 19.95-11.14 33.25-20.34 38.58-19.59 11.33-61.47-3.4-106.64-42.27q-7.77-6.69-15.63-14.25a624.23 624.23 0 0 0 52.09-66.14 620.2 620.2 0 0 0 84.17-13q1.9 7.68 3.37 15ZM446.48 672.69c-19.14 6.76-34.38 6.95-43.59 1.64-19.6-11.31-27.75-55-16.63-113.5q2-10.37 4.53-20.63a625.79 625.79 0 0 0 83.75 12.13 645.09 645.09 0 0 0 53.35 65.9q-5.79 5.61-11.84 10.91c-24.11 21.08-48.28 36-69.57 43.55Zm-89.64-169.37c-30.31-10.36-55.33-23.82-72.49-38.5-15.41-13.2-23.19-26.31-23.19-36.94 0-22.63 33.74-51.5 90-71.11q10.6-3.69 21.39-6.73a637.08 637.08 0 0 0 30.29 78.48 646.29 646.29 0 0 0-30.66 79.6q-7.74-2.21-15.34-4.8Zm30.05-204.54c-11.68-59.69-3.93-104.72 15.59-116 20.79-12 66.76 5.12 115.22 48.15 3.1 2.75 6.21 5.63 9.32 8.6a635.89 635.89 0 0 0-52.93 65.52 648.42 648.42 0 0 0-82.93 12.89q-2.39-9.52-4.27-19.15ZM655 364.97q-9.11-15.74-18.89-31.08c19.83 2.51 38.82 5.83 56.66 9.91a565.54 565.54 0 0 1-19.89 53.51q-8.61-16.35-17.88-32.34ZM545.64 258.5a569.3 569.3 0 0 1 36.57 44.14q-36.71-1.73-73.45 0c12.07-15.92 24.44-30.72 36.88-44.13Zm-110 106.65q-9.15 15.87-17.55 32.14c-7.73-18.33-14.34-36.36-19.74-53.77 17.73-4 36.64-7.21 56.34-9.68q-9.92 15.44-19.07 31.31Zm19.61 158.65a564.64 564.64 0 0 1-57.25-9.21c5.49-17.71 12.25-36.13 20.15-54.86q8.43 16.29 17.61 32.16 9.34 16.19 19.47 31.91Zm91.14 75.33c-12.6-13.54-25.15-28.54-37.39-44.75q17.85.71 36.36.71 19 0 37.51-.84a563.94 563.94 0 0 1-36.5 44.88Zm126.69-140.35A562.82 562.82 0 0 1 694 513.44a561.35 561.35 0 0 1-58 9.89q9.85-15.63 19.08-31.63 9.38-16.26 18-32.92Zm-41 19.66q-14.12 24.52-29.81 48.1c-18.44 1.32-37.49 2-56.91 2s-38.15-.6-56.27-1.78q-16.09-23.5-30.39-48.17t-26.51-50.08q12.27-25.53 26.43-50.1 14.14-24.56 30.13-48c18.49-1.4 37.43-2.13 56.59-2.13s38.22.74 56.69 2.14q15.81 23.37 30 47.81t26.79 49.87q-12.45 25.62-26.71 50.3Zm54.77-296.46c20.81 12 28.9 60.4 15.83 123.87q-1.29 6.19-2.8 12.35a635.74 635.74 0 0 0-83.09-13.13 625.16 625.16 0 0 0-52.53-65.56q7-6.74 14.29-13.11c45.88-39.93 88.76-55.69 108.3-44.42Z",fill:"#fff"})),M||(M=Y.createElement("path",{d:"M545.34 372.38a55.5 55.5 0 1 1-55.5 55.5 55.49 55.49 0 0 1 55.5-55.5",fill:"#53c1de"})),x||(x=Y.createElement("path",{d:"M559.26 20.4a16.6 16.6 0 1 1-16.6-16.6 16.52 16.52 0 0 1 16.6 16.6Z",fill:"#3f3d56"})),b||(b=Y.createElement("path",{d:"M529.4 24.59A16.62 16.62 0 0 1 541.89.05a16.6 16.6 0 1 0 1.41 33.07 16.6 16.6 0 0 1-13.9-8.53ZM521.91 43.52h44.47v69.37h-44.47z",fill:"#3f3d56"})),g||(g=Y.createElement("path",{opacity:.1,d:"M521.91 43.52h44.47v69.37h-44.47z"})),v||(v=Y.createElement("path",{d:"M451.66 295.2s-4.75 13.05-16 14.83-17.79 4.74-17.79 4.74l26.68 17.19 14.23-1.78s1.78-18.38 7.71-22.53-14.83-12.45-14.83-12.45ZM644.34 295.2s4.75 13.05 16 14.83 17.79 4.74 17.79 4.74l-26.68 17.19-14.23-1.78s-1.78-18.38-7.71-22.53 14.83-12.45 14.83-12.45Z",fill:"#a0616a"})),w||(w=Y.createElement("path",{d:"M514.5 180.18s-7.11 3.56-9.48 10.68c0 0-13 4.15-20.16 15.41 0 0-8.9 9.49-10.08 14.23S460 253.7 460 253.7s-13.64 44.47-20.75 49.21c0 0 22.53-4.74 26.68 17.79 0 0 5.33 0 11.26-20.75s20.16-46.25 20.16-46.25 4.74-17.78 8.89-20.75 10.67-16.6 16.6-13 45.06-.6 45.06-.6 23.1 10.64 23.68 17.75 4.74 7.71 5.33 13.64 22.53 52.76 22.53 52.76 4.15 13 5.34 16c0 0 13-31.42 30.24-13.63 0 0-.6-11.86-5.93-19s-28.46-62.84-28.46-62.84-2.37-8.3-4.74-10.67-20.76-21.35-27.28-21.35c0 0-3.55-8.89-7.7-10.08ZM461.14 326.03a28.89 28.89 0 0 1-28.22-3.79 56.37 56.37 0 0 0-12.59-7.3c-6.29-2.54-13.81-4.42-16.1-.17-4.15 7.71 50.39 26.68 50.39 26.68s7.12-4.15 6.52-15.42ZM634.86 326.03a28.89 28.89 0 0 0 28.22-3.79 56.37 56.37 0 0 1 12.59-7.3c6.29-2.54 13.81-4.42 16.1-.17 4.15 7.71-50.39 26.68-50.39 26.68s-7.12-4.15-6.52-15.42Z",fill:"#3f3d56"})),q||(q=Y.createElement("path",{d:"M533.88 82.67c-.22 2.06-.9 4.29-2.66 5.38-1.44.9-3.26.83-4.92 1.17a11.46 11.46 0 0 0-7.82 6.77 17.51 17.51 0 0 0-.75 10.55 39.22 39.22 0 0 0 1.52 5.06c1.74 4.92 3.84 9.8 7.09 13.89a59 59 0 0 0 9.3 8.77c2.11 1.72 4.29 3.47 6.89 4.28a21.75 21.75 0 0 0 5.4.72c2.25.1 4.65.17 6.6-.95 3-1.73 3.89-5.55 5.52-8.62 1.38-2.6 3.44-4.81 4.73-7.46a29.49 29.49 0 0 0 2-6.52l2.77-12.3c1-4.47 1.92-9.51-.59-13.34a2.28 2.28 0 0 0-.74-.77 2.79 2.79 0 0 0-1.52-.15 16.44 16.44 0 0 1-9.15-2.09 3.93 3.93 0 0 1-1.15-.9 4.72 4.72 0 0 1-.7-2.12 22.2 22.2 0 0 0-1.28-4.45 3 3 0 0 0-.87-1.34 3.15 3.15 0 0 0-1.41-.47 114.47 114.47 0 0 0-12.93-1.35c-1.42-.07-3.56-.64-4.54.62s-.67 4.12-.79 5.62Z",fill:"#a0616a"})),O||(O=Y.createElement("path",{d:"M533.88 82.67c-.22 2.06-.9 4.29-2.66 5.38-1.44.9-3.26.83-4.92 1.17a11.46 11.46 0 0 0-7.82 6.77 17.51 17.51 0 0 0-.75 10.55 39.22 39.22 0 0 0 1.52 5.06c1.74 4.92 3.84 9.8 7.09 13.89a59 59 0 0 0 9.3 8.77c2.11 1.72 4.29 3.47 6.89 4.28a21.75 21.75 0 0 0 5.4.72c2.25.1 4.65.17 6.6-.95 3-1.73 3.89-5.55 5.52-8.62 1.38-2.6 3.44-4.81 4.73-7.46a29.49 29.49 0 0 0 2-6.52l2.77-12.3c1-4.47 1.92-9.51-.59-13.34a2.28 2.28 0 0 0-.74-.77 2.79 2.79 0 0 0-1.52-.15 16.44 16.44 0 0 1-9.15-2.09 3.93 3.93 0 0 1-1.15-.9 4.72 4.72 0 0 1-.7-2.12 22.2 22.2 0 0 0-1.28-4.45 3 3 0 0 0-.87-1.34 3.15 3.15 0 0 0-1.41-.47 114.47 114.47 0 0 0-12.93-1.35c-1.42-.07-3.56-.64-4.54.62s-.67 4.12-.79 5.62Z",opacity:.1})),C||(C=Y.createElement("path",{d:"M525.85 89.74a26.93 26.93 0 0 0-7.13-1.12c-5.72-.14-11.84 1.83-15.14 6.5a15.34 15.34 0 0 0-2.29 11.47 23.57 23.57 0 0 0 5.2 10.66 32 32 0 0 1 4 5.24c1.58 3 1.63 6.59 2.06 10 1 8.12 4.46 15.75 5.83 23.82s.19 17.42-6.18 22.55c-1.07.86-2.37 1.77-2.46 3.14-.14 2.19 2.71 3.12 4.9 3.33 6.55.62 13.27 1.23 19.63-.46 2.63-.7 5.17-1.79 7.85-2.29 6.8-1.27 13.64 1.34 20.45 2.59a90.61 90.61 0 0 0 14.91 1.21 7.94 7.94 0 0 0 3.43-.45 2.75 2.75 0 0 0 1.74-2.74 4.76 4.76 0 0 0-1.18-2c-3.44-4.25-4.49-9.9-5.43-15.29l-3.15-18.11c-1.69-9.68-3.26-20.2 1.32-28.89 3.29-6.25 9.36-10.65 12.83-16.8a9.84 9.84 0 0 0 1.55-6.28c-.52-3.09-3.31-5.3-6.17-6.59a23.21 23.21 0 0 0-17.42-.64c.1 4.33-1 8.71-1.71 13l-1.21 7a88.83 88.83 0 0 1-2.71 12.2 12.85 12.85 0 0 1-2.17 4.42 11.43 11.43 0 0 1-3.83 2.79 22.83 22.83 0 0 1-10.14 2.32 13.54 13.54 0 0 1-4.48-.69 19 19 0 0 1-6.17-4.34 10.11 10.11 0 0 1-1.63-1.77 9.93 9.93 0 0 1-1.11-2.67 55.42 55.42 0 0 1-1.91-7.48c-.3-1.94-.4-3.91-.54-5.87-.39-5.79-.39-12.19-1.54-17.76Z",fill:"#604687"})),N||(N=Y.createElement("path",{d:"M519.84 204.49s-2.37 31.43 12.45 36.76 1.78-26.09 1.78-26.09l-4.75-9.48ZM570.23 204.49s2.37 31.43-12.45 36.76-1.78-26.09-1.78-26.09l4.75-9.48Z",fill:"#a0616a"})),k||(k=Y.createElement("path",{d:"m506.79 99.59-4.74 7.71s4.15 26.68 4.74 31.42a62.2 62.2 0 0 0 2.38 10.08s.59 14.23.59 19.57 3 14.23 3 14.23a64.82 64.82 0 0 0 3 14.82c2.37 6.52 4.74 14.23 4.74 14.23s3-8.3 14.82 4.15a7.18 7.18 0 0 0 0-10.08s-3.55-16-3.55-24.31-6.53-48-6.53-48-4.24-45.12-18.45-33.82Z",opacity:.1})),A||(A=Y.createElement("path",{d:"m505.61 98.96-4.74 7.71s4.15 26.68 4.74 31.42a61.84 61.84 0 0 0 2.39 10.08s.59 14.23.59 19.56 3 14.23 3 14.23a64.53 64.53 0 0 0 3 14.82c2.37 6.53 4.75 14.23 4.75 14.23s3-8.3 14.82 4.15a7.18 7.18 0 0 0 0-10.07s-3.56-16-3.56-24.31-6.52-48-6.52-48-4.24-45.09-18.47-33.82Z",fill:"#604687"})),j||(j=Y.createElement("path",{d:"m583.87 94.81 3 3.53s3.49 20.18-4.22 45.68l-2.37 23.12s-4.15 19.57-4.74 24.31-.59 5.33-1.78 7.11a2.29 2.29 0 0 0 0 3l-3.56 13s-5.33-6.52-16 1.78c0 0-3-4.74-.6-8.89s2.37-5.93 1.78-7.12 2.37-7.11 2.37-8.3 4.18-28.44 4.18-28.44 1.78-26.68 3.56-35.57c1.09-5.47 1.07-17.66.88-26.24-.19-8.94 10.63-13.78 17-7.5.15.16.33.31.5.53Z",opacity:.1})),S||(S=Y.createElement("path",{d:"m585.65 93.59 3 3.53s3.49 20.19-4.22 45.68l-2.37 23.12s-4.15 19.57-4.74 24.31-.6 5.34-1.78 7.12a2.28 2.28 0 0 0 0 3L572 213.39s-5.33-6.53-16 1.77c0 0-3-4.74-.59-8.89s2.37-5.93 1.78-7.11 2.37-7.12 2.37-8.3 4.15-28.46 4.15-28.46 1.78-26.68 3.56-35.58.59-35.57.59-35.57 9.49-6.52 17.79 2.34Z",fill:"#604687"})),H||(H=Y.createElement("circle",{cx:545.92,cy:61.61,r:23.72,fill:"#a0616a"})),T||(T=Y.createElement("path",{d:"M558.29 26a16.6 16.6 0 0 1-31.09.44c9.26-3.73 18.72-.41 18.72-.41 4.73-1.66 8.83-1.51 12.37-.03Z",opacity:.1})),I||(I=Y.createElement("path",{d:"M545.92 27.22s-45.65-16-34.38 61.66c0 0 10.08 6.52 17.78 2.37 0 0-5.33-53.95 15.42-51.58s17.19 50.4 17.19 50.4 11.86 3.55 15.42-3-1.19-70.48-31.43-59.85Z",fill:"#3f3d56"})),L||(L=Y.createElement("path",{d:"M544.74 36.11c-14.24-1.62-16.2 23.27-16 39.05.17-15.69 2.81-37 16-35.49 14.81 1.69 17.24 26.66 17.41 40.8.17-12.98-1.25-42.51-17.41-44.36ZM511.54 85.32a159.38 159.38 0 0 1-1.77-20.53 152.12 152.12 0 0 0 1.77 24.09s10.08 6.52 17.78 2.37c0 0-.12-1.28-.26-3.43-7.67 3.87-17.52-2.5-17.52-2.5ZM577.35 83.59c-3.32 6.08-13.83 3.41-15.25 3-.07 2.2-.17 3.52-.17 3.52s11.86 3.55 15.42-3c.73-1.34 1.11-5.13 1-10.2-.1 3.25-.45 5.68-1 6.68Z",opacity:.1})),G||(G=Y.createElement("path",{d:"M826.73 672.96c4.74-8.78-.64-19.54-6.82-27.37s-13.73-16-13.57-26c.23-14.35 15.45-22.81 27.62-30.42a134.77 134.77 0 0 0 24.79-19.93c3-3.05 5.87-6.31 7.62-10.21 2.52-5.6 2.45-12 2.29-18.12q-.79-30.71-3-61.34",fill:"none",stroke:"#3f3d56",strokeMiterlimit:10,strokeWidth:4})),P||(P=Y.createElement("path",{d:"M888.74 478.49a22.31 22.31 0 0 0-11.16-18.32l-5 9.9.15-12a22.37 22.37 0 1 0 16 20.41ZM848.86 629.88a22.36 22.36 0 1 1 1.08-18l-14 11.37 15.37-3.57a22.25 22.25 0 0 1-2.45 10.2ZM837.81 586.45a22.37 22.37 0 0 1-7.09-43.86l-.12 9.22 5.06-10h.06a22.37 22.37 0 1 1 2.09 44.69ZM892.11 550.32a22.37 22.37 0 1 1 9.89-41.86l-4 10.83 8.13-7.8a22.37 22.37 0 0 1-14.07 38.83Z",fill:"#604687"})),U||(U=Y.createElement("path",{d:"M885.74 484.45c-5.17.57-10.19 2.18-15.37 2.5s-10.87-.92-14.14-5c-1.77-2.17-2.65-4.91-4.14-7.28a16 16 0 0 0-5.63-5.3 22.37 22.37 0 1 0 41.81 14.84c-.85.09-1.69.15-2.53.24ZM892.11 550.32a22.39 22.39 0 0 1-21.28-31.91 16.37 16.37 0 0 1 4.5 4.51c1.59 2.4 2.56 5.18 4.43 7.39 3.48 4.09 9.44 5.43 14.84 5.19s10.6-1.78 16-2.28c.75-.06 1.5-.11 2.26-.13a22.37 22.37 0 0 1-20.75 17.23ZM837.81 586.45a22.37 22.37 0 0 1-21.46-31.49 17.83 17.83 0 0 1 4.73 4.55c1.74 2.45 2.82 5.27 4.86 7.54 3.77 4.2 10.11 5.68 15.83 5.54 5.54-.12 10.87-1.48 16.38-1.9a22.36 22.36 0 0 1-20.34 15.76ZM848.86 629.88a22.37 22.37 0 0 1-40.78-18.29 22.27 22.27 0 0 1 4.91 4.38c2.13 2.59 3.53 5.53 6 7.94 4.57 4.49 11.95 6.34 18.52 6.51a97.1 97.1 0 0 0 11.35-.54Z",opacity:.1})),F||(F=Y.createElement("path",{d:"M793 662.85s17.65-.54 23-4.33 27.16-8.31 28.48-2.24 26.53 30.22 6.6 30.38-46.31-3.1-51.62-6.34-6.46-17.47-6.46-17.47Z",fill:"#656380"})),V||(V=Y.createElement("path",{d:"M851.4 684.59c-19.93.16-46.31-3.11-51.62-6.34-4-2.47-5.65-11.3-6.19-15.38H793s1.12 14.24 6.43 17.47 31.69 6.5 51.62 6.34c5.75 0 7.74-2.09 7.63-5.12-.8 1.81-2.99 2.95-7.28 3.03Z",opacity:.2})),_||(_=Y.createElement("path",{d:"m323 42.86-18.25 11.57 11.08-20.15a18 18 0 0 0-11-3.94h-.3a21.58 21.58 0 0 1-3.78-.28l-6.19 3.92 2.65-4.82a22.06 22.06 0 0 1-10.82-8.21l-11.07 7 7-12.72c-6.48-7.77-15.2-12.54-24.81-12.54-11.51 0-21.76 6.85-28.38 17.52a21.24 21.24 0 0 1-18.76 10.12h-.62c-12.71 0-23 14.41-23 32.19s10.3 32.18 23 32.18a17.2 17.2 0 0 0 8-2c8.29-4.31 19.17-4.39 27.85-.54a29 29 0 0 0 23.68.05c8.62-3.77 19.37-3.69 27.61.54a17.23 17.23 0 0 0 7.93 2c12.71 0 23-14.41 23-32.18A40.86 40.86 0 0 0 323 42.86Z",fill:"#f2f2f2"})),z||(z=Y.createElement("path",{d:"M288.59 89.95a34 34 0 0 0-19.72 2.14 29 29 0 0 1-23.67-.05c-8.69-3.85-19.57-3.77-27.86.54a17.2 17.2 0 0 1-8 2c-11.29 0-20.68-11.38-22.64-26.38a21.58 21.58 0 0 0 5.64-6.08c6.66-10.66 16.87-17.53 28.38-17.53s21.64 6.77 28.26 17.32a21.79 21.79 0 0 0 18.76 10.31h.26c9 .01 16.8 7.22 20.59 17.73Z",opacity:.03})),B||(B=Y.createElement("path",{d:"M800.07 66.42 791 72.19l5.53-10a9 9 0 0 0-5.51-2h-.14a10.79 10.79 0 0 1-1.89-.14l-3.09 2 1.3-2.46a11 11 0 0 1-5.4-4.09l-5.52 3.5 3.49-6.34a16.17 16.17 0 0 0-12.37-6.26c-5.75 0-10.86 3.42-14.16 8.74a10.57 10.57 0 0 1-9.36 5h-.31c-6.34 0-11.48 7.19-11.48 16s5.14 16.05 11.48 16.05a8.62 8.62 0 0 0 4-1 16.56 16.56 0 0 1 13.89-.27 14.52 14.52 0 0 0 11.81 0 16.58 16.58 0 0 1 13.77.27 8.61 8.61 0 0 0 4 1c6.34 0 11.48-7.18 11.48-16.05a20.28 20.28 0 0 0-2.45-9.72Z",fill:"#f2f2f2"})),D||(D=Y.createElement("path",{d:"M782.92 89.91a17 17 0 0 0-9.83 1.07 14.52 14.52 0 0 1-11.81 0 16.58 16.58 0 0 0-13.9.27 8.55 8.55 0 0 1-4 1c-5.64 0-10.32-5.67-11.3-13.15a10.93 10.93 0 0 0 2.82-3c3.3-5.32 8.42-8.73 14.16-8.73s10.79 3.37 14.09 8.63a10.85 10.85 0 0 0 9.36 5.14h.15c4.49-.07 8.34 3.53 10.26 8.77Z",opacity:.03})),J||(J=Y.createElement("path",{d:"m204.34 215.86 14.66 9.28-8.88-16.15a14.48 14.48 0 0 1 8.85-3.15h.23a17.08 17.08 0 0 0 3-.22l4.95 3.14-2.15-3.86a17.78 17.78 0 0 0 8.67-6.58l8.87 5.62-5.54-10.19c5.19-6.22 12.18-10 19.87-10 9.23 0 17.44 5.48 22.75 14a17 17 0 0 0 15 8.11h.5c10.18 0 18.43 11.54 18.43 25.78s-8.25 25.79-18.43 25.79a13.86 13.86 0 0 1-6.43-1.61 26.59 26.59 0 0 0-22.31-.43 23.28 23.28 0 0 1-19 0 26.64 26.64 0 0 0-22.12.43 13.9 13.9 0 0 1-6.35 1.57c-10.19 0-18.44-11.54-18.44-25.79a32.78 32.78 0 0 1 3.87-15.74Z",fill:"#f2f2f2"})),W||(W=Y.createElement("path",{d:"M231.89 253.59a27.36 27.36 0 0 1 15.8 1.72 23.28 23.28 0 0 0 19 0 26.61 26.61 0 0 1 22.32.43 13.82 13.82 0 0 0 6.42 1.61c9.05 0 16.57-9.11 18.14-21.13a17.44 17.44 0 0 1-4.52-4.88c-5.31-8.54-13.52-14-22.75-14s-17.33 5.42-22.64 13.88a17.44 17.44 0 0 1-15 8.25h-.23c-7.26-.07-13.5 5.71-16.54 14.12Z",opacity:.03})))}},8538:(e,a,t)=>{t.d(a,{Z:()=>H});var c,l,r,n,i,s,m,o,h,f,d,p,y,E,u,Z,M,x,b,g,v,w,q,O,C,N,k=t(7294),A=["title","titleId"];function j(){return j=Object.assign?Object.assign.bind():function(e){for(var a=1;a=0||(l[t]=e[t]);return l}(e,a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(c=0;c=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(l[t]=e[t])}return l}const H=function(e){var a=e.title,t=e.titleId,H=S(e,A);return k.createElement("svg",j({"data-name":"Layer 1",xmlns:"http://www.w3.org/2000/svg",width:1038.23,height:693.31,viewBox:"0 0 1038.23 693.31","aria-labelledby":t},H),c||(c=k.createElement("defs",null,k.createElement("linearGradient",{id:"a",x1:320.96,y1:796.01,x2:320.96,y2:284.81,gradientUnits:"userSpaceOnUse"},k.createElement("stop",{offset:0,stopColor:"gray",stopOpacity:.25}),k.createElement("stop",{offset:.54,stopColor:"gray",stopOpacity:.12}),k.createElement("stop",{offset:1,stopColor:"gray",stopOpacity:.1})))),void 0===a?k.createElement("title",{id:t},"version control"):a?k.createElement("title",{id:t},a):null,l||(l=k.createElement("path",{d:"M615.24 111.4c-64.72-2.25-126.36-23.14-185.23-46S312.85 17.21 249.68 5.1c-40.63-7.79-87.09-8.89-119.83 12.89-31.5 21-41.68 57.15-47.16 90.72-4.11 25.27-6.54 51.85 4.75 75.5 7.83 16.42 21.74 30.22 31.36 45.95 33.46 54.72 9.81 122.2-26.46 175.63-17 25.06-36.74 49-49.87 75.66s-19.2 57.25-7.72 84.47c11.39 27 38.52 47.24 67.9 61.49 59.69 28.94 130 37.23 198.62 41.92 151.82 10.39 304.46 5.89 456.68 1.39 56.34-1.67 112.92-3.36 168.34-12.07 30.78-4.84 62.56-12.52 84.9-31 28.36-23.53 35.39-63.38 16.39-92.88-31.88-49.49-120-61.79-142.31-114.9-12.27-29.23.33-61.8 18.15-88.91 38.24-58.17 102.33-109.19 105.71-175.68 2.32-45.66-28.49-91.39-76.13-113-49.94-22.65-119.18-19.8-156 17.69-37.96 38.56-104.62 53.41-161.76 51.43Z",fill:"#6c63ff",opacity:.1})),r||(r=k.createElement("path",{d:"M529.62 754.84c-1-3.62-2-7.28-4-10.43a36.53 36.53 0 0 0-6.55-7.17c-7.25-6.58-16.15-13.26-25.76-11.6a34.39 34.39 0 0 0-8.54 3.12c-1.4.65-2.81 1.3-4.25 1.85a21.17 21.17 0 0 1-12.82 1.12c-2.2-.59-4.25-1.65-6.42-2.31a20.35 20.35 0 0 0-3.15-.68 53.64 53.64 0 0 0 6.09-3.21c10.78-6.6 19.38-18.53 18.18-31.29-.41-4.29-1.88-8.4-3.34-12.45l-3.84-10.62c-1.66-4.6-3.38-9.29-6.41-13.11-3.37-4.26-8.17-7.15-13.13-9.3-10.65-4.63-22.29-6.26-33.78-7.84l-.8-.11V516.68a8 8 0 0 0-8-8H398q-1-6.12-2-12.22c-1.9-11.61-3.87-23.43-9.22-33.88-3.5-6.84-9.07-13.37-16.58-14.71a16.08 16.08 0 0 1-4.31-1c-2.2-1.08-3.4-3.48-5.09-5.25-4.36-4.57-11.45-4.64-17.29-7-5.16-2.05-9.38-5.91-14.08-8.88s-10.54-5.08-15.74-3.15c0 .38-.07.76-.11 1.13l-3.34-1.54c-3.6-1.67-7.27-3.38-10.16-6.12-3.71-3.5-5.69-8.14-7.23-13.07-.16-.51-.31-1-.47-1.55a46.43 46.43 0 0 0 12.44-23.75l.81 2.63a17.45 17.45 0 0 0 .64 1.74 6.86 6.86 0 0 0 2 2.83 3.55 3.55 0 0 0 .84.49 3.5 3.5 0 0 0 .86.22 3.2 3.2 0 0 0 1.24-.09 4.73 4.73 0 0 0 3-2.78 6 6 0 0 0 .35-1.22 6.31 6.31 0 0 0 .07-.76v-1.04c0-.1 0-.33-.05-.5v-.26c0-.2-.06-.4-.1-.59s0-.11 0-.16c-.05-.25-.11-.51-.16-.76v-.19c0-.06-.09-.41-.14-.62s-.07-.27-.1-.41v-.06c-.1-.4-.19-.79-.28-1.19a34.38 34.38 0 0 1-.55-10.56 113.08 113.08 0 0 1 2.86-15.35l.21-.91c.08-.35.16-.7.23-1.06.16-.72.32-1.44.47-2.17l.36-1.84.27-1.64v-.21A47.41 47.41 0 0 0 318 330c-.46-5.23-2.08-10.18-5.63-14.12-2.51-2.79-5.82-4.85-8.15-7.78-2.18-2.74-3.41-6.12-5.67-8.81-6.24-7.45-22.26-13.19-32.09-14.19-11.26-1.14-29.45 1.74-38.53 8.39-3.36 2.45-5.66 6-8 9.36-4.3 6.25-9.18 12.49-16.07 16-2.6 1.32-5.58 2.32-7.31 4.62a12.49 12.49 0 0 0-1.95 5.18 102.71 102.71 0 0 0-2.06 19.78v2.5a18.23 18.23 0 0 0 1.56 7.23c.16.34.34.67.53 1l.12.21a39.78 39.78 0 0 1 3.2 5.45 7.22 7.22 0 0 1 .49 1.66 12.24 12.24 0 0 1-.28 4.38c0 .22-.09.44-.13.66l-.09.43c0 .15 0 .3-.08.44-.08.43-.15.86-.21 1.28a9 9 0 0 0 .22 3.46 4.55 4.55 0 0 0 2.22 3 6.5 6.5 0 0 0 1.8.56c.63.11 1.27.18 1.89.32a9.33 9.33 0 0 1 2.29.85 9.22 9.22 0 0 1 1.93 1.24 11 11 0 0 1 .83.84 14 14 0 0 1 1.42 1.94q.32.53.6 1.08a24.67 24.67 0 0 1 1.71 4.52c.26.93.48 1.87.67 2.81.09.42.17.84.24 1.25s.14.83.2 1.24a2.91 2.91 0 0 0 .8-.16c1.47-.53 2.29-2.24 2.75-3.9.08-.28.15-.55.21-.82.23-1 .47-2.1.7-3.15a46.37 46.37 0 0 0 18.25 20.1c.28.83.55 1.65.79 2.49 1.31 4.53 1.94 9.27-.33 13.23-1.62 2.81-4.34 4.54-7.38 5.74a4.88 4.88 0 0 0-1.65-1.4c-2.63-1.32-5.79.28-8 2.25-4 3.62-7.26 8.81-12.52 10-1.9.44-4 .35-5.58 1.51a13 13 0 0 0-2.59 3.4 11.92 11.92 0 0 1-10.23 5.1c-1.83-.09-4-.51-5.25.83-.93 1-1 2.58-2 3.53-1.34 1.32-3.54.68-5.41.6-3.56-.15-6.87 2.15-8.9 5.1s-3 6.48-4 10v.06a7.15 7.15 0 0 0-.73.61 10.55 10.55 0 0 0-2.21 3.58 170.87 170.87 0 0 0-14.1 58.18 6 6 0 0 1-.64 2.82 13.87 13.87 0 0 1-1.47 1.6 5.61 5.61 0 0 0 .93 8 6.3 6.3 0 0 1 1.07-1.42c-.11.46-.21.91-.28 1.32a35.49 35.49 0 0 0-.11 8.8q1.42 20.84 2.87 41.65c.27 3.93.54 7.85.9 11.77q1.05 11.38 3 22.67c.06.34.13.69.22 1-8.15 2.59-15.4 7.27-18.45 15.08-1.06 2.7-1.54 5.64-2.84 8.23-1.43 2.84-3.78 5.11-5.34 7.89-2.69 4.78-2.81 10.64-1.83 16 1.89 10.45 7.54 19.79 15 27.39h-1a15.64 15.64 0 0 0-6.83 2.45c-15.78 9.22-24.8 29-21.51 47.06.65 3.53 1.78 7.11 4.14 9.8a15.51 15.51 0 0 0 7.28 4.46 25.29 25.29 0 0 0 5.37 1c12.3 1 24.21-4.7 36.54-5.18a98 98 0 0 1 12.23.57q8.91.74 17.85.94c9.69.23 15.14-2.35 21.32-9.59a26.1 26.1 0 0 0 3.77-5.94c5.26-.3 11.07-.76 15.27-1.1l.06.58c.23 2 .58 4.3 2.18 5.56a7.61 7.61 0 0 0 3 1.23c10.1 2.48 20.32 5 30.72 5a129.71 129.71 0 0 0 14.59-1.12l18.27-2.11a91 91 0 0 1 15.7 3.42c5.28 1.79 10.21 4.45 15.37 6.56 12 4.86 24.9 6.6 37.68 8.3 2.18.29 4.68.49 6.29-1 2.08-2 1.39-5.34.8-8.14-.24-1.15-.42-2.3-.56-3.46a175.25 175.25 0 0 1 25.24 8.76l1.43.63c.42 2.18 2.43 3.92 4.36 6.27a16 16 0 0 0 2.21 2.74 7.37 7.37 0 0 0 3.17 1.14 147.82 147.82 0 0 0 40.93 1.85 41.86 41.86 0 0 1 8.44-.29 36.58 36.58 0 0 1 6.1 1.37l11.57 3.32c8.53 2.44 17.26 4.91 26.11 4.36a33.4 33.4 0 0 0 5.33-.77c7-1.62 13.52-5.53 16.88-11.82 4.75-8.55 2.56-19.07 0-28.47Z",transform:"translate(-80.89 -103.35)",fill:"url(#a)"})),n||(n=k.createElement("path",{d:"M125.02 649.54c-2.11-4.8-4.11-10.32-2-15.12a12.85 12.85 0 0 1 6.65-6.25 32 32 0 0 1 9-2.22 125.61 125.61 0 0 1 29.26-.4c.71 5.62-.79 11.32-2.08 16.75-1.17 5-1.84 5.74-7 6-3.34.18-33.04 3.01-33.83 1.24Z",fill:"#fbbebe"})),i||(i=k.createElement("ellipse",{cx:214.07,cy:577.16,rx:143,ry:40,fill:"#464353"})),s||(s=k.createElement("ellipse",{cx:214.07,cy:577.16,rx:143,ry:40,opacity:.1})),m||(m=k.createElement("path",{d:"M239.71 366a44.49 44.49 0 0 1-22.94 20.84 57.58 57.58 0 0 1-18.21 3.46c-6.79.31-13.72-.13-20.1-2.45-8.56-3.1-15.67-9.44-21-16.83s-9-15.83-12.19-24.34c-1.68-4.43-3.28-9.15-2.49-13.83 5.15-1.17 10.79-2.89 13.45-7.46 2.27-3.92 1.64-8.62.33-13.1-.37-1.27-.8-2.53-1.23-3.74-1-2.9-4.45-8.41-2-10.89 1.53-1.57 7.94-2.37 10.15-3.39 6.81-3.14 13.09-7.68 20.57-9.17 6.47-1.29 13.15-.08 19.61 1.26a6.45 6.45 0 0 1 2.42.87 5.82 5.82 0 0 1 1.8 2.7c1.84 4.48 2.92 9.43 4.4 14.1 1.54 4.89 3.52 9.48 7.23 12.95 2.89 2.71 6.57 4.41 10.17 6.06l8.86 4.06a11.65 11.65 0 0 1 4.19 2.71 10.61 10.61 0 0 1 2 5.44 50.82 50.82 0 0 1-5.02 30.75Z",fill:"#fbbebe"})),o||(o=k.createElement("path",{d:"M212.24 304.03a46 46 0 0 1-55.67 8.26c-.37-1.27-.8-2.53-1.23-3.74-1-2.9-4.45-8.41-2-10.89 1.53-1.57 7.94-2.37 10.15-3.39 6.81-3.14 13.09-7.68 20.57-9.17 6.47-1.29 13.15-.08 19.61 1.26a6.45 6.45 0 0 1 2.42.87 5.82 5.82 0 0 1 1.8 2.7c1.79 4.48 2.87 9.43 4.35 14.1Z",opacity:.1})),h||(h=k.createElement("circle",{cx:179.07,cy:270.16,r:46,fill:"#fbbebe"})),f||(f=k.createElement("path",{d:"m319.22 419.45-3.78-22.9c-1.91-11.49-3.88-23.2-9.22-33.55-3.51-6.78-9.08-13.24-16.59-14.58a16.05 16.05 0 0 1-4.32-1c-2.2-1.06-3.4-3.44-5.09-5.2-4.36-4.52-11.46-4.59-17.3-6.89-5.16-2-9.38-5.85-14.08-8.79s-10.55-5-15.75-3.12c-.84 8.95-1.73 18.1-5.53 26.25a39.28 39.28 0 0 1-59.26 14.76c-8.91-6.71-14.62-17.06-17.28-27.89-.65-2.64-1.39-5.67-3.82-6.88-2.63-1.32-5.79.28-8 2.22-4 3.59-7.27 8.73-12.53 9.94-1.9.44-4 .35-5.58 1.5a12.7 12.7 0 0 0-2.6 3.37 12 12 0 0 1-10.23 5.06c-1.83-.09-4-.51-5.25.82-.93 1-1 2.56-2 3.49-1.35 1.31-3.54.67-5.42.6-3.56-.15-6.87 2.13-8.91 5s-3 6.42-4 9.86c10.93 24.34 20.93 48.71 31.86 73.05a6.23 6.23 0 0 1 .79 3 7.31 7.31 0 0 1-1.36 3c-5.36 8.61-5.19 19.44-4.6 29.56s1.31 20.81-3.21 29.88c-1.23 2.49-2.83 4.77-4 7.26-2.74 5.64-3.73 23.68-2.13 29.74h226.08c-4.31-11.85-2.67-35.63-1.77-48.21.63-8.8-1-17.59-1.7-26.39-1.53-17.97-.45-35.02-3.42-52.96Z",fill:"#6c63ff"})),d||(d=k.createElement("path",{d:"M65.36 445.65a35.4 35.4 0 0 0-.12 8.73l2.87 41.27c.27 3.89.54 7.77.9 11.65.69 7.53 1.72 15 3 22.46a4 4 0 0 0 4.1 3.89c12.65 2.68 25.72 2.57 38.63 1.84 19.7-1.1 39.37-3.61 59.1-3.18 5.08.11 11 0 14.08-4s1.29-10.47-2.73-13.7-9.48-4-14.64-4c-6.83-.07-13.66.9-20.47.5-6.25-.37-12.36-1.88-18.42-3.39l-17-4.23c.65-5.15 2.61-10 4.47-14.89 3.34-8.67 6.46-17.63 6.52-26.92s-3.44-19.06-11.05-24.38c-6.26-4.37-14.32-5.18-21.95-5-5.55.16-15.14-1.17-20.21 1-4.01 1.76-6.33 8.42-7.08 12.35Z",fill:"#fbbebe"})),p||(p=k.createElement("path",{d:"M330.79 540.01c3.33-1.27 7-.81 10.57-.33 11.49 1.57 23.15 3.18 33.8 7.77 5 2.14 9.76 5 13.14 9.21 3 3.79 4.75 8.43 6.41 13l3.84 10.52c1.46 4 2.94 8.08 3.35 12.33 1.2 12.59-7.41 24.46-18.24 31s-23.58 8.87-36 11.31-24.89 5.14-37.26 8a150 150 0 0 1-17.53 3.45c-13.24 1.5-27.08-.71-39.66 3.67-5 1.75-9.91 4.35-15.1 5.56a93.93 93.93 0 0 1-10.44 1.59l-23.81 2.72a129.89 129.89 0 0 1-14.6 1.12c-10.4 0-20.63-2.46-30.73-4.92a7.77 7.77 0 0 1-3-1.21c-1.6-1.26-1.95-3.49-2.18-5.51q-1.53-13.41-2.68-26.85c-.24-2.91-.42-6.06 1.17-8.51 2-3 5.9-3.94 9.46-4.52a246.88 246.88 0 0 1 45.68-3.17c5.81-5.81 15.39-5.84 23-9a68.39 68.39 0 0 0 8.11-4.41 106 106 0 0 1 44.53-14.07 41.45 41.45 0 0 0 9.11-1.3c5.89-1.83 11.26-6.81 17.31-5.59.75-2.07 1.27-4.84 3-6.26.86-.73 1.92-1.22 2.71-2 1.67-1.69 1.82-4.35 1.57-6.71s-.81-4.78-.2-7.08a9.79 9.79 0 0 1 1.11-2.47c3-5.18 7.53-7.84 13.56-7.34Z",fill:"#464353"})),y||(y=k.createElement("path",{d:"M330.79 540.01c3.33-1.27 7-.81 10.57-.33 11.49 1.57 23.15 3.18 33.8 7.77 5 2.14 9.76 5 13.14 9.21 3 3.79 4.75 8.43 6.41 13l3.84 10.52c1.46 4 2.94 8.08 3.35 12.33 1.2 12.59-7.41 24.46-18.24 31s-23.58 8.87-36 11.31-24.89 5.14-37.26 8a150 150 0 0 1-17.53 3.45c-13.24 1.5-27.08-.71-39.66 3.67-5 1.75-9.91 4.35-15.1 5.56a93.93 93.93 0 0 1-10.44 1.59l-23.81 2.72a129.89 129.89 0 0 1-14.6 1.12c-10.4 0-20.63-2.46-30.73-4.92a7.77 7.77 0 0 1-3-1.21c-1.6-1.26-1.95-3.49-2.18-5.51q-1.53-13.41-2.68-26.85c-.24-2.91-.42-6.06 1.17-8.51 2-3 5.9-3.94 9.46-4.52a246.88 246.88 0 0 1 45.68-3.17c5.81-5.81 15.39-5.84 23-9a68.39 68.39 0 0 0 8.11-4.41 106 106 0 0 1 44.53-14.07 41.45 41.45 0 0 0 9.11-1.3c5.89-1.83 11.26-6.81 17.31-5.59.75-2.07 1.27-4.84 3-6.26.86-.73 1.92-1.22 2.71-2 1.67-1.69 1.82-4.35 1.57-6.71s-.81-4.78-.2-7.08a9.79 9.79 0 0 1 1.11-2.47c3-5.18 7.53-7.84 13.56-7.34Z",opacity:.05})),E||(E=k.createElement("path",{d:"M134.22 655.72c-6.19 7.17-11.64 9.73-21.33 9.5q-8.94-.21-17.86-.93a100.2 100.2 0 0 0-12.24-.57c-12.34.48-24.25 6.13-36.56 5.14a25.92 25.92 0 0 1-5.37-1 15.63 15.63 0 0 1-7.29-4.42c-2.36-2.67-3.49-6.21-4.14-9.71-3.29-17.94 5.73-37.48 21.52-46.61a15.78 15.78 0 0 1 6.84-2.43 16.21 16.21 0 0 1 6.92 1.52l.15.06A52.33 52.33 0 0 1 82 617.71a9.66 9.66 0 0 0 2.62 2.11 9 9 0 0 0 3.09.58l13.14.83a31.14 31.14 0 0 1 6.6.91 52.46 52.46 0 0 1 6.94 3c7.07 3.16 14.91 4 22.55 5.22a3.37 3.37 0 0 1 2 .8 3.13 3.13 0 0 1 .62 1.3 25.51 25.51 0 0 1-5.34 23.26Z",fill:"#3f3d56"})),u||(u=k.createElement("path",{d:"M64.86 606.28a78.9 78.9 0 0 0-13.15 16.44 82.28 82.28 0 0 0-10.74 32.54 60.4 60.4 0 0 0-.11 12.61 15.63 15.63 0 0 1-7.29-4.42c-2.36-2.67-3.49-6.21-4.14-9.71-3.29-17.94 5.73-37.48 21.52-46.61a15.78 15.78 0 0 1 6.84-2.43 16.21 16.21 0 0 1 6.92 1.52Z",opacity:.1})),Z||(Z=k.createElement("path",{d:"M319.35 631.16c7.35-.2 15.6-.57 21 4.38 5.15 4.68 5.83 12.4 6.17 19.35l.39 8.07c.12 2.46.22 5-.77 7.28-1.76 4-6.59 5.93-11 5.7s-8.46-2.16-12.49-3.9a175.7 175.7 0 0 0-34-10.71q.57-8.37 1.9-16.66c.61-3.83.71-10.24 3.27-13.42 2.71-3.36 6.24-1.54 9.92-.92a79.63 79.63 0 0 0 15.61.83Z",fill:"#fbbebe"})),M||(M=k.createElement("path",{d:"M125.11 550.07c0 1-1.57 0-1.71-1.07-1.1-8.09-7.52-14.76-15-18s-16-3.41-24.1-2.64c-12.25 1.16-26 5.85-30.48 17.3-1.06 2.68-1.54 5.58-2.84 8.15-1.44 2.82-3.79 5.07-5.35 7.81-2.69 4.74-2.8 10.55-1.83 15.91 2.61 14.3 12.39 26.53 24.24 35s25.7 13.53 39.51 18.09a685.19 685.19 0 0 0 112 26.75c6.16.93 12.38 1.79 18.28 3.77 5.28 1.77 10.22 4.42 15.38 6.5 12 4.82 24.91 6.54 37.7 8.23 2.18.28 4.68.48 6.29-1 2.08-1.93 1.39-5.29.8-8.06a43.35 43.35 0 0 1 5.11-30.76c2.14-3.6 4.92-7.29 4.52-11.46-.48-4.86-5.32-8.3-10.14-9.08s-9.72.37-14.56 1c-1.67.22-3.49.36-4.95-.49a9.89 9.89 0 0 1-1.94-1.72 21.93 21.93 0 0 0-25.54-3.57c-1.79 1-4.5-1.23-6.36-2.07l-21.03-9.52c-24.16-10.93-48.44-21.91-74-28.83a15.54 15.54 0 0 1-5.7-2.37c-1.27-1-2.18-2.36-3.35-3.47-2.55-2.41-6.1-3.37-9.16-5.08s-6.49-5.89-5.79-9.32Z",fill:"#464353"})),x||(x=k.createElement("path",{d:"M449.32 680.76c-3.36 6.23-9.88 10.11-16.88 11.71a33.5 33.5 0 0 1-5.34.76c-8.85.55-17.59-1.9-26.12-4.32l-11.58-3.26a36.55 36.55 0 0 0-6.1-1.36 41.86 41.86 0 0 0-8.44.29 149.59 149.59 0 0 1-41-1.84 7.23 7.23 0 0 1-3.17-1.13 15.75 15.75 0 0 1-2.21-2.71c-3.15-3.79-6.54-6-2.81-11 2.15-2.9 6.14-4.35 7.81-7.68s.6-8.06-.39-11.5c-1.35-4.75-5.79-6.8-7.38-11.16-1.19-3.29.81-7.11 3.82-8.9s6.73-1.93 10.2-1.47 6.87 1.44 10.36 1.71c10.26.82 20.75-4.47 30.6-1.49 2.17.66 4.22 1.71 6.42 2.29a21.35 21.35 0 0 0 12.83-1.11c1.44-.54 2.85-1.19 4.25-1.83a34.23 34.23 0 0 1 8.55-3.09c9.61-1.65 18.52 5 25.77 11.49a36.44 36.44 0 0 1 6.55 7.1c2 3.12 3.06 6.75 4 10.33 2.65 9.25 4.84 19.67.26 28.17Z",fill:"#3f3d56"})),b||(b=k.createElement("path",{d:"M449.32 680.76c-3.36 6.23-9.88 10.11-16.88 11.71a32.69 32.69 0 0 0 3.55-17.16c-.6-9.51-4.78-18.47-10.11-26.37a93.4 93.4 0 0 0-11.14-13.57c-3.18-3.2-7.09-5.74-10.51-8.67a34.23 34.23 0 0 1 8.55-3.09c9.61-1.65 18.52 5 25.77 11.49a36.44 36.44 0 0 1 6.55 7.1c2 3.12 3.06 6.75 4 10.33 2.61 9.31 4.8 19.73.22 28.23Z",opacity:.1})),g||(g=k.createElement("path",{d:"M82.11 372.26a10.35 10.35 0 0 0-2.22 3.55 167.86 167.86 0 0 0-14.1 57.62 5.76 5.76 0 0 1-.65 2.79 12.21 12.21 0 0 1-1.47 1.59 5.52 5.52 0 0 0 .94 8c1.65-3.11 5.6-4.12 9.11-4.39 16.81-1.33 33.23 6.49 50.09 5.9-1.19-4.11-2.9-8.06-3.87-12.22-4.29-18.47 6.41-38.58-.15-56.37-1.31-3.56-3.5-7.06-6.95-8.62a18.51 18.51 0 0 0-4.45-1.18c-4.26-.77-12.74-4.06-16.86-2.74-1.52.49-2.12 1.92-3.38 2.78-1.91 1.23-4.45 1.68-6.04 3.29Z",fill:"#6c63ff"})),v||(v=k.createElement("rect",{x:117.57,y:408.66,width:223,height:142,rx:7.97,fill:"#3f3d56"})),w||(w=k.createElement("circle",{cx:228.57,cy:479.66,r:6,fill:"#fff"})),q||(q=k.createElement("path",{d:"M147.29 195.5c-3.36 2.43-5.66 5.92-8 9.27-4.31 6.19-9.19 12.37-16.08 15.82-2.61 1.31-5.59 2.3-7.32 4.58a12.34 12.34 0 0 0-1.95 5.13 101.65 101.65 0 0 0-2.06 19.6c0 3.28.14 6.66 1.59 9.64 1.37 2.8 3.84 5.17 4.35 8.22.39 2.38-.49 4.75-.8 7.14s.23 5.22 2.44 6.36a14.79 14.79 0 0 0 3.7.87c6.65 1.48 8.88 9.28 9.89 15.73 2.26-.13 3.28-2.72 3.75-4.83l6.93-30.81c.75-3.34 2-7.21 5.33-8.38 2.23-.77 4.67-.05 7 .15 9.15.75 16.89-6.32 25.84-8.27a33 33 0 0 1 8.71-.58c7.06.35 15.27 3.25 16.77 9.84.25 1.07.4 2.35 1.4 2.88s2.05.08 3.1 0c4.48-.45 7.12 4.59 8.41 8.71l4.7 15c.7 2.27 1.88 4.94 4.34 5.23 2.27.28 4.2-1.87 4.54-4s-.4-4.34-.89-6.48c-2.21-9.85 1.17-19.93 3.23-29.8s2.43-21.21-4.48-28.81c-2.51-2.75-5.81-4.8-8.15-7.7-2.18-2.72-3.41-6.06-5.67-8.73-6.25-7.37-22.28-13.06-32.11-14-11.23-1.22-29.43 1.63-38.51 8.22Z",fill:"#3f3d56"})),O||(O=k.createElement("g",{opacity:.1},k.createElement("path",{d:"M229.37 279.8c-2.46-.3-3.64-3-4.34-5.23q-2.35-7.51-4.7-15c-1.29-4.13-3.93-9.17-8.41-8.71-1.05.11-2.18.52-3.1 0s-1.15-1.81-1.4-2.88c-1.5-6.6-9.71-9.49-16.77-9.84a33.43 33.43 0 0 0-8.71.57c-8.95 2-16.69 9-25.84 8.27-2.36-.19-4.8-.91-7-.14-3.37 1.16-4.58 5-5.33 8.38l-6.93 30.8c-.47 2.12-1.49 4.71-3.75 4.83-1-6.44-3.24-14.24-9.89-15.72a15.72 15.72 0 0 1-3.7-.87 4.34 4.34 0 0 1-1.93-2.15c-.18.93-.39 1.86-.51 2.79-.3 2.38.23 5.22 2.44 6.36a14.79 14.79 0 0 0 3.7.87c6.65 1.48 8.88 9.28 9.89 15.73 2.26-.13 3.28-2.72 3.75-4.83l6.93-30.81c.75-3.34 2-7.21 5.33-8.38 2.23-.77 4.67-.05 7 .15 9.15.75 16.89-6.32 25.84-8.27a33 33 0 0 1 8.71-.58c7.06.35 15.27 3.25 16.77 9.84.25 1.07.4 2.35 1.4 2.88s2.05.08 3.1 0c4.48-.45 7.12 4.59 8.41 8.71q2.34 7.51 4.7 15c.7 2.27 1.88 4.94 4.34 5.23 2.27.28 4.2-1.87 4.54-4a13.58 13.58 0 0 0-.6-5.31 4.13 4.13 0 0 1-3.94 2.31ZM117.83 260.76c-.51-3.05-3-5.42-4.35-8.22a16.45 16.45 0 0 1-1.48-6c0 1.12-.1 2.24-.11 3.37 0 3.28.14 6.66 1.59 9.64 1.11 2.27 2.94 4.27 3.86 6.58a15.06 15.06 0 0 0 .49-5.37ZM236.25 239.48c-1.82 8.72-4.66 17.6-3.78 26.34.57-6.45 2.45-12.94 3.78-19.34a51 51 0 0 0 1.16-14.83 61.14 61.14 0 0 1-1.16 7.83Z"}))),C||(C=k.createElement("g",{opacity:.8},k.createElement("path",{fill:"none",stroke:"#3f3d56",strokeMiterlimit:10,strokeWidth:3,d:"M330.04 290.49H955.1M385.57 290.48s29.89 4.15 14.41-27.92 42-26 42-26M584.64 290.48s29.89-4.14 14.41 27.93 42 26 42 26M871.27 290.48s-29.9-4.14-14.41 27.93-42 26-42 26M814.86 344.4H649.93"}),k.createElement("circle",{cx:330.04,cy:290.49,r:18.25,fill:"#6c63ff"}),k.createElement("circle",{cx:442.29,cy:236.3,r:18.25,fill:"#3acc6c"}),k.createElement("circle",{cx:442.29,cy:290.49,r:18.25,fill:"#6c63ff"}),k.createElement("circle",{cx:514.73,cy:290.49,r:18.25,fill:"#6c63ff"}),k.createElement("circle",{cx:641.35,cy:344.13,r:18.25,fill:"#ff6584"}),k.createElement("circle",{cx:737.03,cy:344.13,r:18.25,fill:"#ff6584"}),k.createElement("circle",{cx:732.04,cy:290.49,r:18.25,fill:"#6c63ff"}),k.createElement("circle",{cx:950.48,cy:290.49,r:18.25,fill:"#6c63ff"}),k.createElement("circle",{cx:861.12,cy:290.49,r:18.25,fill:"#6c63ff"}),k.createElement("path",{fill:"#6c63ff",d:"M299.38 122.66h61.23v42.2h-61.23z"}),k.createElement("path",{fill:"#3acc6c",d:"M411.9 122.66h61.23v42.2H411.9z"}),k.createElement("path",{fill:"#ff6584",d:"M610.48 122.66h61.23v42.2h-61.23z"}))),N||(N=k.createElement("path",{d:"M86.35 299.36s-74.77-31.44-84.57 25.29c0 0-5.11 8.84 2 16.14 0 0 1.53-3.92 8.75.13a37.17 37.17 0 0 0 8.16 3.32 18.36 18.36 0 0 0 11.62-.62s24.59-1.33 45.27-33.5c0 0 8.87-5.48 9.31-7.54l-14.82 1s1.14 10.85-5 17.36c0 0 5.44-16.84 2.83-17.31-.53-.1-7.83.86-7.83.86s1.89 18.87-8 28.63c0 0 9.18-19.19 5.19-28.29l-10.94 2.11s3 19.85-7.82 31.39c0 0 8.9-20.4 5.46-30.76l-10.47 3.52s2.52 19.41-6.53 29c0 0 7.9-24.61 4.18-28 0 0-9.42 3.82-11.43 6 0 0 1.49 14-4.26 19.05 0 0 3.53-17 1.78-17.7 0 0-10.94 8.24-14.28 15.35 0 0 4.16-10.86 12.91-17 0 0-7.35-1.24-13 1.83 0 0 3.78-7.21 15.65-3.79 0 0 8.79-6.09 10.55-6 0 0-11.23-5-19.34-4.38 0 0 8.7-5 22.08 3.35l10.45-3.77s-14.5-7.43-21.76-7.4c0 0 9.66-3.74 24.47 6.66l10.7-2.18s-12-7.35-20.09-9.06c0 0 9.7-1.54 23.18 8.55l7.31-.61s-8.85-5.22-11.53-6.49-2.56-2.09-2.56-2.09a34.89 34.89 0 0 1 17.14 8.18s15.18-.3 15.24-1.23ZM83.59 243s-26.48-61.27-64.63-33.17c0 0-8.06 2.34-8 10.7 0 0 3.14-1.46 5.13 5.07a30.1 30.1 0 0 0 3 6.61 15 15 0 0 0 7.25 6.25s15.37 13.22 46 5.89c0 0 8.4 1.79 9.83.83l-9.36-7.87s-5.51 7.1-12.89 7.44c0 0 12.83-6.9 11.55-8.67-.26-.36-5.15-3.94-5.15-3.94s-9.62 12.28-21 12.47c0 0 16.39-6.18 19.2-13.85l-7.7-5s-9.71 13.51-22.71 14.21c0 0 16.91-7.05 20.77-15.17l-8.23-3.87s-9.56 13-20.37 13.49c0 0 18.72-10.12 18.43-14.25 0 0-7.77-3.1-10.24-2.92 0 0-7.07 9.15-13.38 8.89 0 0 11.79-8.09 11.15-9.5 0 0-11.2-1.34-17.23 1 0 0 8.66-4.08 17.35-2.74 0 0-3.66-4.93-8.75-6.3 0 0 6.36-2.13 11.46 6.65 0 0 8.68 1.4 9.7 2.44 0 0-3.81-9.39-9-13.62 0 0 8 2 11.2 14.57l8.36 3.71s-4.38-12.68-8.72-16.79c0 0 7.87 3.28 10.75 17.9l7.6 4.79s-2.94-11.2-6.77-16.83c0 0 6.64 4.62 8.89 18.29l4.7 3.8s-2.29-8.14-3.16-10.42-.33-2.7-.33-2.7a28.65 28.65 0 0 1 5.49 14.68s9.24 8.44 9.81 7.93Z",fill:"#6c63ff",opacity:.1})))}},6566:(e,a,t)=>{t.d(a,{Z:()=>o});var c=t(7462),l=t(7294),r=t(6010);const n="features_xdhU",i="featureSvg__8YW";var s=[{title:"Gas-Grain Chemistry",Svg:t(7156).Z,description:l.createElement(l.Fragment,null,"Detailed, consistent treatment of chemistry across the gas phase and both the surface and the bulk of the ice mantles around dust grains.")},{title:"Modular Physics",Svg:t(4503).Z,description:l.createElement(l.Fragment,null,"Flexible, interchangeable modules to model all kinds of astrophysical objects such as molecular clouds, protostellar cores and C/J-type shocks.")},{title:"Active Development",Svg:t(8538).Z,description:l.createElement(l.Fragment,null,"Teams at UCL and Leiden Observatory are working with international collaborators to extend and improve UCLCHEM. Check our ",l.createElement("a",{href:"./blog/index.html"},"blog")," for recent updates.")}];function m(e){var a=e.Svg,t=e.title,c=e.description;return l.createElement("div",{className:(0,r.Z)("col col--4")},l.createElement("div",{className:"text--center"},l.createElement(a,{className:i,alt:t})),l.createElement("div",{className:"text--center padding-horiz--md"},l.createElement("h3",null,t),l.createElement("p",null,c)))}function o(){return l.createElement("section",{className:n},l.createElement("div",{className:"container"},l.createElement("div",{className:"row"},s.map((function(e,a){return l.createElement(m,(0,c.Z)({key:a},e))})))))}},1247:(e,a,t)=>{t.r(a),t.d(a,{default:()=>y});var c=t(7294),l=t(6010),r=t(7961),n=t(9960),i=t(2263),s=t(1207);t(6566);function m(){(0,i.Z)().siteConfig;return c.createElement("header",{className:(0,l.Z)("hero hero--primary",s.Z.heroBanner)},c.createElement("div",{className:"container"},c.createElement("h1",{className:"hero__title"},"Chemulator"),c.createElement("div",{className:"mybuttons"},c.createElement(n.Z,{className:"mybuttons button button--secondary button--lg",to:"https://github.com/uclchem/Chemulator"},"View on GitHub"),c.createElement(n.Z,{className:"mybuttons button button--secondary button--lg",to:"https://github.com/uclchem/Chemulator/zipball/master"},"Get a Zip"),c.createElement(n.Z,{className:"mybuttons button button--secondary button--lg",to:"https://github.com/uclchem/Chemulator/tarball/master"},"Get a Tarball"),c.createElement(n.Z,{className:"mybuttons button button--secondary button--lg",to:"https://arxiv.org/abs/2106.14789"},"View Article"))))}function o(){return c.createElement("div",{className:"mycontainer"},c.createElement("h3",null," Fast, accurate chemistry for hydrodynamical models "),c.createElement("p",null," Chemistry is important to hydrodynamical models as it effectively sets the gas temperature by determining the abundances of important coolants. However, full chemical networks such as those used in UCLCHEM are typically too computationally expensive to include in a hydrodynamical model. Similarly, solving the chemistry in a time dependent way can also be a huge computational burden and equilibrium is often assumed instead. "),c.createElement("p",null," Chemulator is a neural network based emulator which can calculate the time dependent temperature and chemical abundances of a gas. This significantly faster than solving the chemical network directly and can be embedded in hydrodynamical models to obtain accurate temperatures without the computational cost of a full chemical and radiative trasfer solver. "))}function h(){return c.createElement("div",{className:"mycontainer"},c.createElement("h2",null," Authors, Contributors "),c.createElement("h3",null," Main author: Jonathan Holdship "),c.createElement("p",null," Contributors: S. Viti, T. J. Haworth and J. D. Ilee "),c.createElement("p",null," You are free to download, modify, and use the code for your work. The development of the code has been funded by STFC grants ST/H001794/1 and ST/J001511/1. "))}function f(){(0,i.Z)().siteConfig;return c.createElement("header",{className:(0,l.Z)("hero hero--primary",s.Z.heroBanner)},c.createElement("div",{className:"container"},c.createElement("h1",{className:"hero__title"},"Emulchem"),c.createElement("div",{className:"mybuttons"},c.createElement(n.Z,{className:"mybuttons button button--secondary button--lg",to:"https://github.com/drd13/emulchem"},"View on GitHub"),c.createElement(n.Z,{className:"mybuttons button button--secondary button--lg",to:"https://github.com/drd13/emulchem/zipball/master"},"Get a Zip"),c.createElement(n.Z,{className:"mybuttons button button--secondary button--lg",to:"https://github.com/drd13/emulchem/tarball/master"},"Get a Tarball"),c.createElement(n.Z,{className:"mybuttons button button--secondary button--lg",to:"https://arxiv.org/abs/1907.07472"},"View Article"))))}function d(){return c.createElement("div",{className:"mycontainer"},c.createElement("h3",null," Fast, accurate chemistry for hydrodynamical models "),c.createElement("p",null," A collection of statistical emulators for the UCLCHEM and RADEX astronomical codes. The UCLCHEM emulators can be used to obtain chemical abundances for various molecules under varying physical conditions. The RADEX emulator can be used to estimate the strength of molecular lines. Both emulators are built using neural networks. For more detail on the emulation procedure and its applications, please refer to the associated paper. "))}function p(){return c.createElement("div",{className:"mycontainer"},c.createElement("h2",null," Authors, Contributors "),c.createElement("h3",null," Main author: Damien de Mijolla "),c.createElement("p",null," Contributors: Serena Viti, Jonathan Holdship, Ioanna Manolopoulou, Jeremy Yates "),c.createElement("p",null," The software is released, as is, under an MIT license. "))}function y(){var e=(0,i.Z)().siteConfig;return c.createElement(r.Z,{title:"Chemulator - "+e.title,description:"Description will go into a meta tag in "},c.createElement(m,null),c.createElement("div",{className:"container"},c.createElement(o,null)),c.createElement("div",{className:"container"},c.createElement(h,null)),c.createElement(f,null),c.createElement("div",{className:"container"},c.createElement(d,null)),c.createElement("div",{className:"container"},c.createElement(p,null)))}},1207:(e,a,t)=>{t.d(a,{Z:()=>c});const c={heroBanner:"heroBanner_qdFl",buttons:"buttons_AeoN"}}}]); \ No newline at end of file diff --git a/assets/js/1dba9094.8e2e301b.js b/assets/js/1dba9094.47998e03.js similarity index 94% rename from assets/js/1dba9094.8e2e301b.js rename to assets/js/1dba9094.47998e03.js index 49aab6c4..63b09be9 100644 --- a/assets/js/1dba9094.8e2e301b.js +++ b/assets/js/1dba9094.47998e03.js @@ -1 +1 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5217],{7264:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var r=n(4578),a=n(2600),s=n(7294),i=function(e){return s.createElement("div",e)},l=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this.props.config;if(0===(e.users||[]).length)return null;var t=e.repoUrl+"/edit/master/website/siteConfig.js",n=e.users.map((function(e){return s.createElement("a",{href:e.infoLink,key:e.infoLink},s.createElement("img",{src:e.image,alt:e.caption,title:e.caption}))}));return s.createElement("div",{className:"mainContainer"},s.createElement(i,{padding:["bottom","top"]},s.createElement("div",{className:"showcaseSection"},s.createElement("div",{className:"prose"},s.createElement("h1",null,"Who is Using This?"),s.createElement("p",null,"This project is used by many folks")),s.createElement("div",{className:"logos"},n),s.createElement("p",null,"Are you using this project?"),s.createElement("a",{href:t,className:"button"},"Add your company"))))},t}(s.Component);const c=function(e){return s.createElement(a.Z,null,s.createElement(l,e))}}}]); \ No newline at end of file +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5217],{7264:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var r=n(4578),a=n(7961),s=n(7294),i=function(e){return s.createElement("div",e)},l=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this.props.config;if(0===(e.users||[]).length)return null;var t=e.repoUrl+"/edit/master/website/siteConfig.js",n=e.users.map((function(e){return s.createElement("a",{href:e.infoLink,key:e.infoLink},s.createElement("img",{src:e.image,alt:e.caption,title:e.caption}))}));return s.createElement("div",{className:"mainContainer"},s.createElement(i,{padding:["bottom","top"]},s.createElement("div",{className:"showcaseSection"},s.createElement("div",{className:"prose"},s.createElement("h1",null,"Who is Using This?"),s.createElement("p",null,"This project is used by many folks")),s.createElement("div",{className:"logos"},n),s.createElement("p",null,"Are you using this project?"),s.createElement("a",{href:t,className:"button"},"Add your company"))))},t}(s.Component);const c=function(e){return s.createElement(a.Z,null,s.createElement(l,e))}}}]); \ No newline at end of file diff --git a/assets/js/1e1adb0b.3ea40395.js b/assets/js/1e1adb0b.3ea40395.js deleted file mode 100644 index e8c585ae..00000000 --- a/assets/js/1e1adb0b.3ea40395.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2569],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var o=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=o.createContext({}),c=function(e){var t=o.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return o.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=c(n),h=a,m=d["".concat(s,".").concat(h)]||d[h]||u[h]||r;return n?o.createElement(m,i(i({ref:t},p),{},{components:n})):o.createElement(m,i({ref:t},p))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,i=new Array(r);i[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:a,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>h,frontMatter:()=>l,metadata:()=>c,toc:()=>u});var o=n(7462),a=n(3366),r=(n(7294),n(3905)),i=["components"],l={id:"install",title:"Installation",slug:"/"},s=void 0,c={unversionedId:"install",id:"version-v3.1.0/install",title:"Installation",description:"Prerequisites",source:"@site/versioned_docs/version-v3.1.0/start-basicuse.md",sourceDirName:".",slug:"/",permalink:"/docs/v3.1.0/",tags:[],version:"v3.1.0",frontMatter:{id:"install",title:"Installation",slug:"/"},sidebar:"docs",previous:{title:"Getting Started",permalink:"/docs/v3.1.0/category/getting-started"},next:{title:"Creating a Network",permalink:"/docs/v3.1.0/network"}},p={},u=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Obtaining UCLCHEM",id:"obtaining-uclchem",level:3},{value:"Software Requirements",id:"software-requirements",level:3},{value:"Apple and Windows",id:"apple-and-windows",level:3},{value:"Apple silicon/M1",id:"apple-siliconm1",level:3},{value:"Apple Intel",id:"apple-intel",level:3},{value:"Installation",id:"installation",level:2},{value:"Checking Your Install",id:"checking-your-install",level:2}],d={toc:u};function h(e){var t=e.components,n=(0,a.Z)(e,i);return(0,r.kt)("wrapper",(0,o.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"prerequisites"},"Prerequisites"),(0,r.kt)("h3",{id:"obtaining-uclchem"},"Obtaining UCLCHEM"),(0,r.kt)("p",null,"You can visit our ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/uclchem/UCLCHEM"},"main page")," to get download links for the code, or ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/uclchem/UCLCHEM"},"our github"),". Alternatively, you can use git to clone the repo directly from terminal."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"git clone https://github.com/uclchem/UCLCHEM.git\n")),(0,r.kt)("h3",{id:"software-requirements"},"Software Requirements"),(0,r.kt)("p",null,"You need to have the following software installed on your machine:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Python 3.x"),(0,r.kt)("li",{parentName:"ul"},"GNU Make"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://gcc.gnu.org/"},"GNU compilers"))),(0,r.kt)("p",null,"You will also need various python libraries but they will be installed if you follow the installation instructions below. Please note, UCLCHEM is installed by calling the ",(0,r.kt)("inlineCode",{parentName:"p"},"python3")," command. If you have Python 3.x but your system only recognizes ",(0,r.kt)("inlineCode",{parentName:"p"},"python")," as the command to use it, you should alias ",(0,r.kt)("inlineCode",{parentName:"p"},"python")," to ",(0,r.kt)("inlineCode",{parentName:"p"},"python3")," or update ",(0,r.kt)("inlineCode",{parentName:"p"},"src/fortran_src/Makefile")," to use ",(0,r.kt)("inlineCode",{parentName:"p"},"python")," anywhere it says ",(0,r.kt)("inlineCode",{parentName:"p"},"python3"),"."),(0,r.kt)("h3",{id:"apple-and-windows"},"Apple and Windows"),(0,r.kt)("p",null,"Mac users are encourage to use Xcode to get the GNU compilers and Windows users are most likely to have success with the Windows Subsystem for Linux. See our ",(0,r.kt)("a",{parentName:"p",href:"/docs/trouble-compile"},"troubleshooting")," page for more information if you encounter problems. For Mac users with Apple silicon special installations instructions are listed below the regular installation instructions."),(0,r.kt)("h3",{id:"apple-siliconm1"},"Apple silicon/M1"),(0,r.kt)("p",null,"For this use case we recommend the usage of the package manager conda (the installer for the minimal version can be found ",(0,r.kt)("a",{parentName:"p",href:"https://docs.conda.io/en/latest/miniconda.html"},"here"),").\nEnsure that you install the apple silicon/M1 version, together with Xcode."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"conda create -n uclchem_osx\nconda activate uclchem_osx\nconda config --env --set subdir osx-arm64\nconda install python=3.9\nconda install clang\nconda install gfortran\n")),(0,r.kt)("p",null,"After this, one can continue with the installation instructions above and install. In order to use\nUCLCHEM in a new terminal session one has to use the command ",(0,r.kt)("inlineCode",{parentName:"p"},"conda activate uclchem_osx"),"."),(0,r.kt)("h3",{id:"apple-intel"},"Apple Intel"),(0,r.kt)("p",null,"Similar instructions as for M1, but now with the x86_64 instruction set. Again this requires Xcode."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"conda create -n uclchem_osx\nconda activate uclchem_osx\nconda config --env --set subdir osx-64\nconda install python=3.9\nconda install clang\nconda install gfortran\n")),(0,r.kt)("p",null,"After this, one can continue with the installation instructions above and install. In order to use\nUCLCHEM in a new terminal session one has to use the command ",(0,r.kt)("inlineCode",{parentName:"p"},"conda activate uclchem_osx"),"."),(0,r.kt)("p",null,"If you encounter further issues please check ",(0,r.kt)("a",{parentName:"p",href:"/docs/trouble-compile"},"troubleshooting"),"."),(0,r.kt)("h2",{id:"installation"},"Installation"),(0,r.kt)("p",null,"UCLCHEM is designed to be compiled to a python library. Despite this, we cannot distribute it as a python package via pypi or similar because the user needs to be able to recompile their own version in order to change the network. The chemical network is hard coded for efficiency so it is not possible to change the network without recompiling."),(0,r.kt)("p",null,"In order to compile UCLCHEM, you will simply need to do the folowing from the main directory of the repository:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"cd UCLCHEM\npip install -r requirements.txt\npip install .\n")),(0,r.kt)("p",null,"This will install the UCLCHEM library into your python environment, you can then import it and use it in your python scripts. If you get an error at this stage, it is very likely you do not have Cmake or gfortran installed. You must do this again every time you use ",(0,r.kt)("a",{parentName:"p",href:"/docs/network"},"Makerates"),"."),(0,r.kt)("p",null,"If it completes without error then, that's it! UCLCHEM is installed. We have tutorials on how to ",(0,r.kt)("a",{parentName:"p",href:"/docs/first_model"},"run your first model")," as well as more complex use cases. The rest of the 'Getting Started' section focuses on creating a network and the various parameters the user can control. "),(0,r.kt)("h2",{id:"checking-your-install"},"Checking Your Install"),(0,r.kt)("p",null,"We provide several ways to get acquainted with the code including a series of ",(0,r.kt)("a",{parentName:"p",href:"/docs/category/tutorials"},"tutorials"),". Alternatively, there are python scripts in ",(0,r.kt)("inlineCode",{parentName:"p"},"scripts/")," that can be used as templates for running your own models and comprehensive documentation on the ",(0,r.kt)("a",{parentName:"p",href:"/docs/pythonapi"},"python API")," and ",(0,r.kt)("a",{parentName:"p",href:"/docs/parameters"},"parameters"),"."),(0,r.kt)("p",null,"However, if you simply want to check whether your new network is working, you can use the ",(0,r.kt)("inlineCode",{parentName:"p"},"scripts/run_uclchem_tests.py")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"scripts/plot_uclchem_tests.py")," scripts. You can find outputs in the ",(0,r.kt)("inlineCode",{parentName:"p"},"examples/")," directory along with an explanation of what this does."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1e1adb0b.3f34b4f0.js b/assets/js/1e1adb0b.3f34b4f0.js new file mode 100644 index 00000000..6d849f3c --- /dev/null +++ b/assets/js/1e1adb0b.3f34b4f0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2569],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=a.createContext({}),c=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return a.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=c(n),h=o,m=d["".concat(s,".").concat(h)]||d[h]||u[h]||r;return n?a.createElement(m,i(i({ref:t},p),{},{components:n})):a.createElement(m,i({ref:t},p))}));function h(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:o,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>h,frontMatter:()=>l,metadata:()=>c,toc:()=>u});var a=n(7462),o=n(3366),r=(n(7294),n(3905)),i=["components"],l={id:"install",title:"Installation",slug:"/"},s=void 0,c={unversionedId:"install",id:"version-v3.1.0/install",title:"Installation",description:"Prerequisites",source:"@site/versioned_docs/version-v3.1.0/start-basicuse.md",sourceDirName:".",slug:"/",permalink:"/docs/v3.1.0/",draft:!1,tags:[],version:"v3.1.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"install",title:"Installation",slug:"/"},sidebar:"docs",previous:{title:"Getting Started",permalink:"/docs/v3.1.0/category/getting-started"},next:{title:"Creating a Network",permalink:"/docs/v3.1.0/network"}},p={},u=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Obtaining UCLCHEM",id:"obtaining-uclchem",level:3},{value:"Software Requirements",id:"software-requirements",level:3},{value:"Apple and Windows",id:"apple-and-windows",level:3},{value:"Apple silicon/M1",id:"apple-siliconm1",level:3},{value:"Apple Intel",id:"apple-intel",level:3},{value:"Installation",id:"installation",level:2},{value:"Checking Your Install",id:"checking-your-install",level:2}],d={toc:u};function h(e){var t=e.components,n=(0,o.Z)(e,i);return(0,r.kt)("wrapper",(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"prerequisites"},"Prerequisites"),(0,r.kt)("h3",{id:"obtaining-uclchem"},"Obtaining UCLCHEM"),(0,r.kt)("p",null,"You can visit our ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/uclchem/UCLCHEM"},"main page")," to get download links for the code, or ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/uclchem/UCLCHEM"},"our github"),". Alternatively, you can use git to clone the repo directly from terminal."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"git clone https://github.com/uclchem/UCLCHEM.git\n")),(0,r.kt)("h3",{id:"software-requirements"},"Software Requirements"),(0,r.kt)("p",null,"You need to have the following software installed on your machine:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Python 3.x"),(0,r.kt)("li",{parentName:"ul"},"GNU Make"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://gcc.gnu.org/"},"GNU compilers"))),(0,r.kt)("p",null,"You will also need various python libraries but they will be installed if you follow the installation instructions below. Please note, UCLCHEM is installed by calling the ",(0,r.kt)("inlineCode",{parentName:"p"},"python3")," command. If you have Python 3.x but your system only recognizes ",(0,r.kt)("inlineCode",{parentName:"p"},"python")," as the command to use it, you should alias ",(0,r.kt)("inlineCode",{parentName:"p"},"python")," to ",(0,r.kt)("inlineCode",{parentName:"p"},"python3")," or update ",(0,r.kt)("inlineCode",{parentName:"p"},"src/fortran_src/Makefile")," to use ",(0,r.kt)("inlineCode",{parentName:"p"},"python")," anywhere it says ",(0,r.kt)("inlineCode",{parentName:"p"},"python3"),"."),(0,r.kt)("h3",{id:"apple-and-windows"},"Apple and Windows"),(0,r.kt)("p",null,"Mac users are encourage to use Xcode to get the GNU compilers and Windows users are most likely to have success with the Windows Subsystem for Linux. See our ",(0,r.kt)("a",{parentName:"p",href:"/docs/trouble-compile"},"troubleshooting")," page for more information if you encounter problems. For Mac users with Apple silicon special installations instructions are listed below the regular installation instructions."),(0,r.kt)("h3",{id:"apple-siliconm1"},"Apple silicon/M1"),(0,r.kt)("p",null,"For this use case we recommend the usage of the package manager conda (the installer for the minimal version can be found ",(0,r.kt)("a",{parentName:"p",href:"https://docs.conda.io/en/latest/miniconda.html"},"here"),").\nEnsure that you install the apple silicon/M1 version, together with Xcode."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"conda create -n uclchem_osx\nconda activate uclchem_osx\nconda config --env --set subdir osx-arm64\nconda install python=3.9\nconda install clang\nconda install gfortran\n")),(0,r.kt)("p",null,"After this, one can continue with the installation instructions above and install. In order to use\nUCLCHEM in a new terminal session one has to use the command ",(0,r.kt)("inlineCode",{parentName:"p"},"conda activate uclchem_osx"),"."),(0,r.kt)("h3",{id:"apple-intel"},"Apple Intel"),(0,r.kt)("p",null,"Similar instructions as for M1, but now with the x86_64 instruction set. Again this requires Xcode."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"conda create -n uclchem_osx\nconda activate uclchem_osx\nconda config --env --set subdir osx-64\nconda install python=3.9\nconda install clang\nconda install gfortran\n")),(0,r.kt)("p",null,"After this, one can continue with the installation instructions above and install. In order to use\nUCLCHEM in a new terminal session one has to use the command ",(0,r.kt)("inlineCode",{parentName:"p"},"conda activate uclchem_osx"),"."),(0,r.kt)("p",null,"If you encounter further issues please check ",(0,r.kt)("a",{parentName:"p",href:"/docs/trouble-compile"},"troubleshooting"),"."),(0,r.kt)("h2",{id:"installation"},"Installation"),(0,r.kt)("p",null,"UCLCHEM is designed to be compiled to a python library. Despite this, we cannot distribute it as a python package via pypi or similar because the user needs to be able to recompile their own version in order to change the network. The chemical network is hard coded for efficiency so it is not possible to change the network without recompiling."),(0,r.kt)("p",null,"In order to compile UCLCHEM, you will simply need to do the folowing from the main directory of the repository:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"cd UCLCHEM\npip install -r requirements.txt\npip install .\n")),(0,r.kt)("p",null,"This will install the UCLCHEM library into your python environment, you can then import it and use it in your python scripts. If you get an error at this stage, it is very likely you do not have Cmake or gfortran installed. You must do this again every time you use ",(0,r.kt)("a",{parentName:"p",href:"/docs/network"},"Makerates"),"."),(0,r.kt)("p",null,"If it completes without error then, that's it! UCLCHEM is installed. We have tutorials on how to ",(0,r.kt)("a",{parentName:"p",href:"/docs/first_model"},"run your first model")," as well as more complex use cases. The rest of the 'Getting Started' section focuses on creating a network and the various parameters the user can control. "),(0,r.kt)("h2",{id:"checking-your-install"},"Checking Your Install"),(0,r.kt)("p",null,"We provide several ways to get acquainted with the code including a series of ",(0,r.kt)("a",{parentName:"p",href:"/docs/category/tutorials"},"tutorials"),". Alternatively, there are python scripts in ",(0,r.kt)("inlineCode",{parentName:"p"},"scripts/")," that can be used as templates for running your own models and comprehensive documentation on the ",(0,r.kt)("a",{parentName:"p",href:"/docs/pythonapi"},"python API")," and ",(0,r.kt)("a",{parentName:"p",href:"/docs/parameters"},"parameters"),"."),(0,r.kt)("p",null,"However, if you simply want to check whether your new network is working, you can use the ",(0,r.kt)("inlineCode",{parentName:"p"},"scripts/run_uclchem_tests.py")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"scripts/plot_uclchem_tests.py")," scripts. You can find outputs in the ",(0,r.kt)("inlineCode",{parentName:"p"},"examples/")," directory along with an explanation of what this does."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1f072b81.4642b958.js b/assets/js/1f072b81.4642b958.js new file mode 100644 index 00000000..d9ee2bd0 --- /dev/null +++ b/assets/js/1f072b81.4642b958.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1417],{3905:(e,t,a)=>{a.d(t,{Zo:()=>m,kt:()=>d});var n=a(7294);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function r(e){for(var t=1;t=0||(l[a]=e[a]);return l}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(l[a]=e[a])}return l}var o=n.createContext({}),p=function(e){var t=n.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):r(r({},t),e)),a},m=function(e){var t=p(e.components);return n.createElement(o.Provider,{value:t},e.children)},c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,l=e.mdxType,i=e.originalType,o=e.parentName,m=s(e,["components","mdxType","originalType","parentName"]),u=p(a),d=l,k=u["".concat(o,".").concat(d)]||u[d]||c[d]||i;return a?n.createElement(k,r(r({ref:t},m),{},{components:a})):n.createElement(k,r({ref:t},m))}));function d(e,t){var a=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var i=a.length,r=new Array(i);r[0]=u;var s={};for(var o in t)hasOwnProperty.call(t,o)&&(s[o]=t[o]);s.originalType=e,s.mdxType="string"==typeof e?e:l,r[1]=s;for(var p=2;p{a.r(t),a.d(t,{assets:()=>m,contentTitle:()=>o,default:()=>d,frontMatter:()=>s,metadata:()=>p,toc:()=>c});var n=a(7462),l=a(3366),i=(a(7294),a(3905)),r=["components"],s={id:"pythonapi",title:"Python Reference"},o="Python API",p={unversionedId:"pythonapi",id:"version-v3.1.0/pythonapi",title:"Python Reference",description:"* uclchem",source:"@site/versioned_docs/version-v3.1.0/start-pythonapi.md",sourceDirName:".",slug:"/pythonapi",permalink:"/docs/v3.1.0/pythonapi",draft:!1,tags:[],version:"v3.1.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"pythonapi",title:"Python Reference"},sidebar:"docs",previous:{title:"Model Parameters",permalink:"/docs/v3.1.0/parameters"},next:{title:"Tutorials",permalink:"/docs/v3.1.0/category/tutorials"}},m={},c=[{value:"cloud",id:"cloud",level:4},{value:"collapse",id:"collapse",level:4},{value:"hot_core",id:"hot_core",level:4},{value:"cshock",id:"cshock",level:4},{value:"jshock",id:"jshock",level:4},{value:"cshock_dissipation_time",id:"cshock_dissipation_time",level:4},{value:"check_error",id:"check_error",level:4},{value:"get_species_table",id:"get_species_table",level:4},{value:"get_reaction_table",id:"get_reaction_table",level:4},{value:"read_output_file",id:"read_output_file",level:4},{value:"create_abundance_plot",id:"create_abundance_plot",level:4},{value:"plot_species",id:"plot_species",level:4},{value:"analysis",id:"analysis",level:4},{value:"total_element_abundance",id:"total_element_abundance",level:4},{value:"check_element_conservation",id:"check_element_conservation",level:4},{value:"test_ode_conservation",id:"test_ode_conservation",level:4}],u={toc:c};function d(e){var t=e.components,a=(0,l.Z)(e,r);return(0,i.kt)("wrapper",(0,n.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"python-api"},"Python API"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem"},"uclchem"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.model"},"uclchem.model")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.model.cloud"},"cloud")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.model.collapse"},"collapse")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.model.hot_core"},"hot","_","core")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.model.cshock"},"cshock")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.model.jshock"},"jshock")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.utils"},"uclchem.utils")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.utils.cshock_dissipation_time"},"cshock","_","dissipation","_","time")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.utils.check_error"},"check","_","error")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.utils.get_species_table"},"get","_","species","_","table")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.utils.get_reaction_table"},"get","_","reaction","_","table")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.analysis"},"uclchem.analysis")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.analysis.read_output_file"},"read","_","output","_","file")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.analysis.create_abundance_plot"},"create","_","abundance","_","plot")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.analysis.plot_species"},"plot","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.analysis.analysis"},"analysis")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.analysis.total_element_abundance"},"total","_","element","_","abundance")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.analysis.check_element_conservation"},"check","_","element","_","conservation")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.tests"},"uclchem.tests")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.tests.test_ode_conservation"},"test","_","ode","_","conservation"))))),(0,i.kt)("a",{id:"uclchem"}),(0,i.kt)("h1",{id:"uclchem"},"uclchem"),(0,i.kt)("p",null,"The UCLCHEM python module is divided into three parts.\n",(0,i.kt)("inlineCode",{parentName:"p"},"model")," contains the functions for running chemical models under different physics.\n",(0,i.kt)("inlineCode",{parentName:"p"},"analysis")," contains functions for reading and plotting output files as well as investigating the chemistry.\n",(0,i.kt)("inlineCode",{parentName:"p"},"tests")," contains functions for testing the code."),(0,i.kt)("a",{id:"uclchem.model"}),(0,i.kt)("h1",{id:"uclchemmodel"},"uclchem.model"),(0,i.kt)("a",{id:"uclchem.model.cloud"}),(0,i.kt)("h4",{id:"cloud"},"cloud"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def cloud(param_dict=None, out_species=None)\n")),(0,i.kt)("p",null,"Run cloud model from UCLCHEM"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"param_dict")," ",(0,i.kt)("em",{parentName:"li"},"dict,optional")," - A dictionary of parameters where keys are any of the variables in defaultparameters.f90 and values are value for current run."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"out_species")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - A list of species for which final abundance will be returned. If None, no abundances will be returned.. Defaults to None.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," A list where the first element is always an integer which is negative if the model failed to run and can be sent to ",(0,i.kt)("inlineCode",{parentName:"p"},"uclchem.utils.check_error()")," to see more details. If the ",(0,i.kt)("inlineCode",{parentName:"p"},"out_species")," parametere is provided, the remaining elements of this list will be the final abundances of the species in out_species."),(0,i.kt)("a",{id:"uclchem.model.collapse"}),(0,i.kt)("h4",{id:"collapse"},"collapse"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def collapse(collapse, physics_output, param_dict=None, out_species=None)\n")),(0,i.kt)("p",null,"Run collapse model from UCLCHEM based on Priestley et al 2018 AJ 156 51 (",(0,i.kt)("a",{parentName:"p",href:"https://ui.adsabs.harvard.edu/abs/2018AJ....156...51P/abstract"},"https://ui.adsabs.harvard.edu/abs/2018AJ....156...51P/abstract"),")"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"collapse")," ",(0,i.kt)("em",{parentName:"li"},"str")," - A string containing the collapse type, options are 'BE1.1', 'BE4', 'filament', or 'ambipolar'"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"physics_output(str)")," - Filename to store physics output, only relevant for 'filament' and 'ambipolar' collapses. If None, no physics output will be saved."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"param_dict")," ",(0,i.kt)("em",{parentName:"li"},"dict,optional")," - A dictionary of parameters where keys are any of the variables in defaultparameters.f90 and values are value for current run."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"out_species")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - A list of species for which final abundance will be returned. If None, no abundances will be returned.. Defaults to None.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," A list where the first element is always an integer which is negative if the model failed to run and can be sent to ",(0,i.kt)("inlineCode",{parentName:"p"},"uclchem.utils.check_error()")," to see more details. If the ",(0,i.kt)("inlineCode",{parentName:"p"},"out_species")," parametere is provided, the remaining elements of this list will be the final abundances of the species in out_species."),(0,i.kt)("a",{id:"uclchem.model.hot_core"}),(0,i.kt)("h4",{id:"hot_core"},"hot","_","core"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def hot_core(temp_indx, max_temperature, param_dict=None, out_species=None)\n")),(0,i.kt)("p",null,"Run hot core model from UCLCHEM, based on Viti et al. 2004 and Collings et al. 2004"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"temp_indx")," ",(0,i.kt)("em",{parentName:"li"},"int")," - Used to select the mass of hot core. 1=1Msun,2=5, 3=10, 4=15, 5=25,6=60]"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"max_temperature")," ",(0,i.kt)("em",{parentName:"li"},"float")," - Value at which gas temperature will stop increasing."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"param_dict")," ",(0,i.kt)("em",{parentName:"li"},"dict,optional")," - A dictionary of parameters where keys are any of the variables in defaultparameters.f90 and values are value for current run."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"out_species")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - A list of species for which final abundance will be returned. If None, no abundances will be returned.. Defaults to None.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," A list where the first element is always an integer which is negative if the model failed to run and can be sent to ",(0,i.kt)("inlineCode",{parentName:"p"},"uclchem.utils.check_error()")," to see more details. If the ",(0,i.kt)("inlineCode",{parentName:"p"},"out_species")," parametere is provided, the remaining elements of this list will be the final abundances of the species in out_species."),(0,i.kt)("a",{id:"uclchem.model.cshock"}),(0,i.kt)("h4",{id:"cshock"},"cshock"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def cshock(shock_vel, timestep_factor=0.01, minimum_temperature=0.0, param_dict=None, out_species=None)\n")),(0,i.kt)("p",null,"Run C-type shock model from UCLCHEM"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"shock_vel")," ",(0,i.kt)("em",{parentName:"li"},"float")," - Velocity of the shock in km/s"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"timestep_factor")," ",(0,i.kt)("em",{parentName:"li"},"float, optional")," - Whilst the time is less than 2 times the dissipation time of shock, timestep is timestep_factor*dissipation time. Essentially controls\nhow well resolved the shock is in your model. Defaults to 0.01."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"minimum_temperature")," ",(0,i.kt)("em",{parentName:"li"},"float, optional")," - Minimum post-shock temperature. Defaults to 0.0 (no minimum). The shocked gas typically cools to ",(0,i.kt)("inlineCode",{parentName:"li"},"initialTemp")," if this is not set."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"param_dict")," ",(0,i.kt)("em",{parentName:"li"},"dict,optional")," - A dictionary of parameters where keys are any of the variables in defaultparameters.f90 and values are value for current run."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"out_species")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - A list of species for which final abundance will be returned. If None, no abundances will be returned.. Defaults to None.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," A list where the first element is always an integer which is negative if the model failed to run and can be sent to ",(0,i.kt)("inlineCode",{parentName:"p"},"uclchem.utils.check_error()")," to see more details. If the model succeeded, the second element is the dissipation time and further elements are the abundances of all species in ",(0,i.kt)("inlineCode",{parentName:"p"},"out_species"),"."),(0,i.kt)("a",{id:"uclchem.model.jshock"}),(0,i.kt)("h4",{id:"jshock"},"jshock"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def jshock(shock_vel, param_dict=None, out_species=None)\n")),(0,i.kt)("p",null,"Run J-type shock model from UCLCHEM"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"shock_vel")," ",(0,i.kt)("em",{parentName:"li"},"float")," - Velocity of the shock"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"param_dict")," ",(0,i.kt)("em",{parentName:"li"},"dict,optional")," - A dictionary of parameters where keys are any of the variables in defaultparameters.f90 and values are value for current run."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"out_species")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - A list of species for which final abundance will be returned. If None, no abundances will be returned.. Defaults to None.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," A list where the first element is always an integer which is negative if the model failed to run and can be sent to ",(0,i.kt)("inlineCode",{parentName:"p"},"uclchem.utils.check_error()")," to see more details. If the model succeeded, the second element is the dissipation time and further elements are the abundances of all species in ",(0,i.kt)("inlineCode",{parentName:"p"},"out_species"),"."),(0,i.kt)("a",{id:"uclchem.utils"}),(0,i.kt)("h1",{id:"uclchemutils"},"uclchem.utils"),(0,i.kt)("a",{id:"uclchem.utils.cshock_dissipation_time"}),(0,i.kt)("h4",{id:"cshock_dissipation_time"},"cshock","_","dissipation","_","time"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def cshock_dissipation_time(shock_vel, initial_dens)\n")),(0,i.kt)("p",null,"A simple function used to calculate the dissipation time of a C-type shock.\nUse to obtain a useful timescale for your C-shock model runs. Velocity of\nions and neutrals equalizes at dissipation time and full cooling takes a few dissipation times."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"shock_vel")," ",(0,i.kt)("em",{parentName:"li"},"float")," - Velocity of the shock in km/s"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"initial_dens")," ",(0,i.kt)("em",{parentName:"li"},"float")," - Preshock density of the gas in cm",(0,i.kt)("span",{parentName:"li",className:"math math-inline"},(0,i.kt)("span",{parentName:"span",className:"katex"},(0,i.kt)("span",{parentName:"span",className:"katex-mathml"},(0,i.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,i.kt)("semantics",{parentName:"math"},(0,i.kt)("mrow",{parentName:"semantics"},(0,i.kt)("msup",{parentName:"mrow"},(0,i.kt)("mrow",{parentName:"msup"}),(0,i.kt)("mrow",{parentName:"msup"},(0,i.kt)("mo",{parentName:"mrow"},"\u2212"),(0,i.kt)("mn",{parentName:"mrow"},"3")))),(0,i.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-3}")))),(0,i.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,i.kt)("span",{parentName:"span",className:"base"},(0,i.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,i.kt)("span",{parentName:"span",className:"mord"},(0,i.kt)("span",{parentName:"span"}),(0,i.kt)("span",{parentName:"span",className:"msupsub"},(0,i.kt)("span",{parentName:"span",className:"vlist-t"},(0,i.kt)("span",{parentName:"span",className:"vlist-r"},(0,i.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,i.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,i.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,i.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,i.kt)("span",{parentName:"span",className:"mord mtight"},(0,i.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,i.kt)("span",{parentName:"span",className:"mord mtight"},"3"))))))))))))))),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"float")," - The dissipation time of the shock in years")),(0,i.kt)("a",{id:"uclchem.utils.check_error"}),(0,i.kt)("h4",{id:"check_error"},"check","_","error"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def check_error(error_code)\n")),(0,i.kt)("p",null,'Converts the UCLCHEM integer result flag to a simple messaging explaining what went wrong"'),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"error_code")," ",(0,i.kt)("em",{parentName:"li"},"int")," - Error code returned by UCLCHEM models, the first element of the results list.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"str")," - Error message")),(0,i.kt)("a",{id:"uclchem.utils.get_species_table"}),(0,i.kt)("h4",{id:"get_species_table"},"get","_","species","_","table"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_species_table()\n")),(0,i.kt)("p",null,"A simple function to load the list of species in the UCLCHEM network into a pandas dataframe."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"pandas.DataFrame")," - A dataframe containing the species names and their details")),(0,i.kt)("a",{id:"uclchem.utils.get_reaction_table"}),(0,i.kt)("h4",{id:"get_reaction_table"},"get","_","reaction","_","table"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_reaction_table()\n")),(0,i.kt)("p",null,"A function to load the reaction table from the UCLCHEM network into a pandas dataframe."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"pandas.DataFrame")," - A dataframe containing the reactions and their rates")),(0,i.kt)("a",{id:"uclchem.analysis"}),(0,i.kt)("h1",{id:"uclchemanalysis"},"uclchem.analysis"),(0,i.kt)("a",{id:"uclchem.analysis.read_output_file"}),(0,i.kt)("h4",{id:"read_output_file"},"read","_","output","_","file"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def read_output_file(output_file)\n")),(0,i.kt)("p",null,"Read the output of a UCLCHEM run created with the outputFile parameter into a pandas DataFrame"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"output_file")," ",(0,i.kt)("em",{parentName:"li"},"str")," - path to file containing a full UCLCHEM output")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"pandas.DataFrame")," - A dataframe containing the abundances and physical parameters of the model at every time step.")),(0,i.kt)("a",{id:"uclchem.analysis.create_abundance_plot"}),(0,i.kt)("h4",{id:"create_abundance_plot"},"create","_","abundance","_","plot"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def create_abundance_plot(df, species, figsize=(16, 9), plot_file=None)\n")),(0,i.kt)("p",null,"Create a plot of the abundance of a list of species through time."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"df")," ",(0,i.kt)("em",{parentName:"li"},"pd.DataFrame")," - Pandas dataframe containing the UCLCHEM output, see ",(0,i.kt)("inlineCode",{parentName:"li"},"read_output_file")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species")," ",(0,i.kt)("em",{parentName:"li"},"list")," - list of strings containing species names. Using a $ instead of # or @ will plot the sum of surface and bulk abundances."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"figsize")," ",(0,i.kt)("em",{parentName:"li"},"tuple, optional")," - Size of figure, width by height in inches. Defaults to (16, 9)."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"plot_file")," ",(0,i.kt)("em",{parentName:"li"},"str, optional")," - Path to file where figure will be saved. If None, figure is not saved. Defaults to None.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"fig,ax")," - matplotlib figure and axis objects")),(0,i.kt)("a",{id:"uclchem.analysis.plot_species"}),(0,i.kt)("h4",{id:"plot_species"},"plot","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def plot_species(ax, df, species)\n")),(0,i.kt)("p",null,"Plot the abundance of a list of species through time directly onto an axis."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"ax")," ",(0,i.kt)("em",{parentName:"li"},"pyplot.axis")," - An axis object to plot on"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"df")," ",(0,i.kt)("em",{parentName:"li"},"pd.DataFrame")," - A dataframe created by ",(0,i.kt)("inlineCode",{parentName:"li"},"read_output_file")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species")," ",(0,i.kt)("em",{parentName:"li"},"str"),' - A list of species names to be plotted. If species name starts with "$" instead of # or @, plots the sum of surface and bulk abundances')),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"pyplot.axis")," - Modified input axis is returned")),(0,i.kt)("a",{id:"uclchem.analysis.analysis"}),(0,i.kt)("h4",{id:"analysis"},"analysis"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def analysis(species_name, result_file, output_file, rate_threshold=0.99)\n")),(0,i.kt)("p",null,"A function which loops over every time step in an output file and finds the rate of change of a species at that time due to each of the reactions it is involved in.\nFrom this, the most important reactions are identified and printed to file. This can be used to understand the chemical reason behind a species' behaviour."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_name")," ",(0,i.kt)("em",{parentName:"li"},"str")," - Name of species to be analysed"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"result_file")," ",(0,i.kt)("em",{parentName:"li"},"str")," - The path to the file containing the UCLCHEM output"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"output_file")," ",(0,i.kt)("em",{parentName:"li"},"str")," - The path to the file where the analysis output will be written"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"rate_threshold")," ",(0,i.kt)("em",{parentName:"li"},"float,optional")," - Analysis output will contain the only the most efficient reactions that are responsible for rate_threshold of the total production and destruction rate. Defaults to 0.99.")),(0,i.kt)("a",{id:"uclchem.analysis.total_element_abundance"}),(0,i.kt)("h4",{id:"total_element_abundance"},"total","_","element","_","abundance"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def total_element_abundance(element, df)\n")),(0,i.kt)("p",null,"Calculates that the total elemental abundance of a species as a function of time. Allows you to check conservation."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"element")," ",(0,i.kt)("em",{parentName:"li"},"str")," - Name of element"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"df")," ",(0,i.kt)("em",{parentName:"li"},"pandas.DataFrame")," - DataFrame from ",(0,i.kt)("inlineCode",{parentName:"li"},"read_output_file()"))),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"pandas.Series")," - Total abundance of element for all time steps in df.")),(0,i.kt)("a",{id:"uclchem.analysis.check_element_conservation"}),(0,i.kt)("h4",{id:"check_element_conservation"},"check","_","element","_","conservation"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},'def check_element_conservation(df, element_list=["H", "N", "C", "O"])\n')),(0,i.kt)("p",null,"Check the conservation of major element by comparing total abundance at start and end of model"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"df")," ",(0,i.kt)("em",{parentName:"li"},"pandas.DataFrame")," - UCLCHEM output in format from ",(0,i.kt)("inlineCode",{parentName:"li"},"read_output_file")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"element_list")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - List of elements to check. Defaults to ",'["H", "N", "C", "O"]',".")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"dict")," - Dictionary containing the change in the total abundance of each element as a fraction of initial value")),(0,i.kt)("a",{id:"uclchem.tests"}),(0,i.kt)("h1",{id:"uclchemtests"},"uclchem.tests"),(0,i.kt)("a",{id:"uclchem.tests.test_ode_conservation"}),(0,i.kt)("h4",{id:"test_ode_conservation"},"test","_","ode","_","conservation"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},'def test_ode_conservation(element_list=["H", "N", "C", "O"])\n')),(0,i.kt)("p",null,"Test whether the ODEs conserve elements. Useful to run each time you change network.\nIntegrator errors may still cause elements not to be conserved but they cannot be conserved\nif the ODEs are not correct."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"element_list")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - A list of elements for which to check the conservation. Defaults to ",'["H", "N", "C", "O"]',".")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"dict")," - A dictionary of the elements in element list with values representing the total rate of change of each element.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1f072b81.a40a0e84.js b/assets/js/1f072b81.a40a0e84.js deleted file mode 100644 index a84b9980..00000000 --- a/assets/js/1f072b81.a40a0e84.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1417],{3905:(e,t,a)=>{a.d(t,{Zo:()=>m,kt:()=>k});var n=a(7294);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function r(e){for(var t=1;t=0||(l[a]=e[a]);return l}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(l[a]=e[a])}return l}var o=n.createContext({}),p=function(e){var t=n.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):r(r({},t),e)),a},m=function(e){var t=p(e.components);return n.createElement(o.Provider,{value:t},e.children)},c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,l=e.mdxType,i=e.originalType,o=e.parentName,m=s(e,["components","mdxType","originalType","parentName"]),u=p(a),k=l,d=u["".concat(o,".").concat(k)]||u[k]||c[k]||i;return a?n.createElement(d,r(r({ref:t},m),{},{components:a})):n.createElement(d,r({ref:t},m))}));function k(e,t){var a=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var i=a.length,r=new Array(i);r[0]=u;var s={};for(var o in t)hasOwnProperty.call(t,o)&&(s[o]=t[o]);s.originalType=e,s.mdxType="string"==typeof e?e:l,r[1]=s;for(var p=2;p{a.r(t),a.d(t,{assets:()=>m,contentTitle:()=>o,default:()=>k,frontMatter:()=>s,metadata:()=>p,toc:()=>c});var n=a(7462),l=a(3366),i=(a(7294),a(3905)),r=["components"],s={id:"pythonapi",title:"Python Reference"},o="Python API",p={unversionedId:"pythonapi",id:"version-v3.1.0/pythonapi",title:"Python Reference",description:"* uclchem",source:"@site/versioned_docs/version-v3.1.0/start-pythonapi.md",sourceDirName:".",slug:"/pythonapi",permalink:"/docs/v3.1.0/pythonapi",tags:[],version:"v3.1.0",frontMatter:{id:"pythonapi",title:"Python Reference"},sidebar:"docs",previous:{title:"Model Parameters",permalink:"/docs/v3.1.0/parameters"},next:{title:"Tutorials",permalink:"/docs/v3.1.0/category/tutorials"}},m={},c=[{value:"cloud",id:"cloud",level:4},{value:"collapse",id:"collapse",level:4},{value:"hot_core",id:"hot_core",level:4},{value:"cshock",id:"cshock",level:4},{value:"jshock",id:"jshock",level:4},{value:"cshock_dissipation_time",id:"cshock_dissipation_time",level:4},{value:"check_error",id:"check_error",level:4},{value:"get_species_table",id:"get_species_table",level:4},{value:"get_reaction_table",id:"get_reaction_table",level:4},{value:"read_output_file",id:"read_output_file",level:4},{value:"create_abundance_plot",id:"create_abundance_plot",level:4},{value:"plot_species",id:"plot_species",level:4},{value:"analysis",id:"analysis",level:4},{value:"total_element_abundance",id:"total_element_abundance",level:4},{value:"check_element_conservation",id:"check_element_conservation",level:4},{value:"test_ode_conservation",id:"test_ode_conservation",level:4}],u={toc:c};function k(e){var t=e.components,a=(0,l.Z)(e,r);return(0,i.kt)("wrapper",(0,n.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"python-api"},"Python API"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem"},"uclchem"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.model"},"uclchem.model")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.model.cloud"},"cloud")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.model.collapse"},"collapse")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.model.hot_core"},"hot","_","core")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.model.cshock"},"cshock")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.model.jshock"},"jshock")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.utils"},"uclchem.utils")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.utils.cshock_dissipation_time"},"cshock","_","dissipation","_","time")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.utils.check_error"},"check","_","error")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.utils.get_species_table"},"get","_","species","_","table")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.utils.get_reaction_table"},"get","_","reaction","_","table")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.analysis"},"uclchem.analysis")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.analysis.read_output_file"},"read","_","output","_","file")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.analysis.create_abundance_plot"},"create","_","abundance","_","plot")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.analysis.plot_species"},"plot","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.analysis.analysis"},"analysis")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.analysis.total_element_abundance"},"total","_","element","_","abundance")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.analysis.check_element_conservation"},"check","_","element","_","conservation")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.tests"},"uclchem.tests")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.tests.test_ode_conservation"},"test","_","ode","_","conservation"))))),(0,i.kt)("a",{id:"uclchem"}),(0,i.kt)("h1",{id:"uclchem"},"uclchem"),(0,i.kt)("p",null,"The UCLCHEM python module is divided into three parts.\n",(0,i.kt)("inlineCode",{parentName:"p"},"model")," contains the functions for running chemical models under different physics.\n",(0,i.kt)("inlineCode",{parentName:"p"},"analysis")," contains functions for reading and plotting output files as well as investigating the chemistry.\n",(0,i.kt)("inlineCode",{parentName:"p"},"tests")," contains functions for testing the code."),(0,i.kt)("a",{id:"uclchem.model"}),(0,i.kt)("h1",{id:"uclchemmodel"},"uclchem.model"),(0,i.kt)("a",{id:"uclchem.model.cloud"}),(0,i.kt)("h4",{id:"cloud"},"cloud"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def cloud(param_dict=None, out_species=None)\n")),(0,i.kt)("p",null,"Run cloud model from UCLCHEM"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"param_dict")," ",(0,i.kt)("em",{parentName:"li"},"dict,optional")," - A dictionary of parameters where keys are any of the variables in defaultparameters.f90 and values are value for current run."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"out_species")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - A list of species for which final abundance will be returned. If None, no abundances will be returned.. Defaults to None.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," A list where the first element is always an integer which is negative if the model failed to run and can be sent to ",(0,i.kt)("inlineCode",{parentName:"p"},"uclchem.utils.check_error()")," to see more details. If the ",(0,i.kt)("inlineCode",{parentName:"p"},"out_species")," parametere is provided, the remaining elements of this list will be the final abundances of the species in out_species."),(0,i.kt)("a",{id:"uclchem.model.collapse"}),(0,i.kt)("h4",{id:"collapse"},"collapse"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def collapse(collapse, physics_output, param_dict=None, out_species=None)\n")),(0,i.kt)("p",null,"Run collapse model from UCLCHEM based on Priestley et al 2018 AJ 156 51 (",(0,i.kt)("a",{parentName:"p",href:"https://ui.adsabs.harvard.edu/abs/2018AJ....156...51P/abstract"},"https://ui.adsabs.harvard.edu/abs/2018AJ....156...51P/abstract"),")"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"collapse")," ",(0,i.kt)("em",{parentName:"li"},"str")," - A string containing the collapse type, options are 'BE1.1', 'BE4', 'filament', or 'ambipolar'"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"physics_output(str)")," - Filename to store physics output, only relevant for 'filament' and 'ambipolar' collapses. If None, no physics output will be saved."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"param_dict")," ",(0,i.kt)("em",{parentName:"li"},"dict,optional")," - A dictionary of parameters where keys are any of the variables in defaultparameters.f90 and values are value for current run."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"out_species")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - A list of species for which final abundance will be returned. If None, no abundances will be returned.. Defaults to None.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," A list where the first element is always an integer which is negative if the model failed to run and can be sent to ",(0,i.kt)("inlineCode",{parentName:"p"},"uclchem.utils.check_error()")," to see more details. If the ",(0,i.kt)("inlineCode",{parentName:"p"},"out_species")," parametere is provided, the remaining elements of this list will be the final abundances of the species in out_species."),(0,i.kt)("a",{id:"uclchem.model.hot_core"}),(0,i.kt)("h4",{id:"hot_core"},"hot","_","core"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def hot_core(temp_indx, max_temperature, param_dict=None, out_species=None)\n")),(0,i.kt)("p",null,"Run hot core model from UCLCHEM, based on Viti et al. 2004 and Collings et al. 2004"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"temp_indx")," ",(0,i.kt)("em",{parentName:"li"},"int")," - Used to select the mass of hot core. 1=1Msun,2=5, 3=10, 4=15, 5=25,6=60]"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"max_temperature")," ",(0,i.kt)("em",{parentName:"li"},"float")," - Value at which gas temperature will stop increasing."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"param_dict")," ",(0,i.kt)("em",{parentName:"li"},"dict,optional")," - A dictionary of parameters where keys are any of the variables in defaultparameters.f90 and values are value for current run."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"out_species")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - A list of species for which final abundance will be returned. If None, no abundances will be returned.. Defaults to None.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," A list where the first element is always an integer which is negative if the model failed to run and can be sent to ",(0,i.kt)("inlineCode",{parentName:"p"},"uclchem.utils.check_error()")," to see more details. If the ",(0,i.kt)("inlineCode",{parentName:"p"},"out_species")," parametere is provided, the remaining elements of this list will be the final abundances of the species in out_species."),(0,i.kt)("a",{id:"uclchem.model.cshock"}),(0,i.kt)("h4",{id:"cshock"},"cshock"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def cshock(shock_vel, timestep_factor=0.01, minimum_temperature=0.0, param_dict=None, out_species=None)\n")),(0,i.kt)("p",null,"Run C-type shock model from UCLCHEM"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"shock_vel")," ",(0,i.kt)("em",{parentName:"li"},"float")," - Velocity of the shock in km/s"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"timestep_factor")," ",(0,i.kt)("em",{parentName:"li"},"float, optional")," - Whilst the time is less than 2 times the dissipation time of shock, timestep is timestep_factor*dissipation time. Essentially controls\nhow well resolved the shock is in your model. Defaults to 0.01."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"minimum_temperature")," ",(0,i.kt)("em",{parentName:"li"},"float, optional")," - Minimum post-shock temperature. Defaults to 0.0 (no minimum). The shocked gas typically cools to ",(0,i.kt)("inlineCode",{parentName:"li"},"initialTemp")," if this is not set."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"param_dict")," ",(0,i.kt)("em",{parentName:"li"},"dict,optional")," - A dictionary of parameters where keys are any of the variables in defaultparameters.f90 and values are value for current run."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"out_species")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - A list of species for which final abundance will be returned. If None, no abundances will be returned.. Defaults to None.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," A list where the first element is always an integer which is negative if the model failed to run and can be sent to ",(0,i.kt)("inlineCode",{parentName:"p"},"uclchem.utils.check_error()")," to see more details. If the model succeeded, the second element is the dissipation time and further elements are the abundances of all species in ",(0,i.kt)("inlineCode",{parentName:"p"},"out_species"),"."),(0,i.kt)("a",{id:"uclchem.model.jshock"}),(0,i.kt)("h4",{id:"jshock"},"jshock"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def jshock(shock_vel, param_dict=None, out_species=None)\n")),(0,i.kt)("p",null,"Run J-type shock model from UCLCHEM"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"shock_vel")," ",(0,i.kt)("em",{parentName:"li"},"float")," - Velocity of the shock"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"param_dict")," ",(0,i.kt)("em",{parentName:"li"},"dict,optional")," - A dictionary of parameters where keys are any of the variables in defaultparameters.f90 and values are value for current run."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"out_species")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - A list of species for which final abundance will be returned. If None, no abundances will be returned.. Defaults to None.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," A list where the first element is always an integer which is negative if the model failed to run and can be sent to ",(0,i.kt)("inlineCode",{parentName:"p"},"uclchem.utils.check_error()")," to see more details. If the model succeeded, the second element is the dissipation time and further elements are the abundances of all species in ",(0,i.kt)("inlineCode",{parentName:"p"},"out_species"),"."),(0,i.kt)("a",{id:"uclchem.utils"}),(0,i.kt)("h1",{id:"uclchemutils"},"uclchem.utils"),(0,i.kt)("a",{id:"uclchem.utils.cshock_dissipation_time"}),(0,i.kt)("h4",{id:"cshock_dissipation_time"},"cshock","_","dissipation","_","time"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def cshock_dissipation_time(shock_vel, initial_dens)\n")),(0,i.kt)("p",null,"A simple function used to calculate the dissipation time of a C-type shock.\nUse to obtain a useful timescale for your C-shock model runs. Velocity of\nions and neutrals equalizes at dissipation time and full cooling takes a few dissipation times."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"shock_vel")," ",(0,i.kt)("em",{parentName:"li"},"float")," - Velocity of the shock in km/s"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"initial_dens")," ",(0,i.kt)("em",{parentName:"li"},"float")," - Preshock density of the gas in cm",(0,i.kt)("span",{parentName:"li",className:"math math-inline"},(0,i.kt)("span",{parentName:"span",className:"katex"},(0,i.kt)("span",{parentName:"span",className:"katex-mathml"},(0,i.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,i.kt)("semantics",{parentName:"math"},(0,i.kt)("mrow",{parentName:"semantics"},(0,i.kt)("msup",{parentName:"mrow"},(0,i.kt)("mrow",{parentName:"msup"}),(0,i.kt)("mrow",{parentName:"msup"},(0,i.kt)("mo",{parentName:"mrow"},"\u2212"),(0,i.kt)("mn",{parentName:"mrow"},"3")))),(0,i.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-3}")))),(0,i.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,i.kt)("span",{parentName:"span",className:"base"},(0,i.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,i.kt)("span",{parentName:"span",className:"mord"},(0,i.kt)("span",{parentName:"span"}),(0,i.kt)("span",{parentName:"span",className:"msupsub"},(0,i.kt)("span",{parentName:"span",className:"vlist-t"},(0,i.kt)("span",{parentName:"span",className:"vlist-r"},(0,i.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,i.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,i.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,i.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,i.kt)("span",{parentName:"span",className:"mord mtight"},(0,i.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,i.kt)("span",{parentName:"span",className:"mord mtight"},"3"))))))))))))))),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"float")," - The dissipation time of the shock in years")),(0,i.kt)("a",{id:"uclchem.utils.check_error"}),(0,i.kt)("h4",{id:"check_error"},"check","_","error"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def check_error(error_code)\n")),(0,i.kt)("p",null,'Converts the UCLCHEM integer result flag to a simple messaging explaining what went wrong"'),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"error_code")," ",(0,i.kt)("em",{parentName:"li"},"int")," - Error code returned by UCLCHEM models, the first element of the results list.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"str")," - Error message")),(0,i.kt)("a",{id:"uclchem.utils.get_species_table"}),(0,i.kt)("h4",{id:"get_species_table"},"get","_","species","_","table"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_species_table()\n")),(0,i.kt)("p",null,"A simple function to load the list of species in the UCLCHEM network into a pandas dataframe."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"pandas.DataFrame")," - A dataframe containing the species names and their details")),(0,i.kt)("a",{id:"uclchem.utils.get_reaction_table"}),(0,i.kt)("h4",{id:"get_reaction_table"},"get","_","reaction","_","table"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_reaction_table()\n")),(0,i.kt)("p",null,"A function to load the reaction table from the UCLCHEM network into a pandas dataframe."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"pandas.DataFrame")," - A dataframe containing the reactions and their rates")),(0,i.kt)("a",{id:"uclchem.analysis"}),(0,i.kt)("h1",{id:"uclchemanalysis"},"uclchem.analysis"),(0,i.kt)("a",{id:"uclchem.analysis.read_output_file"}),(0,i.kt)("h4",{id:"read_output_file"},"read","_","output","_","file"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def read_output_file(output_file)\n")),(0,i.kt)("p",null,"Read the output of a UCLCHEM run created with the outputFile parameter into a pandas DataFrame"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"output_file")," ",(0,i.kt)("em",{parentName:"li"},"str")," - path to file containing a full UCLCHEM output")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"pandas.DataFrame")," - A dataframe containing the abundances and physical parameters of the model at every time step.")),(0,i.kt)("a",{id:"uclchem.analysis.create_abundance_plot"}),(0,i.kt)("h4",{id:"create_abundance_plot"},"create","_","abundance","_","plot"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def create_abundance_plot(df, species, figsize=(16, 9), plot_file=None)\n")),(0,i.kt)("p",null,"Create a plot of the abundance of a list of species through time."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"df")," ",(0,i.kt)("em",{parentName:"li"},"pd.DataFrame")," - Pandas dataframe containing the UCLCHEM output, see ",(0,i.kt)("inlineCode",{parentName:"li"},"read_output_file")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species")," ",(0,i.kt)("em",{parentName:"li"},"list")," - list of strings containing species names. Using a $ instead of # or @ will plot the sum of surface and bulk abundances."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"figsize")," ",(0,i.kt)("em",{parentName:"li"},"tuple, optional")," - Size of figure, width by height in inches. Defaults to (16, 9)."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"plot_file")," ",(0,i.kt)("em",{parentName:"li"},"str, optional")," - Path to file where figure will be saved. If None, figure is not saved. Defaults to None.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"fig,ax")," - matplotlib figure and axis objects")),(0,i.kt)("a",{id:"uclchem.analysis.plot_species"}),(0,i.kt)("h4",{id:"plot_species"},"plot","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def plot_species(ax, df, species)\n")),(0,i.kt)("p",null,"Plot the abundance of a list of species through time directly onto an axis."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"ax")," ",(0,i.kt)("em",{parentName:"li"},"pyplot.axis")," - An axis object to plot on"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"df")," ",(0,i.kt)("em",{parentName:"li"},"pd.DataFrame")," - A dataframe created by ",(0,i.kt)("inlineCode",{parentName:"li"},"read_output_file")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species")," ",(0,i.kt)("em",{parentName:"li"},"str"),' - A list of species names to be plotted. If species name starts with "$" instead of # or @, plots the sum of surface and bulk abundances')),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"pyplot.axis")," - Modified input axis is returned")),(0,i.kt)("a",{id:"uclchem.analysis.analysis"}),(0,i.kt)("h4",{id:"analysis"},"analysis"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def analysis(species_name, result_file, output_file, rate_threshold=0.99)\n")),(0,i.kt)("p",null,"A function which loops over every time step in an output file and finds the rate of change of a species at that time due to each of the reactions it is involved in.\nFrom this, the most important reactions are identified and printed to file. This can be used to understand the chemical reason behind a species' behaviour."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_name")," ",(0,i.kt)("em",{parentName:"li"},"str")," - Name of species to be analysed"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"result_file")," ",(0,i.kt)("em",{parentName:"li"},"str")," - The path to the file containing the UCLCHEM output"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"output_file")," ",(0,i.kt)("em",{parentName:"li"},"str")," - The path to the file where the analysis output will be written"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"rate_threshold")," ",(0,i.kt)("em",{parentName:"li"},"float,optional")," - Analysis output will contain the only the most efficient reactions that are responsible for rate_threshold of the total production and destruction rate. Defaults to 0.99.")),(0,i.kt)("a",{id:"uclchem.analysis.total_element_abundance"}),(0,i.kt)("h4",{id:"total_element_abundance"},"total","_","element","_","abundance"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def total_element_abundance(element, df)\n")),(0,i.kt)("p",null,"Calculates that the total elemental abundance of a species as a function of time. Allows you to check conservation."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"element")," ",(0,i.kt)("em",{parentName:"li"},"str")," - Name of element"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"df")," ",(0,i.kt)("em",{parentName:"li"},"pandas.DataFrame")," - DataFrame from ",(0,i.kt)("inlineCode",{parentName:"li"},"read_output_file()"))),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"pandas.Series")," - Total abundance of element for all time steps in df.")),(0,i.kt)("a",{id:"uclchem.analysis.check_element_conservation"}),(0,i.kt)("h4",{id:"check_element_conservation"},"check","_","element","_","conservation"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},'def check_element_conservation(df, element_list=["H", "N", "C", "O"])\n')),(0,i.kt)("p",null,"Check the conservation of major element by comparing total abundance at start and end of model"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"df")," ",(0,i.kt)("em",{parentName:"li"},"pandas.DataFrame")," - UCLCHEM output in format from ",(0,i.kt)("inlineCode",{parentName:"li"},"read_output_file")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"element_list")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - List of elements to check. Defaults to ",'["H", "N", "C", "O"]',".")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"dict")," - Dictionary containing the change in the total abundance of each element as a fraction of initial value")),(0,i.kt)("a",{id:"uclchem.tests"}),(0,i.kt)("h1",{id:"uclchemtests"},"uclchem.tests"),(0,i.kt)("a",{id:"uclchem.tests.test_ode_conservation"}),(0,i.kt)("h4",{id:"test_ode_conservation"},"test","_","ode","_","conservation"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},'def test_ode_conservation(element_list=["H", "N", "C", "O"])\n')),(0,i.kt)("p",null,"Test whether the ODEs conserve elements. Useful to run each time you change network.\nIntegrator errors may still cause elements not to be conserved but they cannot be conserved\nif the ODEs are not correct."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"element_list")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - A list of elements for which to check the conservation. Defaults to ",'["H", "N", "C", "O"]',".")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"dict")," - A dictionary of the elements in element list with values representing the total rate of change of each element.")))}k.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/236d4ea4.2c783e49.js b/assets/js/236d4ea4.2c783e49.js new file mode 100644 index 00000000..e8d808d1 --- /dev/null +++ b/assets/js/236d4ea4.2c783e49.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3738],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var o=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=o.createContext({}),u=function(e){var t=o.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=u(e.components);return o.createElement(s.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),d=u(n),h=r,m=d["".concat(s,".").concat(h)]||d[h]||p[h]||a;return n?o.createElement(m,i(i({ref:t},c),{},{components:n})):o.createElement(m,i({ref:t},c))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,i=new Array(a);i[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:r,i[1]=l;for(var u=2;u{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>h,frontMatter:()=>l,metadata:()=>u,toc:()=>p});var o=n(7462),r=n(3366),a=(n(7294),n(3905)),i=["components"],l={id:"dev-debugging",title:"Debugging"},s=void 0,u={unversionedId:"dev-debugging",id:"dev-debugging",title:"Debugging",description:"UCLCHEM is a complex code and many things can go wrong. Here, we'll list some of the things that often go wrong when you modify the code as well as a few helpful steps to trace down bugs.",source:"@site/docs/dev-debugging.md",sourceDirName:".",slug:"/dev-debugging",permalink:"/docs/next/dev-debugging",draft:!1,tags:[],version:"current",lastUpdatedBy:"jonholdship",lastUpdatedAt:1651073142,formattedLastUpdatedAt:"Apr 27, 2022",frontMatter:{id:"dev-debugging",title:"Debugging"},sidebar:"docs",previous:{title:"Writing The Python Interface",permalink:"/docs/next/dev-python-wrap"},next:{title:"Maintaining the Website",permalink:"/docs/next/dev-web"}},c={},p=[{value:"Finding the error",id:"finding-the-error",level:2},{value:"Makefile",id:"makefile",level:3},{value:"Python",id:"python",level:3},{value:"Non-fatal errors",id:"non-fatal-errors",level:2},{value:"Common Error Sources",id:"common-error-sources",level:2},{value:"Variable Reset",id:"variable-reset",level:3}],d={toc:p};function h(e){var t=e.components,n=(0,r.Z)(e,i);return(0,a.kt)("wrapper",(0,o.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"UCLCHEM is a complex code and many things can go wrong. Here, we'll list some of the things that often go wrong when you modify the code as well as a few helpful steps to trace down bugs."),(0,a.kt)("h2",{id:"finding-the-error"},"Finding the error"),(0,a.kt)("p",null,"An unfortunate side effect of the python installation process and running the code in python is that underlying errors can go missing. If you get an error it is often best to go as close to the source as you can. That means compiling the code with the makefile and running it through a python script or, failing that, the binary."),(0,a.kt)("h3",{id:"makefile"},"Makefile"),(0,a.kt)("p",null,"You'll find the source code and makefile in ",(0,a.kt)("inlineCode",{parentName:"p"},"src/fortran_src"),", if you run"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"cd src/fortran_src\nmake clean\nmake python\n")),(0,a.kt)("p",null,"you'll build the python wrap from scratch and you'll get any compilation errors printed to screen directly. These compilation errors should print when ",(0,a.kt)("inlineCode",{parentName:"p"},"pip install .")," fails but they can be lost in the python errors and often won't be as helpfully coloured as the direct output from ",(0,a.kt)("inlineCode",{parentName:"p"},"make"),". You can also go into the Makefile and change the compiler flags. Switching the optimization flags out for debugging flags will make the error easier to find. You'll find them in the Makefile:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-makefile"},"#Unforgiving debugging flags\n#FFLAGS =-g -fbacktrace -Wall -fcheck=all\n#Fast optimizing flags\nFFLAGS = -O3 -fPIC -ffree-line-length-0\n")),(0,a.kt)("p",null,"where you simply switch over which ",(0,a.kt)("inlineCode",{parentName:"p"},"FFLAGS")," is commented out."),(0,a.kt)("p",null,"You can also test for errors that come from the python interface by using ",(0,a.kt)("inlineCode",{parentName:"p"},"make")," instead of ",(0,a.kt)("inlineCode",{parentName:"p"},"make python"),". This will build a uclchem binary which you can simply run with the default parameters,"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"cd src/fortran_src\nmake\ncd ../../\n./uclchem CLOUD examples/phase1.inp\n")),(0,a.kt)("p",null,"Where phase1.inp is a parameter file written in a json like format and CLOUD is the type of model we'd like to run. Better yet, if you use the debugging flags to build this, you can run it in gdb."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"gdb uclchem\nrun CLOUD examples/phase1.inp\n")),(0,a.kt)("p",null,"We can't go into detail on gdb is here but it's a terminal based debugger that can be used to trace down the error. It will often let you look at values of variables at the point where the code broke and give more information than the standard fortran outputs."),(0,a.kt)("h3",{id:"python"},"Python"),(0,a.kt)("p",null,"It's mentioned at several points in the docs but if you habitually run your UCLCHEM codes in jupyter notebooks, you'll find that error messages are often hidden from you. Any debugging should really be done via python script."),(0,a.kt)("h2",{id:"non-fatal-errors"},"Non-fatal errors"),(0,a.kt)("p",null,"Many errors will not stop the code compiling but are catastrophic. For example, you could introduce a new procedure that is valid Fortran but does not do what you want it to do. In these cases, you'll have to hunt the problem down yourself. We recommend running the test cases in ",(0,a.kt)("inlineCode",{parentName:"p"},"scripts/run_uclchem_tests.py")," and comparing the output to the ones in the example using the plot created by ",(0,a.kt)("inlineCode",{parentName:"p"},"scripts/plot_uclchem_tests.py"),". Sometimes, they'll be different because you introduced a change that you know will effect the chemistry. For example, you might have changed a desorption process and find the ice abundances change which is totally fine. However, if you see a change that is unexpected, you can investigate."),(0,a.kt)("p",null,"There's no better way to debug these errors than to simply print a lot of things to screen. It can seem silly but adding a bunch of write statements to your code is often the fastest way to track down what is going wrong."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-fortran"},'IF (myParam .gt. criticalValue) THEN\n write(*,*) "here!"\n !do stuff\nELSE\n write(*,*) "if not trigged because myParam is", myParam\n !do other stuff\nEND IF\n\n!do some processing\nCALL myNewSubroutine\nwrite(*,*) "myParam", myParam, "at code point x"\n\n')),(0,a.kt)("p",null,"Additions to the code like above will check the logic of your code is going the way you expect and that parameters aren't taking surprise values. If you have absolutely no suspicions about which part of your code is going wrong, you can use the subroutine ",(0,a.kt)("inlineCode",{parentName:"p"},"simpleDebug")," which is in the IO module (",(0,a.kt)("inlineCode",{parentName:"p"},"io.f90"),"). That prints a statement of your choice as well as many of the parameters."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-fortran"},'!do some processing\nCALL myNewSubroutine\nCALL simpleDebug("Param values after myNewSubroutine")\n')),(0,a.kt)("h2",{id:"common-error-sources"},"Common Error Sources"),(0,a.kt)("h3",{id:"variable-reset"},"Variable Reset"),(0,a.kt)("p",null,"If you notice errors that only occur when you run the code more than once in a python script, then a common source is the initial value that variables take in the code. Variable initialization done at the declaration stage of a module only happens once. That is why the vast majority of variables that are not fortran parameters (constants) are set to an initial value by defaultparameters.f90 or in the initialization subroutines of the physics-core, chemistry, and physics modules."),(0,a.kt)("p",null,"It's very common when editing the code or adding new variables to forget to do this and then to see unusual behaviour when you run multiple models in a row in python."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/236d4ea4.5d24fe8a.js b/assets/js/236d4ea4.5d24fe8a.js deleted file mode 100644 index 4f37a6f3..00000000 --- a/assets/js/236d4ea4.5d24fe8a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3738],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var o=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=o.createContext({}),u=function(e){var t=o.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=u(e.components);return o.createElement(s.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),d=u(n),h=r,m=d["".concat(s,".").concat(h)]||d[h]||p[h]||a;return n?o.createElement(m,i(i({ref:t},c),{},{components:n})):o.createElement(m,i({ref:t},c))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,i=new Array(a);i[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:r,i[1]=l;for(var u=2;u{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>h,frontMatter:()=>l,metadata:()=>u,toc:()=>p});var o=n(7462),r=n(3366),a=(n(7294),n(3905)),i=["components"],l={id:"dev-debugging",title:"Debugging"},s=void 0,u={unversionedId:"dev-debugging",id:"dev-debugging",title:"Debugging",description:"UCLCHEM is a complex code and many things can go wrong. Here, we'll list some of the things that often go wrong when you modify the code as well as a few helpful steps to trace down bugs.",source:"@site/docs/dev-debugging.md",sourceDirName:".",slug:"/dev-debugging",permalink:"/docs/next/dev-debugging",tags:[],version:"current",lastUpdatedBy:"jonholdship",lastUpdatedAt:1651073142,formattedLastUpdatedAt:"4/27/2022",frontMatter:{id:"dev-debugging",title:"Debugging"},sidebar:"docs",previous:{title:"Writing The Python Interface",permalink:"/docs/next/dev-python-wrap"},next:{title:"Maintaining the Website",permalink:"/docs/next/dev-web"}},c={},p=[{value:"Finding the error",id:"finding-the-error",level:2},{value:"Makefile",id:"makefile",level:3},{value:"Python",id:"python",level:3},{value:"Non-fatal errors",id:"non-fatal-errors",level:2},{value:"Common Error Sources",id:"common-error-sources",level:2},{value:"Variable Reset",id:"variable-reset",level:3}],d={toc:p};function h(e){var t=e.components,n=(0,r.Z)(e,i);return(0,a.kt)("wrapper",(0,o.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"UCLCHEM is a complex code and many things can go wrong. Here, we'll list some of the things that often go wrong when you modify the code as well as a few helpful steps to trace down bugs."),(0,a.kt)("h2",{id:"finding-the-error"},"Finding the error"),(0,a.kt)("p",null,"An unfortunate side effect of the python installation process and running the code in python is that underlying errors can go missing. If you get an error it is often best to go as close to the source as you can. That means compiling the code with the makefile and running it through a python script or, failing that, the binary."),(0,a.kt)("h3",{id:"makefile"},"Makefile"),(0,a.kt)("p",null,"You'll find the source code and makefile in ",(0,a.kt)("inlineCode",{parentName:"p"},"src/fortran_src"),", if you run"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"cd src/fortran_src\nmake clean\nmake python\n")),(0,a.kt)("p",null,"you'll build the python wrap from scratch and you'll get any compilation errors printed to screen directly. These compilation errors should print when ",(0,a.kt)("inlineCode",{parentName:"p"},"pip install .")," fails but they can be lost in the python errors and often won't be as helpfully coloured as the direct output from ",(0,a.kt)("inlineCode",{parentName:"p"},"make"),". You can also go into the Makefile and change the compiler flags. Switching the optimization flags out for debugging flags will make the error easier to find. You'll find them in the Makefile:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-makefile"},"#Unforgiving debugging flags\n#FFLAGS =-g -fbacktrace -Wall -fcheck=all\n#Fast optimizing flags\nFFLAGS = -O3 -fPIC -ffree-line-length-0\n")),(0,a.kt)("p",null,"where you simply switch over which ",(0,a.kt)("inlineCode",{parentName:"p"},"FFLAGS")," is commented out."),(0,a.kt)("p",null,"You can also test for errors that come from the python interface by using ",(0,a.kt)("inlineCode",{parentName:"p"},"make")," instead of ",(0,a.kt)("inlineCode",{parentName:"p"},"make python"),". This will build a uclchem binary which you can simply run with the default parameters,"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"cd src/fortran_src\nmake\ncd ../../\n./uclchem CLOUD examples/phase1.inp\n")),(0,a.kt)("p",null,"Where phase1.inp is a parameter file written in a json like format and CLOUD is the type of model we'd like to run. Better yet, if you use the debugging flags to build this, you can run it in gdb."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"gdb uclchem\nrun CLOUD examples/phase1.inp\n")),(0,a.kt)("p",null,"We can't go into detail on gdb is here but it's a terminal based debugger that can be used to trace down the error. It will often let you look at values of variables at the point where the code broke and give more information than the standard fortran outputs."),(0,a.kt)("h3",{id:"python"},"Python"),(0,a.kt)("p",null,"It's mentioned at several points in the docs but if you habitually run your UCLCHEM codes in jupyter notebooks, you'll find that error messages are often hidden from you. Any debugging should really be done via python script."),(0,a.kt)("h2",{id:"non-fatal-errors"},"Non-fatal errors"),(0,a.kt)("p",null,"Many errors will not stop the code compiling but are catastrophic. For example, you could introduce a new procedure that is valid Fortran but does not do what you want it to do. In these cases, you'll have to hunt the problem down yourself. We recommend running the test cases in ",(0,a.kt)("inlineCode",{parentName:"p"},"scripts/run_uclchem_tests.py")," and comparing the output to the ones in the example using the plot created by ",(0,a.kt)("inlineCode",{parentName:"p"},"scripts/plot_uclchem_tests.py"),". Sometimes, they'll be different because you introduced a change that you know will effect the chemistry. For example, you might have changed a desorption process and find the ice abundances change which is totally fine. However, if you see a change that is unexpected, you can investigate."),(0,a.kt)("p",null,"There's no better way to debug these errors than to simply print a lot of things to screen. It can seem silly but adding a bunch of write statements to your code is often the fastest way to track down what is going wrong."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-fortran"},'IF (myParam .gt. criticalValue) THEN\n write(*,*) "here!"\n !do stuff\nELSE\n write(*,*) "if not trigged because myParam is", myParam\n !do other stuff\nEND IF\n\n!do some processing\nCALL myNewSubroutine\nwrite(*,*) "myParam", myParam, "at code point x"\n\n')),(0,a.kt)("p",null,"Additions to the code like above will check the logic of your code is going the way you expect and that parameters aren't taking surprise values. If you have absolutely no suspicions about which part of your code is going wrong, you can use the subroutine ",(0,a.kt)("inlineCode",{parentName:"p"},"simpleDebug")," which is in the IO module (",(0,a.kt)("inlineCode",{parentName:"p"},"io.f90"),"). That prints a statement of your choice as well as many of the parameters."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-fortran"},'!do some processing\nCALL myNewSubroutine\nCALL simpleDebug("Param values after myNewSubroutine")\n')),(0,a.kt)("h2",{id:"common-error-sources"},"Common Error Sources"),(0,a.kt)("h3",{id:"variable-reset"},"Variable Reset"),(0,a.kt)("p",null,"If you notice errors that only occur when you run the code more than once in a python script, then a common source is the initial value that variables take in the code. Variable initialization done at the declaration stage of a module only happens once. That is why the vast majority of variables that are not fortran parameters (constants) are set to an initial value by defaultparameters.f90 or in the initialization subroutines of the physics-core, chemistry, and physics modules."),(0,a.kt)("p",null,"It's very common when editing the code or adding new variables to forget to do this and then to see unusual behaviour when you run multiple models in a row in python."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/236fea48.bd74ec7e.js b/assets/js/236fea48.84926114.js similarity index 50% rename from assets/js/236fea48.bd74ec7e.js rename to assets/js/236fea48.84926114.js index b90fb8c2..77fe7be6 100644 --- a/assets/js/236fea48.bd74ec7e.js +++ b/assets/js/236fea48.84926114.js @@ -1 +1 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8877],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>h});var o=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=o.createContext({}),c=function(e){var t=o.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=c(e.components);return o.createElement(l.Provider,{value:t},e.children)},f={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},u=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=c(r),h=n,m=u["".concat(l,".").concat(h)]||u[h]||f[h]||a;return r?o.createElement(m,i(i({ref:t},p),{},{components:r})):o.createElement(m,i({ref:t},p))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:n,i[1]=s;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>h,frontMatter:()=>s,metadata:()=>c,toc:()=>f});var o=r(7462),n=r(3366),a=(r(7294),r(3905)),i=["components"],s={title:"First measurement of nitrogen fractionation in shocked clumps of the L1157 protostellar outflow. SOLIS XI",authors:"serena"},l=void 0,c={permalink:"/blog/2020/12/07/milena-nitrogen-solis",source:"@site/blog/2020-12-07-milena-nitrogen-solis.md",title:"First measurement of nitrogen fractionation in shocked clumps of the L1157 protostellar outflow. SOLIS XI",description:"As part of the SOLIS observational programme, various isotopologues of HCN were observed towards L1157 in order to study the nitrogen fractionation in a protostellar outflow. The modelling work for this study was done using UCLCHEM. You can find the paper here and the abstract below.",date:"2020-12-07T00:00:00.000Z",formattedDate:"December 7, 2020",tags:[],readingTime:1.89,truncated:!1,authors:[{name:"Serena Viti",title:"UCLCHEM PI",url:"https://home.strw.leidenuniv.nl/~viti/",imageURL:"/img/viti.jpg",key:"serena"}],frontMatter:{title:"First measurement of nitrogen fractionation in shocked clumps of the L1157 protostellar outflow. SOLIS XI",authors:"serena"},prevItem:{title:"HITs - History Independent Tracers",permalink:"/blog/2022/02/06/holdship-hits"},nextItem:{title:"New Website",permalink:"/blog/2020/02/14/New-Website"}},p={authorsImageUrls:[void 0]},f=[],u={toc:f};function h(e){var t=e.components,r=(0,n.Z)(e,i);return(0,a.kt)("wrapper",(0,o.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"As part of the SOLIS observational programme, various isotopologues of HCN were observed towards L1157 in order to study the nitrogen fractionation in a protostellar outflow. The modelling work for this study was done using UCLCHEM. You can find ",(0,a.kt)("a",{parentName:"p",href:"https://arxiv.org/pdf/2011.14882.pdf"},"the paper here")," and the abstract below."),(0,a.kt)("p",null,"The isotopic ratio of nitrogen presents a wide range of values in the Solar System and in star forming system whose origin is still unclear. Chemical reactions in the gas phase are one of the possible processes that could modify the 14 N/ 15 N ratio. We aim at investigating if and how the passage of a shock wave in the interstellar medium, can affect the relative fraction of nitrogen isotopes. The ideal place for such a study is the L1157 outflow, where several shocked clumps are present. We present the first measurement of the 14 N/ 15 N ratio in the two shocked clumps, B1 and B0, of the protostellar outflow L1157, derived from the interferomteric maps of the H 13 CN(1-0) and the HC 15 N(1-0) lines. In B1, we find that the H 13 CN(1-0) and HC 15 N(1-0) emission traces the front of the clump, with averaged column density of N (H 13 CN) \u223c 7 \xd7 10 12 cm \u22122 and N (HC 15 N) \u223c 2 \xd7 10 12 cm \u22122 . In this region the ratio H 13 CN(1-0)/HC 15 N(1-0) is quite uniform with an average value of \u223c 5 \xb1 1. The same average value is also measured in the smaller clump B0e. Assuming the standard 12 C/ 13 C = 68, we obtain 14 N/ 15 N = 340 \xb1 70, similar to those usually found in prestellar cores and protostars. We analysed the prediction of a chemical shock model for several shock conditions and we found that the nitrogen and carbon fractionations do not vary much for the first period after the shock. The observed H 13 CN/HC 15 N can be reproduced by a non-dissociative, C-type shock with parameters in agreement with previous modelling of L1157-B1. Both observations and chemical models indicate that the shock propagation does not affect the nitrogen isotopic ratio that remains similar to that measured in lower temperature gas in prestellar cores and in protostellar envelopes."))}h.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8877],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>h});var o=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=o.createContext({}),c=function(e){var t=o.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=c(e.components);return o.createElement(l.Provider,{value:t},e.children)},f={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},u=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=c(r),h=n,m=u["".concat(l,".").concat(h)]||u[h]||f[h]||a;return r?o.createElement(m,i(i({ref:t},p),{},{components:r})):o.createElement(m,i({ref:t},p))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:n,i[1]=s;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>h,frontMatter:()=>s,metadata:()=>c,toc:()=>f});var o=r(7462),n=r(3366),a=(r(7294),r(3905)),i=["components"],s={title:"First measurement of nitrogen fractionation in shocked clumps of the L1157 protostellar outflow. SOLIS XI",authors:"serena"},l=void 0,c={permalink:"/blog/2020/12/07/milena-nitrogen-solis",source:"@site/blog/2020-12-07-milena-nitrogen-solis.md",title:"First measurement of nitrogen fractionation in shocked clumps of the L1157 protostellar outflow. SOLIS XI",description:"As part of the SOLIS observational programme, various isotopologues of HCN were observed towards L1157 in order to study the nitrogen fractionation in a protostellar outflow. The modelling work for this study was done using UCLCHEM. You can find the paper here and the abstract below.",date:"2020-12-07T00:00:00.000Z",formattedDate:"December 7, 2020",tags:[],readingTime:1.89,hasTruncateMarker:!1,authors:[{name:"Serena Viti",title:"UCLCHEM PI",url:"https://home.strw.leidenuniv.nl/~viti/",imageURL:"/img/viti.jpg",key:"serena"}],frontMatter:{title:"First measurement of nitrogen fractionation in shocked clumps of the L1157 protostellar outflow. SOLIS XI",authors:"serena"},prevItem:{title:"HITs - History Independent Tracers",permalink:"/blog/2022/02/06/holdship-hits"},nextItem:{title:"New Website",permalink:"/blog/2020/02/14/New-Website"}},p={authorsImageUrls:[void 0]},f=[],u={toc:f};function h(e){var t=e.components,r=(0,n.Z)(e,i);return(0,a.kt)("wrapper",(0,o.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"As part of the SOLIS observational programme, various isotopologues of HCN were observed towards L1157 in order to study the nitrogen fractionation in a protostellar outflow. The modelling work for this study was done using UCLCHEM. You can find ",(0,a.kt)("a",{parentName:"p",href:"https://arxiv.org/pdf/2011.14882.pdf"},"the paper here")," and the abstract below."),(0,a.kt)("p",null,"The isotopic ratio of nitrogen presents a wide range of values in the Solar System and in star forming system whose origin is still unclear. Chemical reactions in the gas phase are one of the possible processes that could modify the 14 N/ 15 N ratio. We aim at investigating if and how the passage of a shock wave in the interstellar medium, can affect the relative fraction of nitrogen isotopes. The ideal place for such a study is the L1157 outflow, where several shocked clumps are present. We present the first measurement of the 14 N/ 15 N ratio in the two shocked clumps, B1 and B0, of the protostellar outflow L1157, derived from the interferomteric maps of the H 13 CN(1-0) and the HC 15 N(1-0) lines. In B1, we find that the H 13 CN(1-0) and HC 15 N(1-0) emission traces the front of the clump, with averaged column density of N (H 13 CN) \u223c 7 \xd7 10 12 cm \u22122 and N (HC 15 N) \u223c 2 \xd7 10 12 cm \u22122 . In this region the ratio H 13 CN(1-0)/HC 15 N(1-0) is quite uniform with an average value of \u223c 5 \xb1 1. The same average value is also measured in the smaller clump B0e. Assuming the standard 12 C/ 13 C = 68, we obtain 14 N/ 15 N = 340 \xb1 70, similar to those usually found in prestellar cores and protostars. We analysed the prediction of a chemical shock model for several shock conditions and we found that the nitrogen and carbon fractionations do not vary much for the first period after the shock. The observed H 13 CN/HC 15 N can be reproduced by a non-dissociative, C-type shock with parameters in agreement with previous modelling of L1157-B1. Both observations and chemical models indicate that the shock propagation does not affect the nitrogen isotopic ratio that remains similar to that measured in lower temperature gas in prestellar cores and in protostellar envelopes."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/25925e1d.7c7d491f.js b/assets/js/25925e1d.7c7d491f.js new file mode 100644 index 00000000..45d275e1 --- /dev/null +++ b/assets/js/25925e1d.7c7d491f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5559],{3905:(e,t,r)=>{r.d(t,{Zo:()=>h,kt:()=>m});var o=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=o.createContext({}),p=function(e){var t=o.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},h=function(e){var t=p(e.components);return o.createElement(c.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},u=o.forwardRef((function(e,t){var r=e.components,a=e.mdxType,n=e.originalType,c=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),u=p(r),m=a,f=u["".concat(c,".").concat(m)]||u[m]||l[m]||n;return r?o.createElement(f,i(i({ref:t},h),{},{components:r})):o.createElement(f,i({ref:t},h))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var n=r.length,i=new Array(n);i[0]=u;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:a,i[1]=s;for(var p=2;p{r.r(t),r.d(t,{assets:()=>h,contentTitle:()=>c,default:()=>m,frontMatter:()=>s,metadata:()=>p,toc:()=>l});var o=r(7462),a=r(3366),n=(r(7294),r(3905)),i=["components"],s={title:"Tracing shock type with chemical diagnostics - an application to L1157",author:"Tomas James",authorURL:"https://github.com/tomasjames",authorImageURL:"https://i.ibb.co/8KhFwwN/IMG-1783.jpg"},c=void 0,p={permalink:"/blog/2019/12/10/tom-shock",source:"@site/blog/2019-12-10-tom-shock.md",title:"Tracing shock type with chemical diagnostics - an application to L1157",description:"The physical structure of a shock wave may take a form unique to its shock type, implying that the chemistry of each shock type is unique as well. In our recent paper, we investigate the different chemistries of J-type and C-type shocks using parameterised forms of their physical structures in order to identify unique molecular tracers of both shock types. We apply these diagnostics to the protostellar outflow L1157 to establish whether the B2 clump could host shocks exhibiting type-specific behaviour.",date:"2019-12-10T00:00:00.000Z",formattedDate:"December 10, 2019",tags:[],readingTime:.77,hasTruncateMarker:!1,authors:[{name:"Tomas James",url:"https://github.com/tomasjames",imageURL:"https://i.ibb.co/8KhFwwN/IMG-1783.jpg"}],frontMatter:{title:"Tracing shock type with chemical diagnostics - an application to L1157",author:"Tomas James",authorURL:"https://github.com/tomasjames",authorImageURL:"https://i.ibb.co/8KhFwwN/IMG-1783.jpg"},prevItem:{title:"New Website",permalink:"/blog/2020/02/14/New-Website"},nextItem:{title:"A chemical study of carbon fractionation in external galaxies",permalink:"/blog/2019/08/13/serena-carbon-frac"}},h={authorsImageUrls:[void 0]},l=[],u={toc:l};function m(e){var t=e.components,r=(0,a.Z)(e,i);return(0,n.kt)("wrapper",(0,o.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"The physical structure of a shock wave may take a form unique to its shock type, implying that the chemistry of each shock type is unique as well. ",(0,n.kt)("a",{parentName:"p",href:"https://arxiv.org/pdf/1912.03721.pdf"},"In our recent paper"),", we investigate the different chemistries of J-type and C-type shocks using parameterised forms of their physical structures in order to identify unique molecular tracers of both shock types. We apply these diagnostics to the protostellar outflow L1157 to establish whether the B2 clump could host shocks exhibiting type-specific behaviour. "),(0,n.kt)("p",null,"We find that a range of molecules including H2O and HCN have unique behaviour specific to a J-type shock, but that such differences in behaviour are only evident at low velocity and low density. We find that CH3OH is enhanced by shocks and is a reliable probe of the pre-shock gas density and is shock-type agnostic. Additionally, the fractional abundances within the B2 region are consistent with both C-type and J-type shock emission."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/25925e1d.97107826.js b/assets/js/25925e1d.97107826.js deleted file mode 100644 index 6b4bd58e..00000000 --- a/assets/js/25925e1d.97107826.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5559],{3905:(e,t,r)=>{r.d(t,{Zo:()=>h,kt:()=>m});var o=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var c=o.createContext({}),p=function(e){var t=o.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},h=function(e){var t=p(e.components);return o.createElement(c.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},u=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,c=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),u=p(r),m=n,f=u["".concat(c,".").concat(m)]||u[m]||l[m]||a;return r?o.createElement(f,i(i({ref:t},h),{},{components:r})):o.createElement(f,i({ref:t},h))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=u;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:n,i[1]=s;for(var p=2;p{r.r(t),r.d(t,{assets:()=>h,contentTitle:()=>c,default:()=>m,frontMatter:()=>s,metadata:()=>p,toc:()=>l});var o=r(7462),n=r(3366),a=(r(7294),r(3905)),i=["components"],s={title:"Tracing shock type with chemical diagnostics - an application to L1157",author:"Tomas James",authorURL:"https://github.com/tomasjames",authorImageURL:"https://i.ibb.co/8KhFwwN/IMG-1783.jpg"},c=void 0,p={permalink:"/blog/2019/12/10/tom-shock",source:"@site/blog/2019-12-10-tom-shock.md",title:"Tracing shock type with chemical diagnostics - an application to L1157",description:"The physical structure of a shock wave may take a form unique to its shock type, implying that the chemistry of each shock type is unique as well. In our recent paper, we investigate the different chemistries of J-type and C-type shocks using parameterised forms of their physical structures in order to identify unique molecular tracers of both shock types. We apply these diagnostics to the protostellar outflow L1157 to establish whether the B2 clump could host shocks exhibiting type-specific behaviour.",date:"2019-12-10T00:00:00.000Z",formattedDate:"December 10, 2019",tags:[],readingTime:.77,truncated:!1,authors:[{name:"Tomas James",url:"https://github.com/tomasjames",imageURL:"https://i.ibb.co/8KhFwwN/IMG-1783.jpg"}],frontMatter:{title:"Tracing shock type with chemical diagnostics - an application to L1157",author:"Tomas James",authorURL:"https://github.com/tomasjames",authorImageURL:"https://i.ibb.co/8KhFwwN/IMG-1783.jpg"},prevItem:{title:"New Website",permalink:"/blog/2020/02/14/New-Website"},nextItem:{title:"A chemical study of carbon fractionation in external galaxies",permalink:"/blog/2019/08/13/serena-carbon-frac"}},h={authorsImageUrls:[void 0]},l=[],u={toc:l};function m(e){var t=e.components,r=(0,n.Z)(e,i);return(0,a.kt)("wrapper",(0,o.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The physical structure of a shock wave may take a form unique to its shock type, implying that the chemistry of each shock type is unique as well. ",(0,a.kt)("a",{parentName:"p",href:"https://arxiv.org/pdf/1912.03721.pdf"},"In our recent paper"),", we investigate the different chemistries of J-type and C-type shocks using parameterised forms of their physical structures in order to identify unique molecular tracers of both shock types. We apply these diagnostics to the protostellar outflow L1157 to establish whether the B2 clump could host shocks exhibiting type-specific behaviour. "),(0,a.kt)("p",null,"We find that a range of molecules including H2O and HCN have unique behaviour specific to a J-type shock, but that such differences in behaviour are only evident at low velocity and low density. We find that CH3OH is enhanced by shocks and is a reliable probe of the pre-shock gas density and is shock-type agnostic. Additionally, the fractional abundances within the B2 region are consistent with both C-type and J-type shock emission."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/27f461e9.97eb7183.js b/assets/js/27f461e9.5ee6a007.js similarity index 60% rename from assets/js/27f461e9.97eb7183.js rename to assets/js/27f461e9.5ee6a007.js index 0e3340ac..d9e5a1d2 100644 --- a/assets/js/27f461e9.97eb7183.js +++ b/assets/js/27f461e9.5ee6a007.js @@ -1 +1 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1847],{3905:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),d=c(r),f=o,y=d["".concat(p,".").concat(f)]||d[f]||u[f]||a;return r?n.createElement(y,i(i({ref:t},l),{},{components:r})):n.createElement(y,i({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=d;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s.mdxType="string"==typeof e?e:o,i[1]=s;for(var c=2;c{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>p,default:()=>f,frontMatter:()=>s,metadata:()=>c,toc:()=>u});var n=r(7462),o=r(3366),a=(r(7294),r(3905)),i=["components"],s={id:"hydro",title:"Hydro Post Processing"},p=void 0,c={unversionedId:"hydro",id:"hydro",title:"Hydro Post Processing",description:"Main Contributors: Jon Holdship",source:"@site/docs/hydro.md",sourceDirName:".",slug:"/hydro",permalink:"/docs/next/hydro",tags:[],version:"current",lastUpdatedBy:"jonholdship",lastUpdatedAt:1621867778,formattedLastUpdatedAt:"5/24/2021",frontMatter:{id:"hydro",title:"Hydro Post Processing"}},l={},u=[],d={toc:u};function f(e){var t=e.components,r=(0,o.Z)(e,i);return(0,a.kt)("wrapper",(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Main Contributors"),": Jon Holdship"),(0,a.kt)("p",null,"UCLCHEM includes a post-processing module ",(0,a.kt)("inlineCode",{parentName:"p"},"src/hydro.f90")," which is effectively a template as it necessarily requires user editing. The module reads in a columnated file of physical properties such as the output from a hydrodynamical model and creates interpolation functions."),(0,a.kt)("p",null,"As ",(0,a.kt)("inlineCode",{parentName:"p"},"updatePhysics")," is called by UCLCHEM's main loop, these interpolation functions are called to get the physical properties of the gas at the current simulation time."),(0,a.kt)("p",null,"Whilst the maximum amount of information that can be read from the input file is set by the physical properties UCLCHEM deals with, this is naturally a user dependent process. The input file format and the gas properties that are supplied (eg just density/temperature or density/temperature/Av) depend on the model being post processed. Thus ",(0,a.kt)("inlineCode",{parentName:"p"},"src/hydro.f90")," needs to be edited to account for this."))}f.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1847],{3905:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),d=c(r),f=o,y=d["".concat(p,".").concat(f)]||d[f]||u[f]||a;return r?n.createElement(y,i(i({ref:t},l),{},{components:r})):n.createElement(y,i({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=d;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s.mdxType="string"==typeof e?e:o,i[1]=s;for(var c=2;c{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>p,default:()=>f,frontMatter:()=>s,metadata:()=>c,toc:()=>u});var n=r(7462),o=r(3366),a=(r(7294),r(3905)),i=["components"],s={id:"hydro",title:"Hydro Post Processing"},p=void 0,c={unversionedId:"hydro",id:"hydro",title:"Hydro Post Processing",description:"Main Contributors: Jon Holdship",source:"@site/docs/hydro.md",sourceDirName:".",slug:"/hydro",permalink:"/docs/next/hydro",draft:!1,tags:[],version:"current",lastUpdatedBy:"jonholdship",lastUpdatedAt:1621867778,formattedLastUpdatedAt:"May 24, 2021",frontMatter:{id:"hydro",title:"Hydro Post Processing"}},l={},u=[],d={toc:u};function f(e){var t=e.components,r=(0,o.Z)(e,i);return(0,a.kt)("wrapper",(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Main Contributors"),": Jon Holdship"),(0,a.kt)("p",null,"UCLCHEM includes a post-processing module ",(0,a.kt)("inlineCode",{parentName:"p"},"src/hydro.f90")," which is effectively a template as it necessarily requires user editing. The module reads in a columnated file of physical properties such as the output from a hydrodynamical model and creates interpolation functions."),(0,a.kt)("p",null,"As ",(0,a.kt)("inlineCode",{parentName:"p"},"updatePhysics")," is called by UCLCHEM's main loop, these interpolation functions are called to get the physical properties of the gas at the current simulation time."),(0,a.kt)("p",null,"Whilst the maximum amount of information that can be read from the input file is set by the physical properties UCLCHEM deals with, this is naturally a user dependent process. The input file format and the gas properties that are supplied (eg just density/temperature or density/temperature/Av) depend on the model being post processed. Thus ",(0,a.kt)("inlineCode",{parentName:"p"},"src/hydro.f90")," needs to be edited to account for this."))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/297e8b98.82488fc5.js b/assets/js/297e8b98.82488fc5.js new file mode 100644 index 00000000..1205dbc1 --- /dev/null +++ b/assets/js/297e8b98.82488fc5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5550],{3905:(a,e,t)=>{t.d(e,{Zo:()=>N,kt:()=>k});var s=t(7294);function n(a,e,t){return e in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function m(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.push.apply(t,s)}return t}function p(a){for(var e=1;e=0||(n[t]=a[t]);return n}(a,e);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(a);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(a,t)&&(n[t]=a[t])}return n}var i=s.createContext({}),l=function(a){var e=s.useContext(i),t=e;return a&&(t="function"==typeof a?a(e):p(p({},e),a)),t},N=function(a){var e=l(a.components);return s.createElement(i.Provider,{value:e},a.children)},o={inlineCode:"code",wrapper:function(a){var e=a.children;return s.createElement(s.Fragment,{},e)}},c=s.forwardRef((function(a,e){var t=a.components,n=a.mdxType,m=a.originalType,i=a.parentName,N=r(a,["components","mdxType","originalType","parentName"]),c=l(t),k=n,h=c["".concat(i,".").concat(k)]||c[k]||o[k]||m;return t?s.createElement(h,p(p({ref:e},N),{},{components:t})):s.createElement(h,p({ref:e},N))}));function k(a,e){var t=arguments,n=e&&e.mdxType;if("string"==typeof a||n){var m=t.length,p=new Array(m);p[0]=c;var r={};for(var i in e)hasOwnProperty.call(e,i)&&(r[i]=e[i]);r.originalType=a,r.mdxType="string"==typeof a?a:n,p[1]=r;for(var l=2;l{t.r(e),t.d(e,{assets:()=>N,contentTitle:()=>i,default:()=>k,frontMatter:()=>r,metadata:()=>l,toc:()=>o});var s=t(7462),n=t(3366),m=(t(7294),t(3905)),p=["components"],r={},i="Chemical Analysis",l={unversionedId:"chemical_analysis",id:"version-v3.2.0/chemical_analysis",title:"Chemical Analysis",description:"Chemical networks are complex systems where the interplay between many elements often means that small changes in one aspect of the network can greatly effect the outcome in unexpected ways. Nevertheless, there are cases where a simple chemical explanation can be found for some observed behaviour in the model outputs. This tutorial demonstrates how to use some of the functionality of the UCLCHEM library to analyse model outputs and discover these explanations.",source:"@site/versioned_docs/version-v3.2.0/chemical_analysis.md",sourceDirName:".",slug:"/chemical_analysis",permalink:"/docs/chemical_analysis",draft:!1,tags:[],version:"v3.2.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{},sidebar:"docs",previous:{title:"Running a Grid",permalink:"/docs/running_a_grid"},next:{title:"Compilation Issues",permalink:"/docs/trouble-compile"}},N={},o=[{value:"H3O+ and SO",id:"h3o-and-so",level:2},{value:"1. Generate Test Cases",id:"1-generate-test-cases",level:3},{value:"2. Run the Analysis",id:"2-run-the-analysis",level:3},{value:"2.1 H_3O^+",id:"21-h_3o",level:4},{value:"2.2 SO",id:"22-so",level:4},{value:"Summary Notes",id:"summary-notes",level:2},{value:"Considerations",id:"considerations",level:2}],c={toc:o};function k(a){var e=a.components,r=(0,n.Z)(a,p);return(0,m.kt)("wrapper",(0,s.Z)({},c,r,{components:e,mdxType:"MDXLayout"}),(0,m.kt)("h1",{id:"chemical-analysis"},"Chemical Analysis"),(0,m.kt)("p",null,"Chemical networks are complex systems where the interplay between many elements often means that small changes in one aspect of the network can greatly effect the outcome in unexpected ways. Nevertheless, there are cases where a simple chemical explanation can be found for some observed behaviour in the model outputs. This tutorial demonstrates how to use some of the functionality of the UCLCHEM library to analyse model outputs and discover these explanations."),(0,m.kt)("p",null,"We do recommend caution when following the approach laid out in this tutorial. There are many pitfalls which we will try to point out as we go. Ultimately, a comprehensive view of how important a reaction is to the outcome of your model requires detailed statistical calculations such as the use of ",(0,m.kt)("a",{parentName:"p",href:"https://github.com/slundberg/shap"},"SHAP values")," to assign meaningful scores to how much various reactions in a network contribute to a species' abundance. Therefore, care must be taken by the user to ensure that the conclusions they draw from a simpler approach are sound."),(0,m.kt)("p",null,"We'll use an example from work that was recently published at the time of writing this tutorial to demonstrate the use of ",(0,m.kt)("inlineCode",{parentName:"p"},"uclchem.analysis.analysis()")," and how it can be used to draw conclusions about the most important reactions in a network for a given species/behaviour."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},"import uclchem\nfrom glob import glob\n")),(0,m.kt)("h2",{id:"h3o-and-so"},"H3O+ and SO"),(0,m.kt)("p",null,"In a piece of inference work in which we measured the cosmic ray ionization rate (CRIR) in NGC 253 ",(0,m.kt)("a",{parentName:"p",href:"https://ui.adsabs.harvard.edu/abs/2022arXiv220403668H/abstract"},"(Holdship et al. 2022)"),". We found that both H3O+ and SO were sensitive to the ionization rate. Furthermore, since H3O+ was increased in abundance by increasing CRIR and SO was destroyed, their ratio was extremely sensitive to the rate. "),(0,m.kt)("p",null,"In the work, we present the plot below which shows how the equilibrium abundance of each species changes with the CRIR as well as the ratio. We plot this for a range of temperatures to show that this behaviour is not particularly sensitive to the gas temperature."),(0,m.kt)("p",null,(0,m.kt)("img",{alt:"crir_h3o_so_example",src:t(9996).Z,width:"1600",height:"1067"})),(0,m.kt)("p",null,"In a sense, this is all the information we need. A complex array of reactions all compete and contribute to produce the outcome of the model. Whatever they are, we see the abundance of these species are very sensitive to the CR over a wide range of temperature and density. However, we can only trust this conclusion as far as we trust the entire chemical network since we don't know what exactly causes this behaviour."),(0,m.kt)("p",null,"If we use the analysis function, we may find all of this is driven by a small handful of reactions. The benefit would then be that our trust in our conclusions only depends on how much we trust the rates of those specific reactions. If it is very important, we can evaluate those reactions and readers of our work can make the same decisions as information from experiment changes."),(0,m.kt)("h3",{id:"1-generate-test-cases"},"1. Generate Test Cases"),(0,m.kt)("p",null,"Ideally, we should run a huge grid of models and find some rigorous way to evaluate how important each reaction is to the outcome of the model. However, if we run a small grid representative of different conditions then any simple chemical explanation will be evident if it exists. If it no simple explanation is appropriate, then the analysis module is not appropriate for our task and we could consider more complex approaches."),(0,m.kt)("p",null,"Let's run a simple grid with all possible combinations of the following:"),(0,m.kt)("ul",null,(0,m.kt)("li",{parentName:"ul"},"A low CRIR (zeta=1) and high CRIR (zeta=1e4)"),(0,m.kt)("li",{parentName:"ul"},"A typical cloud density (n=1e4) and high density (n=1e6)"),(0,m.kt)("li",{parentName:"ul"},"The lower temperature bound of NGC 253 CMZ (50 K) and a high temperature (250 K)")),(0,m.kt)("p",null,"and that will give us enough to work with for our analysis."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'params={\'baseAv\':10, #UV shielded gas in our model\n \'freefall\':False,\n \'finalTime\':1e6\n }\nfor temperature in [50,250]:\n for density in [1e4,1e6]:\n for zeta in [1,1e4]:\n params["initialtemp"]=temperature\n params["initialdens"]=density\n params["zeta"]=zeta\n params["outputfile"]=f"../output/{temperature}_{density}_{zeta}.csv"\n uclchem.model.cloud(param_dict=params)\n')),(0,m.kt)("h3",{id:"2-run-the-analysis"},"2. Run the Analysis"),(0,m.kt)("p",null,"The ",(0,m.kt)("inlineCode",{parentName:"p"},"analysis")," function is very simple. For every time step in your model output, it will use UCLCHEM to calculate the rate of every reaction which includes a chosen species. It then uses the abundances at that time step to calculate the total contribution of that reaction to the rate of change of the species' abundance."),(0,m.kt)("p",null,"For example, if we care about H3O+ and find that it is created by ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"2")),(0,m.kt)("mi",{parentName:"mrow"},"O")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_2O")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O")))))," + ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"H"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+")))))))))))),", then UCLCHEM is called to get ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"k")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"))))),", the rate of that reaction and then analysis calculates"),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mover",{parentName:"mrow",accent:"true"},(0,m.kt)("mrow",{parentName:"mover"},(0,m.kt)("mi",{parentName:"mrow"},"Y"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+")),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,m.kt)("mo",{parentName:"mover"},"\u02d9")),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("mi",{parentName:"mrow"},"k"),(0,m.kt)("mi",{parentName:"mrow"},"Y"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"2")),(0,m.kt)("mi",{parentName:"mrow"},"O"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,m.kt)("mi",{parentName:"mrow"},"Y"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"H"),(0,m.kt)("mo",{parentName:"msup"},"+")),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"n"),(0,m.kt)("mi",{parentName:"msub"},"H"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\dot{Y(H_3O^+)} = k Y(H_2O) Y(H^+) n_H")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"1.23686em",verticalAlign:"-0.25em"}}),(0,m.kt)("span",{parentName:"span",className:"mord accent"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.9868600000000001em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"Y"),(0,m.kt)("span",{parentName:"span",className:"mopen"},"("),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.697331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.989em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+")))))))),(0,m.kt)("span",{parentName:"span",className:"mclose"},")"))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.319em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"accent-body",style:{left:"-0.13889em"}},(0,m.kt)("span",{parentName:"span",className:"mord"},"\u02d9")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.25em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"1.071331em",verticalAlign:"-0.25em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"Y"),(0,m.kt)("span",{parentName:"span",className:"mopen"},"("),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"mclose"},")"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"Y"),(0,m.kt)("span",{parentName:"span",className:"mopen"},"("),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.821331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.113em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+")))))))),(0,m.kt)("span",{parentName:"span",className:"mclose"},")"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))),(0,m.kt)("p",null,"where ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mover",{parentName:"mrow",accent:"true"},(0,m.kt)("mrow",{parentName:"mover"},(0,m.kt)("mi",{parentName:"mrow"},"Y"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+")),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,m.kt)("mo",{parentName:"mover"},"\u02d9"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\dot{Y(H_3O^+)}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"1.23686em",verticalAlign:"-0.25em"}}),(0,m.kt)("span",{parentName:"span",className:"mord accent"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.9868600000000001em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"Y"),(0,m.kt)("span",{parentName:"span",className:"mopen"},"("),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.697331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.989em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+")))))))),(0,m.kt)("span",{parentName:"span",className:"mclose"},")"))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.319em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"accent-body",style:{left:"-0.13889em"}},(0,m.kt)("span",{parentName:"span",className:"mord"},"\u02d9")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.25em"}},(0,m.kt)("span",{parentName:"span"})))))))))," is the rate of change of the ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("mi",{parentName:"mrow"},"O"),(0,m.kt)("mo",{parentName:"mrow"},"+")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"mord"},"+")))))," abundance due to the reaction. The ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mover",{parentName:"mrow",accent:"true"},(0,m.kt)("mi",{parentName:"mover"},"Y"),(0,m.kt)("mo",{parentName:"mover"},"\u02d9"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\dot{Y}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.9201900000000001em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord accent"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.9201900000000001em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"Y"))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.25233em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"accent-body",style:{left:"-0.13889em"}},(0,m.kt)("span",{parentName:"span",className:"mord"},"\u02d9")))))))))))," s of each reaction involving the ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," are then compared to see which reactions contribute the most to the destruction and formation of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("mi",{parentName:"mrow"},"O"),(0,m.kt)("mo",{parentName:"mrow"},"+")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"mord"},"+"))))),"."),(0,m.kt)("p",null,"Our plan then is to do this for the low zeta case and the high zeta case. Hopefully, we'll see the same reactions are most important to the abundance of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," and SO at all densities and tempertures. If we don't find that that's the case, then the chemistry is these species is fairly complex and perhaps trying to present a simple cause for the CRIR dependence is not a good idea."),(0,m.kt)("p",null,"So, let's analyse the outputs!"),(0,m.kt)("h4",{id:"21-h_3o"},"2.1 ",(0,m.kt)("span",{parentName:"h4",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))),(0,m.kt)("p",null,(0,m.kt)("inlineCode",{parentName:"p"},"analysis()")," takes three arguments: the species, the output file to analyse, and a file to store the analsis output. Let's run it for every model in our little grid so we can inspect the outputs."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'outputs=glob("../output/[0-9]*.csv") #all files that start with a number\nfor output in outputs:\n \n analysis_output="../output/H3O-analysis-"+output[10:]\n uclchem.analysis.analysis("H3O+",output,analysis_output)\n')),(0,m.kt)("p",null,"This will produce one file per model output with lists of the most important reactions at each time step. Analysis will only print a time step when the most important reactions change from the previous one so we often see many fewer steps than in the full output. Let's look at the low temperature, low density, low zeta case:"),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"New Important Reactions At: 7.90e+05 years\nFormation = 1.92e-18 from:\nH2 + H2O+ -> H3O+ + H : 78.49%\nH2O + HCO+ -> CO + H3O+ : 17.68%\nH3+ + H2O -> H3O+ + H2 : 3.40%\n\nDestruction = -1.92e-18 from:\nH3O+ + E- -> OH + H + H : 65.43%\nH3O+ + E- -> H2O + H : 15.21%\nH3O+ + E- -> OH + H2 : 11.52%\nH3O+ + H2S -> H3S+ + H2O : 5.17%\nH3O+ + E- -> O + H2 + H : 1.20%\nH3O+ + HCN -> HCNH+ + H2O : 0.33%\nH3O+ + SIO -> SIOH+ + H2O : 0.33%\n")),(0,m.kt)("p",null,"What this shows is the reactions that cause 99.9% of the formation and 99.9% of the destruction of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," at a time step. The total rate of formation and destruction in units of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"s"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"1")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"s^{-1}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"s"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1")))))))))))))," is given as well the percentage of the total that each reaction contributes. "),(0,m.kt)("p",null,"What we need to find is a pattern in these reactions which holds across time and across different densities and temperatures. It actually turns out that the reactions printed above are the dominate formation and destruction routes of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," for all parameters for all times. For example, at high temperature, high density and high zeta, we get:"),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"New Important Reactions At: 1.00e+04 years\nFormation = 2.03e-14 from:\nH2 + H2O+ -> H3O+ + H : 95.47%\nH3+ + H2O -> H3O+ + H2 : 3.14%\nH2O + HCO+ -> CO + H3O+ : 1.05%\n\nDestruction = -2.03e-14 from:\nH3O+ + E- -> OH + H + H : 69.82%\nH3O+ + E- -> H2O + H : 16.23%\nH3O+ + E- -> OH + H2 : 12.29%\nH3O+ + E- -> O + H2 + H : 1.28%\n")),(0,m.kt)("p",null,"The sole difference being that the formation rate is much higher. Since equilibrium is reached, the destruction rate is also higher and so we need to use the fact we know the ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," abundance increases with CRIR to infer that the destruction rate is only faster because there is more ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," to destroy."),(0,m.kt)("p",null,"However, there are some problems here! Why does ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"2"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_2")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," + ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"2")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_2O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," become so efficient at high CRIR? We know the rate of a two body reaction does not depend on CRIR (",(0,m.kt)("a",{parentName:"p",href:"/docs/gas"},"see the chemistry docs"),") so it must be that ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"2")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_2O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," is increasing in abundance. We can run analysis on ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"2")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_2O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," to see what is driving that. In fact, as we report in the paper, following this thread we find that a chain of hydrogenations starting from ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"O"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"H"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"OH^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," is the overall route of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," formation and that this chain starts with small ions that are primarly formed through cosmic ray reactions. ",(0,m.kt)("em",{parentName:"p"},"It will very often be the case that analysing one species requires you to run analysis on another.")),(0,m.kt)("h4",{id:"22-so"},"2.2 SO"),(0,m.kt)("p",null,"With a strong explanation for ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+")))))))))))),", we can now look at SO. We start by running analysis again and then by looking at the reactions as before."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'outputs=glob("../output/[0-9]*.csv") #won\'t pick up H3O+ analysis because it\'s not a number\nfor output in outputs:\n \n analysis_output="../output/SO-analysis-"+output[10:]\n uclchem.analysis.analysis("SO",output,analysis_output)\n')),(0,m.kt)("p",null,"Again, let's start by looking at the low temperature, high density, low zeta case:"),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"New Important Reactions At: 1.31e+04 years\nFormation = 3.67e-22 from:\n#SO + THERM -> SO : 68.11%\nHSO+ + E- -> SO + H : 21.04%\n#SO + DEUVCR -> SO : 9.87%\n\nDestruction = -3.78e-22 from:\nSO + FREEZE -> #SO : 78.04%\nHCO+ + SO -> HSO+ + CO : 20.97%\n")),(0,m.kt)("p",null,"An interesting point here is that equilbrium is reached at around ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1.31"),(0,m.kt)("mo",{parentName:"mrow"},"\xd7"),(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"4"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"1.31 \\times 10^4")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.72777em",verticalAlign:"-0.08333em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},"."),(0,m.kt)("span",{parentName:"span",className:"mord"},"3"),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mbin"},"\xd7"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"4"))))))))))))," yr in this model. Since ",(0,m.kt)("inlineCode",{parentName:"p"},"analysis()")," only prints a time step when the most important reactions are different to the last one, this time step is the last output from the analysis. We can see that we broadly reach an equilibrium between thermal desorption and freeze out of SO, with some formation and destruction via ions. "),(0,m.kt)("p",null,"This doesn't hold up at lower densities or higher temperatures, looking at the high temperature, low density, low zeta case, we see a second pattern of reactions:"),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"New Important Reactions At: 9.50e+05 years\nFormation = 1.05e-20 from:\nO2 + S -> SO + O : 98.10%\nO + NS -> SO + N : 1.48%\n\nDestruction = -1.02e-20 from:\nC + SO -> CS + O : 39.10%\nC + SO -> S + CO : 39.10%\nC+ + SO -> SO+ + C : 4.33%\nC+ + SO -> CS+ + O : 4.33%\nC+ + SO -> S+ + CO : 4.33%\nC+ + SO -> S + CO+ : 4.33%\nN + SO -> S + NO : 3.46%\nH+ + SO -> SO+ + H : 0.28%\n")),(0,m.kt)("p",null,"However, it's not so complex. All the low zeta outputs show one of these two sets of reactions. Essentially, higher temperatures are opening up gas phase reaction routes which form and destroy SO. These new routes are not particularly quick with a total rate of change of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"20"))),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"s"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"1")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"10^{-20} s^{-1}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0"))))))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"s"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))))))))))),". Note that quite a lot of these are due to reactions with ions."),(0,m.kt)("p",null,"Finally, we look at the high zeta cases and find that no matter the temperature or density, we see the same reactions:"),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"New Important Reactions At: 1.81e+04 years\nFormation = 5.64e-17 from:\nO2 + S -> SO + O : 85.30%\nHSO+ + E- -> SO + H : 13.19%\nO + NS -> SO + N : 1.19%\n\nDestruction = -5.64e-17 from:\nH+ + SO -> SO+ + H : 13.16%\nC+ + SO -> SO+ + C : 10.52%\nC+ + SO -> CS+ + O : 10.52%\nC+ + SO -> S+ + CO : 10.52%\nC+ + SO -> S + CO+ : 10.52%\nH3+ + SO -> HSO+ + H2 : 9.86%\nC + SO -> CS + O : 8.90%\nC + SO -> S + CO : 8.90%\nSO + CRPHOT -> S + O : 4.11%\nSO + CRPHOT -> SO+ + E- : 4.11%\nHCO+ + SO -> HSO+ + CO : 3.20%\nHE+ + SO -> S+ + O + HE : 1.93%\nHE+ + SO -> S + O+ + HE : 1.93%\nN + SO -> S + NO : 0.87%\n")),(0,m.kt)("p",null,"Ions take over the destruction of SO when the CRIR is high and these reactions are proceeding about 1000 times faster than the low zeta rates. This makes sense as increasing the CRIR will greatly increase the abundances of these simple ionic species."),(0,m.kt)("p",null,"All in all, we can conclude that a range of gas phase reactions control the abundance of SO at low zeta but once the CRIR is high, destruction via ions dominates the SO chemistry leading to the decreasing abundance that we see."),(0,m.kt)("h2",{id:"summary-notes"},"Summary Notes"),(0,m.kt)("p",null,"In this notebook, we've run some representative models to look at why the SO and ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," abundances seem to so heavily depend on the CRIR. We find that a chain of very efficient reactions starting with simple ions comprise the primary formation route of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," so that the total production of this species depends entirely on the abundance of those ions. With high CRIR, those ions become very abundant and we get a lot of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," formation."),(0,m.kt)("p",null,"SO is complex at first glance since the formation routes vary by parameter. However, looking at the destruction routes we can see that it's simply that SO can be easily destroyed by simple ions and, again, these are very abundant in gas exposed to a high CRIR."),(0,m.kt)("p",null,"An interesting note about SO is that we could potentially say that destruction via C",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," is the dominant destruction route. However, we would caution users to be careful with that kind of statement. Reactions with H",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+")))))))))))),", HE",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," and other also destroy SO. It could be that if we turned off the C",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," reactions, the SO chemistry would be unchanged as other ions take up the slack. Therefore, unless a single reaction is clearly dominant (as in ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," formation), it is best to test the importance of a reaction by removing it before concluding it is the single most important reaction."),(0,m.kt)("h2",{id:"considerations"},"Considerations"),(0,m.kt)("p",null,(0,m.kt)("inlineCode",{parentName:"p"},"uclchem.analysis.analysis()")," looks at a snapshot of the gas and calculates the instantaneous rate of change of important reactions. However, over the course of a time step, abundances change and reactions rise and fall in importance. More importantly, complex interplay between reactions can contribute to an outcome. This is ultimately a simple, first order look at what is happening in the network but in many cases, a deeper view will be required."),(0,m.kt)("p",null,"If you struggle to find an explanation that fits all time steps in your outputs and is true across a range of parameters, then it is best not to report simple conclusions about the chemistry and to look for other ways to understand the network."))}k.isMDXComponent=!0},9996:(a,e,t)=>{t.d(e,{Z:()=>s});const s=t.p+"assets/images/holdship_ngc253-f2d6812a8c2a8fc94e669616d3410ee9.png"}}]); \ No newline at end of file diff --git a/assets/js/297e8b98.caf3a19d.js b/assets/js/297e8b98.caf3a19d.js deleted file mode 100644 index b2432050..00000000 --- a/assets/js/297e8b98.caf3a19d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5550],{3905:(a,e,t)=>{t.d(e,{Zo:()=>N,kt:()=>k});var s=t(7294);function n(a,e,t){return e in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function m(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.push.apply(t,s)}return t}function p(a){for(var e=1;e=0||(n[t]=a[t]);return n}(a,e);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(a);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(a,t)&&(n[t]=a[t])}return n}var i=s.createContext({}),l=function(a){var e=s.useContext(i),t=e;return a&&(t="function"==typeof a?a(e):p(p({},e),a)),t},N=function(a){var e=l(a.components);return s.createElement(i.Provider,{value:e},a.children)},o={inlineCode:"code",wrapper:function(a){var e=a.children;return s.createElement(s.Fragment,{},e)}},c=s.forwardRef((function(a,e){var t=a.components,n=a.mdxType,m=a.originalType,i=a.parentName,N=r(a,["components","mdxType","originalType","parentName"]),c=l(t),k=n,h=c["".concat(i,".").concat(k)]||c[k]||o[k]||m;return t?s.createElement(h,p(p({ref:e},N),{},{components:t})):s.createElement(h,p({ref:e},N))}));function k(a,e){var t=arguments,n=e&&e.mdxType;if("string"==typeof a||n){var m=t.length,p=new Array(m);p[0]=c;var r={};for(var i in e)hasOwnProperty.call(e,i)&&(r[i]=e[i]);r.originalType=a,r.mdxType="string"==typeof a?a:n,p[1]=r;for(var l=2;l{t.r(e),t.d(e,{assets:()=>N,contentTitle:()=>i,default:()=>k,frontMatter:()=>r,metadata:()=>l,toc:()=>o});var s=t(7462),n=t(3366),m=(t(7294),t(3905)),p=["components"],r={},i="Chemical Analysis",l={unversionedId:"chemical_analysis",id:"version-v3.2.0/chemical_analysis",title:"Chemical Analysis",description:"Chemical networks are complex systems where the interplay between many elements often means that small changes in one aspect of the network can greatly effect the outcome in unexpected ways. Nevertheless, there are cases where a simple chemical explanation can be found for some observed behaviour in the model outputs. This tutorial demonstrates how to use some of the functionality of the UCLCHEM library to analyse model outputs and discover these explanations.",source:"@site/versioned_docs/version-v3.2.0/chemical_analysis.md",sourceDirName:".",slug:"/chemical_analysis",permalink:"/docs/chemical_analysis",tags:[],version:"v3.2.0",frontMatter:{},sidebar:"docs",previous:{title:"Running a Grid",permalink:"/docs/running_a_grid"},next:{title:"Compilation Issues",permalink:"/docs/trouble-compile"}},N={},o=[{value:"H3O+ and SO",id:"h3o-and-so",level:2},{value:"1. Generate Test Cases",id:"1-generate-test-cases",level:3},{value:"2. Run the Analysis",id:"2-run-the-analysis",level:3},{value:"2.1 H_3O^+",id:"21-h_3o",level:4},{value:"2.2 SO",id:"22-so",level:4},{value:"Summary Notes",id:"summary-notes",level:2},{value:"Considerations",id:"considerations",level:2}],c={toc:o};function k(a){var e=a.components,r=(0,n.Z)(a,p);return(0,m.kt)("wrapper",(0,s.Z)({},c,r,{components:e,mdxType:"MDXLayout"}),(0,m.kt)("h1",{id:"chemical-analysis"},"Chemical Analysis"),(0,m.kt)("p",null,"Chemical networks are complex systems where the interplay between many elements often means that small changes in one aspect of the network can greatly effect the outcome in unexpected ways. Nevertheless, there are cases where a simple chemical explanation can be found for some observed behaviour in the model outputs. This tutorial demonstrates how to use some of the functionality of the UCLCHEM library to analyse model outputs and discover these explanations."),(0,m.kt)("p",null,"We do recommend caution when following the approach laid out in this tutorial. There are many pitfalls which we will try to point out as we go. Ultimately, a comprehensive view of how important a reaction is to the outcome of your model requires detailed statistical calculations such as the use of ",(0,m.kt)("a",{parentName:"p",href:"https://github.com/slundberg/shap"},"SHAP values")," to assign meaningful scores to how much various reactions in a network contribute to a species' abundance. Therefore, care must be taken by the user to ensure that the conclusions they draw from a simpler approach are sound."),(0,m.kt)("p",null,"We'll use an example from work that was recently published at the time of writing this tutorial to demonstrate the use of ",(0,m.kt)("inlineCode",{parentName:"p"},"uclchem.analysis.analysis()")," and how it can be used to draw conclusions about the most important reactions in a network for a given species/behaviour."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},"import uclchem\nfrom glob import glob\n")),(0,m.kt)("h2",{id:"h3o-and-so"},"H3O+ and SO"),(0,m.kt)("p",null,"In a piece of inference work in which we measured the cosmic ray ionization rate (CRIR) in NGC 253 ",(0,m.kt)("a",{parentName:"p",href:"https://ui.adsabs.harvard.edu/abs/2022arXiv220403668H/abstract"},"(Holdship et al. 2022)"),". We found that both H3O+ and SO were sensitive to the ionization rate. Furthermore, since H3O+ was increased in abundance by increasing CRIR and SO was destroyed, their ratio was extremely sensitive to the rate. "),(0,m.kt)("p",null,"In the work, we present the plot below which shows how the equilibrium abundance of each species changes with the CRIR as well as the ratio. We plot this for a range of temperatures to show that this behaviour is not particularly sensitive to the gas temperature."),(0,m.kt)("p",null,(0,m.kt)("img",{alt:"crir_h3o_so_example",src:t(9996).Z,width:"1600",height:"1067"})),(0,m.kt)("p",null,"In a sense, this is all the information we need. A complex array of reactions all compete and contribute to produce the outcome of the model. Whatever they are, we see the abundance of these species are very sensitive to the CR over a wide range of temperature and density. However, we can only trust this conclusion as far as we trust the entire chemical network since we don't know what exactly causes this behaviour."),(0,m.kt)("p",null,"If we use the analysis function, we may find all of this is driven by a small handful of reactions. The benefit would then be that our trust in our conclusions only depends on how much we trust the rates of those specific reactions. If it is very important, we can evaluate those reactions and readers of our work can make the same decisions as information from experiment changes."),(0,m.kt)("h3",{id:"1-generate-test-cases"},"1. Generate Test Cases"),(0,m.kt)("p",null,"Ideally, we should run a huge grid of models and find some rigorous way to evaluate how important each reaction is to the outcome of the model. However, if we run a small grid representative of different conditions then any simple chemical explanation will be evident if it exists. If it no simple explanation is appropriate, then the analysis module is not appropriate for our task and we could consider more complex approaches."),(0,m.kt)("p",null,"Let's run a simple grid with all possible combinations of the following:"),(0,m.kt)("ul",null,(0,m.kt)("li",{parentName:"ul"},"A low CRIR (zeta=1) and high CRIR (zeta=1e4)"),(0,m.kt)("li",{parentName:"ul"},"A typical cloud density (n=1e4) and high density (n=1e6)"),(0,m.kt)("li",{parentName:"ul"},"The lower temperature bound of NGC 253 CMZ (50 K) and a high temperature (250 K)")),(0,m.kt)("p",null,"and that will give us enough to work with for our analysis."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'params={\'baseAv\':10, #UV shielded gas in our model\n \'freefall\':False,\n \'finalTime\':1e6\n }\nfor temperature in [50,250]:\n for density in [1e4,1e6]:\n for zeta in [1,1e4]:\n params["initialtemp"]=temperature\n params["initialdens"]=density\n params["zeta"]=zeta\n params["outputfile"]=f"../output/{temperature}_{density}_{zeta}.csv"\n uclchem.model.cloud(param_dict=params)\n')),(0,m.kt)("h3",{id:"2-run-the-analysis"},"2. Run the Analysis"),(0,m.kt)("p",null,"The ",(0,m.kt)("inlineCode",{parentName:"p"},"analysis")," function is very simple. For every time step in your model output, it will use UCLCHEM to calculate the rate of every reaction which includes a chosen species. It then uses the abundances at that time step to calculate the total contribution of that reaction to the rate of change of the species' abundance."),(0,m.kt)("p",null,"For example, if we care about H3O+ and find that it is created by ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"2")),(0,m.kt)("mi",{parentName:"mrow"},"O")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_2O")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O")))))," + ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"H"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+")))))))))))),", then UCLCHEM is called to get ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"k")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"))))),", the rate of that reaction and then analysis calculates"),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mover",{parentName:"mrow",accent:"true"},(0,m.kt)("mrow",{parentName:"mover"},(0,m.kt)("mi",{parentName:"mrow"},"Y"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+")),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,m.kt)("mo",{parentName:"mover"},"\u02d9")),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("mi",{parentName:"mrow"},"k"),(0,m.kt)("mi",{parentName:"mrow"},"Y"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"2")),(0,m.kt)("mi",{parentName:"mrow"},"O"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,m.kt)("mi",{parentName:"mrow"},"Y"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"H"),(0,m.kt)("mo",{parentName:"msup"},"+")),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"n"),(0,m.kt)("mi",{parentName:"msub"},"H"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\dot{Y(H_3O^+)} = k Y(H_2O) Y(H^+) n_H")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"1.23686em",verticalAlign:"-0.25em"}}),(0,m.kt)("span",{parentName:"span",className:"mord accent"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.9868600000000001em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"Y"),(0,m.kt)("span",{parentName:"span",className:"mopen"},"("),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.697331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.989em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+")))))))),(0,m.kt)("span",{parentName:"span",className:"mclose"},")"))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.319em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"accent-body",style:{left:"-0.13889em"}},(0,m.kt)("span",{parentName:"span",className:"mord"},"\u02d9")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.25em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"1.071331em",verticalAlign:"-0.25em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"Y"),(0,m.kt)("span",{parentName:"span",className:"mopen"},"("),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"mclose"},")"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"Y"),(0,m.kt)("span",{parentName:"span",className:"mopen"},"("),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.821331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.113em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+")))))))),(0,m.kt)("span",{parentName:"span",className:"mclose"},")"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))),(0,m.kt)("p",null,"where ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mover",{parentName:"mrow",accent:"true"},(0,m.kt)("mrow",{parentName:"mover"},(0,m.kt)("mi",{parentName:"mrow"},"Y"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+")),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,m.kt)("mo",{parentName:"mover"},"\u02d9"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\dot{Y(H_3O^+)}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"1.23686em",verticalAlign:"-0.25em"}}),(0,m.kt)("span",{parentName:"span",className:"mord accent"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.9868600000000001em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"Y"),(0,m.kt)("span",{parentName:"span",className:"mopen"},"("),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.697331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.989em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+")))))))),(0,m.kt)("span",{parentName:"span",className:"mclose"},")"))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.319em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"accent-body",style:{left:"-0.13889em"}},(0,m.kt)("span",{parentName:"span",className:"mord"},"\u02d9")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.25em"}},(0,m.kt)("span",{parentName:"span"})))))))))," is the rate of change of the ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("mi",{parentName:"mrow"},"O"),(0,m.kt)("mo",{parentName:"mrow"},"+")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"mord"},"+")))))," abundance due to the reaction. The ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mover",{parentName:"mrow",accent:"true"},(0,m.kt)("mi",{parentName:"mover"},"Y"),(0,m.kt)("mo",{parentName:"mover"},"\u02d9"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\dot{Y}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.9201900000000001em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord accent"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.9201900000000001em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"Y"))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.25233em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"accent-body",style:{left:"-0.13889em"}},(0,m.kt)("span",{parentName:"span",className:"mord"},"\u02d9")))))))))))," s of each reaction involving the ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," are then compared to see which reactions contribute the most to the destruction and formation of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("mi",{parentName:"mrow"},"O"),(0,m.kt)("mo",{parentName:"mrow"},"+")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"mord"},"+"))))),"."),(0,m.kt)("p",null,"Our plan then is to do this for the low zeta case and the high zeta case. Hopefully, we'll see the same reactions are most important to the abundance of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," and SO at all densities and tempertures. If we don't find that that's the case, then the chemistry is these species is fairly complex and perhaps trying to present a simple cause for the CRIR dependence is not a good idea."),(0,m.kt)("p",null,"So, let's analyse the outputs!"),(0,m.kt)("h4",{id:"21-h_3o"},"2.1 ",(0,m.kt)("span",{parentName:"h4",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))),(0,m.kt)("p",null,(0,m.kt)("inlineCode",{parentName:"p"},"analysis()")," takes three arguments: the species, the output file to analyse, and a file to store the analsis output. Let's run it for every model in our little grid so we can inspect the outputs."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'outputs=glob("../output/[0-9]*.csv") #all files that start with a number\nfor output in outputs:\n \n analysis_output="../output/H3O-analysis-"+output[10:]\n uclchem.analysis.analysis("H3O+",output,analysis_output)\n')),(0,m.kt)("p",null,"This will produce one file per model output with lists of the most important reactions at each time step. Analysis will only print a time step when the most important reactions change from the previous one so we often see many fewer steps than in the full output. Let's look at the low temperature, low density, low zeta case:"),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"New Important Reactions At: 7.90e+05 years\nFormation = 1.92e-18 from:\nH2 + H2O+ -> H3O+ + H : 78.49%\nH2O + HCO+ -> CO + H3O+ : 17.68%\nH3+ + H2O -> H3O+ + H2 : 3.40%\n\nDestruction = -1.92e-18 from:\nH3O+ + E- -> OH + H + H : 65.43%\nH3O+ + E- -> H2O + H : 15.21%\nH3O+ + E- -> OH + H2 : 11.52%\nH3O+ + H2S -> H3S+ + H2O : 5.17%\nH3O+ + E- -> O + H2 + H : 1.20%\nH3O+ + HCN -> HCNH+ + H2O : 0.33%\nH3O+ + SIO -> SIOH+ + H2O : 0.33%\n")),(0,m.kt)("p",null,"What this shows is the reactions that cause 99.9% of the formation and 99.9% of the destruction of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," at a time step. The total rate of formation and destruction in units of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"s"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"1")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"s^{-1}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"s"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1")))))))))))))," is given as well the percentage of the total that each reaction contributes. "),(0,m.kt)("p",null,"What we need to find is a pattern in these reactions which holds across time and across different densities and temperatures. It actually turns out that the reactions printed above are the dominate formation and destruction routes of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," for all parameters for all times. For example, at high temperature, high density and high zeta, we get:"),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"New Important Reactions At: 1.00e+04 years\nFormation = 2.03e-14 from:\nH2 + H2O+ -> H3O+ + H : 95.47%\nH3+ + H2O -> H3O+ + H2 : 3.14%\nH2O + HCO+ -> CO + H3O+ : 1.05%\n\nDestruction = -2.03e-14 from:\nH3O+ + E- -> OH + H + H : 69.82%\nH3O+ + E- -> H2O + H : 16.23%\nH3O+ + E- -> OH + H2 : 12.29%\nH3O+ + E- -> O + H2 + H : 1.28%\n")),(0,m.kt)("p",null,"The sole difference being that the formation rate is much higher. Since equilibrium is reached, the destruction rate is also higher and so we need to use the fact we know the ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," abundance increases with CRIR to infer that the destruction rate is only faster because there is more ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," to destroy."),(0,m.kt)("p",null,"However, there are some problems here! Why does ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"2"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_2")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," + ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"2")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_2O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," become so efficient at high CRIR? We know the rate of a two body reaction does not depend on CRIR (",(0,m.kt)("a",{parentName:"p",href:"/docs/gas"},"see the chemistry docs"),") so it must be that ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"2")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_2O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," is increasing in abundance. We can run analysis on ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"2")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_2O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," to see what is driving that. In fact, as we report in the paper, following this thread we find that a chain of hydrogenations starting from ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"O"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"H"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"OH^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," is the overall route of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," formation and that this chain starts with small ions that are primarly formed through cosmic ray reactions. ",(0,m.kt)("em",{parentName:"p"},"It will very often be the case that analysing one species requires you to run analysis on another.")),(0,m.kt)("h4",{id:"22-so"},"2.2 SO"),(0,m.kt)("p",null,"With a strong explanation for ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+")))))))))))),", we can now look at SO. We start by running analysis again and then by looking at the reactions as before."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'outputs=glob("../output/[0-9]*.csv") #won\'t pick up H3O+ analysis because it\'s not a number\nfor output in outputs:\n \n analysis_output="../output/SO-analysis-"+output[10:]\n uclchem.analysis.analysis("SO",output,analysis_output)\n')),(0,m.kt)("p",null,"Again, let's start by looking at the low temperature, high density, low zeta case:"),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"New Important Reactions At: 1.31e+04 years\nFormation = 3.67e-22 from:\n#SO + THERM -> SO : 68.11%\nHSO+ + E- -> SO + H : 21.04%\n#SO + DEUVCR -> SO : 9.87%\n\nDestruction = -3.78e-22 from:\nSO + FREEZE -> #SO : 78.04%\nHCO+ + SO -> HSO+ + CO : 20.97%\n")),(0,m.kt)("p",null,"An interesting point here is that equilbrium is reached at around ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1.31"),(0,m.kt)("mo",{parentName:"mrow"},"\xd7"),(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"4"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"1.31 \\times 10^4")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.72777em",verticalAlign:"-0.08333em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},"."),(0,m.kt)("span",{parentName:"span",className:"mord"},"3"),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mbin"},"\xd7"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"4"))))))))))))," yr in this model. Since ",(0,m.kt)("inlineCode",{parentName:"p"},"analysis()")," only prints a time step when the most important reactions are different to the last one, this time step is the last output from the analysis. We can see that we broadly reach an equilibrium between thermal desorption and freeze out of SO, with some formation and destruction via ions. "),(0,m.kt)("p",null,"This doesn't hold up at lower densities or higher temperatures, looking at the high temperature, low density, low zeta case, we see a second pattern of reactions:"),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"New Important Reactions At: 9.50e+05 years\nFormation = 1.05e-20 from:\nO2 + S -> SO + O : 98.10%\nO + NS -> SO + N : 1.48%\n\nDestruction = -1.02e-20 from:\nC + SO -> CS + O : 39.10%\nC + SO -> S + CO : 39.10%\nC+ + SO -> SO+ + C : 4.33%\nC+ + SO -> CS+ + O : 4.33%\nC+ + SO -> S+ + CO : 4.33%\nC+ + SO -> S + CO+ : 4.33%\nN + SO -> S + NO : 3.46%\nH+ + SO -> SO+ + H : 0.28%\n")),(0,m.kt)("p",null,"However, it's not so complex. All the low zeta outputs show one of these two sets of reactions. Essentially, higher temperatures are opening up gas phase reaction routes which form and destroy SO. These new routes are not particularly quick with a total rate of change of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"20"))),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"s"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"1")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"10^{-20} s^{-1}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0"))))))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"s"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))))))))))),". Note that quite a lot of these are due to reactions with ions."),(0,m.kt)("p",null,"Finally, we look at the high zeta cases and find that no matter the temperature or density, we see the same reactions:"),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"New Important Reactions At: 1.81e+04 years\nFormation = 5.64e-17 from:\nO2 + S -> SO + O : 85.30%\nHSO+ + E- -> SO + H : 13.19%\nO + NS -> SO + N : 1.19%\n\nDestruction = -5.64e-17 from:\nH+ + SO -> SO+ + H : 13.16%\nC+ + SO -> SO+ + C : 10.52%\nC+ + SO -> CS+ + O : 10.52%\nC+ + SO -> S+ + CO : 10.52%\nC+ + SO -> S + CO+ : 10.52%\nH3+ + SO -> HSO+ + H2 : 9.86%\nC + SO -> CS + O : 8.90%\nC + SO -> S + CO : 8.90%\nSO + CRPHOT -> S + O : 4.11%\nSO + CRPHOT -> SO+ + E- : 4.11%\nHCO+ + SO -> HSO+ + CO : 3.20%\nHE+ + SO -> S+ + O + HE : 1.93%\nHE+ + SO -> S + O+ + HE : 1.93%\nN + SO -> S + NO : 0.87%\n")),(0,m.kt)("p",null,"Ions take over the destruction of SO when the CRIR is high and these reactions are proceeding about 1000 times faster than the low zeta rates. This makes sense as increasing the CRIR will greatly increase the abundances of these simple ionic species."),(0,m.kt)("p",null,"All in all, we can conclude that a range of gas phase reactions control the abundance of SO at low zeta but once the CRIR is high, destruction via ions dominates the SO chemistry leading to the decreasing abundance that we see."),(0,m.kt)("h2",{id:"summary-notes"},"Summary Notes"),(0,m.kt)("p",null,"In this notebook, we've run some representative models to look at why the SO and ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," abundances seem to so heavily depend on the CRIR. We find that a chain of very efficient reactions starting with simple ions comprise the primary formation route of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," so that the total production of this species depends entirely on the abundance of those ions. With high CRIR, those ions become very abundant and we get a lot of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," formation."),(0,m.kt)("p",null,"SO is complex at first glance since the formation routes vary by parameter. However, looking at the destruction routes we can see that it's simply that SO can be easily destroyed by simple ions and, again, these are very abundant in gas exposed to a high CRIR."),(0,m.kt)("p",null,"An interesting note about SO is that we could potentially say that destruction via C",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," is the dominant destruction route. However, we would caution users to be careful with that kind of statement. Reactions with H",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+")))))))))))),", HE",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," and other also destroy SO. It could be that if we turned off the C",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," reactions, the SO chemistry would be unchanged as other ions take up the slack. Therefore, unless a single reaction is clearly dominant (as in ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," formation), it is best to test the importance of a reaction by removing it before concluding it is the single most important reaction."),(0,m.kt)("h2",{id:"considerations"},"Considerations"),(0,m.kt)("p",null,(0,m.kt)("inlineCode",{parentName:"p"},"uclchem.analysis.analysis()")," looks at a snapshot of the gas and calculates the instantaneous rate of change of important reactions. However, over the course of a time step, abundances change and reactions rise and fall in importance. More importantly, complex interplay between reactions can contribute to an outcome. This is ultimately a simple, first order look at what is happening in the network but in many cases, a deeper view will be required."),(0,m.kt)("p",null,"If you struggle to find an explanation that fits all time steps in your outputs and is true across a range of parameters, then it is best not to report simple conclusions about the chemistry and to look for other ways to understand the network."))}k.isMDXComponent=!0},9996:(a,e,t)=>{t.d(e,{Z:()=>s});const s=t.p+"assets/images/holdship_ngc253-f2d6812a8c2a8fc94e669616d3410ee9.png"}}]); \ No newline at end of file diff --git a/assets/js/2dbc3c34.3b325659.js b/assets/js/2dbc3c34.3b325659.js new file mode 100644 index 00000000..b7f27ee7 --- /dev/null +++ b/assets/js/2dbc3c34.3b325659.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3357],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=c(n),f=o,g=d["".concat(s,".").concat(f)]||d[f]||p[f]||a;return n?r.createElement(g,i(i({ref:t},u),{},{components:n})):r.createElement(g,i({ref:t},u))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:o,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>s,default:()=>f,frontMatter:()=>l,metadata:()=>c,toc:()=>p});var r=n(7462),o=n(3366),a=(n(7294),n(3905)),i=["components"],l={id:"trouble-integration",title:"Integration"},s=void 0,c={unversionedId:"trouble-integration",id:"trouble-integration",title:"Integration",description:"My code just keeps running",source:"@site/docs/trouble-integration.md",sourceDirName:".",slug:"/trouble-integration",permalink:"/docs/next/trouble-integration",draft:!1,tags:[],version:"current",lastUpdatedBy:"jonholdship",lastUpdatedAt:1651073142,formattedLastUpdatedAt:"Apr 27, 2022",frontMatter:{id:"trouble-integration",title:"Integration"},sidebar:"docs",previous:{title:"Compilation Issues",permalink:"/docs/next/trouble-compile"},next:{title:"Core Physics",permalink:"/docs/next/physics-core"}},u={},p=[{value:"My code just keeps running",id:"my-code-just-keeps-running",level:2},{value:"Crashing/Stalling Model Runs",id:"crashingstalling-model-runs",level:2}],d={toc:p};function f(e){var t=e.components,n=(0,o.Z)(e,i);return(0,a.kt)("wrapper",(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"my-code-just-keeps-running"},"My code just keeps running"),(0,a.kt)("p",null,"If you're working in jupyter notebooks, fortran output will often not be printed to the cell outputs until the cell finishes running. This can be a real problem if the integration is failing because UCLCHEM may be printing warnings to the screen but you won't see them. If your code is running for a few minutes in a notebook, you may want to export the code to a python script and run it. The uclchem output will print to the console and you will see the integration errors piling up."),(0,a.kt)("h2",{id:"crashingstalling-model-runs"},"Crashing/Stalling Model Runs"),(0,a.kt)("p",null,"Chemical ODEs are infamously stiff and, as such, difficult to solve. There's also no single solver configuration we can use that will guarantee an efficient and accurate solution to every single problem. In particular, if you have a very large network or one with very fast reactions, you may find the integrator stuggles. "),(0,a.kt)("p",null,'You\'ll know the integrator is struggling if you find you get a lot of printed messages stating "ISTATE = -n" (where n is some integer). If the model run completes and there is nothing obviously wrong (eg oscillations) then its likely the solution is fine and your network/parameter combination is at the edge of what the solver can handle. If it takes a very long time or never completes, there is an issue.'),(0,a.kt)("p",null,"One good method to check the validity of your solution is to use the element conservation functions in the ",(0,a.kt)("a",{parentName:"p",href:"/docs/pythonapi#uclchem.analysis.check_element_conservation"},"python module"),". The integrator typically fails to conserve elemental abundances when the integration has accumulated too large an error. Thus, checking for conservation can reassure you that the integration was successful even if the integrator struggled."),(0,a.kt)("p",null,"To fix this, your first port of call should be the ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol_factor"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol_min")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"reltol")," parameters. The comments in ",(0,a.kt)("inlineCode",{parentName:"p"},"src/fortran_src/dvode.f90")," give a fantastic overview of the integrator but in essence, DVODE takes two parameters: ",(0,a.kt)("inlineCode",{parentName:"p"},"reltol")," should set the decimal place accuracy of your abundances and ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol")," the overall error you'll accept. In UCLCHEM, reltol is just a number but we use DVODE's option of making ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol")," a vector with one value per species instead of a single value. This allows us to change the error tolerance depending on the species abundances. ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol")," will take the value of ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol_factor")," times the species abundance or ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol_min"),", whichever is larger."),(0,a.kt)("p",null,"Changing the tolerances is a dark art and it isn't necessarily the case that smaller values = more accuracy and larger values = faster integration. Trying a few values (particularly of ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol_factor"),") is always a good first step when you hit integrator problems."),(0,a.kt)("p",null,"If that doesn't work, you should investigate whether your network is reasonable. Duplicated reactions and bad rate coefficients can result in reactions going too quickly and breaking the integrator."))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2dbc3c34.a78bafff.js b/assets/js/2dbc3c34.a78bafff.js deleted file mode 100644 index 1af88cf4..00000000 --- a/assets/js/2dbc3c34.a78bafff.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3357],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=c(n),f=o,g=d["".concat(s,".").concat(f)]||d[f]||p[f]||a;return n?r.createElement(g,i(i({ref:t},u),{},{components:n})):r.createElement(g,i({ref:t},u))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:o,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>s,default:()=>f,frontMatter:()=>l,metadata:()=>c,toc:()=>p});var r=n(7462),o=n(3366),a=(n(7294),n(3905)),i=["components"],l={id:"trouble-integration",title:"Integration"},s=void 0,c={unversionedId:"trouble-integration",id:"trouble-integration",title:"Integration",description:"My code just keeps running",source:"@site/docs/trouble-integration.md",sourceDirName:".",slug:"/trouble-integration",permalink:"/docs/next/trouble-integration",tags:[],version:"current",lastUpdatedBy:"jonholdship",lastUpdatedAt:1651073142,formattedLastUpdatedAt:"4/27/2022",frontMatter:{id:"trouble-integration",title:"Integration"},sidebar:"docs",previous:{title:"Compilation Issues",permalink:"/docs/next/trouble-compile"},next:{title:"Core Physics",permalink:"/docs/next/physics-core"}},u={},p=[{value:"My code just keeps running",id:"my-code-just-keeps-running",level:2},{value:"Crashing/Stalling Model Runs",id:"crashingstalling-model-runs",level:2}],d={toc:p};function f(e){var t=e.components,n=(0,o.Z)(e,i);return(0,a.kt)("wrapper",(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"my-code-just-keeps-running"},"My code just keeps running"),(0,a.kt)("p",null,"If you're working in jupyter notebooks, fortran output will often not be printed to the cell outputs until the cell finishes running. This can be a real problem if the integration is failing because UCLCHEM may be printing warnings to the screen but you won't see them. If your code is running for a few minutes in a notebook, you may want to export the code to a python script and run it. The uclchem output will print to the console and you will see the integration errors piling up."),(0,a.kt)("h2",{id:"crashingstalling-model-runs"},"Crashing/Stalling Model Runs"),(0,a.kt)("p",null,"Chemical ODEs are infamously stiff and, as such, difficult to solve. There's also no single solver configuration we can use that will guarantee an efficient and accurate solution to every single problem. In particular, if you have a very large network or one with very fast reactions, you may find the integrator stuggles. "),(0,a.kt)("p",null,'You\'ll know the integrator is struggling if you find you get a lot of printed messages stating "ISTATE = -n" (where n is some integer). If the model run completes and there is nothing obviously wrong (eg oscillations) then its likely the solution is fine and your network/parameter combination is at the edge of what the solver can handle. If it takes a very long time or never completes, there is an issue.'),(0,a.kt)("p",null,"One good method to check the validity of your solution is to use the element conservation functions in the ",(0,a.kt)("a",{parentName:"p",href:"/docs/pythonapi#uclchem.analysis.check_element_conservation"},"python module"),". The integrator typically fails to conserve elemental abundances when the integration has accumulated too large an error. Thus, checking for conservation can reassure you that the integration was successful even if the integrator struggled."),(0,a.kt)("p",null,"To fix this, your first port of call should be the ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol_factor"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol_min")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"reltol")," parameters. The comments in ",(0,a.kt)("inlineCode",{parentName:"p"},"src/fortran_src/dvode.f90")," give a fantastic overview of the integrator but in essence, DVODE takes two parameters: ",(0,a.kt)("inlineCode",{parentName:"p"},"reltol")," should set the decimal place accuracy of your abundances and ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol")," the overall error you'll accept. In UCLCHEM, reltol is just a number but we use DVODE's option of making ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol")," a vector with one value per species instead of a single value. This allows us to change the error tolerance depending on the species abundances. ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol")," will take the value of ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol_factor")," times the species abundance or ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol_min"),", whichever is larger."),(0,a.kt)("p",null,"Changing the tolerances is a dark art and it isn't necessarily the case that smaller values = more accuracy and larger values = faster integration. Trying a few values (particularly of ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol_factor"),") is always a good first step when you hit integrator problems."),(0,a.kt)("p",null,"If that doesn't work, you should investigate whether your network is reasonable. Duplicated reactions and bad rate coefficients can result in reactions going too quickly and breaking the integrator."))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/30669678.ce2db1e6.js b/assets/js/30669678.4657d731.js similarity index 59% rename from assets/js/30669678.ce2db1e6.js rename to assets/js/30669678.4657d731.js index dbe6692d..cbc3a45e 100644 --- a/assets/js/30669678.ce2db1e6.js +++ b/assets/js/30669678.4657d731.js @@ -1 +1 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4129],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>d});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},f={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=l(n),d=a,h=u["".concat(s,".").concat(d)]||u[d]||f[d]||o;return n?r.createElement(h,i(i({ref:t},p),{},{components:n})):r.createElement(h,i({ref:t},p))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=u;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c.mdxType="string"==typeof e?e:a,i[1]=c;for(var l=2;l{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>d,frontMatter:()=>c,metadata:()=>l,toc:()=>f});var r=n(7462),a=n(3366),o=(n(7294),n(3905)),i=["components"],c={title:"A chemical study of carbon fractionation in external galaxies",authors:"serena"},s=void 0,l={permalink:"/blog/2019/08/13/serena-carbon-frac",source:"@site/blog/2019-08-13-serena-carbon-frac.md",title:"A chemical study of carbon fractionation in external galaxies",description:"UCLCHEM has recently been used to study carbon fractionation in external galaxies. You can find the paper here and the abstract below.",date:"2019-08-13T00:00:00.000Z",formattedDate:"August 13, 2019",tags:[],readingTime:.825,truncated:!1,authors:[{name:"Serena Viti",title:"UCLCHEM PI",url:"https://home.strw.leidenuniv.nl/~viti/",imageURL:"/img/viti.jpg",key:"serena"}],frontMatter:{title:"A chemical study of carbon fractionation in external galaxies",authors:"serena"},prevItem:{title:"Tracing shock type with chemical diagnostics - an application to L1157",permalink:"/blog/2019/12/10/tom-shock"},nextItem:{title:"Ambipolar diffusion and the molecular abundances inprestellar cores",permalink:"/blog/2019/07/08/felix-ambipolar"}},p={authorsImageUrls:[void 0]},f=[],u={toc:f};function d(e){var t=e.components,n=(0,a.Z)(e,i);return(0,o.kt)("wrapper",(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"UCLCHEM has recently been used to study carbon fractionation in external galaxies. You can find ",(0,o.kt)("a",{parentName:"p",href:"https://arxiv.org/pdf/2007.12405.pdf"},"the paper here")," and the abstract below."),(0,o.kt)("p",null,"In the interstellar medium carbon exists in the form of two stable isotopes 12C and 13C and their ratio is a good indicator of nucleosynthesis in galaxies. However, chemical fractionation can potentially significantly alter this ratio and in fact observations of carbon fractionation within the same galaxy has been found to vary from species to species. In this paper, we theoretically investigate the carbon fractionation for selected abundant carbon-bearing species in order to determine the conditions that may lead to a spread of the 12C/13C ratio in external galaxies. We find that carbon fractionation is sensitive to almost all the physical conditions we investigated, it strongly varies with time for all species but CO, and shows pronounced differences across species. Finally, we discuss our theoretical results in the context of the few observations of the 12C/13C in both local and higher redshift galaxies."))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4129],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>d});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},f={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=l(n),d=a,h=u["".concat(s,".").concat(d)]||u[d]||f[d]||o;return n?r.createElement(h,i(i({ref:t},p),{},{components:n})):r.createElement(h,i({ref:t},p))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=u;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c.mdxType="string"==typeof e?e:a,i[1]=c;for(var l=2;l{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>d,frontMatter:()=>c,metadata:()=>l,toc:()=>f});var r=n(7462),a=n(3366),o=(n(7294),n(3905)),i=["components"],c={title:"A chemical study of carbon fractionation in external galaxies",authors:"serena"},s=void 0,l={permalink:"/blog/2019/08/13/serena-carbon-frac",source:"@site/blog/2019-08-13-serena-carbon-frac.md",title:"A chemical study of carbon fractionation in external galaxies",description:"UCLCHEM has recently been used to study carbon fractionation in external galaxies. You can find the paper here and the abstract below.",date:"2019-08-13T00:00:00.000Z",formattedDate:"August 13, 2019",tags:[],readingTime:.825,hasTruncateMarker:!1,authors:[{name:"Serena Viti",title:"UCLCHEM PI",url:"https://home.strw.leidenuniv.nl/~viti/",imageURL:"/img/viti.jpg",key:"serena"}],frontMatter:{title:"A chemical study of carbon fractionation in external galaxies",authors:"serena"},prevItem:{title:"Tracing shock type with chemical diagnostics - an application to L1157",permalink:"/blog/2019/12/10/tom-shock"},nextItem:{title:"Ambipolar diffusion and the molecular abundances inprestellar cores",permalink:"/blog/2019/07/08/felix-ambipolar"}},p={authorsImageUrls:[void 0]},f=[],u={toc:f};function d(e){var t=e.components,n=(0,a.Z)(e,i);return(0,o.kt)("wrapper",(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"UCLCHEM has recently been used to study carbon fractionation in external galaxies. You can find ",(0,o.kt)("a",{parentName:"p",href:"https://arxiv.org/pdf/2007.12405.pdf"},"the paper here")," and the abstract below."),(0,o.kt)("p",null,"In the interstellar medium carbon exists in the form of two stable isotopes 12C and 13C and their ratio is a good indicator of nucleosynthesis in galaxies. However, chemical fractionation can potentially significantly alter this ratio and in fact observations of carbon fractionation within the same galaxy has been found to vary from species to species. In this paper, we theoretically investigate the carbon fractionation for selected abundant carbon-bearing species in order to determine the conditions that may lead to a spread of the 12C/13C ratio in external galaxies. We find that carbon fractionation is sensitive to almost all the physical conditions we investigated, it strongly varies with time for all species but CO, and shows pronounced differences across species. Finally, we discuss our theoretical results in the context of the few observations of the 12C/13C in both local and higher redshift galaxies."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/32e9b7cb.0e0d5112.js b/assets/js/32e9b7cb.0e0d5112.js deleted file mode 100644 index fe294d81..00000000 --- a/assets/js/32e9b7cb.0e0d5112.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2927],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var s=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,s)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=s.createContext({}),p=function(e){var t=s.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},c=function(e){var t=p(e.components);return s.createElement(l.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return s.createElement(s.Fragment,{},t)}},u=s.forwardRef((function(e,t){var a=e.components,n=e.mdxType,r=e.originalType,l=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),u=p(a),h=n,d=u["".concat(l,".").concat(h)]||u[h]||m[h]||r;return a?s.createElement(d,i(i({ref:t},c),{},{components:a})):s.createElement(d,i({ref:t},c))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=a.length,i=new Array(r);i[0]=u;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o.mdxType="string"==typeof e?e:n,i[1]=o;for(var p=2;p{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>o,metadata:()=>p,toc:()=>m});var s=a(7462),n=a(3366),r=(a(7294),a(3905)),i=["components"],o={id:"network",title:"Creating a Network"},l=void 0,p={unversionedId:"network",id:"version-v3.1.0/network",title:"Creating a Network",description:"MakeRates",source:"@site/versioned_docs/version-v3.1.0/start-network.md",sourceDirName:".",slug:"/network",permalink:"/docs/v3.1.0/network",tags:[],version:"v3.1.0",frontMatter:{id:"network",title:"Creating a Network"},sidebar:"docs",previous:{title:"Installation",permalink:"/docs/v3.1.0/"},next:{title:"Model Parameters",permalink:"/docs/v3.1.0/parameters"}},c={},m=[{value:"MakeRates",id:"makerates",level:2},{value:"Input",id:"input",level:2},{value:"Default Network",id:"default-network",level:2},{value:"Outputs",id:"outputs",level:2},{value:"What MakeRates Does",id:"what-makerates-does",level:2},{value:"Creating your own Network",id:"creating-your-own-network",level:2},{value:"Species list",id:"species-list",level:4},{value:"Reaction list",id:"reaction-list",level:4},{value:"Three Phase Chemistry",id:"three-phase-chemistry",level:2}],u={toc:m};function h(e){var t=e.components,a=(0,n.Z)(e,i);return(0,r.kt)("wrapper",(0,s.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"makerates"},"MakeRates"),(0,r.kt)("p",null,"In order to make a chemical model flexible, the ability to solve a user supplied chemical network is a must. UCLCHEM uses a preprocessing python script to turn csv lists of species and reactions into fortran files for use in the main code. This script is called MakeRates and can be found in the Makerates subdirectory of the repository. It combines a gas phase reaction database with user supplied lists of species and additional reactions into the necessary Fortran code to run UCLCHEM. It also supplies a number of human readable outputs."),(0,r.kt)("p",null,"In the sections below, we discuss how to build your network and set the inputs for MakeRates but once that is done, you can run MakeRates with the following commands:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"cd MakeRates\npython MakeRates.py\ncd ..\npip install .\n")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Note the pip install at the end of the process. Any output from MakeRates requires that the code be recompiled because MakeRates produces new source code for UCLCHEM!")),(0,r.kt)("h2",{id:"input"},"Input"),(0,r.kt)("p",null,"Makerates is controlled using a yaml file ",(0,r.kt)("inlineCode",{parentName:"p"},"Makerates/user_settings.yaml"),". By changing the values in this file, you can create different networks. The default values of this file are copied below."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"#Your list of all species\nspecies_file : inputFiles/default_species.csv\n\n#core reactions from gas phase database\ndatabase_reaction_file : inputFiles/umist12-ucledit.csv\ndatabase_reaction_type : UMIST\n\n#set of additional reactions: eg grain network\ncustom_reaction_file : inputFiles/default_grain_network.csv\ncustom_reaction_type : UCL\n\n#whether to automatically expand to three phase network\nthree_phase : True\n")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"species_file")," is a csv list of species and their properties. We provide a default list and detailed instructions below."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"database_reaction_file")," is your first reaction file, we expect most users to use UMIST12 or KIDA2014 for this but you could create your own file from an alternative database. Makerates can read files formatted in the same manner as the UMIST or KIDA databases as well as our own simple csv format, the ",(0,r.kt)("inlineCode",{parentName:"p"},"database_reaction_type")," setting lets MakeRates know which and should be set to 'UMIST', 'KIDA', or 'UCL'."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"custom_reaction_file")," is an additional reaction file. In the example file, we include all of our grain surface reactions which is the intended use of this file. "),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"three_phase")," is a toggle that tells MakeRates whether to automatically expand your network into a three phase model."),(0,r.kt)("h2",{id:"default-network"},"Default Network"),(0,r.kt)("p",null,"A basic version of each of the required file is supplied in the repository. The network that MakeRates produces from those files is also include in the source code so that a new user who simply installs UCLCHEM without running MakeRates will be using our default network. These default files serve largely as examples of how the files should be formatted and we also describe each one below so that the user can produce their own network."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"We do not endorse the default network"),", we have simply produced a grain surface network that was relatively up to date in 2018. It produces reasonable ice mantle abundances for major species and ignores larger COMs. We strongly suggest any published work be based on a network in which the user has confidence. However, where the user is not greatly concerned with grain surface chemistry, the default network is a good starting point."),(0,r.kt)("h2",{id:"outputs"},"Outputs"),(0,r.kt)("p",null,"Outputs from MakeRates are automatically moved to the ",(0,r.kt)("inlineCode",{parentName:"p"},"src/")," directory so the user can ",(0,r.kt)("inlineCode",{parentName:"p"},"pip install .")," and update their installation of UCLCHEM to use their new network. However, by adding the parameter ",(0,r.kt)("inlineCode",{parentName:"p"},"output_directory")," to the yaml file, you can have all the files moved to a directory instead without copying them to your UCLCHEM src folder. If you do, the following files will be produced:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"network.f90 - Fortran arrays containing lists of species names and properties (mass, binding energy etc) as well as reaction reactants, products and rate coefficients."),(0,r.kt)("li",{parentName:"ul"},"odes.f90 - Code to calculate the rate of change of each species' abundance for the numerical solver"),(0,r.kt)("li",{parentName:"ul"},"species.csv - A list of all species in the network and their properties. Made for humans not UCLCHEM."),(0,r.kt)("li",{parentName:"ul"},"reactions.csv - A list of all reactions including reactants, products and coefficients. Made for humans not UCLCHEM.")),(0,r.kt)("h2",{id:"what-makerates-does"},"What MakeRates Does"),(0,r.kt)("p",null,"MakeRates does the following:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Combines the two input reaction lists"),(0,r.kt)("li",{parentName:"ul"},"Filters to remove any reactions containing species not in the input species list"),(0,r.kt)("li",{parentName:"ul"},"Adds freeze out and desorption reactions for all species"),(0,r.kt)("li",{parentName:"ul"},"Creates branching reactions for Langmuir-Hinshelwood and Eley-Rideal reactions where products chemically desorb"),(0,r.kt)("li",{parentName:"ul"},"Optionally: creates additional reactions and species needed for a three phase network"),(0,r.kt)("li",{parentName:"ul"},"Does basic network consistency checks and alerts user of problems"),(0,r.kt)("li",{parentName:"ul"},"Writes fortran files for UCLCHEM"),(0,r.kt)("li",{parentName:"ul"},"Writes other output files")),(0,r.kt)("h2",{id:"creating-your-own-network"},"Creating your own Network"),(0,r.kt)("p",null,"To create your own network you need to produce a species list and a reaction list."),(0,r.kt)("h4",{id:"species-list"},"Species list"),(0,r.kt)("p",null,"The species list should simply be a list with one row per species in the network. Each row should contain the species name, mass, binding energy and enthalpy of formation. The latter two are only used for surface species so can be set to zero for the gas phase species. MakeRates will check the mass is correct for each species and alert you of discrepancies."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"C,12,0,0,0,0,0\n#CH4,16,960,0,0.7,0.667,-15.9\n")),(0,r.kt)("p",null,"In the above example, C is a gas phase species so we have set the mass but ignored the other variables. #CH4 is methane in the ice so we have additionally set a binding energy of 960 K and enthalpy of formation of -15.9 kcal/mol. The other three values (0, 0.7, 0.667) are desorption fractions that three phase chemistry networks ignore. For two phase networks, we mimic the multiple desorption events seen in TPD experiments by setting these fractions. See ",(0,r.kt)("a",{parentName:"p",href:"https://ui.adsabs.harvard.edu/abs/2004MNRAS.354.1141V/abstract"},"Viti et al. 2004")," for more information."),(0,r.kt)("p",null,"The enthalpy of formation for essentially any species can be found in chemical databases such as the ",(0,r.kt)("a",{parentName:"p",href:"https://webbook.nist.gov/"},"NIST web book"),". They're usually in kj/mol but the conversion to kcal/mol is easy enough and NIST has an option to switch values to kcal. A fantastic resource for binding energies is ",(0,r.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1016/j.molap.2017.01.002"},"Wakelam et al. 2017")," but these are harder to find in general. In the absolute worse case, you can sum up the binding energies of sub-groups in your molecule but this is pretty inaccurate."),(0,r.kt)("h4",{id:"reaction-list"},"Reaction list"),(0,r.kt)("p",null,"The second reaction list is intended to contain your surface network but can also be used to augment the gas phase databases by including additional gas phase reactions. The reaction list should be a list with one row per reaction and each row should be a comma separated list of 3 reactants, 4 products, three coefficients (alpha,beta,gamma) and a minimum and maximum temperature. Any missing values such as a third reactant can be left blank. In particular, the temperatures are optional but can be useful when you include multiple versions of the same reaction. In that case, UCLCHEM will only use each one within its specified temperature range."),(0,r.kt)("p",null,"The third reactant can be used as a keyword to tell MakeRates what kind of reaction is occuring. In the absence of a keyword, MakeRates and UCLCHEM will treat any reaction as a gas-phase two body reaction. Two keywords the user may wish to use are ER and LH for Eley-Rideal and Langmuir-Hinshelwood reactions respectively (see ",(0,r.kt)("a",{parentName:"p",href:"grain/"},"Grain Chemisty"),"). If a keyword is not added, UCLCHEM will assume a reaction between two surface reactions follows a Kooji-Arrhenius equation."),(0,r.kt)("p",null,"Two other useful reactions types to include are FREEZE and DESORB. Makerates adds freeze out and desorption reactions for every species, assuming they remain unchanged by the process. For example, CO in the gas becomes #CO on the grain. If you would instead like to specify the products, you can include a reaction:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"H3O+,FREEZE,,#H2O,H,,,1,0,0,,,\n#HPN,DESORB,,HPN+,,,,1,0,0,,,\n")),(0,r.kt)("p",null,"which will override the desorption or freeze out products of a species. "),(0,r.kt)("h2",{id:"three-phase-chemistry"},"Three Phase Chemistry"),(0,r.kt)("p",null,"The input ",(0,r.kt)("inlineCode",{parentName:"p"},"three_phase")," controls whether the ices are treated as a single phase or the surface is treated separated to the bulk. If ",(0,r.kt)("inlineCode",{parentName:"p"},"three_phase")," is set to true, the chemical network will have gas, grain surface, and bulk ice chemistry. If ",(0,r.kt)("inlineCode",{parentName:"p"},"three_phase")," is set to false, the chemical network will have gas and grain surface chemistry."),(0,r.kt)("p",null,"When true, MakeRates will create the bulk ice chemistry by duplicating the surface species and reactions in your input files. The difference will be that, unless you specifically override the bulk binding energy, every species in the bulk has a binding energy equal to the H2O binding energy. It will also add terms to the ODEs to allow transfer between the bulk and the surface. See the chemistry sections for more information."),(0,r.kt)("p",null,'You can override the binding energy of material in the bulk by explicitly including the bulk species in your species file rather than allowing MakeRates to automatically add it. Bulk species are designated with an "@". For example, "H2O" is gas phase H',(0,r.kt)("span",{parentName:"p",className:"math math-inline"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("msub",{parentName:"mrow"},(0,r.kt)("mrow",{parentName:"msub"}),(0,r.kt)("mn",{parentName:"msub"},"2"))),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_2")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.45110799999999995em",verticalAlign:"-0.15em"}}),(0,r.kt)("span",{parentName:"span",className:"mord"},(0,r.kt)("span",{parentName:"span"}),(0,r.kt)("span",{parentName:"span",className:"msupsub"},(0,r.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,r.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,r.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,r.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,r.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,r.kt)("span",{parentName:"span"})))))))))),'O, "#H2O" is surface H',(0,r.kt)("span",{parentName:"p",className:"math math-inline"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("msub",{parentName:"mrow"},(0,r.kt)("mrow",{parentName:"msub"}),(0,r.kt)("mn",{parentName:"msub"},"2"))),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_2")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.45110799999999995em",verticalAlign:"-0.15em"}}),(0,r.kt)("span",{parentName:"span",className:"mord"},(0,r.kt)("span",{parentName:"span"}),(0,r.kt)("span",{parentName:"span",className:"msupsub"},(0,r.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,r.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,r.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,r.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,r.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,r.kt)("span",{parentName:"span"})))))))))),'O and "@H2O" is H',(0,r.kt)("span",{parentName:"p",className:"math math-inline"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("msub",{parentName:"mrow"},(0,r.kt)("mrow",{parentName:"msub"}),(0,r.kt)("mn",{parentName:"msub"},"2"))),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_2")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.45110799999999995em",verticalAlign:"-0.15em"}}),(0,r.kt)("span",{parentName:"span",className:"mord"},(0,r.kt)("span",{parentName:"span"}),(0,r.kt)("span",{parentName:"span",className:"msupsub"},(0,r.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,r.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,r.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,r.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,r.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,r.kt)("span",{parentName:"span"})))))))))),'O in the bulk. If you set the binding energy to "Inf", the species will not leave the grains during thermal desorption. This allows you to model refractory species in the bulk.'))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/32e9b7cb.449ab369.js b/assets/js/32e9b7cb.449ab369.js new file mode 100644 index 00000000..b3c943b3 --- /dev/null +++ b/assets/js/32e9b7cb.449ab369.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2927],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var s=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,s)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=s.createContext({}),p=function(e){var t=s.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},c=function(e){var t=p(e.components);return s.createElement(l.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return s.createElement(s.Fragment,{},t)}},u=s.forwardRef((function(e,t){var a=e.components,n=e.mdxType,r=e.originalType,l=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),u=p(a),h=n,d=u["".concat(l,".").concat(h)]||u[h]||m[h]||r;return a?s.createElement(d,i(i({ref:t},c),{},{components:a})):s.createElement(d,i({ref:t},c))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=a.length,i=new Array(r);i[0]=u;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o.mdxType="string"==typeof e?e:n,i[1]=o;for(var p=2;p{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>o,metadata:()=>p,toc:()=>m});var s=a(7462),n=a(3366),r=(a(7294),a(3905)),i=["components"],o={id:"network",title:"Creating a Network"},l=void 0,p={unversionedId:"network",id:"version-v3.1.0/network",title:"Creating a Network",description:"MakeRates",source:"@site/versioned_docs/version-v3.1.0/start-network.md",sourceDirName:".",slug:"/network",permalink:"/docs/v3.1.0/network",draft:!1,tags:[],version:"v3.1.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"network",title:"Creating a Network"},sidebar:"docs",previous:{title:"Installation",permalink:"/docs/v3.1.0/"},next:{title:"Model Parameters",permalink:"/docs/v3.1.0/parameters"}},c={},m=[{value:"MakeRates",id:"makerates",level:2},{value:"Input",id:"input",level:2},{value:"Default Network",id:"default-network",level:2},{value:"Outputs",id:"outputs",level:2},{value:"What MakeRates Does",id:"what-makerates-does",level:2},{value:"Creating your own Network",id:"creating-your-own-network",level:2},{value:"Species list",id:"species-list",level:4},{value:"Reaction list",id:"reaction-list",level:4},{value:"Three Phase Chemistry",id:"three-phase-chemistry",level:2}],u={toc:m};function h(e){var t=e.components,a=(0,n.Z)(e,i);return(0,r.kt)("wrapper",(0,s.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"makerates"},"MakeRates"),(0,r.kt)("p",null,"In order to make a chemical model flexible, the ability to solve a user supplied chemical network is a must. UCLCHEM uses a preprocessing python script to turn csv lists of species and reactions into fortran files for use in the main code. This script is called MakeRates and can be found in the Makerates subdirectory of the repository. It combines a gas phase reaction database with user supplied lists of species and additional reactions into the necessary Fortran code to run UCLCHEM. It also supplies a number of human readable outputs."),(0,r.kt)("p",null,"In the sections below, we discuss how to build your network and set the inputs for MakeRates but once that is done, you can run MakeRates with the following commands:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"cd MakeRates\npython MakeRates.py\ncd ..\npip install .\n")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Note the pip install at the end of the process. Any output from MakeRates requires that the code be recompiled because MakeRates produces new source code for UCLCHEM!")),(0,r.kt)("h2",{id:"input"},"Input"),(0,r.kt)("p",null,"Makerates is controlled using a yaml file ",(0,r.kt)("inlineCode",{parentName:"p"},"Makerates/user_settings.yaml"),". By changing the values in this file, you can create different networks. The default values of this file are copied below."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"#Your list of all species\nspecies_file : inputFiles/default_species.csv\n\n#core reactions from gas phase database\ndatabase_reaction_file : inputFiles/umist12-ucledit.csv\ndatabase_reaction_type : UMIST\n\n#set of additional reactions: eg grain network\ncustom_reaction_file : inputFiles/default_grain_network.csv\ncustom_reaction_type : UCL\n\n#whether to automatically expand to three phase network\nthree_phase : True\n")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"species_file")," is a csv list of species and their properties. We provide a default list and detailed instructions below."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"database_reaction_file")," is your first reaction file, we expect most users to use UMIST12 or KIDA2014 for this but you could create your own file from an alternative database. Makerates can read files formatted in the same manner as the UMIST or KIDA databases as well as our own simple csv format, the ",(0,r.kt)("inlineCode",{parentName:"p"},"database_reaction_type")," setting lets MakeRates know which and should be set to 'UMIST', 'KIDA', or 'UCL'."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"custom_reaction_file")," is an additional reaction file. In the example file, we include all of our grain surface reactions which is the intended use of this file. "),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"three_phase")," is a toggle that tells MakeRates whether to automatically expand your network into a three phase model."),(0,r.kt)("h2",{id:"default-network"},"Default Network"),(0,r.kt)("p",null,"A basic version of each of the required file is supplied in the repository. The network that MakeRates produces from those files is also include in the source code so that a new user who simply installs UCLCHEM without running MakeRates will be using our default network. These default files serve largely as examples of how the files should be formatted and we also describe each one below so that the user can produce their own network."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"We do not endorse the default network"),", we have simply produced a grain surface network that was relatively up to date in 2018. It produces reasonable ice mantle abundances for major species and ignores larger COMs. We strongly suggest any published work be based on a network in which the user has confidence. However, where the user is not greatly concerned with grain surface chemistry, the default network is a good starting point."),(0,r.kt)("h2",{id:"outputs"},"Outputs"),(0,r.kt)("p",null,"Outputs from MakeRates are automatically moved to the ",(0,r.kt)("inlineCode",{parentName:"p"},"src/")," directory so the user can ",(0,r.kt)("inlineCode",{parentName:"p"},"pip install .")," and update their installation of UCLCHEM to use their new network. However, by adding the parameter ",(0,r.kt)("inlineCode",{parentName:"p"},"output_directory")," to the yaml file, you can have all the files moved to a directory instead without copying them to your UCLCHEM src folder. If you do, the following files will be produced:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"network.f90 - Fortran arrays containing lists of species names and properties (mass, binding energy etc) as well as reaction reactants, products and rate coefficients."),(0,r.kt)("li",{parentName:"ul"},"odes.f90 - Code to calculate the rate of change of each species' abundance for the numerical solver"),(0,r.kt)("li",{parentName:"ul"},"species.csv - A list of all species in the network and their properties. Made for humans not UCLCHEM."),(0,r.kt)("li",{parentName:"ul"},"reactions.csv - A list of all reactions including reactants, products and coefficients. Made for humans not UCLCHEM.")),(0,r.kt)("h2",{id:"what-makerates-does"},"What MakeRates Does"),(0,r.kt)("p",null,"MakeRates does the following:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Combines the two input reaction lists"),(0,r.kt)("li",{parentName:"ul"},"Filters to remove any reactions containing species not in the input species list"),(0,r.kt)("li",{parentName:"ul"},"Adds freeze out and desorption reactions for all species"),(0,r.kt)("li",{parentName:"ul"},"Creates branching reactions for Langmuir-Hinshelwood and Eley-Rideal reactions where products chemically desorb"),(0,r.kt)("li",{parentName:"ul"},"Optionally: creates additional reactions and species needed for a three phase network"),(0,r.kt)("li",{parentName:"ul"},"Does basic network consistency checks and alerts user of problems"),(0,r.kt)("li",{parentName:"ul"},"Writes fortran files for UCLCHEM"),(0,r.kt)("li",{parentName:"ul"},"Writes other output files")),(0,r.kt)("h2",{id:"creating-your-own-network"},"Creating your own Network"),(0,r.kt)("p",null,"To create your own network you need to produce a species list and a reaction list."),(0,r.kt)("h4",{id:"species-list"},"Species list"),(0,r.kt)("p",null,"The species list should simply be a list with one row per species in the network. Each row should contain the species name, mass, binding energy and enthalpy of formation. The latter two are only used for surface species so can be set to zero for the gas phase species. MakeRates will check the mass is correct for each species and alert you of discrepancies."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"C,12,0,0,0,0,0\n#CH4,16,960,0,0.7,0.667,-15.9\n")),(0,r.kt)("p",null,"In the above example, C is a gas phase species so we have set the mass but ignored the other variables. #CH4 is methane in the ice so we have additionally set a binding energy of 960 K and enthalpy of formation of -15.9 kcal/mol. The other three values (0, 0.7, 0.667) are desorption fractions that three phase chemistry networks ignore. For two phase networks, we mimic the multiple desorption events seen in TPD experiments by setting these fractions. See ",(0,r.kt)("a",{parentName:"p",href:"https://ui.adsabs.harvard.edu/abs/2004MNRAS.354.1141V/abstract"},"Viti et al. 2004")," for more information."),(0,r.kt)("p",null,"The enthalpy of formation for essentially any species can be found in chemical databases such as the ",(0,r.kt)("a",{parentName:"p",href:"https://webbook.nist.gov/"},"NIST web book"),". They're usually in kj/mol but the conversion to kcal/mol is easy enough and NIST has an option to switch values to kcal. A fantastic resource for binding energies is ",(0,r.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1016/j.molap.2017.01.002"},"Wakelam et al. 2017")," but these are harder to find in general. In the absolute worse case, you can sum up the binding energies of sub-groups in your molecule but this is pretty inaccurate."),(0,r.kt)("h4",{id:"reaction-list"},"Reaction list"),(0,r.kt)("p",null,"The second reaction list is intended to contain your surface network but can also be used to augment the gas phase databases by including additional gas phase reactions. The reaction list should be a list with one row per reaction and each row should be a comma separated list of 3 reactants, 4 products, three coefficients (alpha,beta,gamma) and a minimum and maximum temperature. Any missing values such as a third reactant can be left blank. In particular, the temperatures are optional but can be useful when you include multiple versions of the same reaction. In that case, UCLCHEM will only use each one within its specified temperature range."),(0,r.kt)("p",null,"The third reactant can be used as a keyword to tell MakeRates what kind of reaction is occuring. In the absence of a keyword, MakeRates and UCLCHEM will treat any reaction as a gas-phase two body reaction. Two keywords the user may wish to use are ER and LH for Eley-Rideal and Langmuir-Hinshelwood reactions respectively (see ",(0,r.kt)("a",{parentName:"p",href:"grain/"},"Grain Chemisty"),"). If a keyword is not added, UCLCHEM will assume a reaction between two surface reactions follows a Kooji-Arrhenius equation."),(0,r.kt)("p",null,"Two other useful reactions types to include are FREEZE and DESORB. Makerates adds freeze out and desorption reactions for every species, assuming they remain unchanged by the process. For example, CO in the gas becomes #CO on the grain. If you would instead like to specify the products, you can include a reaction:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"H3O+,FREEZE,,#H2O,H,,,1,0,0,,,\n#HPN,DESORB,,HPN+,,,,1,0,0,,,\n")),(0,r.kt)("p",null,"which will override the desorption or freeze out products of a species. "),(0,r.kt)("h2",{id:"three-phase-chemistry"},"Three Phase Chemistry"),(0,r.kt)("p",null,"The input ",(0,r.kt)("inlineCode",{parentName:"p"},"three_phase")," controls whether the ices are treated as a single phase or the surface is treated separated to the bulk. If ",(0,r.kt)("inlineCode",{parentName:"p"},"three_phase")," is set to true, the chemical network will have gas, grain surface, and bulk ice chemistry. If ",(0,r.kt)("inlineCode",{parentName:"p"},"three_phase")," is set to false, the chemical network will have gas and grain surface chemistry."),(0,r.kt)("p",null,"When true, MakeRates will create the bulk ice chemistry by duplicating the surface species and reactions in your input files. The difference will be that, unless you specifically override the bulk binding energy, every species in the bulk has a binding energy equal to the H2O binding energy. It will also add terms to the ODEs to allow transfer between the bulk and the surface. See the chemistry sections for more information."),(0,r.kt)("p",null,'You can override the binding energy of material in the bulk by explicitly including the bulk species in your species file rather than allowing MakeRates to automatically add it. Bulk species are designated with an "@". For example, "H2O" is gas phase H',(0,r.kt)("span",{parentName:"p",className:"math math-inline"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("msub",{parentName:"mrow"},(0,r.kt)("mrow",{parentName:"msub"}),(0,r.kt)("mn",{parentName:"msub"},"2"))),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_2")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.45110799999999995em",verticalAlign:"-0.15em"}}),(0,r.kt)("span",{parentName:"span",className:"mord"},(0,r.kt)("span",{parentName:"span"}),(0,r.kt)("span",{parentName:"span",className:"msupsub"},(0,r.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,r.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,r.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,r.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,r.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,r.kt)("span",{parentName:"span"})))))))))),'O, "#H2O" is surface H',(0,r.kt)("span",{parentName:"p",className:"math math-inline"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("msub",{parentName:"mrow"},(0,r.kt)("mrow",{parentName:"msub"}),(0,r.kt)("mn",{parentName:"msub"},"2"))),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_2")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.45110799999999995em",verticalAlign:"-0.15em"}}),(0,r.kt)("span",{parentName:"span",className:"mord"},(0,r.kt)("span",{parentName:"span"}),(0,r.kt)("span",{parentName:"span",className:"msupsub"},(0,r.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,r.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,r.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,r.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,r.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,r.kt)("span",{parentName:"span"})))))))))),'O and "@H2O" is H',(0,r.kt)("span",{parentName:"p",className:"math math-inline"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("msub",{parentName:"mrow"},(0,r.kt)("mrow",{parentName:"msub"}),(0,r.kt)("mn",{parentName:"msub"},"2"))),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_2")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.45110799999999995em",verticalAlign:"-0.15em"}}),(0,r.kt)("span",{parentName:"span",className:"mord"},(0,r.kt)("span",{parentName:"span"}),(0,r.kt)("span",{parentName:"span",className:"msupsub"},(0,r.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,r.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,r.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,r.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,r.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,r.kt)("span",{parentName:"span"})))))))))),'O in the bulk. If you set the binding energy to "Inf", the species will not leave the grains during thermal desorption. This allows you to model refractory species in the bulk.'))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8cd0bbdb.68a2ee6a.js b/assets/js/33e58627.260ce0ab.js similarity index 82% rename from assets/js/8cd0bbdb.68a2ee6a.js rename to assets/js/33e58627.260ce0ab.js index 57e5ae7b..e2105122 100644 --- a/assets/js/8cd0bbdb.68a2ee6a.js +++ b/assets/js/33e58627.260ce0ab.js @@ -1 +1 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4463],{3905:(e,t,o)=>{o.d(t,{Zo:()=>u,kt:()=>d});var n=o(7294);function a(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function r(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function i(e){for(var t=1;t=0||(a[o]=e[o]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(a[o]=e[o])}return a}var s=n.createContext({}),c=function(e){var t=n.useContext(s),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},u=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var o=e.components,a=e.mdxType,r=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=c(o),d=a,m=h["".concat(s,".").concat(d)]||h[d]||p[d]||r;return o?n.createElement(m,i(i({ref:t},u),{},{components:o})):n.createElement(m,i({ref:t},u))}));function d(e,t){var o=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=o.length,i=new Array(r);i[0]=h;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:a,i[1]=l;for(var c=2;c{o.r(t),o.d(t,{assets:()=>u,contentTitle:()=>s,default:()=>d,frontMatter:()=>l,metadata:()=>c,toc:()=>p});var n=o(7462),a=o(3366),r=(o(7294),o(3905)),i=["components"],l={id:"trouble-compile",title:"Compilation Issues"},s=void 0,c={unversionedId:"trouble-compile",id:"version-v3.2.0/trouble-compile",title:"Compilation Issues",description:"Given that UCLCHEM is supplied as source code, used across many machine types, and is a fairly complex model, things will occasionally go wrong. We've collected here some of the most common problems and hope they resolve most issues.",source:"@site/versioned_docs/version-v3.2.0/trouble-compile.md",sourceDirName:".",slug:"/trouble-compile",permalink:"/docs/trouble-compile",tags:[],version:"v3.2.0",frontMatter:{id:"trouble-compile",title:"Compilation Issues"},sidebar:"docs",previous:{title:"Chemical Analysis",permalink:"/docs/chemical_analysis"},next:{title:"Integration",permalink:"/docs/trouble-integration"}},u={},p=[{value:"Pip fails",id:"pip-fails",level:2},{value:"Windows Trouble",id:"windows-trouble",level:2},{value:"Mac Trouble",id:"mac-trouble",level:2},{value:"x86 Macs",id:"x86-macs",level:3},{value:"gfortran",id:"gfortran",level:4},{value:"conda-Xcode compatibility",id:"conda-xcode-compatibility",level:4},{value:"Apple silicon Macs",id:"apple-silicon-macs",level:3},{value:"Architectures",id:"architectures",level:2}],h={toc:p};function d(e){var t=e.components,o=(0,a.Z)(e,i);return(0,r.kt)("wrapper",(0,n.Z)({},h,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Given that UCLCHEM is supplied as source code, used across many machine types, and is a fairly complex model, things will occasionally go wrong. We've collected here some of the most common problems and hope they resolve most issues."),(0,r.kt)("h2",{id:"pip-fails"},"Pip fails"),(0,r.kt)("p",null,"Pip is a package manager for Python. It is used to install and manage Python packages but we're hijacking its set up process to ask it to compile UCLCHEM. If the compilation goes wrong, the error message is often a bit useless. Please go to ",(0,r.kt)("inlineCode",{parentName:"p"},"src/fortran_src")," in your terminal and type ",(0,r.kt)("inlineCode",{parentName:"p"},"make python"),". You will get a more useful error which you can then try to debug or send to the team."),(0,r.kt)("p",null,"Installing via pip may fail if your environment is not set up. Whilst pip will check that you have the necessary python libraries installed, it will not check that you have the necessary compilers. In order to compile you need gfortran which is packaged with the ",(0,r.kt)("a",{parentName:"p",href:"https://gcc.gnu.org/"},"gnu compiler")," suite. You also need make which is part of the GNU toolset. You can likely install these things through your operating system's package manager rather than from their websites."),(0,r.kt)("p",null,"Advanced users who do not wish to change compiler may want to check the Makefile. It can be found in ",(0,r.kt)("inlineCode",{parentName:"p"},"src/fortran_src/Makefile"),". There are variables to control the choice of compiler, compilation flags and the F2PY flags which tell numpy.f2py which fortran compiler was used. These can all be altered if you do not wish to use gfortran."),(0,r.kt)("h2",{id:"windows-trouble"},"Windows Trouble"),(0,r.kt)("p",null,"UCLCHEM was written on a GNU/Linux machine and therefore makes a lot of assumptions about how your environment is set up. Whilst these assumptions hold for basically all Linux (and most Mac) distributions, Windows users often run into trouble. You can attempt to install a GNU toolset through packages like MinGW but the most straightforward way we've found for Windows users is to use the Windows Subsystem for linux."),(0,r.kt)("p",null,"Open a powershell as an administrator and type ",(0,r.kt)("inlineCode",{parentName:"p"},"wsl --install")," to install the Windows Subsystem for Linux. It will then ask you to reboot. Once you've done this, you'll find Ubuntu in your Windows App Store. Installing this Ubuntu app will give you access to a terminal that is indistinguishable from one running on a Linux system but it will have access to all your Windows files. You can set up your linux environment with all necessary tools:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"sudo apt update\nsudo apt install make\nsudo apt install python3-pip\nsudo apt install gfortran\n")),(0,r.kt)("p",null,"and then you'll find your files in ",(0,r.kt)("inlineCode",{parentName:"p"},"/mnt"),". For example, your C: drive can be accessed via ",(0,r.kt)("inlineCode",{parentName:"p"},"cd /mnt/c"),". With the above tools installed, you'll be able to follow our basic install instructions and run UCLCHEM via your Ubuntu installation."),(0,r.kt)("h2",{id:"mac-trouble"},"Mac Trouble"),(0,r.kt)("p",null,"The troubleshooting for macbooks is divided into troubleshooting for macbooks using x86 architectures (Intel) and apple silicon ARM (M1/M2). You can see which type of chip you have via About This Mac."),(0,r.kt)("h3",{id:"x86-macs"},"x86 Macs"),(0,r.kt)("h4",{id:"gfortran"},"gfortran"),(0,r.kt)("p",null,"A problem Mac users commonly come across is that fortran codes compile but do not run because the gfortran libraries are not in the expected location. If you get an error like:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"Exception has occurred: ImportErrordlopen(/usr/local/lib/python3.9/site-packages/uclchemwrap.cpython-39-darwin.so, 2): Library not loaded: /usr/local/opt/gcc/lib/gcc/10/libgfortran.5.dylib Referenced from: /usr/local/lib/python3.9/site-packages/uclchemwrap.cpython-39-darwin.so Reason: image not found\n")),(0,r.kt)("p",null,"then this is likely what has happened to you. You can fix it by following the instructions in ",(0,r.kt)("a",{parentName:"p",href:"https://stackoverflow.com/questions/57207357/dyld-library-not-loaded-usr-local-gfortran-lib-libgfortran-3-dylib-reason-im"},"this Stackoverflow post"),". "),(0,r.kt)("p",null,"However, the underlying problem is that Apple would prefer you do not use GNU compilers. As Mac OS updates come in, the exact issue may change. You will usually find many stackoverflow posts about your problem if you search for people having similar errors with gfortran on Mac. Many members of the UCLCHEM group also use Mac so do get in touch if you cannot find a solution.xit"),(0,r.kt)("h4",{id:"conda-xcode-compatibility"},"conda-Xcode compatibility"),(0,r.kt)("p",null,"Sometimes the version of the Xcode SDK is not compatible with the conda packages that are generated with\nan older version. This means you will have to downgrade the SDK you are using as seen in ",(0,r.kt)("a",{parentName:"p",href:"https://stackoverflow.com/questions/69236331/conda-macos-big-sur-ld-unsupported-tapi-file-type-tapi-tbd-in-yaml-file"},"this Stackoverflow post")),(0,r.kt)("h3",{id:"apple-silicon-macs"},"Apple silicon Macs"),(0,r.kt)("p",null,"If you by accident install any package that was meant for x86 architectures (brew, pip, conda etc.) you will encounter problems as Rosetta 2 does not seem to work well with the gfortran.\nCurrently we recommend uninstalling all packages/software that might cause interference with uclchcem, such as gfortran installed via brew and reinstalling everything using conda as listed in the ","[docs/start-basicuse]"," document."),(0,r.kt)("h2",{id:"architectures"},"Architectures"),(0,r.kt)("p",null,"F2PY defaults to x86_64 architecture. This is fine for most users, but if you are using a different architecture, you may need to specify this in the Makefile. To do so, edit ",(0,r.kt)("inlineCode",{parentName:"p"},"src/fortran_src/Makfile")," so that the line that reads"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"python3 -m numpy.f2py -c --fcompiler=${f2pyFC}\n")),(0,r.kt)("p",null,"is replaced with"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"python3 -m numpy.f2py -c --fcompiler=${f2pyFC} --arch=my_arch\n")),(0,r.kt)("p",null,"where my_arch is the architecture you are using."))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1007],{3905:(e,t,o)=>{o.d(t,{Zo:()=>u,kt:()=>h});var n=o(7294);function a(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function r(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function i(e){for(var t=1;t=0||(a[o]=e[o]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(a[o]=e[o])}return a}var s=n.createContext({}),c=function(e){var t=n.useContext(s),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},u=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var o=e.components,a=e.mdxType,r=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=c(o),h=a,m=d["".concat(s,".").concat(h)]||d[h]||p[h]||r;return o?n.createElement(m,i(i({ref:t},u),{},{components:o})):n.createElement(m,i({ref:t},u))}));function h(e,t){var o=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=o.length,i=new Array(r);i[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:a,i[1]=l;for(var c=2;c{o.r(t),o.d(t,{assets:()=>u,contentTitle:()=>s,default:()=>h,frontMatter:()=>l,metadata:()=>c,toc:()=>p});var n=o(7462),a=o(3366),r=(o(7294),o(3905)),i=["components"],l={id:"trouble-compile",title:"Compilation Issues"},s=void 0,c={unversionedId:"trouble-compile",id:"version-v3.1.0/trouble-compile",title:"Compilation Issues",description:"Given that UCLCHEM is supplied as source code, used across many machine types, and is a fairly complex model, things will occasionally go wrong. We've collected here some of the most common problems and hope they resolve most issues.",source:"@site/versioned_docs/version-v3.1.0/trouble-compile.md",sourceDirName:".",slug:"/trouble-compile",permalink:"/docs/v3.1.0/trouble-compile",draft:!1,tags:[],version:"v3.1.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"trouble-compile",title:"Compilation Issues"},sidebar:"docs",previous:{title:"Chemical Analysis",permalink:"/docs/v3.1.0/chemical_analysis"},next:{title:"Integration",permalink:"/docs/v3.1.0/trouble-integration"}},u={},p=[{value:"Pip fails",id:"pip-fails",level:2},{value:"Windows Trouble",id:"windows-trouble",level:2},{value:"Mac Trouble",id:"mac-trouble",level:2},{value:"x86 Macs",id:"x86-macs",level:3},{value:"gfortran",id:"gfortran",level:4},{value:"conda-Xcode compatibility",id:"conda-xcode-compatibility",level:4},{value:"Apple silicon Macs",id:"apple-silicon-macs",level:3},{value:"Architectures",id:"architectures",level:2}],d={toc:p};function h(e){var t=e.components,o=(0,a.Z)(e,i);return(0,r.kt)("wrapper",(0,n.Z)({},d,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Given that UCLCHEM is supplied as source code, used across many machine types, and is a fairly complex model, things will occasionally go wrong. We've collected here some of the most common problems and hope they resolve most issues."),(0,r.kt)("h2",{id:"pip-fails"},"Pip fails"),(0,r.kt)("p",null,"Pip is a package manager for Python. It is used to install and manage Python packages but we're hijacking its set up process to ask it to compile UCLCHEM. If the compilation goes wrong, the error message is often a bit useless. Please go to ",(0,r.kt)("inlineCode",{parentName:"p"},"src/fortran_src")," in your terminal and type ",(0,r.kt)("inlineCode",{parentName:"p"},"make python"),". You will get a more useful error which you can then try to debug or send to the team."),(0,r.kt)("p",null,"Installing via pip may fail if your environment is not set up. Whilst pip will check that you have the necessary python libraries installed, it will not check that you have the necessary compilers. In order to compile you need gfortran which is packaged with the ",(0,r.kt)("a",{parentName:"p",href:"https://gcc.gnu.org/"},"gnu compiler")," suite. You also need make which is part of the GNU toolset. You can likely install these things through your operating system's package manager rather than from their websites."),(0,r.kt)("p",null,"Advanced users who do not wish to change compiler may want to check the Makefile. It can be found in ",(0,r.kt)("inlineCode",{parentName:"p"},"src/fortran_src/Makefile"),". There are variables to control the choice of compiler, compilation flags and the F2PY flags which tell numpy.f2py which fortran compiler was used. These can all be altered if you do not wish to use gfortran."),(0,r.kt)("h2",{id:"windows-trouble"},"Windows Trouble"),(0,r.kt)("p",null,"UCLCHEM was written on a GNU/Linux machine and therefore makes a lot of assumptions about how your environment is set up. Whilst these assumptions hold for basically all Linux (and most Mac) distributions, Windows users often run into trouble. You can attempt to install a GNU toolset through packages like MinGW but the most straightforward way we've found for Windows users is to use the Windows Subsystem for linux."),(0,r.kt)("p",null,"Open a powershell as an administrator and type ",(0,r.kt)("inlineCode",{parentName:"p"},"wsl --install")," to install the Windows Subsystem for Linux. It will then ask you to reboot. Once you've done this, you'll find Ubuntu in your Windows App Store. Installing this Ubuntu app will give you access to a terminal that is indistinguishable from one running on a Linux system but it will have access to all your Windows files. You can set up your linux environment with all necessary tools:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"sudo apt update\nsudo apt install make\nsudo apt install python3-pip\nsudo apt install gfortran\n")),(0,r.kt)("p",null,"and then you'll find your files in ",(0,r.kt)("inlineCode",{parentName:"p"},"/mnt"),". For example, your C: drive can be accessed via ",(0,r.kt)("inlineCode",{parentName:"p"},"cd /mnt/c"),". With the above tools installed, you'll be able to follow our basic install instructions and run UCLCHEM via your Ubuntu installation."),(0,r.kt)("h2",{id:"mac-trouble"},"Mac Trouble"),(0,r.kt)("p",null,"The troubleshooting for macbooks is divided into troubleshooting for macbooks using x86 architectures (Intel) and apple silicon ARM (M1/M2). You can see which type of chip you have via About This Mac."),(0,r.kt)("h3",{id:"x86-macs"},"x86 Macs"),(0,r.kt)("h4",{id:"gfortran"},"gfortran"),(0,r.kt)("p",null,"A problem Mac users commonly come across is that fortran codes compile but do not run because the gfortran libraries are not in the expected location. If you get an error like:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"Exception has occurred: ImportErrordlopen(/usr/local/lib/python3.9/site-packages/uclchemwrap.cpython-39-darwin.so, 2): Library not loaded: /usr/local/opt/gcc/lib/gcc/10/libgfortran.5.dylib Referenced from: /usr/local/lib/python3.9/site-packages/uclchemwrap.cpython-39-darwin.so Reason: image not found\n")),(0,r.kt)("p",null,"then this is likely what has happened to you. You can fix it by following the instructions in ",(0,r.kt)("a",{parentName:"p",href:"https://stackoverflow.com/questions/57207357/dyld-library-not-loaded-usr-local-gfortran-lib-libgfortran-3-dylib-reason-im"},"this Stackoverflow post"),". "),(0,r.kt)("p",null,"However, the underlying problem is that Apple would prefer you do not use GNU compilers. As Mac OS updates come in, the exact issue may change. You will usually find many stackoverflow posts about your problem if you search for people having similar errors with gfortran on Mac. Many members of the UCLCHEM group also use Mac so do get in touch if you cannot find a solution.xit"),(0,r.kt)("h4",{id:"conda-xcode-compatibility"},"conda-Xcode compatibility"),(0,r.kt)("p",null,"Sometimes the version of the Xcode SDK is not compatible with the conda packages that are generated with\nan older version. This means you will have to downgrade the SDK you are using as seen in ",(0,r.kt)("a",{parentName:"p",href:"https://stackoverflow.com/questions/69236331/conda-macos-big-sur-ld-unsupported-tapi-file-type-tapi-tbd-in-yaml-file"},"this Stackoverflow post")),(0,r.kt)("h3",{id:"apple-silicon-macs"},"Apple silicon Macs"),(0,r.kt)("p",null,"If you by accident install any package that was meant for x86 architectures (brew, pip, conda etc.) you will encounter problems as Rosetta 2 does not seem to work well with the gfortran.\nCurrently we recommend uninstalling all packages/software that might cause interference with uclchcem, such as gfortran installed via brew and reinstalling everything using conda as listed in the ","[docs/start-basicuse]"," document."),(0,r.kt)("h2",{id:"architectures"},"Architectures"),(0,r.kt)("p",null,"F2PY defaults to x86_64 architecture. This is fine for most users, but if you are using a different architecture, you may need to specify this in the Makefile. To do so, edit ",(0,r.kt)("inlineCode",{parentName:"p"},"src/fortran_src/Makfile")," so that the line that reads"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"python3 -m numpy.f2py -c --fcompiler=${f2pyFC}\n")),(0,r.kt)("p",null,"is replaced with"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"python3 -m numpy.f2py -c --fcompiler=${f2pyFC} --arch=my_arch\n")),(0,r.kt)("p",null,"where my_arch is the architecture you are using."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/33e58627.293374d0.js b/assets/js/33e58627.293374d0.js deleted file mode 100644 index 47e86865..00000000 --- a/assets/js/33e58627.293374d0.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1007],{3905:(e,t,o)=>{o.d(t,{Zo:()=>u,kt:()=>d});var n=o(7294);function a(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function r(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function i(e){for(var t=1;t=0||(a[o]=e[o]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(a[o]=e[o])}return a}var s=n.createContext({}),c=function(e){var t=n.useContext(s),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},u=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var o=e.components,a=e.mdxType,r=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),h=c(o),d=a,m=h["".concat(s,".").concat(d)]||h[d]||p[d]||r;return o?n.createElement(m,i(i({ref:t},u),{},{components:o})):n.createElement(m,i({ref:t},u))}));function d(e,t){var o=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=o.length,i=new Array(r);i[0]=h;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:a,i[1]=l;for(var c=2;c{o.r(t),o.d(t,{assets:()=>u,contentTitle:()=>s,default:()=>d,frontMatter:()=>l,metadata:()=>c,toc:()=>p});var n=o(7462),a=o(3366),r=(o(7294),o(3905)),i=["components"],l={id:"trouble-compile",title:"Compilation Issues"},s=void 0,c={unversionedId:"trouble-compile",id:"version-v3.1.0/trouble-compile",title:"Compilation Issues",description:"Given that UCLCHEM is supplied as source code, used across many machine types, and is a fairly complex model, things will occasionally go wrong. We've collected here some of the most common problems and hope they resolve most issues.",source:"@site/versioned_docs/version-v3.1.0/trouble-compile.md",sourceDirName:".",slug:"/trouble-compile",permalink:"/docs/v3.1.0/trouble-compile",tags:[],version:"v3.1.0",frontMatter:{id:"trouble-compile",title:"Compilation Issues"},sidebar:"docs",previous:{title:"Chemical Analysis",permalink:"/docs/v3.1.0/chemical_analysis"},next:{title:"Integration",permalink:"/docs/v3.1.0/trouble-integration"}},u={},p=[{value:"Pip fails",id:"pip-fails",level:2},{value:"Windows Trouble",id:"windows-trouble",level:2},{value:"Mac Trouble",id:"mac-trouble",level:2},{value:"x86 Macs",id:"x86-macs",level:3},{value:"gfortran",id:"gfortran",level:4},{value:"conda-Xcode compatibility",id:"conda-xcode-compatibility",level:4},{value:"Apple silicon Macs",id:"apple-silicon-macs",level:3},{value:"Architectures",id:"architectures",level:2}],h={toc:p};function d(e){var t=e.components,o=(0,a.Z)(e,i);return(0,r.kt)("wrapper",(0,n.Z)({},h,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Given that UCLCHEM is supplied as source code, used across many machine types, and is a fairly complex model, things will occasionally go wrong. We've collected here some of the most common problems and hope they resolve most issues."),(0,r.kt)("h2",{id:"pip-fails"},"Pip fails"),(0,r.kt)("p",null,"Pip is a package manager for Python. It is used to install and manage Python packages but we're hijacking its set up process to ask it to compile UCLCHEM. If the compilation goes wrong, the error message is often a bit useless. Please go to ",(0,r.kt)("inlineCode",{parentName:"p"},"src/fortran_src")," in your terminal and type ",(0,r.kt)("inlineCode",{parentName:"p"},"make python"),". You will get a more useful error which you can then try to debug or send to the team."),(0,r.kt)("p",null,"Installing via pip may fail if your environment is not set up. Whilst pip will check that you have the necessary python libraries installed, it will not check that you have the necessary compilers. In order to compile you need gfortran which is packaged with the ",(0,r.kt)("a",{parentName:"p",href:"https://gcc.gnu.org/"},"gnu compiler")," suite. You also need make which is part of the GNU toolset. You can likely install these things through your operating system's package manager rather than from their websites."),(0,r.kt)("p",null,"Advanced users who do not wish to change compiler may want to check the Makefile. It can be found in ",(0,r.kt)("inlineCode",{parentName:"p"},"src/fortran_src/Makefile"),". There are variables to control the choice of compiler, compilation flags and the F2PY flags which tell numpy.f2py which fortran compiler was used. These can all be altered if you do not wish to use gfortran."),(0,r.kt)("h2",{id:"windows-trouble"},"Windows Trouble"),(0,r.kt)("p",null,"UCLCHEM was written on a GNU/Linux machine and therefore makes a lot of assumptions about how your environment is set up. Whilst these assumptions hold for basically all Linux (and most Mac) distributions, Windows users often run into trouble. You can attempt to install a GNU toolset through packages like MinGW but the most straightforward way we've found for Windows users is to use the Windows Subsystem for linux."),(0,r.kt)("p",null,"Open a powershell as an administrator and type ",(0,r.kt)("inlineCode",{parentName:"p"},"wsl --install")," to install the Windows Subsystem for Linux. It will then ask you to reboot. Once you've done this, you'll find Ubuntu in your Windows App Store. Installing this Ubuntu app will give you access to a terminal that is indistinguishable from one running on a Linux system but it will have access to all your Windows files. You can set up your linux environment with all necessary tools:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"sudo apt update\nsudo apt install make\nsudo apt install python3-pip\nsudo apt install gfortran\n")),(0,r.kt)("p",null,"and then you'll find your files in ",(0,r.kt)("inlineCode",{parentName:"p"},"/mnt"),". For example, your C: drive can be accessed via ",(0,r.kt)("inlineCode",{parentName:"p"},"cd /mnt/c"),". With the above tools installed, you'll be able to follow our basic install instructions and run UCLCHEM via your Ubuntu installation."),(0,r.kt)("h2",{id:"mac-trouble"},"Mac Trouble"),(0,r.kt)("p",null,"The troubleshooting for macbooks is divided into troubleshooting for macbooks using x86 architectures (Intel) and apple silicon ARM (M1/M2). You can see which type of chip you have via About This Mac."),(0,r.kt)("h3",{id:"x86-macs"},"x86 Macs"),(0,r.kt)("h4",{id:"gfortran"},"gfortran"),(0,r.kt)("p",null,"A problem Mac users commonly come across is that fortran codes compile but do not run because the gfortran libraries are not in the expected location. If you get an error like:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"Exception has occurred: ImportErrordlopen(/usr/local/lib/python3.9/site-packages/uclchemwrap.cpython-39-darwin.so, 2): Library not loaded: /usr/local/opt/gcc/lib/gcc/10/libgfortran.5.dylib Referenced from: /usr/local/lib/python3.9/site-packages/uclchemwrap.cpython-39-darwin.so Reason: image not found\n")),(0,r.kt)("p",null,"then this is likely what has happened to you. You can fix it by following the instructions in ",(0,r.kt)("a",{parentName:"p",href:"https://stackoverflow.com/questions/57207357/dyld-library-not-loaded-usr-local-gfortran-lib-libgfortran-3-dylib-reason-im"},"this Stackoverflow post"),". "),(0,r.kt)("p",null,"However, the underlying problem is that Apple would prefer you do not use GNU compilers. As Mac OS updates come in, the exact issue may change. You will usually find many stackoverflow posts about your problem if you search for people having similar errors with gfortran on Mac. Many members of the UCLCHEM group also use Mac so do get in touch if you cannot find a solution.xit"),(0,r.kt)("h4",{id:"conda-xcode-compatibility"},"conda-Xcode compatibility"),(0,r.kt)("p",null,"Sometimes the version of the Xcode SDK is not compatible with the conda packages that are generated with\nan older version. This means you will have to downgrade the SDK you are using as seen in ",(0,r.kt)("a",{parentName:"p",href:"https://stackoverflow.com/questions/69236331/conda-macos-big-sur-ld-unsupported-tapi-file-type-tapi-tbd-in-yaml-file"},"this Stackoverflow post")),(0,r.kt)("h3",{id:"apple-silicon-macs"},"Apple silicon Macs"),(0,r.kt)("p",null,"If you by accident install any package that was meant for x86 architectures (brew, pip, conda etc.) you will encounter problems as Rosetta 2 does not seem to work well with the gfortran.\nCurrently we recommend uninstalling all packages/software that might cause interference with uclchcem, such as gfortran installed via brew and reinstalling everything using conda as listed in the ","[docs/start-basicuse]"," document."),(0,r.kt)("h2",{id:"architectures"},"Architectures"),(0,r.kt)("p",null,"F2PY defaults to x86_64 architecture. This is fine for most users, but if you are using a different architecture, you may need to specify this in the Makefile. To do so, edit ",(0,r.kt)("inlineCode",{parentName:"p"},"src/fortran_src/Makfile")," so that the line that reads"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"python3 -m numpy.f2py -c --fcompiler=${f2pyFC}\n")),(0,r.kt)("p",null,"is replaced with"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"python3 -m numpy.f2py -c --fcompiler=${f2pyFC} --arch=my_arch\n")),(0,r.kt)("p",null,"where my_arch is the architecture you are using."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3492d4cd.30e577dc.js b/assets/js/3492d4cd.c2d42899.js similarity index 64% rename from assets/js/3492d4cd.30e577dc.js rename to assets/js/3492d4cd.c2d42899.js index 261f4caf..5d87860a 100644 --- a/assets/js/3492d4cd.30e577dc.js +++ b/assets/js/3492d4cd.c2d42899.js @@ -1 +1 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[872],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),m=p(n),h=o,d=m["".concat(s,".").concat(h)]||m[h]||u[h]||a;return n?r.createElement(d,i(i({ref:t},c),{},{components:n})):r.createElement(d,i({ref:t},c))}));function h(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:o,i[1]=l;for(var p=2;p{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>h,frontMatter:()=>l,metadata:()=>p,toc:()=>u});var r=n(7462),o=n(3366),a=(n(7294),n(3905)),i=["components"],l={title:"New Website",authors:"jonholdship"},s=void 0,p={permalink:"/blog/2020/02/14/New-Website",source:"@site/blog/2020-02-14-New-Website.md",title:"New Website",description:"We're replacing our old website! The old site was essentially just a poster for UCLCHEM with some github links. The new website has a similar landing page but importantly, we've moved all the documentation for UCLCHEM online. We'll keep that up to date and are open to comments from users as we're keen to make UCLCHEM as easy to use as possible.",date:"2020-02-14T00:00:00.000Z",formattedDate:"February 14, 2020",tags:[],readingTime:.715,truncated:!1,authors:[{name:"Jonathan Holdship",title:"UCLCHEM developer",url:"https://jonholdship.github.io",imageURL:"/img/jon.png",key:"jonholdship"}],frontMatter:{title:"New Website",authors:"jonholdship"},prevItem:{title:"First measurement of nitrogen fractionation in shocked clumps of the L1157 protostellar outflow. SOLIS XI",permalink:"/blog/2020/12/07/milena-nitrogen-solis"},nextItem:{title:"Tracing shock type with chemical diagnostics - an application to L1157",permalink:"/blog/2019/12/10/tom-shock"}},c={authorsImageUrls:[void 0]},u=[],m={toc:u};function h(e){var t=e.components,n=(0,o.Z)(e,i);return(0,a.kt)("wrapper",(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"We're replacing our old website! The old site was essentially just a poster for UCLCHEM with some github links. The new website has a similar landing page but importantly, we've moved all the documentation for UCLCHEM online. We'll keep that up to date and are open to comments from users as we're keen to make UCLCHEM as easy to use as possible."),(0,a.kt)("p",null,"We'll also keep this blog updated with any major updates to UCLCHEM. As a rule, we'll push minor tweaks, bug fixes and background changes that won't affect how the user interacts with the code regularly. However, major changes, feature improvements and changes that will change how you interact with the code will be published as a new version on github and come with an explanatory blog post. Come back if your latest git pull leaves you wondering what happened to UCLCHEM!"))}h.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[872],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),m=p(n),h=o,d=m["".concat(s,".").concat(h)]||m[h]||u[h]||a;return n?r.createElement(d,i(i({ref:t},c),{},{components:n})):r.createElement(d,i({ref:t},c))}));function h(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:o,i[1]=l;for(var p=2;p{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>h,frontMatter:()=>l,metadata:()=>p,toc:()=>u});var r=n(7462),o=n(3366),a=(n(7294),n(3905)),i=["components"],l={title:"New Website",authors:"jonholdship"},s=void 0,p={permalink:"/blog/2020/02/14/New-Website",source:"@site/blog/2020-02-14-New-Website.md",title:"New Website",description:"We're replacing our old website! The old site was essentially just a poster for UCLCHEM with some github links. The new website has a similar landing page but importantly, we've moved all the documentation for UCLCHEM online. We'll keep that up to date and are open to comments from users as we're keen to make UCLCHEM as easy to use as possible.",date:"2020-02-14T00:00:00.000Z",formattedDate:"February 14, 2020",tags:[],readingTime:.715,hasTruncateMarker:!1,authors:[{name:"Jonathan Holdship",title:"UCLCHEM developer",url:"https://jonholdship.github.io",imageURL:"/img/jon.png",key:"jonholdship"}],frontMatter:{title:"New Website",authors:"jonholdship"},prevItem:{title:"First measurement of nitrogen fractionation in shocked clumps of the L1157 protostellar outflow. SOLIS XI",permalink:"/blog/2020/12/07/milena-nitrogen-solis"},nextItem:{title:"Tracing shock type with chemical diagnostics - an application to L1157",permalink:"/blog/2019/12/10/tom-shock"}},c={authorsImageUrls:[void 0]},u=[],m={toc:u};function h(e){var t=e.components,n=(0,o.Z)(e,i);return(0,a.kt)("wrapper",(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"We're replacing our old website! The old site was essentially just a poster for UCLCHEM with some github links. The new website has a similar landing page but importantly, we've moved all the documentation for UCLCHEM online. We'll keep that up to date and are open to comments from users as we're keen to make UCLCHEM as easy to use as possible."),(0,a.kt)("p",null,"We'll also keep this blog updated with any major updates to UCLCHEM. As a rule, we'll push minor tweaks, bug fixes and background changes that won't affect how the user interacts with the code regularly. However, major changes, feature improvements and changes that will change how you interact with the code will be published as a new version on github and come with an explanatory blog post. Come back if your latest git pull leaves you wondering what happened to UCLCHEM!"))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/37df37e5.8ef68c5a.js b/assets/js/37df37e5.8ef68c5a.js deleted file mode 100644 index 5023a7df..00000000 --- a/assets/js/37df37e5.8ef68c5a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3412],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>u});var n=a(7294);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function r(e){for(var t=1;t=0||(l[a]=e[a]);return l}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(l[a]=e[a])}return l}var o=n.createContext({}),p=function(e){var t=n.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):r(r({},t),e)),a},c=function(e){var t=p(e.components);return n.createElement(o.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},k=n.forwardRef((function(e,t){var a=e.components,l=e.mdxType,i=e.originalType,o=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),k=p(a),u=l,d=k["".concat(o,".").concat(u)]||k[u]||m[u]||i;return a?n.createElement(d,r(r({ref:t},c),{},{components:a})):n.createElement(d,r({ref:t},c))}));function u(e,t){var a=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var i=a.length,r=new Array(i);r[0]=k;var s={};for(var o in t)hasOwnProperty.call(t,o)&&(s[o]=t[o]);s.originalType=e,s.mdxType="string"==typeof e?e:l,r[1]=s;for(var p=2;p{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>s,metadata:()=>p,toc:()=>m});var n=a(7462),l=a(3366),i=(a(7294),a(3905)),r=["components"],s={id:"pythonapi",title:"Python Reference"},o="Python API",p={unversionedId:"pythonapi",id:"pythonapi",title:"Python Reference",description:"* uclchem",source:"@site/docs/start-pythonapi.md",sourceDirName:".",slug:"/pythonapi",permalink:"/docs/next/pythonapi",tags:[],version:"current",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1676489846,formattedLastUpdatedAt:"2/15/2023",frontMatter:{id:"pythonapi",title:"Python Reference"},sidebar:"docs",previous:{title:"Model Parameters",permalink:"/docs/next/parameters"},next:{title:"Tutorials",permalink:"/docs/next/category/tutorials"}},c={},m=[{value:"read_output_file",id:"read_output_file",level:4},{value:"create_abundance_plot",id:"create_abundance_plot",level:4},{value:"plot_species",id:"plot_species",level:4},{value:"analysis",id:"analysis",level:4},{value:"total_element_abundance",id:"total_element_abundance",level:4},{value:"check_element_conservation",id:"check_element_conservation",level:4},{value:"cloud",id:"cloud",level:4},{value:"collapse",id:"collapse",level:4},{value:"hot_core",id:"hot_core",level:4},{value:"cshock",id:"cshock",level:4},{value:"jshock",id:"jshock",level:4},{value:"cshock_dissipation_time",id:"cshock_dissipation_time",level:4},{value:"check_error",id:"check_error",level:4},{value:"get_species_table",id:"get_species_table",level:4},{value:"get_reaction_table",id:"get_reaction_table",level:4},{value:"test_ode_conservation",id:"test_ode_conservation",level:4},{value:"is_number",id:"is_number",level:4},{value:"Species Objects",id:"species-objects",level:2},{value:"__init__",id:"__init__",level:4},{value:"get_name",id:"get_name",level:4},{value:"get_mass",id:"get_mass",level:4},{value:"set_desorb_products",id:"set_desorb_products",level:4},{value:"get_desorb_products",id:"get_desorb_products",level:4},{value:"set_freeze_products",id:"set_freeze_products",level:4},{value:"get_freeze_products",id:"get_freeze_products",level:4},{value:"get_freeze_products_list",id:"get_freeze_products_list",level:4},{value:"get_freeze_alpha",id:"get_freeze_alpha",level:4},{value:"is_grain_species",id:"is_grain_species",level:4},{value:"is_surface_species",id:"is_surface_species",level:4},{value:"is_bulk_species",id:"is_bulk_species",level:4},{value:"is_ion",id:"is_ion",level:4},{value:"add_default_freeze",id:"add_default_freeze",level:4},{value:"find_constituents",id:"find_constituents",level:4},{value:"get_n_atoms",id:"get_n_atoms",level:4},{value:"set_n_atoms",id:"set_n_atoms",level:4},{value:"__eq__",id:"__eq__",level:4},{value:"__lt__",id:"__lt__",level:4},{value:"__gt__",id:"__gt__",level:4},{value:"run_makerates",id:"run_makerates",level:4},{value:"get_network",id:"get_network",level:4},{value:"Network Objects",id:"network-objects",level:2},{value:"__init__",id:"__init__-1",level:4},{value:"find_similar_reactions",id:"find_similar_reactions",level:4},{value:"remove_reaction_by_index",id:"remove_reaction_by_index",level:4},{value:"remove_reaction",id:"remove_reaction",level:4},{value:"get_reaction",id:"get_reaction",level:4},{value:"set_reaction",id:"set_reaction",level:4},{value:"get_reaction_dict",id:"get_reaction_dict",level:4},{value:"set_reaction_dict",id:"set_reaction_dict",level:4},{value:"get_reaction_list",id:"get_reaction_list",level:4},{value:"sort_reactions",id:"sort_reactions",level:4},{value:"add_species",id:"add_species",level:4},{value:"remove_species",id:"remove_species",level:4},{value:"get_species_list",id:"get_species_list",level:4},{value:"get_species_dict",id:"get_species_dict",level:4},{value:"get_specie",id:"get_specie",level:4},{value:"set_specie",id:"set_specie",level:4},{value:"set_species_dict",id:"set_species_dict",level:4},{value:"sort_species",id:"sort_species",level:4},{value:"check_network",id:"check_network",level:4},{value:"check_and_filter_species",id:"check_and_filter_species",level:4},{value:"add_bulk_species",id:"add_bulk_species",level:4},{value:"check_freeze_and_desorbs",id:"check_freeze_and_desorbs",level:4},{value:"add_freeze_reactions",id:"add_freeze_reactions",level:4},{value:"add_desorb_reactions",id:"add_desorb_reactions",level:4},{value:"add_chemdes_reactions",id:"add_chemdes_reactions",level:4},{value:"check_for_excited_species",id:"check_for_excited_species",level:4},{value:"add_excited_surface_reactions",id:"add_excited_surface_reactions",level:4},{value:"add_bulk_reactions",id:"add_bulk_reactions",level:4},{value:"freeze_checks",id:"freeze_checks",level:4},{value:"duplicate_checks",id:"duplicate_checks",level:4},{value:"index_important_reactions",id:"index_important_reactions",level:4},{value:"index_important_species",id:"index_important_species",level:4},{value:"LoadedNetwork Objects",id:"loadednetwork-objects",level:2},{value:"__init__",id:"__init__-2",level:4},{value:"read_species_file",id:"read_species_file",level:4},{value:"read_reaction_file",id:"read_reaction_file",level:4},{value:"check_reaction",id:"check_reaction",level:4},{value:"kida_parser",id:"kida_parser",level:4},{value:"output_drops",id:"output_drops",level:4},{value:"write_outputs",id:"write_outputs",level:4},{value:"write_species",id:"write_species",level:4},{value:"write_reactions",id:"write_reactions",level:4},{value:"write_odes_f90",id:"write_odes_f90",level:4},{value:"write_jacobian",id:"write_jacobian",level:4},{value:"build_ode_string",id:"build_ode_string",level:4},{value:"species_ode_string",id:"species_ode_string",level:4},{value:"write_evap_lists",id:"write_evap_lists",level:4},{value:"truncate_line",id:"truncate_line",level:4},{value:"write_network_file",id:"write_network_file",level:4},{value:"find_reactant",id:"find_reactant",level:4},{value:"get_desorption_freeze_partners",id:"get_desorption_freeze_partners",level:4},{value:"array_to_string",id:"array_to_string",level:4},{value:"Reaction Objects",id:"reaction-objects",level:2},{value:"get_reactants",id:"get_reactants",level:4},{value:"get_sorted_reactants",id:"get_sorted_reactants",level:4},{value:"set_reactants",id:"set_reactants",level:4},{value:"get_products",id:"get_products",level:4},{value:"get_sorted_products",id:"get_sorted_products",level:4},{value:"set_products",id:"set_products",level:4},{value:"get_alpha",id:"get_alpha",level:4},{value:"set_alpha",id:"set_alpha",level:4},{value:"get_beta",id:"get_beta",level:4},{value:"set_beta",id:"set_beta",level:4},{value:"set_gamma",id:"set_gamma",level:4},{value:"get_gamma",id:"get_gamma",level:4},{value:"set_templow",id:"set_templow",level:4},{value:"get_templow",id:"get_templow",level:4},{value:"set_temphigh",id:"set_temphigh",level:4},{value:"get_temphigh",id:"get_temphigh",level:4},{value:"NANCheck",id:"nancheck",level:4},{value:"get_reaction_type",id:"get_reaction_type",level:4},{value:"convert_to_bulk",id:"convert_to_bulk",level:4},{value:"__eq__",id:"__eq__-1",level:4},{value:"check_temperature_collision",id:"check_temperature_collision",level:4},{value:"changes_surface_count",id:"changes_surface_count",level:4},{value:"changes_total_mantle",id:"changes_total_mantle",level:4},{value:"generate_ode_bit",id:"generate_ode_bit",level:4}],k={toc:m};function u(e){var t=e.components,a=(0,l.Z)(e,r);return(0,i.kt)("wrapper",(0,n.Z)({},k,a,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"python-api"},"Python API"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem"},"uclchem"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.analysis"},"uclchem.analysis")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.analysis.read_output_file"},"read","_","output","_","file")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.analysis.create_abundance_plot"},"create","_","abundance","_","plot")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.analysis.plot_species"},"plot","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.analysis.analysis"},"analysis")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.analysis.total_element_abundance"},"total","_","element","_","abundance")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.analysis.check_element_conservation"},"check","_","element","_","conservation")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.model"},"uclchem.model")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.model.cloud"},"cloud")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.model.collapse"},"collapse")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.model.hot_core"},"hot","_","core")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.model.cshock"},"cshock")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.model.jshock"},"jshock")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.utils"},"uclchem.utils")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.utils.cshock_dissipation_time"},"cshock","_","dissipation","_","time")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.utils.check_error"},"check","_","error")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.utils.get_species_table"},"get","_","species","_","table")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.utils.get_reaction_table"},"get","_","reaction","_","table")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.tests"},"uclchem.tests")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.tests.test_ode_conservation"},"test","_","ode","_","conservation")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.makerates.species"},"uclchem.makerates.species")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.is_number"},"is","_","number")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species"},"Species"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.__init__"},"_","_","init","_","_")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.get_name"},"get","_","name")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.get_mass"},"get","_","mass")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.set_desorb_products"},"set","_","desorb","_","products")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.get_desorb_products"},"get","_","desorb","_","products")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.set_freeze_products"},"set","_","freeze","_","products")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.get_freeze_products"},"get","_","freeze","_","products")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.get_freeze_products_list"},"get","_","freeze","_","products","_","list")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.get_freeze_alpha"},"get","_","freeze","_","alpha")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.is_grain_species"},"is","_","grain","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.is_surface_species"},"is","_","surface","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.is_bulk_species"},"is","_","bulk","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.is_ion"},"is","_","ion")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.add_default_freeze"},"add","_","default","_","freeze")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.find_constituents"},"find","_","constituents")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.get_n_atoms"},"get","_","n","_","atoms")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.set_n_atoms"},"set","_","n","_","atoms")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.__eq__"},"_","_","eq","_","_")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.__lt__"},"_","_","lt","_","_")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.__gt__"},"_","_","gt","_","_")))))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.makerates"},"uclchem.makerates"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.makerates.makerates"},"uclchem.makerates.makerates")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.makerates.run_makerates"},"run","_","makerates")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.makerates.get_network"},"get","_","network")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.makerates.network"},"uclchem.makerates.network")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network"},"Network"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.__init__"},"_","_","init","_","_")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.find_similar_reactions"},"find","_","similar","_","reactions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.remove_reaction_by_index"},"remove","_","reaction","_","by","_","index")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.remove_reaction"},"remove","_","reaction")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.get_reaction"},"get","_","reaction")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.set_reaction"},"set","_","reaction")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.get_reaction_dict"},"get","_","reaction","_","dict")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.set_reaction_dict"},"set","_","reaction","_","dict")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.get_reaction_list"},"get","_","reaction","_","list")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.sort_reactions"},"sort","_","reactions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.add_species"},"add","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.remove_species"},"remove","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.get_species_list"},"get","_","species","_","list")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.get_species_dict"},"get","_","species","_","dict")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.get_specie"},"get","_","specie")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.set_specie"},"set","_","specie")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.set_species_dict"},"set","_","species","_","dict")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.sort_species"},"sort","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.check_network"},"check","_","network")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.check_and_filter_species"},"check","_","and","_","filter","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.add_bulk_species"},"add","_","bulk","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.check_freeze_and_desorbs"},"check","_","freeze","_","and","_","desorbs")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.add_freeze_reactions"},"add","_","freeze","_","reactions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.add_desorb_reactions"},"add","_","desorb","_","reactions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.add_chemdes_reactions"},"add","_","chemdes","_","reactions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.check_for_excited_species"},"check","_","for","_","excited","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.add_excited_surface_reactions"},"add","_","excited","_","surface","_","reactions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.add_bulk_reactions"},"add","_","bulk","_","reactions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.freeze_checks"},"freeze","_","checks")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.duplicate_checks"},"duplicate","_","checks")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.index_important_reactions"},"index","_","important","_","reactions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.index_important_species"},"index","_","important","_","species")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.LoadedNetwork"},"LoadedNetwork"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.LoadedNetwork.__init__"},"_","_","init","_","_")))))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.makerates.io_functions"},"uclchem.makerates.io","_","functions")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.read_species_file"},"read","_","species","_","file")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.read_reaction_file"},"read","_","reaction","_","file")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.check_reaction"},"check","_","reaction")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.kida_parser"},"kida","_","parser")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.output_drops"},"output","_","drops")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.write_outputs"},"write","_","outputs")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.write_species"},"write","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.write_reactions"},"write","_","reactions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.write_odes_f90"},"write","_","odes","_","f90")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.write_jacobian"},"write","_","jacobian")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.build_ode_string"},"build","_","ode","_","string")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.species_ode_string"},"species","_","ode","_","string")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.write_evap_lists"},"write","_","evap","_","lists")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.truncate_line"},"truncate","_","line")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.write_network_file"},"write","_","network","_","file")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.find_reactant"},"find","_","reactant")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.get_desorption_freeze_partners"},"get","_","desorption","_","freeze","_","partners")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.array_to_string"},"array","_","to","_","string")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.makerates.reaction"},"uclchem.makerates.reaction")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction"},"Reaction"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.get_reactants"},"get","_","reactants")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.get_sorted_reactants"},"get","_","sorted","_","reactants")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.set_reactants"},"set","_","reactants")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.get_products"},"get","_","products")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.get_sorted_products"},"get","_","sorted","_","products")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.set_products"},"set","_","products")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.get_alpha"},"get","_","alpha")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.set_alpha"},"set","_","alpha")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.get_beta"},"get","_","beta")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.set_beta"},"set","_","beta")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.set_gamma"},"set","_","gamma")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.get_gamma"},"get","_","gamma")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.set_templow"},"set","_","templow")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.get_templow"},"get","_","templow")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.set_temphigh"},"set","_","temphigh")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.get_temphigh"},"get","_","temphigh")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.NANCheck"},"NANCheck")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.get_reaction_type"},"get","_","reaction","_","type")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.convert_to_bulk"},"convert","_","to","_","bulk")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.__eq__"},"_","_","eq","_","_")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.check_temperature_collision"},"check","_","temperature","_","collision")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.changes_surface_count"},"changes","_","surface","_","count")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.changes_total_mantle"},"changes","_","total","_","mantle")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.generate_ode_bit"},"generate","_","ode","_","bit"))))))),(0,i.kt)("a",{id:"uclchem"}),(0,i.kt)("h1",{id:"uclchem"},"uclchem"),(0,i.kt)("p",null,"The UCLCHEM python module is divided into three parts.\n",(0,i.kt)("inlineCode",{parentName:"p"},"model")," contains the functions for running chemical models under different physics.\n",(0,i.kt)("inlineCode",{parentName:"p"},"analysis")," contains functions for reading and plotting output files as well as investigating the chemistry.\n",(0,i.kt)("inlineCode",{parentName:"p"},"tests")," contains functions for testing the code."),(0,i.kt)("a",{id:"uclchem.analysis"}),(0,i.kt)("h1",{id:"uclchemanalysis"},"uclchem.analysis"),(0,i.kt)("a",{id:"uclchem.analysis.read_output_file"}),(0,i.kt)("h4",{id:"read_output_file"},"read","_","output","_","file"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def read_output_file(output_file)\n")),(0,i.kt)("p",null,"Read the output of a UCLCHEM run created with the outputFile parameter into a pandas DataFrame"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"output_file")," ",(0,i.kt)("em",{parentName:"li"},"str")," - path to file containing a full UCLCHEM output")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"pandas.DataFrame")," - A dataframe containing the abundances and physical parameters of the model at every time step.")),(0,i.kt)("a",{id:"uclchem.analysis.create_abundance_plot"}),(0,i.kt)("h4",{id:"create_abundance_plot"},"create","_","abundance","_","plot"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def create_abundance_plot(df, species, figsize=(16, 9), plot_file=None)\n")),(0,i.kt)("p",null,"Create a plot of the abundance of a list of species through time."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"df")," ",(0,i.kt)("em",{parentName:"li"},"pd.DataFrame")," - Pandas dataframe containing the UCLCHEM output, see ",(0,i.kt)("inlineCode",{parentName:"li"},"read_output_file")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species")," ",(0,i.kt)("em",{parentName:"li"},"list")," - list of strings containing species names. Using a $ instead of # or @ will plot the sum of surface and bulk abundances."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"figsize")," ",(0,i.kt)("em",{parentName:"li"},"tuple, optional")," - Size of figure, width by height in inches. Defaults to (16, 9)."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"plot_file")," ",(0,i.kt)("em",{parentName:"li"},"str, optional")," - Path to file where figure will be saved. If None, figure is not saved. Defaults to None.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"fig,ax")," - matplotlib figure and axis objects")),(0,i.kt)("a",{id:"uclchem.analysis.plot_species"}),(0,i.kt)("h4",{id:"plot_species"},"plot","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def plot_species(ax, df, species, **plot_kwargs)\n")),(0,i.kt)("p",null,"Plot the abundance of a list of species through time directly onto an axis."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"ax")," ",(0,i.kt)("em",{parentName:"li"},"pyplot.axis")," - An axis object to plot on"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"df")," ",(0,i.kt)("em",{parentName:"li"},"pd.DataFrame")," - A dataframe created by ",(0,i.kt)("inlineCode",{parentName:"li"},"read_output_file")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species")," ",(0,i.kt)("em",{parentName:"li"},"str"),' - A list of species names to be plotted. If species name starts with "$" instead of # or @, plots the sum of surface and bulk abundances')),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"pyplot.axis")," - Modified input axis is returned")),(0,i.kt)("a",{id:"uclchem.analysis.analysis"}),(0,i.kt)("h4",{id:"analysis"},"analysis"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def analysis(species_name, result_file, output_file, rate_threshold=0.99)\n")),(0,i.kt)("p",null,"A function which loops over every time step in an output file and finds the rate of change of a species at that time due to each of the reactions it is involved in.\nFrom this, the most important reactions are identified and printed to file. This can be used to understand the chemical reason behind a species' behaviour."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_name")," ",(0,i.kt)("em",{parentName:"li"},"str")," - Name of species to be analysed"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"result_file")," ",(0,i.kt)("em",{parentName:"li"},"str")," - The path to the file containing the UCLCHEM output"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"output_file")," ",(0,i.kt)("em",{parentName:"li"},"str")," - The path to the file where the analysis output will be written"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"rate_threshold")," ",(0,i.kt)("em",{parentName:"li"},"float,optional")," - Analysis output will contain the only the most efficient reactions that are responsible for rate_threshold of the total production and destruction rate. Defaults to 0.99.")),(0,i.kt)("a",{id:"uclchem.analysis.total_element_abundance"}),(0,i.kt)("h4",{id:"total_element_abundance"},"total","_","element","_","abundance"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def total_element_abundance(element, df)\n")),(0,i.kt)("p",null,"Calculates that the total elemental abundance of a species as a function of time. Allows you to check conservation."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"element")," ",(0,i.kt)("em",{parentName:"li"},"str")," - Name of element"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"df")," ",(0,i.kt)("em",{parentName:"li"},"pandas.DataFrame")," - DataFrame from ",(0,i.kt)("inlineCode",{parentName:"li"},"read_output_file()"))),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"pandas.Series")," - Total abundance of element for all time steps in df.")),(0,i.kt)("a",{id:"uclchem.analysis.check_element_conservation"}),(0,i.kt)("h4",{id:"check_element_conservation"},"check","_","element","_","conservation"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},'def check_element_conservation(df,\n element_list=["H", "N", "C", "O"],\n percent=True)\n')),(0,i.kt)("p",null,"Check the conservation of major element by comparing total abundance at start and end of model"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"df")," ",(0,i.kt)("em",{parentName:"li"},"pandas.DataFrame")," - UCLCHEM output in format from ",(0,i.kt)("inlineCode",{parentName:"li"},"read_output_file")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"element_list")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - List of elements to check. Defaults to ",'["H", "N", "C", "O"]',".")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"dict")," - Dictionary containing the change in the total abundance of each element as a fraction of initial value")),(0,i.kt)("a",{id:"uclchem.model"}),(0,i.kt)("h1",{id:"uclchemmodel"},"uclchem.model"),(0,i.kt)("a",{id:"uclchem.model.cloud"}),(0,i.kt)("h4",{id:"cloud"},"cloud"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def cloud(param_dict=None, out_species=None)\n")),(0,i.kt)("p",null,"Run cloud model from UCLCHEM"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"param_dict")," ",(0,i.kt)("em",{parentName:"li"},"dict,optional")," - A dictionary of parameters where keys are any of the variables in defaultparameters.f90 and values are value for current run."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"out_species")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - A list of species for which final abundance will be returned. If None, no abundances will be returned.. Defaults to None.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," A list where the first element is always an integer which is negative if the model failed to run and can be sent to ",(0,i.kt)("inlineCode",{parentName:"p"},"uclchem.utils.check_error()")," to see more details. If the ",(0,i.kt)("inlineCode",{parentName:"p"},"out_species")," parametere is provided, the remaining elements of this list will be the final abundances of the species in out_species."),(0,i.kt)("a",{id:"uclchem.model.collapse"}),(0,i.kt)("h4",{id:"collapse"},"collapse"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def collapse(collapse, physics_output, param_dict=None, out_species=None)\n")),(0,i.kt)("p",null,"Run collapse model from UCLCHEM based on Priestley et al 2018 AJ 156 51 (",(0,i.kt)("a",{parentName:"p",href:"https://ui.adsabs.harvard.edu/abs/2018AJ....156...51P/abstract"},"https://ui.adsabs.harvard.edu/abs/2018AJ....156...51P/abstract"),")"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"collapse")," ",(0,i.kt)("em",{parentName:"li"},"str")," - A string containing the collapse type, options are 'BE1.1', 'BE4', 'filament', or 'ambipolar'"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"physics_output(str)")," - Filename to store physics output, only relevant for 'filament' and 'ambipolar' collapses. If None, no physics output will be saved."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"param_dict")," ",(0,i.kt)("em",{parentName:"li"},"dict,optional")," - A dictionary of parameters where keys are any of the variables in defaultparameters.f90 and values are value for current run."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"out_species")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - A list of species for which final abundance will be returned. If None, no abundances will be returned.. Defaults to None.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," A list where the first element is always an integer which is negative if the model failed to run and can be sent to ",(0,i.kt)("inlineCode",{parentName:"p"},"uclchem.utils.check_error()")," to see more details. If the ",(0,i.kt)("inlineCode",{parentName:"p"},"out_species")," parametere is provided, the remaining elements of this list will be the final abundances of the species in out_species."),(0,i.kt)("a",{id:"uclchem.model.hot_core"}),(0,i.kt)("h4",{id:"hot_core"},"hot","_","core"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def hot_core(temp_indx, max_temperature, param_dict=None, out_species=None)\n")),(0,i.kt)("p",null,"Run hot core model from UCLCHEM, based on Viti et al. 2004 and Collings et al. 2004"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"temp_indx")," ",(0,i.kt)("em",{parentName:"li"},"int")," - Used to select the mass of hot core. 1=1Msun,2=5, 3=10, 4=15, 5=25,6=60]"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"max_temperature")," ",(0,i.kt)("em",{parentName:"li"},"float")," - Value at which gas temperature will stop increasing."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"param_dict")," ",(0,i.kt)("em",{parentName:"li"},"dict,optional")," - A dictionary of parameters where keys are any of the variables in defaultparameters.f90 and values are value for current run."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"out_species")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - A list of species for which final abundance will be returned. If None, no abundances will be returned.. Defaults to None.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," A list where the first element is always an integer which is negative if the model failed to run and can be sent to ",(0,i.kt)("inlineCode",{parentName:"p"},"uclchem.utils.check_error()")," to see more details. If the ",(0,i.kt)("inlineCode",{parentName:"p"},"out_species")," parametere is provided, the remaining elements of this list will be the final abundances of the species in out_species."),(0,i.kt)("a",{id:"uclchem.model.cshock"}),(0,i.kt)("h4",{id:"cshock"},"cshock"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def cshock(shock_vel,\n timestep_factor=0.01,\n minimum_temperature=0.0,\n param_dict=None,\n out_species=None)\n")),(0,i.kt)("p",null,"Run C-type shock model from UCLCHEM"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"shock_vel")," ",(0,i.kt)("em",{parentName:"li"},"float")," - Velocity of the shock in km/s"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"timestep_factor")," ",(0,i.kt)("em",{parentName:"li"},"float, optional")," - Whilst the time is less than 2 times the dissipation time of shock, timestep is timestep_factor*dissipation time. Essentially controls\nhow well resolved the shock is in your model. Defaults to 0.01."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"minimum_temperature")," ",(0,i.kt)("em",{parentName:"li"},"float, optional")," - Minimum post-shock temperature. Defaults to 0.0 (no minimum). The shocked gas typically cools to ",(0,i.kt)("inlineCode",{parentName:"li"},"initialTemp")," if this is not set."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"param_dict")," ",(0,i.kt)("em",{parentName:"li"},"dict,optional")," - A dictionary of parameters where keys are any of the variables in defaultparameters.f90 and values are value for current run."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"out_species")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - A list of species for which final abundance will be returned. If None, no abundances will be returned.. Defaults to None.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," A list where the first element is always an integer which is negative if the model failed to run and can be sent to ",(0,i.kt)("inlineCode",{parentName:"p"},"uclchem.utils.check_error()")," to see more details. If the model succeeded, the second element is the dissipation time and further elements are the abundances of all species in ",(0,i.kt)("inlineCode",{parentName:"p"},"out_species"),"."),(0,i.kt)("a",{id:"uclchem.model.jshock"}),(0,i.kt)("h4",{id:"jshock"},"jshock"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def jshock(shock_vel, param_dict=None, out_species=None)\n")),(0,i.kt)("p",null,"Run J-type shock model from UCLCHEM"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"shock_vel")," ",(0,i.kt)("em",{parentName:"li"},"float")," - Velocity of the shock"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"param_dict")," ",(0,i.kt)("em",{parentName:"li"},"dict,optional")," - A dictionary of parameters where keys are any of the variables in defaultparameters.f90 and values are value for current run."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"out_species")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - A list of species for which final abundance will be returned. If None, no abundances will be returned.. Defaults to None.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," A list where the first element is always an integer which is negative if the model failed to run and can be sent to ",(0,i.kt)("inlineCode",{parentName:"p"},"uclchem.utils.check_error()")," to see more details. If the model succeeded, the second element is the dissipation time and further elements are the abundances of all species in ",(0,i.kt)("inlineCode",{parentName:"p"},"out_species"),"."),(0,i.kt)("a",{id:"uclchem.utils"}),(0,i.kt)("h1",{id:"uclchemutils"},"uclchem.utils"),(0,i.kt)("a",{id:"uclchem.utils.cshock_dissipation_time"}),(0,i.kt)("h4",{id:"cshock_dissipation_time"},"cshock","_","dissipation","_","time"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def cshock_dissipation_time(shock_vel, initial_dens)\n")),(0,i.kt)("p",null,"A simple function used to calculate the dissipation time of a C-type shock.\nUse to obtain a useful timescale for your C-shock model runs. Velocity of\nions and neutrals equalizes at dissipation time and full cooling takes a few dissipation times."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"shock_vel")," ",(0,i.kt)("em",{parentName:"li"},"float")," - Velocity of the shock in km/s"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"initial_dens")," ",(0,i.kt)("em",{parentName:"li"},"float")," - Preshock density of the gas in cm",(0,i.kt)("span",{parentName:"li",className:"math math-inline"},(0,i.kt)("span",{parentName:"span",className:"katex"},(0,i.kt)("span",{parentName:"span",className:"katex-mathml"},(0,i.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,i.kt)("semantics",{parentName:"math"},(0,i.kt)("mrow",{parentName:"semantics"},(0,i.kt)("msup",{parentName:"mrow"},(0,i.kt)("mrow",{parentName:"msup"}),(0,i.kt)("mrow",{parentName:"msup"},(0,i.kt)("mo",{parentName:"mrow"},"\u2212"),(0,i.kt)("mn",{parentName:"mrow"},"3")))),(0,i.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-3}")))),(0,i.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,i.kt)("span",{parentName:"span",className:"base"},(0,i.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,i.kt)("span",{parentName:"span",className:"mord"},(0,i.kt)("span",{parentName:"span"}),(0,i.kt)("span",{parentName:"span",className:"msupsub"},(0,i.kt)("span",{parentName:"span",className:"vlist-t"},(0,i.kt)("span",{parentName:"span",className:"vlist-r"},(0,i.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,i.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,i.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,i.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,i.kt)("span",{parentName:"span",className:"mord mtight"},(0,i.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,i.kt)("span",{parentName:"span",className:"mord mtight"},"3"))))))))))))))),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"float")," - The dissipation time of the shock in years")),(0,i.kt)("a",{id:"uclchem.utils.check_error"}),(0,i.kt)("h4",{id:"check_error"},"check","_","error"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def check_error(error_code)\n")),(0,i.kt)("p",null,'Converts the UCLCHEM integer result flag to a simple messaging explaining what went wrong"'),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"error_code")," ",(0,i.kt)("em",{parentName:"li"},"int")," - Error code returned by UCLCHEM models, the first element of the results list.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"str")," - Error message")),(0,i.kt)("a",{id:"uclchem.utils.get_species_table"}),(0,i.kt)("h4",{id:"get_species_table"},"get","_","species","_","table"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_species_table()\n")),(0,i.kt)("p",null,"A simple function to load the list of species in the UCLCHEM network into a pandas dataframe."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"pandas.DataFrame")," - A dataframe containing the species names and their details")),(0,i.kt)("a",{id:"uclchem.utils.get_reaction_table"}),(0,i.kt)("h4",{id:"get_reaction_table"},"get","_","reaction","_","table"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_reaction_table()\n")),(0,i.kt)("p",null,"A function to load the reaction table from the UCLCHEM network into a pandas dataframe."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"pandas.DataFrame")," - A dataframe containing the reactions and their rates")),(0,i.kt)("a",{id:"uclchem.tests"}),(0,i.kt)("h1",{id:"uclchemtests"},"uclchem.tests"),(0,i.kt)("a",{id:"uclchem.tests.test_ode_conservation"}),(0,i.kt)("h4",{id:"test_ode_conservation"},"test","_","ode","_","conservation"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},'def test_ode_conservation(element_list=["H", "N", "C", "O"])\n')),(0,i.kt)("p",null,"Test whether the ODEs conserve elements. Useful to run each time you change network.\nIntegrator errors may still cause elements not to be conserved but they cannot be conserved\nif the ODEs are not correct."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"element_list")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - A list of elements for which to check the conservation. Defaults to ",'["H", "N", "C", "O"]',".")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"dict")," - A dictionary of the elements in element list with values representing the total rate of change of each element.")),(0,i.kt)("a",{id:"uclchem.makerates.species"}),(0,i.kt)("h1",{id:"uclchemmakeratesspecies"},"uclchem.makerates.species"),(0,i.kt)("a",{id:"uclchem.makerates.species.is_number"}),(0,i.kt)("h4",{id:"is_number"},"is","_","number"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def is_number(s) -> bool\n")),(0,i.kt)("p",null,"Try to convert input to a float, if it succeeds, return True."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"s")," - Input element to check for")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - True if a number, False if not.")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species"}),(0,i.kt)("h2",{id:"species-objects"},"Species Objects"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"class Species()\n")),(0,i.kt)("p",null,"Species is a class that holds all the information about an individual species in the\nnetwork. It also has convenience functions to check whether the species is a gas or grain\nspecies and to help compare between species."),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.__init__"}),(0,i.kt)("h4",{id:"__init__"},"_","_","init","_","_"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def __init__(inputRow)\n")),(0,i.kt)("p",null,"A class representing chemical species, it reads in rows which are formatted as follows:\nNAME,MASS,BINDING ENERGY,SOLID FRACTION,MONO FRACTION,VOLCANO FRACTION,ENTHALPY"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("p",null," inputRow (list):"),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.get_name"}),(0,i.kt)("h4",{id:"get_name"},"get","_","name"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_name() -> str\n")),(0,i.kt)("p",null,"Get the name of the chemical species."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"str")," - The name")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.get_mass"}),(0,i.kt)("h4",{id:"get_mass"},"get","_","mass"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_mass() -> int\n")),(0,i.kt)("p",null,"Get the molecular mass of the chemical species"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"int")," - The molecular mass")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.set_desorb_products"}),(0,i.kt)("h4",{id:"set_desorb_products"},"set","_","desorb","_","products"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_desorb_products(new_desorbs: list[str]) -> None\n")),(0,i.kt)("p",null,"Set the desorption products for species on the surface or in the bulk.\nIt is assumed that there is only one desorption pathway."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"new_desorbs")," ",(0,i.kt)("em",{parentName:"li"},"list","[str]")," - The new desorption products")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.get_desorb_products"}),(0,i.kt)("h4",{id:"get_desorb_products"},"get","_","desorb","_","products"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_desorb_products() -> list[str]\n")),(0,i.kt)("p",null,"Obtain the desorbtion products of ice species"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"list[str]")," - The desorption products")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.set_freeze_products"}),(0,i.kt)("h4",{id:"set_freeze_products"},"set","_","freeze","_","products"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_freeze_products(product_list: list[str], freeze_alpha: float) -> None\n")),(0,i.kt)("p",null,"Add the freeze products of the species, one species can have several freeze products."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"product_list")," ",(0,i.kt)("em",{parentName:"p"},"list","[str]")," - The list of freeze out products")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"freeze_alpha")," ",(0,i.kt)("em",{parentName:"p"},"float")," - The freeze out ratio."),(0,i.kt)("p",{parentName:"li"},"It is called alpha, since it is derived from the alpha column in the UCLCHEM reaction format:\n",(0,i.kt)("a",{parentName:"p",href:"https://github.com/uclchem/UCLCHEM/blob/08d37f8c3063f8ff8a9a7aa16d9eff0ed4f99538/Makerates/src/network.py#L160"},"https://github.com/uclchem/UCLCHEM/blob/08d37f8c3063f8ff8a9a7aa16d9eff0ed4f99538/Makerates/src/network.py#L160")))),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.get_freeze_products"}),(0,i.kt)("h4",{id:"get_freeze_products"},"get","_","freeze","_","products"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_freeze_products() -> dict[list[str], float]\n")),(0,i.kt)("p",null,"Obtain the product to which the species freeze out"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," dict","[str, float]",": Reactions and their respective freeze out ratios."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Yields"),":"),(0,i.kt)("p",null," Iterator[dict","[str, float]","]: Iterator that returns all of the freeze out reactions with ratios"),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.get_freeze_products_list"}),(0,i.kt)("h4",{id:"get_freeze_products_list"},"get","_","freeze","_","products","_","list"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_freeze_products_list() -> list[list[str]]\n")),(0,i.kt)("p",null,"Returns all the freeze products without their ratios"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"list[list[str]]")," - List of freeze products")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.get_freeze_alpha"}),(0,i.kt)("h4",{id:"get_freeze_alpha"},"get","_","freeze","_","alpha"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_freeze_alpha(product_list: list[str]) -> float\n")),(0,i.kt)("p",null,"Obtain the freeze out ratio of a species for a certain reaction"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"product_list")," ",(0,i.kt)("em",{parentName:"li"},"list","[str]")," - For a specific reaction, get the freezeout ratio")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"float")," - The freezeout ratio")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.is_grain_species"}),(0,i.kt)("h4",{id:"is_grain_species"},"is","_","grain","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def is_grain_species() -> bool\n")),(0,i.kt)("p",null,"Return whether the species is a species on the grain"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - True if it is a grain species.")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.is_surface_species"}),(0,i.kt)("h4",{id:"is_surface_species"},"is","_","surface","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def is_surface_species() -> bool\n")),(0,i.kt)("p",null,"Checks if the species is on the surface"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - True if a surface species")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.is_bulk_species"}),(0,i.kt)("h4",{id:"is_bulk_species"},"is","_","bulk","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def is_bulk_species() -> bool\n")),(0,i.kt)("p",null,"Checks if the species is in the bulk"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - True if a bulk species")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.is_ion"}),(0,i.kt)("h4",{id:"is_ion"},"is","_","ion"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def is_ion() -> bool\n")),(0,i.kt)("p",null,"Checks if the species is ionized, either postively or negatively."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - True if it is an ionized")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.add_default_freeze"}),(0,i.kt)("h4",{id:"add_default_freeze"},"add","_","default","_","freeze"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def add_default_freeze() -> None\n")),(0,i.kt)("p",null,"Adds a defalt freezeout, which is freezing out to the species itself, but with no ionization."),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.find_constituents"}),(0,i.kt)("h4",{id:"find_constituents"},"find","_","constituents"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def find_constituents()\n")),(0,i.kt)("p",null,"Loop through the species' name and work out what its consituent\natoms are. Then calculate mass and alert user if it doesn't match\ninput mass."),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.get_n_atoms"}),(0,i.kt)("h4",{id:"get_n_atoms"},"get","_","n","_","atoms"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_n_atoms() -> int\n")),(0,i.kt)("p",null,"Obtain the number of atoms in the molecule"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"int")," - The number of atoms")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.set_n_atoms"}),(0,i.kt)("h4",{id:"set_n_atoms"},"set","_","n","_","atoms"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_n_atoms(new_n_atoms: int) -> None\n")),(0,i.kt)("p",null,"Set the number of atoms"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"new_n_atoms")," ",(0,i.kt)("em",{parentName:"li"},"int")," - The new number of atoms")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.__eq__"}),(0,i.kt)("h4",{id:"__eq__"},"_","_","eq","_","_"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def __eq__(other)\n")),(0,i.kt)("p",null,"Check for equality based on either a string or another Species instance."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"other")," ",(0,i.kt)("em",{parentName:"li"},"str, Species")," - Another species")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Raises"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"NotImplementedError")," - We can only compare between species or strings of species.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - True if two species are identical.")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.__lt__"}),(0,i.kt)("h4",{id:"__lt__"},"_","_","lt","_","_"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def __lt__(other) -> bool\n")),(0,i.kt)("p",null,"Compare the mass of the species"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"other")," ",(0,i.kt)("em",{parentName:"li"},"Species")," - Another species instance")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - True if less than the other species")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.__gt__"}),(0,i.kt)("h4",{id:"__gt__"},"_","_","gt","_","_"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def __gt__(other) -> bool\n")),(0,i.kt)("p",null,"Compare the mass of the species"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"other")," ",(0,i.kt)("em",{parentName:"li"},"Species")," - Another species instance")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - True if larger than than the other species")),(0,i.kt)("a",{id:"uclchem.makerates"}),(0,i.kt)("h1",{id:"uclchemmakerates"},"uclchem.makerates"),(0,i.kt)("a",{id:"uclchem.makerates.makerates"}),(0,i.kt)("h1",{id:"uclchemmakeratesmakerates"},"uclchem.makerates.makerates"),(0,i.kt)("a",{id:"uclchem.makerates.makerates.run_makerates"}),(0,i.kt)("h4",{id:"run_makerates"},"run","_","makerates"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},'def run_makerates(configuration_file: str = "user_settings.yaml",\n write_files: bool = True) -> Network\n')),(0,i.kt)("p",null,"The main run wrapper for makerates, it loads a configuration, parses it in Network\nand then returns the Network. It by default writes to the uclchem fortran directory, but\nthis can be skipped."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"configuration_file")," ",(0,i.kt)("em",{parentName:"li"},"str, optional"),' - A UCLCHEM Makerates configuration file. Defaults to "user_settings.yaml".'),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"write_files")," ",(0,i.kt)("em",{parentName:"li"},"bool, optional")," - Whether to write the fortran files to the src/fortran_src. Defaults to True.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Raises"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"KeyError")," - The configuration cannot be found")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Network")," - A chemical network instance.")),(0,i.kt)("a",{id:"uclchem.makerates.makerates.get_network"}),(0,i.kt)("h4",{id:"get_network"},"get","_","network"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_network(path_to_input_file: Union[str, bytes, os.PathLike] = None,\n path_to_species_file: Union[str, bytes, os.PathLike] = None,\n path_to_reaction_file: Union[str, bytes, os.PathLike] = None,\n verbosity=None)\n")),(0,i.kt)("p",null,"In memory equivalent of Makerates, can either be used on the original input files\nfor makerates, or on the output files that makerates generates. So either specify:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"path_to_input_file ")," exclusive OR (",(0,i.kt)("inlineCode",{parentName:"p"},"path_to_species_file")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"path_to_reaction_file"),")"),(0,i.kt)("p",null,"The latter scenario allows you to reload a reaction network from a network already written by Makerates."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"path_to_input_file")," ",(0,i.kt)("em",{parentName:"li"},"Union","[str, bytes, os.PathLike]",", optional")," - Path to input file. Defaults to None."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"path_to_species_file")," ",(0,i.kt)("em",{parentName:"li"},"Union","[str, bytes, os.PathLike]",", optional")," - Path to a species.csv in/from the src directory. Defaults to None."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"path_to_reaction_file")," ",(0,i.kt)("em",{parentName:"li"},"Union","[str, bytes, os.PathLike]",", optional")," - Path to a reactions.csv in/from the src directory. Defaults to None."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"verbosity")," ",(0,i.kt)("em",{parentName:"li"},"LEVEL, optional")," - The verbosity level as specified in logging. Defaults to None.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Raises"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"ValueError")," - You cannot specify both an input configuration and species+reaction.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Network")," - A chemical reaction network.")),(0,i.kt)("a",{id:"uclchem.makerates.network"}),(0,i.kt)("h1",{id:"uclchemmakeratesnetwork"},"uclchem.makerates.network"),(0,i.kt)("p",null,"This python file contains all functions for de-duplicating species and reaction lists,\nchecking for common errors, and automatic addition of reactions such as freeze out,\ndesorption and bulk reactions for three phase models."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network"}),(0,i.kt)("h2",{id:"network-objects"},"Network Objects"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"class Network()\n")),(0,i.kt)("p",null,"The network class stores all the information about reaction network."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.__init__"}),(0,i.kt)("h4",{id:"__init__-1"},"_","_","init","_","_"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def __init__(species: list[Species],\n reactions: list[Reaction],\n three_phase: bool = False,\n user_defined_bulk: list = [])\n")),(0,i.kt)("p",null,"A class to store network information such as indices of important reactions."),(0,i.kt)("p",null,"The class fully utilizes getters and setters, which can be used to add/remove\nreactions and the species involved. Important is that you do not directly edit\nthe internal dictionaries that store the species and reactions, unless you\nknow what you are doing. The network by default checks for duplicates in species\nand identical reactions that overlap in temperature ranges, potentially causing\nproblems."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species")," ",(0,i.kt)("em",{parentName:"li"},"list","[Species]")," - A list of chemical species that are added to the network"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reactions")," ",(0,i.kt)("em",{parentName:"li"},"list","[Reaction]")," - A list of chemical reactions that are added to the network"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"three_phase")," ",(0,i.kt)("em",{parentName:"li"},"bool, optional")," - Whether to use a three phase model (gas, surface, bulk). Defaults to False."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"user_defined_bulk")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - List of user defined bulk. Defaults to [].")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.find_similar_reactions"}),(0,i.kt)("h4",{id:"find_similar_reactions"},"find","_","similar","_","reactions"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def find_similar_reactions(reaction: Reaction) -> dict[int, Reaction]\n")),(0,i.kt)("p",null,"Reactions are similar if the reaction has the same reactants and products,\nfind all reactions that are similar, returning their index and the reaction itself."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction")," ",(0,i.kt)("em",{parentName:"li"},"Reaction")," - Reaction with possible identical (but for temperature range) reactions in the network")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," dict","[int, Reaction]",": A dict with the identical reactions."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.remove_reaction_by_index"}),(0,i.kt)("h4",{id:"remove_reaction_by_index"},"remove","_","reaction","_","by","_","index"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def remove_reaction_by_index(reaction_idx: int) -> None\n")),(0,i.kt)("p",null,"Remove a reaction by its index in the internal _reactions_dict, this is the only way\nto remove reactions that are defined piecewise across temperature ranges."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction_idx")," ",(0,i.kt)("em",{parentName:"li"},"int")," - Index of the reaction to remove")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.remove_reaction"}),(0,i.kt)("h4",{id:"remove_reaction"},"remove","_","reaction"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def remove_reaction(reaction: Reaction) -> None\n")),(0,i.kt)("p",null,"Remove the reaction by giving the object itself, this only works if the reaction is\nnot piecewise defined across the temperature ranges."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction")," ",(0,i.kt)("em",{parentName:"li"},"Reaction")," - The reaction you wish to delete.")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.get_reaction"}),(0,i.kt)("h4",{id:"get_reaction"},"get","_","reaction"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_reaction(reaction_idx: int) -> Reaction\n")),(0,i.kt)("p",null,"Obtain a reaction from the reaction set given an index of the internal _reactions_dict."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction_idx")," ",(0,i.kt)("em",{parentName:"li"},"int")," - The reaction index")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Reaction")," - the desired reaction")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.set_reaction"}),(0,i.kt)("h4",{id:"set_reaction"},"set","_","reaction"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_reaction(reaction_idx: int, reaction: Reaction) -> None\n")),(0,i.kt)("p",null,"This setter explicitely sets the reaction for a certain index."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction_idx")," ",(0,i.kt)("em",{parentName:"li"},"int")," - The index to be written to"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction")," ",(0,i.kt)("em",{parentName:"li"},"Reaction")," - The reaction to be added to the index.")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.get_reaction_dict"}),(0,i.kt)("h4",{id:"get_reaction_dict"},"get","_","reaction","_","dict"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_reaction_dict() -> dict[int, Reaction]\n")),(0,i.kt)("p",null,"Returns the whole internal reaction dictionary."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," dict","[int, Reaction]",": A copy of the internal reactions dictionary."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.set_reaction_dict"}),(0,i.kt)("h4",{id:"set_reaction_dict"},"set","_","reaction","_","dict"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_reaction_dict(new_dict: dict[int, Reaction]) -> None\n")),(0,i.kt)("p",null,"Override the reactions dictionary with a new dictionar."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"new_dict")," ",(0,i.kt)("em",{parentName:"li"},"dict","[int, Reaction]")," - The new reactions_dictionary.")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.get_reaction_list"}),(0,i.kt)("h4",{id:"get_reaction_list"},"get","_","reaction","_","list"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_reaction_list() -> list[Reaction]\n")),(0,i.kt)("p",null,"Obtain all the reactions in the Network."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"list[Reaction]")," - A list with all the reaction objects")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.sort_reactions"}),(0,i.kt)("h4",{id:"sort_reactions"},"sort","_","reactions"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def sort_reactions() -> None\n")),(0,i.kt)("p",null,"Sort the reaction dictionary by reaction type first and by the first reactant second."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.add_species"}),(0,i.kt)("h4",{id:"add_species"},"add","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def add_species(species: Union[Union[Species, str], list[Union[Species,\n str]]])\n")),(0,i.kt)("p",null,"Add species to the network, given a (list of) species. If it is a list of strings,\nit tries to instantiate a species class with it. It also checks for duplicate entries and\nfilters out attempts to add reaction types to the species."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species")," ",(0,i.kt)("em",{parentName:"li"},"Union[Union","[Species, str]",", list[Union","[Species, str]","]]")," - A (list of) species or strings.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Raises"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"ValueError")," - If we cannot parse the (list of) reactions"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"ValueError")," - If an ice specie with binding energy of zero is added.")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.remove_species"}),(0,i.kt)("h4",{id:"remove_species"},"remove","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def remove_species(specie_name: str) -> None\n")),(0,i.kt)("p",null,"Remove a specie from the network"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"specie_name")," ",(0,i.kt)("em",{parentName:"li"},"str")," - Species to remove")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.get_species_list"}),(0,i.kt)("h4",{id:"get_species_list"},"get","_","species","_","list"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_species_list() -> list[Species]\n")),(0,i.kt)("p",null,"Obtain a list with all the species in the network"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"list[Species]")," - A list of all the species in the reaction network")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.get_species_dict"}),(0,i.kt)("h4",{id:"get_species_dict"},"get","_","species","_","dict"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_species_dict() -> dict[str, Species]\n")),(0,i.kt)("p",null,"Get the internal dictionary that stores all the species, it consists\nof all species' names as key, with the species object as value."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," dict","[str, Species]",": A dictionary with the species"),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.get_specie"}),(0,i.kt)("h4",{id:"get_specie"},"get","_","specie"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_specie(specie_name: str) -> Species\n")),(0,i.kt)("p",null,"Get the species of the reaction network (from the internal dictionary)"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"specie_name")," ",(0,i.kt)("em",{parentName:"li"},"str")," - the name of the species as a string")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Species")," - The species object")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.set_specie"}),(0,i.kt)("h4",{id:"set_specie"},"set","_","specie"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_specie(species_name: str, species: Species) -> None\n")),(0,i.kt)("p",null,"Set the species of the reaction network in the internal dictionary"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_name")," ",(0,i.kt)("em",{parentName:"li"},"str")," - The name of the species as string"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species")," ",(0,i.kt)("em",{parentName:"li"},"Species")," - The Species object to set")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.set_species_dict"}),(0,i.kt)("h4",{id:"set_species_dict"},"set","_","species","_","dict"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_species_dict(new_species_dict: dict[str, Species]) -> None\n")),(0,i.kt)("p",null,"Set the internal species dict"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"new_species_dict")," ",(0,i.kt)("em",{parentName:"li"},"dict","[str, Species]")," - The new dictionary to set")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.sort_species"}),(0,i.kt)("h4",{id:"sort_species"},"sort","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def sort_species() -> None\n")),(0,i.kt)("p",null,"Sort the species based on their mass in ascending order. We always make sure the Electron is last."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.check_network"}),(0,i.kt)("h4",{id:"check_network"},"check","_","network"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def check_network() -> None\n")),(0,i.kt)("p",null,"Run through the list of reactions and check for obvious errors such\nas duplicate reactions, multiple freeze out routes (to warn, not necessarily\nan error), etc."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.check_and_filter_species"}),(0,i.kt)("h4",{id:"check_and_filter_species"},"check","_","and","_","filter","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def check_and_filter_species() -> None\n")),(0,i.kt)("p",null,"Check every speces in network appears in at least one reaction.\nRemove any that do not and alert user."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.add_bulk_species"}),(0,i.kt)("h4",{id:"add_bulk_species"},"add","_","bulk","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def add_bulk_species() -> None\n")),(0,i.kt)("p",null,"For three phase models, MakeRates will produce the version of the species in the bulk\nso that the user doesn't have to endlessly relist the same species"),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.check_freeze_and_desorbs"}),(0,i.kt)("h4",{id:"check_freeze_and_desorbs"},"check","_","freeze","_","and","_","desorbs"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def check_freeze_and_desorbs() -> None\n")),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"add_freeze_reactions()")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"add_desorb_reactions()")," automatically generate\nall desorption and freeze out reactions. However, user may want to change a species on freeze out\neg C+ becomes ",(0,i.kt)("inlineCode",{parentName:"p"},"C")," rather than ",(0,i.kt)("inlineCode",{parentName:"p"},"C"),"+. This function checks for that and updates species so they'll\nfreeze or desorb correctly when reactions are generated."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.add_freeze_reactions"}),(0,i.kt)("h4",{id:"add_freeze_reactions"},"add","_","freeze","_","reactions"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def add_freeze_reactions() -> None\n")),(0,i.kt)("p",null,"Save the user effort by automatically generating freeze out reactions"),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.add_desorb_reactions"}),(0,i.kt)("h4",{id:"add_desorb_reactions"},"add","_","desorb","_","reactions"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def add_desorb_reactions() -> None\n")),(0,i.kt)("p",null,"Save the user effort by automatically generating desorption reactions"),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.add_chemdes_reactions"}),(0,i.kt)("h4",{id:"add_chemdes_reactions"},"add","_","chemdes","_","reactions"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def add_chemdes_reactions() -> None\n")),(0,i.kt)("p",null,"We have the user list all Langmuir-Hinshelwood and Eley-Rideal\nreactions once. Then we duplicate so that the reaction branches\nwith products on grain and products desorbing."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.check_for_excited_species"}),(0,i.kt)("h4",{id:"check_for_excited_species"},"check","_","for","_","excited","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def check_for_excited_species() -> bool\n")),(0,i.kt)("p",null,"Check if there are any exicted species in the network, true if there are any."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.add_excited_surface_reactions"}),(0,i.kt)("h4",{id:"add_excited_surface_reactions"},"add","_","excited","_","surface","_","reactions"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def add_excited_surface_reactions() -> None\n")),(0,i.kt)("p",null,"All excited species will relax to the ground state if they do not react\nthe vibrational frequency of the species is used as a pseudo approximation of the rate coefficient\nWe assume all grain reactions have an excited variant. For example:\n",(0,i.kt)("inlineCode",{parentName:"p"},"A"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"B")," LH ",(0,i.kt)("inlineCode",{parentName:"p"},"C")," will have the variants:\n",(0,i.kt)("inlineCode",{parentName:"p"},"A"),(0,i.kt)("em",{parentName:"p"},", ",(0,i.kt)("inlineCode",{parentName:"em"},"B")," EXSOLID ",(0,i.kt)("inlineCode",{parentName:"em"},"C")," and ",(0,i.kt)("inlineCode",{parentName:"em"},"A"),", ",(0,i.kt)("inlineCode",{parentName:"em"},"B"))," EXSOLID ",(0,i.kt)("inlineCode",{parentName:"p"},"C"),"\nIf only one of the reactants in the base reaction has an excited counterpart then\nonly one excited version of that reaction is created."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.add_bulk_reactions"}),(0,i.kt)("h4",{id:"add_bulk_reactions"},"add","_","bulk","_","reactions"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def add_bulk_reactions() -> None\n")),(0,i.kt)("p",null,"We assume any reaction that happens on the surface of grains can also happen\nin the bulk (just more slowly due to binding energy). The user therefore only\nlists surface reactions in their input reaction file and we duplicate here."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.freeze_checks"}),(0,i.kt)("h4",{id:"freeze_checks"},"freeze","_","checks"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def freeze_checks() -> None\n")),(0,i.kt)("p",null,"Check that every species freezes out and alert the user if a\nspecies freezes out via mutiple routes. This isn't necessarily an\nerror so best just print."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.duplicate_checks"}),(0,i.kt)("h4",{id:"duplicate_checks"},"duplicate","_","checks"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def duplicate_checks() -> None\n")),(0,i.kt)("p",null,"Check reaction network to make sure no reaction appears twice unless\nthey have different temperature ranges."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.index_important_reactions"}),(0,i.kt)("h4",{id:"index_important_reactions"},"index","_","important","_","reactions"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def index_important_reactions() -> None\n")),(0,i.kt)("p",null,"We have a whole bunch of important reactions and we want to store\ntheir indices. We find them all here."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.index_important_species"}),(0,i.kt)("h4",{id:"index_important_species"},"index","_","important","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def index_important_species() -> None\n")),(0,i.kt)("p",null,"Obtain the indices for all the important reactions."),(0,i.kt)("a",{id:"uclchem.makerates.network.LoadedNetwork"}),(0,i.kt)("h2",{id:"loadednetwork-objects"},"LoadedNetwork Objects"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"class LoadedNetwork(Network)\n")),(0,i.kt)("p",null,"Network version that skips all steps and just loads two lists. This is another\nhere be dragons version, use this with exceeding caution as no checks are performed for you."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Network")," ",(0,i.kt)("strong",{parentName:"li"},"type")," - ",(0,i.kt)("em",{parentName:"li"},"description"))),(0,i.kt)("a",{id:"uclchem.makerates.network.LoadedNetwork.__init__"}),(0,i.kt)("h4",{id:"__init__-2"},"_","_","init","_","_"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def __init__(species: list[Species], reactions: list[Reaction]) -> None\n")),(0,i.kt)("p",null,"A loader of networks without any checks."),(0,i.kt)("p",null,"Here be dragons."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species")," ",(0,i.kt)("em",{parentName:"li"},"list","[Species]")," - A list of species objects"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reactions")," ",(0,i.kt)("em",{parentName:"li"},"list","[Reaction]")," - A list of reaction objects.")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions"}),(0,i.kt)("h1",{id:"uclchemmakeratesio_functions"},"uclchem.makerates.io","_","functions"),(0,i.kt)("p",null,"Functions to read in the species and reaction files and write output files"),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.read_species_file"}),(0,i.kt)("h4",{id:"read_species_file"},"read","_","species","_","file"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def read_species_file(file_name) -> list[Species]\n")),(0,i.kt)("p",null,"Reads in a Makerates species file"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"fileName")," ",(0,i.kt)("em",{parentName:"li"},"str")," - path to file containing the species list")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"list")," - List of Species objects")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.read_reaction_file"}),(0,i.kt)("h4",{id:"read_reaction_file"},"read","_","reaction","_","file"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def read_reaction_file(file_name: str, species_list: list[Species],\n ftype: str) -> tuple[list[Reaction], list[Reaction]]\n")),(0,i.kt)("p",null,"Reads in a reaction file of any kind (user, UMIST, KIDA)\nproduces a list of reactions for the network, filtered by species_list"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"file_name")," ",(0,i.kt)("em",{parentName:"li"},"str")," - A file name for the reaction file to read."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_list")," ",(0,i.kt)("em",{parentName:"li"},"list","[Species]")," - A list of chemical species to be used in the reading."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"ftype")," ",(0,i.kt)("em",{parentName:"li"},"str")," - 'UMIST','UCL', or 'KIDA' to describe format of file_name")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"list,list")," - Lists of kept and dropped reactions.")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.check_reaction"}),(0,i.kt)("h4",{id:"check_reaction"},"check","_","reaction"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def check_reaction(reaction_row, keep_list) -> bool\n")),(0,i.kt)("p",null,"Checks a row parsed from a reaction file and checks it only contains acceptable things.\nIt checks if all species in the reaction are present, and adds the temperature range is none is specified."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction_row")," ",(0,i.kt)("em",{parentName:"li"},"list")," - List parsed from a reaction file and formatted to be able to called Reaction(reaction_row)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"keep_list")," ",(0,i.kt)("em",{parentName:"li"},"list")," - list of elements that are acceptable in the reactant or product bits of row")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - Whether the row contains acceptable entries.")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.kida_parser"}),(0,i.kt)("h4",{id:"kida_parser"},"kida","_","parser"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def kida_parser(kida_file)\n")),(0,i.kt)("p",null,"KIDA used a fixed format file so we read each line in the chunks they specify\nand use python built in classes to convert to the necessary types.\nNOTE KIDA defines some of the same reaction types to UMIST but with different names\nand coefficients. We fix that by converting them here."),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.output_drops"}),(0,i.kt)("h4",{id:"output_drops"},"output","_","drops"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def output_drops(dropped_reactions: list[Reaction],\n output_dir: str,\n write_files=True)\n")),(0,i.kt)("p",null,"Writes the reactions that are dropped to disk/logs"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"dropped_reactions")," ",(0,i.kt)("em",{parentName:"li"},"list","[Reaction]")," - The reactions that were dropped"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"output_dir")," ",(0,i.kt)("em",{parentName:"li"},"str")," - The directory that dropped_reactions.csv will be written to."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"write_files")," ",(0,i.kt)("em",{parentName:"li"},"bool, optional")," - Whether or not to write the file. Defaults to True.")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.write_outputs"}),(0,i.kt)("h4",{id:"write_outputs"},"write","_","outputs"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def write_outputs(network: Network, output_dir: str = None) -> None\n")),(0,i.kt)("p",null,"Write the ODE and Network fortran source files to the fortran source."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"network")," ",(0,i.kt)("em",{parentName:"li"},"network")," - The makerates Network class"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"output_dir")," ",(0,i.kt)("em",{parentName:"li"},"bool")," - The directory to write to.")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.write_species"}),(0,i.kt)("h4",{id:"write_species"},"write","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def write_species(file_name: str, species_list: list[Species]) -> None\n")),(0,i.kt)("p",null,"Write the human readable species file. Note UCLCHEM doesn't use this file."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"fileName")," ",(0,i.kt)("em",{parentName:"li"},"str")," - path to output file"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_list")," ",(0,i.kt)("em",{parentName:"li"},"list")," - List of species objects for network")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.write_reactions"}),(0,i.kt)("h4",{id:"write_reactions"},"write","_","reactions"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def write_reactions(fileName, reaction_list) -> None\n")),(0,i.kt)("p",null,"Write the human readable reaction file. Note UCLCHEM doesn't use this file."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"fileName")," ",(0,i.kt)("em",{parentName:"li"},"str")," - path to output file"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction_list")," ",(0,i.kt)("em",{parentName:"li"},"list")," - List of reaction objects for network")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.write_odes_f90"}),(0,i.kt)("h4",{id:"write_odes_f90"},"write","_","odes","_","f90"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def write_odes_f90(file_name, species_list, reaction_list,\n three_phase) -> None\n")),(0,i.kt)("p",null,"Write the ODEs in Modern Fortran. This is an actual code file."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"file_name")," ",(0,i.kt)("em",{parentName:"li"},"str")," - Path to file where code will be written"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_list")," ",(0,i.kt)("em",{parentName:"li"},"list")," - List of species describing network"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction_list")," ",(0,i.kt)("em",{parentName:"li"},"list")," - List of reactions describing network"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"three_phase")," ",(0,i.kt)("em",{parentName:"li"},"bool")," - Flag for whether this is a 3 phase network")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.write_jacobian"}),(0,i.kt)("h4",{id:"write_jacobian"},"write","_","jacobian"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def write_jacobian(file_name, species_list) -> None\n")),(0,i.kt)("p",null,"Write jacobian in Modern Fortran. This has never improved UCLCHEM's speed\nand so is not used in the code as it stands.\nCurrent only works for three phase model."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"file_name")," ",(0,i.kt)("em",{parentName:"li"},"str")," - Path to jacobian file"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_list")," ",(0,i.kt)("em",{parentName:"li"},"species_list")," - List of species AFTER being processed by build_ode_string")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.build_ode_string"}),(0,i.kt)("h4",{id:"build_ode_string"},"build","_","ode","_","string"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def build_ode_string(species_list, reaction_list, three_phase) -> str\n")),(0,i.kt)("p",null,"A long, complex function that does the messy work of creating the actual ODE\ncode to calculate the rate of change of each species. Test any change to this code\nthoroughly because ODE mistakes are very hard to spot."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_list")," ",(0,i.kt)("em",{parentName:"li"},"list")," - List of species in network"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction_list")," ",(0,i.kt)("em",{parentName:"li"},"list")," - List of reactions in network"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"three_phase")," ",(0,i.kt)("em",{parentName:"li"},"bool")," - Bool denoting if this is a three phase network")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"str")," - One long string containing the entire ODE fortran code.")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.species_ode_string"}),(0,i.kt)("h4",{id:"species_ode_string"},"species","_","ode","_","string"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def species_ode_string(n: int, species: Species) -> str\n")),(0,i.kt)("p",null,"Build the string of Fortran code for a species once it's loss and gains\nstrings have been produced."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"n")," ",(0,i.kt)("em",{parentName:"li"},"int")," - Index of species in python format"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species")," ",(0,i.kt)("em",{parentName:"li"},"Species")," - species object")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"str")," - the fortran code for the rate of change of the species")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.write_evap_lists"}),(0,i.kt)("h4",{id:"write_evap_lists"},"write","_","evap","_","lists"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def write_evap_lists(network_file, species_list: list[Species]) -> None\n")),(0,i.kt)("p",null,"Two phase networks mimic episodic thermal desorption seen in lab (see Viti et al. 2004)\nby desorbing fixed fractions of material at specific temperatures. Three phase networks just\nuse binding energy and that fact we set binding energies in bulk to water by default.\nThis function writes all necessary arrays to the network file so these processes work."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"network_file")," ",(0,i.kt)("em",{parentName:"li"},"file")," - Open file object to which the network code is being written"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_list")," ",(0,i.kt)("em",{parentName:"li"},"list","[Species]")," - List of species in network")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.truncate_line"}),(0,i.kt)("h4",{id:"truncate_line"},"truncate","_","line"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def truncate_line(input_string, lineLength=72) -> str\n")),(0,i.kt)("p",null,"Take a string and adds line endings at regular intervals\nkeeps us from overshooting fortran's line limits and, frankly,\nmakes for nicer ode.f90 even if human readability isn't very impotant"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"input_string")," ",(0,i.kt)("em",{parentName:"li"},"str")," - Line of code to be truncated"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"lineLength")," ",(0,i.kt)("em",{parentName:"li"},"int, optional")," - rough line length. Defaults to 72.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"str")," - Code string with line endings at regular intervals")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.write_network_file"}),(0,i.kt)("h4",{id:"write_network_file"},"write","_","network","_","file"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def write_network_file(file_name, network)\n")),(0,i.kt)("p",null,"Write the Fortran code file that contains all network information for UCLCHEM.\nThis includes lists of reactants, products, binding energies, formationEnthalpies\nand so on."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"file_name")," ",(0,i.kt)("em",{parentName:"li"},"str")," - The file name where the code will be written."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"network")," ",(0,i.kt)("em",{parentName:"li"},"Network")," - A Network object built from lists of species and reactions.")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.find_reactant"}),(0,i.kt)("h4",{id:"find_reactant"},"find","_","reactant"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def find_reactant(species_list: list[str], reactant: str) -> int\n")),(0,i.kt)("p",null,"Try to find a reactant in the species list"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_list")," ",(0,i.kt)("em",{parentName:"li"},"list","[str]")," - A list of species in the network"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reactant")," ",(0,i.kt)("em",{parentName:"li"},"str")," - The reactant to be indexed")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"int")," - The index of the reactant, if it is not found, 9999")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.get_desorption_freeze_partners"}),(0,i.kt)("h4",{id:"get_desorption_freeze_partners"},"get","_","desorption","_","freeze","_","partners"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_desorption_freeze_partners(reaction_list) -> list[Reaction]\n")),(0,i.kt)("p",null,"Every desorption has a corresponding freeze out eg desorption of ",(0,i.kt)("inlineCode",{parentName:"p"},"CO")," and freeze of CO.\nThis find the corresponding freeze out for every desorb so that when desorb>>freeze\nwe can turn off freeze out in UCLCHEM."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction_list")," ",(0,i.kt)("em",{parentName:"li"},"list")," - Reactions in network")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"list")," - list of indices of freeze out reactions matching order of desorptions.")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.array_to_string"}),(0,i.kt)("h4",{id:"array_to_string"},"array","_","to","_","string"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},'def array_to_string(name, array, type="int", parameter=True) -> str\n')),(0,i.kt)("p",null,"Write an array to fortran source code"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"name")," ",(0,i.kt)("em",{parentName:"li"},"str")," - Variable name of array in Fortran"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"array")," ",(0,i.kt)("em",{parentName:"li"},"iterable")," - List of values of array"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"type")," ",(0,i.kt)("em",{parentName:"li"},"str, optional"),' - The array\'s type. Must be one of "int","float", or "string".Defaults to "int".'),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"parameter")," ",(0,i.kt)("em",{parentName:"li"},"bool, optional")," - Whether the array is a Fortran PARAMETER (constant). Defaults to True.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Raises"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"ValueError"),' - Raises an error if type isn\'t "int","float", or "string"')),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"str")," - String containing the Fortran code to declare this array.")),(0,i.kt)("a",{id:"uclchem.makerates.reaction"}),(0,i.kt)("h1",{id:"uclchemmakeratesreaction"},"uclchem.makerates.reaction"),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction"}),(0,i.kt)("h2",{id:"reaction-objects"},"Reaction Objects"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"class Reaction()\n")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.get_reactants"}),(0,i.kt)("h4",{id:"get_reactants"},"get","_","reactants"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_reactants() -> list[str]\n")),(0,i.kt)("p",null,"Get the four reactants present in the reaction, padded with NAN for nonexistent"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"list[str]")," - The four reactants names")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.get_sorted_reactants"}),(0,i.kt)("h4",{id:"get_sorted_reactants"},"get","_","sorted","_","reactants"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_sorted_reactants() -> list[str]\n")),(0,i.kt)("p",null,"Get the four reactants present in the reaction, sorted for fast comparisons"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reactants")," ",(0,i.kt)("em",{parentName:"li"},"list","[str]")," - The four sorted reactant names")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.set_reactants"}),(0,i.kt)("h4",{id:"set_reactants"},"set","_","reactants"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_reactants(reactants: list[str]) -> None\n")),(0,i.kt)("p",null,"Set the four reactants present in the reaction, padded with NAN for nonexistent"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reactants")," ",(0,i.kt)("em",{parentName:"li"},"list","[str]")," - The four reactants names")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.get_products"}),(0,i.kt)("h4",{id:"get_products"},"get","_","products"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_products() -> list[str]\n")),(0,i.kt)("p",null,"Get the four products present in the reaction, padded with NAN for nonexistent"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reactants")," ",(0,i.kt)("em",{parentName:"li"},"list","[str]")," - The four products names")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.get_sorted_products"}),(0,i.kt)("h4",{id:"get_sorted_products"},"get","_","sorted","_","products"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_sorted_products() -> list[str]\n")),(0,i.kt)("p",null,"Get the four products present in the reaction, sorted for fast comparisons"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"products")," ",(0,i.kt)("em",{parentName:"li"},"list","[str]")," - The four sorted products names")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.set_products"}),(0,i.kt)("h4",{id:"set_products"},"set","_","products"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_products(products: list[str]) -> None\n")),(0,i.kt)("p",null,"Set the four products present in the reaction, padded with NAN for nonexistent"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"products")," ",(0,i.kt)("em",{parentName:"li"},"list","[str]")," - The four products names")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.get_alpha"}),(0,i.kt)("h4",{id:"get_alpha"},"get","_","alpha"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_alpha() -> float\n")),(0,i.kt)("p",null,"Get the alpha parameter from the Kooij-Arrhenius equation"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"float")," - the alpha parameter of the reaction")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.set_alpha"}),(0,i.kt)("h4",{id:"set_alpha"},"set","_","alpha"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_alpha(alpha: float) -> None\n")),(0,i.kt)("p",null,"Set the alpha parameter from the Kooij-Arrhenius equation"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"alpha")," ",(0,i.kt)("em",{parentName:"li"},"float")," - the alpha parameter of the reaction")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.get_beta"}),(0,i.kt)("h4",{id:"get_beta"},"get","_","beta"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_beta() -> float\n")),(0,i.kt)("p",null,"Get the beta parameter from the Kooij-Arrhenius equation"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"float")," - the beta parameter of the reaction")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.set_beta"}),(0,i.kt)("h4",{id:"set_beta"},"set","_","beta"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_beta(beta: float) -> None\n")),(0,i.kt)("p",null,"Set the beta parameter from the Kooij-Arrhenius equation"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"beta")," ",(0,i.kt)("em",{parentName:"li"},"float")," - the beta parameter of the reaction")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.set_gamma"}),(0,i.kt)("h4",{id:"set_gamma"},"set","_","gamma"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_gamma(gamma: float) -> None\n")),(0,i.kt)("p",null,"Set the gamma parameter from the Kooij-Arrhenius equation"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"gamma")," ",(0,i.kt)("em",{parentName:"li"},"float")," - the gamma parameter of the reaction")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.get_gamma"}),(0,i.kt)("h4",{id:"get_gamma"},"get","_","gamma"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_gamma() -> float\n")),(0,i.kt)("p",null,"Get the gamma parameter from the Kooij-Arrhenius equation"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"float")," - the gamma parameter of the reaction")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.set_templow"}),(0,i.kt)("h4",{id:"set_templow"},"set","_","templow"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_templow(templow: float) -> None\n")),(0,i.kt)("p",null,"Set the lower temperature boundary of the reaction in Kelvin"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"templow")," ",(0,i.kt)("em",{parentName:"li"},"float")," - the lower temperature boundary")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.get_templow"}),(0,i.kt)("h4",{id:"get_templow"},"get","_","templow"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_templow() -> float\n")),(0,i.kt)("p",null,"Get the lower temperature boundary of the reaction in Kelvin"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"float")," - the lower temperature boundary")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.set_temphigh"}),(0,i.kt)("h4",{id:"set_temphigh"},"set","_","temphigh"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_temphigh(temphigh: float) -> None\n")),(0,i.kt)("p",null,"Set the higher temperature boundary of the reaction in Kelvin"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"templow")," ",(0,i.kt)("em",{parentName:"li"},"float")," - the higher temperature boundary")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.get_temphigh"}),(0,i.kt)("h4",{id:"get_temphigh"},"get","_","temphigh"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_temphigh() -> float\n")),(0,i.kt)("p",null,"Get the higher temperature boundary of the reaction in Kelvin"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"float")," - the higher temperature boundary")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.NANCheck"}),(0,i.kt)("h4",{id:"nancheck"},"NANCheck"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def NANCheck(a)\n")),(0,i.kt)("p",null,"Convert any Falsy statement to a NAN string"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"a")," - thing to check for falsiness")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - input a if truthy, otherwise NAN")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.get_reaction_type"}),(0,i.kt)("h4",{id:"get_reaction_type"},"get","_","reaction","_","type"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_reaction_type() -> str\n")),(0,i.kt)("p",null,"Get the type of a reaction from the reactants\nFirst check the third reactant for a reaction type, then the second. If there are none\nin there, it will be regarded as a two body reaction."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," str:"),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.convert_to_bulk"}),(0,i.kt)("h4",{id:"convert_to_bulk"},"convert","_","to","_","bulk"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def convert_to_bulk() -> None\n")),(0,i.kt)("p",null,"Convert the surface species to bulk species in place for this reaction."),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.__eq__"}),(0,i.kt)("h4",{id:"__eq__-1"},"_","_","eq","_","_"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def __eq__(other) -> bool\n")),(0,i.kt)("p",null,"Check for equality against another reaction based on the products and reactants.\nNote that it does not check for the temperature ranges that the reactions might have!\nThe Reaction.check_temperature_collision can be used for this purpose."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"other")," - Another reaction set.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - equality")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.check_temperature_collision"}),(0,i.kt)("h4",{id:"check_temperature_collision"},"check","_","temperature","_","collision"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def check_temperature_collision(other) -> bool\n")),(0,i.kt)("p",null,"Check if two reactions have overlapping temperature ranges, returning True means there is a collision."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"other")," - Another reaction")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Raises"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"NotImplementedError")," - Currently we can only compare against instantiated Reaction objects.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - Whether there is a collision (True), or not (False)")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.changes_surface_count"}),(0,i.kt)("h4",{id:"changes_surface_count"},"changes","_","surface","_","count"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def changes_surface_count()\n")),(0,i.kt)("p",null,"This checks whether a grain reaction changes number of particles on the surface\n2 reactants to 2 products won't but two reactants combining to one will."),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.changes_total_mantle"}),(0,i.kt)("h4",{id:"changes_total_mantle"},"changes","_","total","_","mantle"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def changes_total_mantle()\n")),(0,i.kt)("p",null,"Check if the total grains on the mantle are changed by the reaction."),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.generate_ode_bit"}),(0,i.kt)("h4",{id:"generate_ode_bit"},"generate","_","ode","_","bit"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def generate_ode_bit(i: int, species_names: list, three_phase: bool)\n")),(0,i.kt)("p",null,"Every reaction contributes a fixed rate of change to whatever species it\naffects. We create the string of fortran code describing that change here."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"i")," ",(0,i.kt)("em",{parentName:"li"},"int")," - index of reaction in network in python format (counting from 0)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_names")," ",(0,i.kt)("em",{parentName:"li"},"list")," - List of species names so we can find index of reactants in species list"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"three_phase")," ",(0,i.kt)("em",{parentName:"li"},"bool")," - Bool indicating whether this is three phase network")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/37df37e5.ba07c1f9.js b/assets/js/37df37e5.ba07c1f9.js new file mode 100644 index 00000000..0a671dcc --- /dev/null +++ b/assets/js/37df37e5.ba07c1f9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3412],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>u});var n=a(7294);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function r(e){for(var t=1;t=0||(l[a]=e[a]);return l}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(l[a]=e[a])}return l}var o=n.createContext({}),p=function(e){var t=n.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):r(r({},t),e)),a},c=function(e){var t=p(e.components);return n.createElement(o.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},k=n.forwardRef((function(e,t){var a=e.components,l=e.mdxType,i=e.originalType,o=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),k=p(a),u=l,d=k["".concat(o,".").concat(u)]||k[u]||m[u]||i;return a?n.createElement(d,r(r({ref:t},c),{},{components:a})):n.createElement(d,r({ref:t},c))}));function u(e,t){var a=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var i=a.length,r=new Array(i);r[0]=k;var s={};for(var o in t)hasOwnProperty.call(t,o)&&(s[o]=t[o]);s.originalType=e,s.mdxType="string"==typeof e?e:l,r[1]=s;for(var p=2;p{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>s,metadata:()=>p,toc:()=>m});var n=a(7462),l=a(3366),i=(a(7294),a(3905)),r=["components"],s={id:"pythonapi",title:"Python Reference"},o="Python API",p={unversionedId:"pythonapi",id:"pythonapi",title:"Python Reference",description:"* uclchem",source:"@site/docs/start-pythonapi.md",sourceDirName:".",slug:"/pythonapi",permalink:"/docs/next/pythonapi",draft:!1,tags:[],version:"current",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"pythonapi",title:"Python Reference"},sidebar:"docs",previous:{title:"Model Parameters",permalink:"/docs/next/parameters"},next:{title:"Tutorials",permalink:"/docs/next/category/tutorials"}},c={},m=[{value:"read_output_file",id:"read_output_file",level:4},{value:"create_abundance_plot",id:"create_abundance_plot",level:4},{value:"plot_species",id:"plot_species",level:4},{value:"analysis",id:"analysis",level:4},{value:"total_element_abundance",id:"total_element_abundance",level:4},{value:"check_element_conservation",id:"check_element_conservation",level:4},{value:"cloud",id:"cloud",level:4},{value:"collapse",id:"collapse",level:4},{value:"hot_core",id:"hot_core",level:4},{value:"cshock",id:"cshock",level:4},{value:"jshock",id:"jshock",level:4},{value:"cshock_dissipation_time",id:"cshock_dissipation_time",level:4},{value:"check_error",id:"check_error",level:4},{value:"get_species_table",id:"get_species_table",level:4},{value:"get_reaction_table",id:"get_reaction_table",level:4},{value:"test_ode_conservation",id:"test_ode_conservation",level:4},{value:"is_number",id:"is_number",level:4},{value:"Species Objects",id:"species-objects",level:2},{value:"__init__",id:"__init__",level:4},{value:"get_name",id:"get_name",level:4},{value:"get_mass",id:"get_mass",level:4},{value:"set_desorb_products",id:"set_desorb_products",level:4},{value:"get_desorb_products",id:"get_desorb_products",level:4},{value:"set_freeze_products",id:"set_freeze_products",level:4},{value:"get_freeze_products",id:"get_freeze_products",level:4},{value:"get_freeze_products_list",id:"get_freeze_products_list",level:4},{value:"get_freeze_alpha",id:"get_freeze_alpha",level:4},{value:"is_grain_species",id:"is_grain_species",level:4},{value:"is_surface_species",id:"is_surface_species",level:4},{value:"is_bulk_species",id:"is_bulk_species",level:4},{value:"is_ion",id:"is_ion",level:4},{value:"add_default_freeze",id:"add_default_freeze",level:4},{value:"find_constituents",id:"find_constituents",level:4},{value:"get_n_atoms",id:"get_n_atoms",level:4},{value:"set_n_atoms",id:"set_n_atoms",level:4},{value:"__eq__",id:"__eq__",level:4},{value:"__lt__",id:"__lt__",level:4},{value:"__gt__",id:"__gt__",level:4},{value:"run_makerates",id:"run_makerates",level:4},{value:"get_network",id:"get_network",level:4},{value:"Network Objects",id:"network-objects",level:2},{value:"__init__",id:"__init__-1",level:4},{value:"find_similar_reactions",id:"find_similar_reactions",level:4},{value:"remove_reaction_by_index",id:"remove_reaction_by_index",level:4},{value:"remove_reaction",id:"remove_reaction",level:4},{value:"get_reaction",id:"get_reaction",level:4},{value:"set_reaction",id:"set_reaction",level:4},{value:"get_reaction_dict",id:"get_reaction_dict",level:4},{value:"set_reaction_dict",id:"set_reaction_dict",level:4},{value:"get_reaction_list",id:"get_reaction_list",level:4},{value:"sort_reactions",id:"sort_reactions",level:4},{value:"add_species",id:"add_species",level:4},{value:"remove_species",id:"remove_species",level:4},{value:"get_species_list",id:"get_species_list",level:4},{value:"get_species_dict",id:"get_species_dict",level:4},{value:"get_specie",id:"get_specie",level:4},{value:"set_specie",id:"set_specie",level:4},{value:"set_species_dict",id:"set_species_dict",level:4},{value:"sort_species",id:"sort_species",level:4},{value:"check_network",id:"check_network",level:4},{value:"check_and_filter_species",id:"check_and_filter_species",level:4},{value:"add_bulk_species",id:"add_bulk_species",level:4},{value:"check_freeze_and_desorbs",id:"check_freeze_and_desorbs",level:4},{value:"add_freeze_reactions",id:"add_freeze_reactions",level:4},{value:"add_desorb_reactions",id:"add_desorb_reactions",level:4},{value:"add_chemdes_reactions",id:"add_chemdes_reactions",level:4},{value:"check_for_excited_species",id:"check_for_excited_species",level:4},{value:"add_excited_surface_reactions",id:"add_excited_surface_reactions",level:4},{value:"add_bulk_reactions",id:"add_bulk_reactions",level:4},{value:"freeze_checks",id:"freeze_checks",level:4},{value:"duplicate_checks",id:"duplicate_checks",level:4},{value:"index_important_reactions",id:"index_important_reactions",level:4},{value:"index_important_species",id:"index_important_species",level:4},{value:"LoadedNetwork Objects",id:"loadednetwork-objects",level:2},{value:"__init__",id:"__init__-2",level:4},{value:"read_species_file",id:"read_species_file",level:4},{value:"read_reaction_file",id:"read_reaction_file",level:4},{value:"check_reaction",id:"check_reaction",level:4},{value:"kida_parser",id:"kida_parser",level:4},{value:"output_drops",id:"output_drops",level:4},{value:"write_outputs",id:"write_outputs",level:4},{value:"write_species",id:"write_species",level:4},{value:"write_reactions",id:"write_reactions",level:4},{value:"write_odes_f90",id:"write_odes_f90",level:4},{value:"write_jacobian",id:"write_jacobian",level:4},{value:"build_ode_string",id:"build_ode_string",level:4},{value:"species_ode_string",id:"species_ode_string",level:4},{value:"write_evap_lists",id:"write_evap_lists",level:4},{value:"truncate_line",id:"truncate_line",level:4},{value:"write_network_file",id:"write_network_file",level:4},{value:"find_reactant",id:"find_reactant",level:4},{value:"get_desorption_freeze_partners",id:"get_desorption_freeze_partners",level:4},{value:"array_to_string",id:"array_to_string",level:4},{value:"Reaction Objects",id:"reaction-objects",level:2},{value:"get_reactants",id:"get_reactants",level:4},{value:"get_sorted_reactants",id:"get_sorted_reactants",level:4},{value:"set_reactants",id:"set_reactants",level:4},{value:"get_products",id:"get_products",level:4},{value:"get_sorted_products",id:"get_sorted_products",level:4},{value:"set_products",id:"set_products",level:4},{value:"get_alpha",id:"get_alpha",level:4},{value:"set_alpha",id:"set_alpha",level:4},{value:"get_beta",id:"get_beta",level:4},{value:"set_beta",id:"set_beta",level:4},{value:"set_gamma",id:"set_gamma",level:4},{value:"get_gamma",id:"get_gamma",level:4},{value:"set_templow",id:"set_templow",level:4},{value:"get_templow",id:"get_templow",level:4},{value:"set_temphigh",id:"set_temphigh",level:4},{value:"get_temphigh",id:"get_temphigh",level:4},{value:"NANCheck",id:"nancheck",level:4},{value:"get_reaction_type",id:"get_reaction_type",level:4},{value:"convert_to_bulk",id:"convert_to_bulk",level:4},{value:"__eq__",id:"__eq__-1",level:4},{value:"check_temperature_collision",id:"check_temperature_collision",level:4},{value:"changes_surface_count",id:"changes_surface_count",level:4},{value:"changes_total_mantle",id:"changes_total_mantle",level:4},{value:"generate_ode_bit",id:"generate_ode_bit",level:4}],k={toc:m};function u(e){var t=e.components,a=(0,l.Z)(e,r);return(0,i.kt)("wrapper",(0,n.Z)({},k,a,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"python-api"},"Python API"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem"},"uclchem"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.analysis"},"uclchem.analysis")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.analysis.read_output_file"},"read","_","output","_","file")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.analysis.create_abundance_plot"},"create","_","abundance","_","plot")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.analysis.plot_species"},"plot","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.analysis.analysis"},"analysis")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.analysis.total_element_abundance"},"total","_","element","_","abundance")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.analysis.check_element_conservation"},"check","_","element","_","conservation")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.model"},"uclchem.model")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.model.cloud"},"cloud")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.model.collapse"},"collapse")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.model.hot_core"},"hot","_","core")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.model.cshock"},"cshock")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.model.jshock"},"jshock")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.utils"},"uclchem.utils")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.utils.cshock_dissipation_time"},"cshock","_","dissipation","_","time")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.utils.check_error"},"check","_","error")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.utils.get_species_table"},"get","_","species","_","table")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.utils.get_reaction_table"},"get","_","reaction","_","table")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.tests"},"uclchem.tests")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.tests.test_ode_conservation"},"test","_","ode","_","conservation")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.makerates.species"},"uclchem.makerates.species")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.is_number"},"is","_","number")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species"},"Species"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.__init__"},"_","_","init","_","_")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.get_name"},"get","_","name")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.get_mass"},"get","_","mass")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.set_desorb_products"},"set","_","desorb","_","products")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.get_desorb_products"},"get","_","desorb","_","products")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.set_freeze_products"},"set","_","freeze","_","products")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.get_freeze_products"},"get","_","freeze","_","products")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.get_freeze_products_list"},"get","_","freeze","_","products","_","list")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.get_freeze_alpha"},"get","_","freeze","_","alpha")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.is_grain_species"},"is","_","grain","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.is_surface_species"},"is","_","surface","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.is_bulk_species"},"is","_","bulk","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.is_ion"},"is","_","ion")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.add_default_freeze"},"add","_","default","_","freeze")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.find_constituents"},"find","_","constituents")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.get_n_atoms"},"get","_","n","_","atoms")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.set_n_atoms"},"set","_","n","_","atoms")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.__eq__"},"_","_","eq","_","_")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.__lt__"},"_","_","lt","_","_")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.species.Species.__gt__"},"_","_","gt","_","_")))))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.makerates"},"uclchem.makerates"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.makerates.makerates"},"uclchem.makerates.makerates")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.makerates.run_makerates"},"run","_","makerates")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.makerates.get_network"},"get","_","network")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.makerates.network"},"uclchem.makerates.network")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network"},"Network"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.__init__"},"_","_","init","_","_")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.find_similar_reactions"},"find","_","similar","_","reactions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.remove_reaction_by_index"},"remove","_","reaction","_","by","_","index")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.remove_reaction"},"remove","_","reaction")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.get_reaction"},"get","_","reaction")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.set_reaction"},"set","_","reaction")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.get_reaction_dict"},"get","_","reaction","_","dict")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.set_reaction_dict"},"set","_","reaction","_","dict")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.get_reaction_list"},"get","_","reaction","_","list")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.sort_reactions"},"sort","_","reactions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.add_species"},"add","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.remove_species"},"remove","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.get_species_list"},"get","_","species","_","list")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.get_species_dict"},"get","_","species","_","dict")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.get_specie"},"get","_","specie")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.set_specie"},"set","_","specie")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.set_species_dict"},"set","_","species","_","dict")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.sort_species"},"sort","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.check_network"},"check","_","network")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.check_and_filter_species"},"check","_","and","_","filter","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.add_bulk_species"},"add","_","bulk","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.check_freeze_and_desorbs"},"check","_","freeze","_","and","_","desorbs")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.add_freeze_reactions"},"add","_","freeze","_","reactions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.add_desorb_reactions"},"add","_","desorb","_","reactions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.add_chemdes_reactions"},"add","_","chemdes","_","reactions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.check_for_excited_species"},"check","_","for","_","excited","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.add_excited_surface_reactions"},"add","_","excited","_","surface","_","reactions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.add_bulk_reactions"},"add","_","bulk","_","reactions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.freeze_checks"},"freeze","_","checks")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.duplicate_checks"},"duplicate","_","checks")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.index_important_reactions"},"index","_","important","_","reactions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.Network.index_important_species"},"index","_","important","_","species")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.LoadedNetwork"},"LoadedNetwork"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.network.LoadedNetwork.__init__"},"_","_","init","_","_")))))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.makerates.io_functions"},"uclchem.makerates.io","_","functions")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.read_species_file"},"read","_","species","_","file")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.read_reaction_file"},"read","_","reaction","_","file")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.check_reaction"},"check","_","reaction")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.kida_parser"},"kida","_","parser")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.output_drops"},"output","_","drops")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.write_outputs"},"write","_","outputs")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.write_species"},"write","_","species")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.write_reactions"},"write","_","reactions")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.write_odes_f90"},"write","_","odes","_","f90")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.write_jacobian"},"write","_","jacobian")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.build_ode_string"},"build","_","ode","_","string")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.species_ode_string"},"species","_","ode","_","string")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.write_evap_lists"},"write","_","evap","_","lists")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.truncate_line"},"truncate","_","line")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.write_network_file"},"write","_","network","_","file")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.find_reactant"},"find","_","reactant")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.get_desorption_freeze_partners"},"get","_","desorption","_","freeze","_","partners")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.io_functions.array_to_string"},"array","_","to","_","string")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("a",{parentName:"p",href:"#uclchem.makerates.reaction"},"uclchem.makerates.reaction")),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction"},"Reaction"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.get_reactants"},"get","_","reactants")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.get_sorted_reactants"},"get","_","sorted","_","reactants")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.set_reactants"},"set","_","reactants")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.get_products"},"get","_","products")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.get_sorted_products"},"get","_","sorted","_","products")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.set_products"},"set","_","products")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.get_alpha"},"get","_","alpha")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.set_alpha"},"set","_","alpha")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.get_beta"},"get","_","beta")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.set_beta"},"set","_","beta")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.set_gamma"},"set","_","gamma")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.get_gamma"},"get","_","gamma")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.set_templow"},"set","_","templow")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.get_templow"},"get","_","templow")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.set_temphigh"},"set","_","temphigh")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.get_temphigh"},"get","_","temphigh")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.NANCheck"},"NANCheck")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.get_reaction_type"},"get","_","reaction","_","type")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.convert_to_bulk"},"convert","_","to","_","bulk")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.__eq__"},"_","_","eq","_","_")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.check_temperature_collision"},"check","_","temperature","_","collision")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.changes_surface_count"},"changes","_","surface","_","count")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.changes_total_mantle"},"changes","_","total","_","mantle")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"#uclchem.makerates.reaction.Reaction.generate_ode_bit"},"generate","_","ode","_","bit"))))))),(0,i.kt)("a",{id:"uclchem"}),(0,i.kt)("h1",{id:"uclchem"},"uclchem"),(0,i.kt)("p",null,"The UCLCHEM python module is divided into three parts.\n",(0,i.kt)("inlineCode",{parentName:"p"},"model")," contains the functions for running chemical models under different physics.\n",(0,i.kt)("inlineCode",{parentName:"p"},"analysis")," contains functions for reading and plotting output files as well as investigating the chemistry.\n",(0,i.kt)("inlineCode",{parentName:"p"},"tests")," contains functions for testing the code."),(0,i.kt)("a",{id:"uclchem.analysis"}),(0,i.kt)("h1",{id:"uclchemanalysis"},"uclchem.analysis"),(0,i.kt)("a",{id:"uclchem.analysis.read_output_file"}),(0,i.kt)("h4",{id:"read_output_file"},"read","_","output","_","file"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def read_output_file(output_file)\n")),(0,i.kt)("p",null,"Read the output of a UCLCHEM run created with the outputFile parameter into a pandas DataFrame"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"output_file")," ",(0,i.kt)("em",{parentName:"li"},"str")," - path to file containing a full UCLCHEM output")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"pandas.DataFrame")," - A dataframe containing the abundances and physical parameters of the model at every time step.")),(0,i.kt)("a",{id:"uclchem.analysis.create_abundance_plot"}),(0,i.kt)("h4",{id:"create_abundance_plot"},"create","_","abundance","_","plot"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def create_abundance_plot(df, species, figsize=(16, 9), plot_file=None)\n")),(0,i.kt)("p",null,"Create a plot of the abundance of a list of species through time."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"df")," ",(0,i.kt)("em",{parentName:"li"},"pd.DataFrame")," - Pandas dataframe containing the UCLCHEM output, see ",(0,i.kt)("inlineCode",{parentName:"li"},"read_output_file")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species")," ",(0,i.kt)("em",{parentName:"li"},"list")," - list of strings containing species names. Using a $ instead of # or @ will plot the sum of surface and bulk abundances."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"figsize")," ",(0,i.kt)("em",{parentName:"li"},"tuple, optional")," - Size of figure, width by height in inches. Defaults to (16, 9)."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"plot_file")," ",(0,i.kt)("em",{parentName:"li"},"str, optional")," - Path to file where figure will be saved. If None, figure is not saved. Defaults to None.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"fig,ax")," - matplotlib figure and axis objects")),(0,i.kt)("a",{id:"uclchem.analysis.plot_species"}),(0,i.kt)("h4",{id:"plot_species"},"plot","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def plot_species(ax, df, species, **plot_kwargs)\n")),(0,i.kt)("p",null,"Plot the abundance of a list of species through time directly onto an axis."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"ax")," ",(0,i.kt)("em",{parentName:"li"},"pyplot.axis")," - An axis object to plot on"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"df")," ",(0,i.kt)("em",{parentName:"li"},"pd.DataFrame")," - A dataframe created by ",(0,i.kt)("inlineCode",{parentName:"li"},"read_output_file")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species")," ",(0,i.kt)("em",{parentName:"li"},"str"),' - A list of species names to be plotted. If species name starts with "$" instead of # or @, plots the sum of surface and bulk abundances')),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"pyplot.axis")," - Modified input axis is returned")),(0,i.kt)("a",{id:"uclchem.analysis.analysis"}),(0,i.kt)("h4",{id:"analysis"},"analysis"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def analysis(species_name, result_file, output_file, rate_threshold=0.99)\n")),(0,i.kt)("p",null,"A function which loops over every time step in an output file and finds the rate of change of a species at that time due to each of the reactions it is involved in.\nFrom this, the most important reactions are identified and printed to file. This can be used to understand the chemical reason behind a species' behaviour."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_name")," ",(0,i.kt)("em",{parentName:"li"},"str")," - Name of species to be analysed"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"result_file")," ",(0,i.kt)("em",{parentName:"li"},"str")," - The path to the file containing the UCLCHEM output"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"output_file")," ",(0,i.kt)("em",{parentName:"li"},"str")," - The path to the file where the analysis output will be written"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"rate_threshold")," ",(0,i.kt)("em",{parentName:"li"},"float,optional")," - Analysis output will contain the only the most efficient reactions that are responsible for rate_threshold of the total production and destruction rate. Defaults to 0.99.")),(0,i.kt)("a",{id:"uclchem.analysis.total_element_abundance"}),(0,i.kt)("h4",{id:"total_element_abundance"},"total","_","element","_","abundance"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def total_element_abundance(element, df)\n")),(0,i.kt)("p",null,"Calculates that the total elemental abundance of a species as a function of time. Allows you to check conservation."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"element")," ",(0,i.kt)("em",{parentName:"li"},"str")," - Name of element"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"df")," ",(0,i.kt)("em",{parentName:"li"},"pandas.DataFrame")," - DataFrame from ",(0,i.kt)("inlineCode",{parentName:"li"},"read_output_file()"))),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"pandas.Series")," - Total abundance of element for all time steps in df.")),(0,i.kt)("a",{id:"uclchem.analysis.check_element_conservation"}),(0,i.kt)("h4",{id:"check_element_conservation"},"check","_","element","_","conservation"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},'def check_element_conservation(df,\n element_list=["H", "N", "C", "O"],\n percent=True)\n')),(0,i.kt)("p",null,"Check the conservation of major element by comparing total abundance at start and end of model"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"df")," ",(0,i.kt)("em",{parentName:"li"},"pandas.DataFrame")," - UCLCHEM output in format from ",(0,i.kt)("inlineCode",{parentName:"li"},"read_output_file")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"element_list")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - List of elements to check. Defaults to ",'["H", "N", "C", "O"]',".")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"dict")," - Dictionary containing the change in the total abundance of each element as a fraction of initial value")),(0,i.kt)("a",{id:"uclchem.model"}),(0,i.kt)("h1",{id:"uclchemmodel"},"uclchem.model"),(0,i.kt)("a",{id:"uclchem.model.cloud"}),(0,i.kt)("h4",{id:"cloud"},"cloud"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def cloud(param_dict=None, out_species=None)\n")),(0,i.kt)("p",null,"Run cloud model from UCLCHEM"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"param_dict")," ",(0,i.kt)("em",{parentName:"li"},"dict,optional")," - A dictionary of parameters where keys are any of the variables in defaultparameters.f90 and values are value for current run."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"out_species")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - A list of species for which final abundance will be returned. If None, no abundances will be returned.. Defaults to None.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," A list where the first element is always an integer which is negative if the model failed to run and can be sent to ",(0,i.kt)("inlineCode",{parentName:"p"},"uclchem.utils.check_error()")," to see more details. If the ",(0,i.kt)("inlineCode",{parentName:"p"},"out_species")," parametere is provided, the remaining elements of this list will be the final abundances of the species in out_species."),(0,i.kt)("a",{id:"uclchem.model.collapse"}),(0,i.kt)("h4",{id:"collapse"},"collapse"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def collapse(collapse, physics_output, param_dict=None, out_species=None)\n")),(0,i.kt)("p",null,"Run collapse model from UCLCHEM based on Priestley et al 2018 AJ 156 51 (",(0,i.kt)("a",{parentName:"p",href:"https://ui.adsabs.harvard.edu/abs/2018AJ....156...51P/abstract"},"https://ui.adsabs.harvard.edu/abs/2018AJ....156...51P/abstract"),")"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"collapse")," ",(0,i.kt)("em",{parentName:"li"},"str")," - A string containing the collapse type, options are 'BE1.1', 'BE4', 'filament', or 'ambipolar'"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"physics_output(str)")," - Filename to store physics output, only relevant for 'filament' and 'ambipolar' collapses. If None, no physics output will be saved."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"param_dict")," ",(0,i.kt)("em",{parentName:"li"},"dict,optional")," - A dictionary of parameters where keys are any of the variables in defaultparameters.f90 and values are value for current run."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"out_species")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - A list of species for which final abundance will be returned. If None, no abundances will be returned.. Defaults to None.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," A list where the first element is always an integer which is negative if the model failed to run and can be sent to ",(0,i.kt)("inlineCode",{parentName:"p"},"uclchem.utils.check_error()")," to see more details. If the ",(0,i.kt)("inlineCode",{parentName:"p"},"out_species")," parametere is provided, the remaining elements of this list will be the final abundances of the species in out_species."),(0,i.kt)("a",{id:"uclchem.model.hot_core"}),(0,i.kt)("h4",{id:"hot_core"},"hot","_","core"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def hot_core(temp_indx, max_temperature, param_dict=None, out_species=None)\n")),(0,i.kt)("p",null,"Run hot core model from UCLCHEM, based on Viti et al. 2004 and Collings et al. 2004"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"temp_indx")," ",(0,i.kt)("em",{parentName:"li"},"int")," - Used to select the mass of hot core. 1=1Msun,2=5, 3=10, 4=15, 5=25,6=60]"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"max_temperature")," ",(0,i.kt)("em",{parentName:"li"},"float")," - Value at which gas temperature will stop increasing."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"param_dict")," ",(0,i.kt)("em",{parentName:"li"},"dict,optional")," - A dictionary of parameters where keys are any of the variables in defaultparameters.f90 and values are value for current run."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"out_species")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - A list of species for which final abundance will be returned. If None, no abundances will be returned.. Defaults to None.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," A list where the first element is always an integer which is negative if the model failed to run and can be sent to ",(0,i.kt)("inlineCode",{parentName:"p"},"uclchem.utils.check_error()")," to see more details. If the ",(0,i.kt)("inlineCode",{parentName:"p"},"out_species")," parametere is provided, the remaining elements of this list will be the final abundances of the species in out_species."),(0,i.kt)("a",{id:"uclchem.model.cshock"}),(0,i.kt)("h4",{id:"cshock"},"cshock"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def cshock(shock_vel,\n timestep_factor=0.01,\n minimum_temperature=0.0,\n param_dict=None,\n out_species=None)\n")),(0,i.kt)("p",null,"Run C-type shock model from UCLCHEM"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"shock_vel")," ",(0,i.kt)("em",{parentName:"li"},"float")," - Velocity of the shock in km/s"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"timestep_factor")," ",(0,i.kt)("em",{parentName:"li"},"float, optional")," - Whilst the time is less than 2 times the dissipation time of shock, timestep is timestep_factor*dissipation time. Essentially controls\nhow well resolved the shock is in your model. Defaults to 0.01."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"minimum_temperature")," ",(0,i.kt)("em",{parentName:"li"},"float, optional")," - Minimum post-shock temperature. Defaults to 0.0 (no minimum). The shocked gas typically cools to ",(0,i.kt)("inlineCode",{parentName:"li"},"initialTemp")," if this is not set."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"param_dict")," ",(0,i.kt)("em",{parentName:"li"},"dict,optional")," - A dictionary of parameters where keys are any of the variables in defaultparameters.f90 and values are value for current run."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"out_species")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - A list of species for which final abundance will be returned. If None, no abundances will be returned.. Defaults to None.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," A list where the first element is always an integer which is negative if the model failed to run and can be sent to ",(0,i.kt)("inlineCode",{parentName:"p"},"uclchem.utils.check_error()")," to see more details. If the model succeeded, the second element is the dissipation time and further elements are the abundances of all species in ",(0,i.kt)("inlineCode",{parentName:"p"},"out_species"),"."),(0,i.kt)("a",{id:"uclchem.model.jshock"}),(0,i.kt)("h4",{id:"jshock"},"jshock"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def jshock(shock_vel, param_dict=None, out_species=None)\n")),(0,i.kt)("p",null,"Run J-type shock model from UCLCHEM"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"shock_vel")," ",(0,i.kt)("em",{parentName:"li"},"float")," - Velocity of the shock"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"param_dict")," ",(0,i.kt)("em",{parentName:"li"},"dict,optional")," - A dictionary of parameters where keys are any of the variables in defaultparameters.f90 and values are value for current run."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"out_species")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - A list of species for which final abundance will be returned. If None, no abundances will be returned.. Defaults to None.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," A list where the first element is always an integer which is negative if the model failed to run and can be sent to ",(0,i.kt)("inlineCode",{parentName:"p"},"uclchem.utils.check_error()")," to see more details. If the model succeeded, the second element is the dissipation time and further elements are the abundances of all species in ",(0,i.kt)("inlineCode",{parentName:"p"},"out_species"),"."),(0,i.kt)("a",{id:"uclchem.utils"}),(0,i.kt)("h1",{id:"uclchemutils"},"uclchem.utils"),(0,i.kt)("a",{id:"uclchem.utils.cshock_dissipation_time"}),(0,i.kt)("h4",{id:"cshock_dissipation_time"},"cshock","_","dissipation","_","time"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def cshock_dissipation_time(shock_vel, initial_dens)\n")),(0,i.kt)("p",null,"A simple function used to calculate the dissipation time of a C-type shock.\nUse to obtain a useful timescale for your C-shock model runs. Velocity of\nions and neutrals equalizes at dissipation time and full cooling takes a few dissipation times."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"shock_vel")," ",(0,i.kt)("em",{parentName:"li"},"float")," - Velocity of the shock in km/s"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"initial_dens")," ",(0,i.kt)("em",{parentName:"li"},"float")," - Preshock density of the gas in cm",(0,i.kt)("span",{parentName:"li",className:"math math-inline"},(0,i.kt)("span",{parentName:"span",className:"katex"},(0,i.kt)("span",{parentName:"span",className:"katex-mathml"},(0,i.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,i.kt)("semantics",{parentName:"math"},(0,i.kt)("mrow",{parentName:"semantics"},(0,i.kt)("msup",{parentName:"mrow"},(0,i.kt)("mrow",{parentName:"msup"}),(0,i.kt)("mrow",{parentName:"msup"},(0,i.kt)("mo",{parentName:"mrow"},"\u2212"),(0,i.kt)("mn",{parentName:"mrow"},"3")))),(0,i.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-3}")))),(0,i.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,i.kt)("span",{parentName:"span",className:"base"},(0,i.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,i.kt)("span",{parentName:"span",className:"mord"},(0,i.kt)("span",{parentName:"span"}),(0,i.kt)("span",{parentName:"span",className:"msupsub"},(0,i.kt)("span",{parentName:"span",className:"vlist-t"},(0,i.kt)("span",{parentName:"span",className:"vlist-r"},(0,i.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,i.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,i.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,i.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,i.kt)("span",{parentName:"span",className:"mord mtight"},(0,i.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,i.kt)("span",{parentName:"span",className:"mord mtight"},"3"))))))))))))))),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"float")," - The dissipation time of the shock in years")),(0,i.kt)("a",{id:"uclchem.utils.check_error"}),(0,i.kt)("h4",{id:"check_error"},"check","_","error"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def check_error(error_code)\n")),(0,i.kt)("p",null,'Converts the UCLCHEM integer result flag to a simple messaging explaining what went wrong"'),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"error_code")," ",(0,i.kt)("em",{parentName:"li"},"int")," - Error code returned by UCLCHEM models, the first element of the results list.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"str")," - Error message")),(0,i.kt)("a",{id:"uclchem.utils.get_species_table"}),(0,i.kt)("h4",{id:"get_species_table"},"get","_","species","_","table"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_species_table()\n")),(0,i.kt)("p",null,"A simple function to load the list of species in the UCLCHEM network into a pandas dataframe."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"pandas.DataFrame")," - A dataframe containing the species names and their details")),(0,i.kt)("a",{id:"uclchem.utils.get_reaction_table"}),(0,i.kt)("h4",{id:"get_reaction_table"},"get","_","reaction","_","table"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_reaction_table()\n")),(0,i.kt)("p",null,"A function to load the reaction table from the UCLCHEM network into a pandas dataframe."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"pandas.DataFrame")," - A dataframe containing the reactions and their rates")),(0,i.kt)("a",{id:"uclchem.tests"}),(0,i.kt)("h1",{id:"uclchemtests"},"uclchem.tests"),(0,i.kt)("a",{id:"uclchem.tests.test_ode_conservation"}),(0,i.kt)("h4",{id:"test_ode_conservation"},"test","_","ode","_","conservation"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},'def test_ode_conservation(element_list=["H", "N", "C", "O"])\n')),(0,i.kt)("p",null,"Test whether the ODEs conserve elements. Useful to run each time you change network.\nIntegrator errors may still cause elements not to be conserved but they cannot be conserved\nif the ODEs are not correct."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"element_list")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - A list of elements for which to check the conservation. Defaults to ",'["H", "N", "C", "O"]',".")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"dict")," - A dictionary of the elements in element list with values representing the total rate of change of each element.")),(0,i.kt)("a",{id:"uclchem.makerates.species"}),(0,i.kt)("h1",{id:"uclchemmakeratesspecies"},"uclchem.makerates.species"),(0,i.kt)("a",{id:"uclchem.makerates.species.is_number"}),(0,i.kt)("h4",{id:"is_number"},"is","_","number"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def is_number(s) -> bool\n")),(0,i.kt)("p",null,"Try to convert input to a float, if it succeeds, return True."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"s")," - Input element to check for")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - True if a number, False if not.")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species"}),(0,i.kt)("h2",{id:"species-objects"},"Species Objects"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"class Species()\n")),(0,i.kt)("p",null,"Species is a class that holds all the information about an individual species in the\nnetwork. It also has convenience functions to check whether the species is a gas or grain\nspecies and to help compare between species."),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.__init__"}),(0,i.kt)("h4",{id:"__init__"},"_","_","init","_","_"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def __init__(inputRow)\n")),(0,i.kt)("p",null,"A class representing chemical species, it reads in rows which are formatted as follows:\nNAME,MASS,BINDING ENERGY,SOLID FRACTION,MONO FRACTION,VOLCANO FRACTION,ENTHALPY"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("p",null," inputRow (list):"),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.get_name"}),(0,i.kt)("h4",{id:"get_name"},"get","_","name"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_name() -> str\n")),(0,i.kt)("p",null,"Get the name of the chemical species."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"str")," - The name")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.get_mass"}),(0,i.kt)("h4",{id:"get_mass"},"get","_","mass"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_mass() -> int\n")),(0,i.kt)("p",null,"Get the molecular mass of the chemical species"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"int")," - The molecular mass")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.set_desorb_products"}),(0,i.kt)("h4",{id:"set_desorb_products"},"set","_","desorb","_","products"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_desorb_products(new_desorbs: list[str]) -> None\n")),(0,i.kt)("p",null,"Set the desorption products for species on the surface or in the bulk.\nIt is assumed that there is only one desorption pathway."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"new_desorbs")," ",(0,i.kt)("em",{parentName:"li"},"list","[str]")," - The new desorption products")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.get_desorb_products"}),(0,i.kt)("h4",{id:"get_desorb_products"},"get","_","desorb","_","products"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_desorb_products() -> list[str]\n")),(0,i.kt)("p",null,"Obtain the desorbtion products of ice species"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"list[str]")," - The desorption products")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.set_freeze_products"}),(0,i.kt)("h4",{id:"set_freeze_products"},"set","_","freeze","_","products"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_freeze_products(product_list: list[str], freeze_alpha: float) -> None\n")),(0,i.kt)("p",null,"Add the freeze products of the species, one species can have several freeze products."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"product_list")," ",(0,i.kt)("em",{parentName:"p"},"list","[str]")," - The list of freeze out products")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"freeze_alpha")," ",(0,i.kt)("em",{parentName:"p"},"float")," - The freeze out ratio."),(0,i.kt)("p",{parentName:"li"},"It is called alpha, since it is derived from the alpha column in the UCLCHEM reaction format:\n",(0,i.kt)("a",{parentName:"p",href:"https://github.com/uclchem/UCLCHEM/blob/08d37f8c3063f8ff8a9a7aa16d9eff0ed4f99538/Makerates/src/network.py#L160"},"https://github.com/uclchem/UCLCHEM/blob/08d37f8c3063f8ff8a9a7aa16d9eff0ed4f99538/Makerates/src/network.py#L160")))),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.get_freeze_products"}),(0,i.kt)("h4",{id:"get_freeze_products"},"get","_","freeze","_","products"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_freeze_products() -> dict[list[str], float]\n")),(0,i.kt)("p",null,"Obtain the product to which the species freeze out"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," dict","[str, float]",": Reactions and their respective freeze out ratios."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Yields"),":"),(0,i.kt)("p",null," Iterator[dict","[str, float]","]: Iterator that returns all of the freeze out reactions with ratios"),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.get_freeze_products_list"}),(0,i.kt)("h4",{id:"get_freeze_products_list"},"get","_","freeze","_","products","_","list"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_freeze_products_list() -> list[list[str]]\n")),(0,i.kt)("p",null,"Returns all the freeze products without their ratios"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"list[list[str]]")," - List of freeze products")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.get_freeze_alpha"}),(0,i.kt)("h4",{id:"get_freeze_alpha"},"get","_","freeze","_","alpha"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_freeze_alpha(product_list: list[str]) -> float\n")),(0,i.kt)("p",null,"Obtain the freeze out ratio of a species for a certain reaction"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"product_list")," ",(0,i.kt)("em",{parentName:"li"},"list","[str]")," - For a specific reaction, get the freezeout ratio")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"float")," - The freezeout ratio")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.is_grain_species"}),(0,i.kt)("h4",{id:"is_grain_species"},"is","_","grain","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def is_grain_species() -> bool\n")),(0,i.kt)("p",null,"Return whether the species is a species on the grain"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - True if it is a grain species.")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.is_surface_species"}),(0,i.kt)("h4",{id:"is_surface_species"},"is","_","surface","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def is_surface_species() -> bool\n")),(0,i.kt)("p",null,"Checks if the species is on the surface"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - True if a surface species")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.is_bulk_species"}),(0,i.kt)("h4",{id:"is_bulk_species"},"is","_","bulk","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def is_bulk_species() -> bool\n")),(0,i.kt)("p",null,"Checks if the species is in the bulk"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - True if a bulk species")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.is_ion"}),(0,i.kt)("h4",{id:"is_ion"},"is","_","ion"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def is_ion() -> bool\n")),(0,i.kt)("p",null,"Checks if the species is ionized, either postively or negatively."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - True if it is an ionized")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.add_default_freeze"}),(0,i.kt)("h4",{id:"add_default_freeze"},"add","_","default","_","freeze"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def add_default_freeze() -> None\n")),(0,i.kt)("p",null,"Adds a defalt freezeout, which is freezing out to the species itself, but with no ionization."),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.find_constituents"}),(0,i.kt)("h4",{id:"find_constituents"},"find","_","constituents"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def find_constituents()\n")),(0,i.kt)("p",null,"Loop through the species' name and work out what its consituent\natoms are. Then calculate mass and alert user if it doesn't match\ninput mass."),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.get_n_atoms"}),(0,i.kt)("h4",{id:"get_n_atoms"},"get","_","n","_","atoms"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_n_atoms() -> int\n")),(0,i.kt)("p",null,"Obtain the number of atoms in the molecule"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"int")," - The number of atoms")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.set_n_atoms"}),(0,i.kt)("h4",{id:"set_n_atoms"},"set","_","n","_","atoms"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_n_atoms(new_n_atoms: int) -> None\n")),(0,i.kt)("p",null,"Set the number of atoms"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"new_n_atoms")," ",(0,i.kt)("em",{parentName:"li"},"int")," - The new number of atoms")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.__eq__"}),(0,i.kt)("h4",{id:"__eq__"},"_","_","eq","_","_"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def __eq__(other)\n")),(0,i.kt)("p",null,"Check for equality based on either a string or another Species instance."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"other")," ",(0,i.kt)("em",{parentName:"li"},"str, Species")," - Another species")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Raises"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"NotImplementedError")," - We can only compare between species or strings of species.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - True if two species are identical.")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.__lt__"}),(0,i.kt)("h4",{id:"__lt__"},"_","_","lt","_","_"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def __lt__(other) -> bool\n")),(0,i.kt)("p",null,"Compare the mass of the species"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"other")," ",(0,i.kt)("em",{parentName:"li"},"Species")," - Another species instance")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - True if less than the other species")),(0,i.kt)("a",{id:"uclchem.makerates.species.Species.__gt__"}),(0,i.kt)("h4",{id:"__gt__"},"_","_","gt","_","_"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def __gt__(other) -> bool\n")),(0,i.kt)("p",null,"Compare the mass of the species"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"other")," ",(0,i.kt)("em",{parentName:"li"},"Species")," - Another species instance")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - True if larger than than the other species")),(0,i.kt)("a",{id:"uclchem.makerates"}),(0,i.kt)("h1",{id:"uclchemmakerates"},"uclchem.makerates"),(0,i.kt)("a",{id:"uclchem.makerates.makerates"}),(0,i.kt)("h1",{id:"uclchemmakeratesmakerates"},"uclchem.makerates.makerates"),(0,i.kt)("a",{id:"uclchem.makerates.makerates.run_makerates"}),(0,i.kt)("h4",{id:"run_makerates"},"run","_","makerates"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},'def run_makerates(configuration_file: str = "user_settings.yaml",\n write_files: bool = True) -> Network\n')),(0,i.kt)("p",null,"The main run wrapper for makerates, it loads a configuration, parses it in Network\nand then returns the Network. It by default writes to the uclchem fortran directory, but\nthis can be skipped."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"configuration_file")," ",(0,i.kt)("em",{parentName:"li"},"str, optional"),' - A UCLCHEM Makerates configuration file. Defaults to "user_settings.yaml".'),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"write_files")," ",(0,i.kt)("em",{parentName:"li"},"bool, optional")," - Whether to write the fortran files to the src/fortran_src. Defaults to True.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Raises"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"KeyError")," - The configuration cannot be found")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Network")," - A chemical network instance.")),(0,i.kt)("a",{id:"uclchem.makerates.makerates.get_network"}),(0,i.kt)("h4",{id:"get_network"},"get","_","network"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_network(path_to_input_file: Union[str, bytes, os.PathLike] = None,\n path_to_species_file: Union[str, bytes, os.PathLike] = None,\n path_to_reaction_file: Union[str, bytes, os.PathLike] = None,\n verbosity=None)\n")),(0,i.kt)("p",null,"In memory equivalent of Makerates, can either be used on the original input files\nfor makerates, or on the output files that makerates generates. So either specify:"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"path_to_input_file ")," exclusive OR (",(0,i.kt)("inlineCode",{parentName:"p"},"path_to_species_file")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"path_to_reaction_file"),")"),(0,i.kt)("p",null,"The latter scenario allows you to reload a reaction network from a network already written by Makerates."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"path_to_input_file")," ",(0,i.kt)("em",{parentName:"li"},"Union","[str, bytes, os.PathLike]",", optional")," - Path to input file. Defaults to None."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"path_to_species_file")," ",(0,i.kt)("em",{parentName:"li"},"Union","[str, bytes, os.PathLike]",", optional")," - Path to a species.csv in/from the src directory. Defaults to None."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"path_to_reaction_file")," ",(0,i.kt)("em",{parentName:"li"},"Union","[str, bytes, os.PathLike]",", optional")," - Path to a reactions.csv in/from the src directory. Defaults to None."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"verbosity")," ",(0,i.kt)("em",{parentName:"li"},"LEVEL, optional")," - The verbosity level as specified in logging. Defaults to None.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Raises"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"ValueError")," - You cannot specify both an input configuration and species+reaction.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Network")," - A chemical reaction network.")),(0,i.kt)("a",{id:"uclchem.makerates.network"}),(0,i.kt)("h1",{id:"uclchemmakeratesnetwork"},"uclchem.makerates.network"),(0,i.kt)("p",null,"This python file contains all functions for de-duplicating species and reaction lists,\nchecking for common errors, and automatic addition of reactions such as freeze out,\ndesorption and bulk reactions for three phase models."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network"}),(0,i.kt)("h2",{id:"network-objects"},"Network Objects"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"class Network()\n")),(0,i.kt)("p",null,"The network class stores all the information about reaction network."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.__init__"}),(0,i.kt)("h4",{id:"__init__-1"},"_","_","init","_","_"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def __init__(species: list[Species],\n reactions: list[Reaction],\n three_phase: bool = False,\n user_defined_bulk: list = [])\n")),(0,i.kt)("p",null,"A class to store network information such as indices of important reactions."),(0,i.kt)("p",null,"The class fully utilizes getters and setters, which can be used to add/remove\nreactions and the species involved. Important is that you do not directly edit\nthe internal dictionaries that store the species and reactions, unless you\nknow what you are doing. The network by default checks for duplicates in species\nand identical reactions that overlap in temperature ranges, potentially causing\nproblems."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species")," ",(0,i.kt)("em",{parentName:"li"},"list","[Species]")," - A list of chemical species that are added to the network"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reactions")," ",(0,i.kt)("em",{parentName:"li"},"list","[Reaction]")," - A list of chemical reactions that are added to the network"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"three_phase")," ",(0,i.kt)("em",{parentName:"li"},"bool, optional")," - Whether to use a three phase model (gas, surface, bulk). Defaults to False."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"user_defined_bulk")," ",(0,i.kt)("em",{parentName:"li"},"list, optional")," - List of user defined bulk. Defaults to [].")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.find_similar_reactions"}),(0,i.kt)("h4",{id:"find_similar_reactions"},"find","_","similar","_","reactions"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def find_similar_reactions(reaction: Reaction) -> dict[int, Reaction]\n")),(0,i.kt)("p",null,"Reactions are similar if the reaction has the same reactants and products,\nfind all reactions that are similar, returning their index and the reaction itself."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction")," ",(0,i.kt)("em",{parentName:"li"},"Reaction")," - Reaction with possible identical (but for temperature range) reactions in the network")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," dict","[int, Reaction]",": A dict with the identical reactions."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.remove_reaction_by_index"}),(0,i.kt)("h4",{id:"remove_reaction_by_index"},"remove","_","reaction","_","by","_","index"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def remove_reaction_by_index(reaction_idx: int) -> None\n")),(0,i.kt)("p",null,"Remove a reaction by its index in the internal _reactions_dict, this is the only way\nto remove reactions that are defined piecewise across temperature ranges."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction_idx")," ",(0,i.kt)("em",{parentName:"li"},"int")," - Index of the reaction to remove")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.remove_reaction"}),(0,i.kt)("h4",{id:"remove_reaction"},"remove","_","reaction"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def remove_reaction(reaction: Reaction) -> None\n")),(0,i.kt)("p",null,"Remove the reaction by giving the object itself, this only works if the reaction is\nnot piecewise defined across the temperature ranges."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction")," ",(0,i.kt)("em",{parentName:"li"},"Reaction")," - The reaction you wish to delete.")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.get_reaction"}),(0,i.kt)("h4",{id:"get_reaction"},"get","_","reaction"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_reaction(reaction_idx: int) -> Reaction\n")),(0,i.kt)("p",null,"Obtain a reaction from the reaction set given an index of the internal _reactions_dict."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction_idx")," ",(0,i.kt)("em",{parentName:"li"},"int")," - The reaction index")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Reaction")," - the desired reaction")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.set_reaction"}),(0,i.kt)("h4",{id:"set_reaction"},"set","_","reaction"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_reaction(reaction_idx: int, reaction: Reaction) -> None\n")),(0,i.kt)("p",null,"This setter explicitely sets the reaction for a certain index."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction_idx")," ",(0,i.kt)("em",{parentName:"li"},"int")," - The index to be written to"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction")," ",(0,i.kt)("em",{parentName:"li"},"Reaction")," - The reaction to be added to the index.")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.get_reaction_dict"}),(0,i.kt)("h4",{id:"get_reaction_dict"},"get","_","reaction","_","dict"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_reaction_dict() -> dict[int, Reaction]\n")),(0,i.kt)("p",null,"Returns the whole internal reaction dictionary."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," dict","[int, Reaction]",": A copy of the internal reactions dictionary."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.set_reaction_dict"}),(0,i.kt)("h4",{id:"set_reaction_dict"},"set","_","reaction","_","dict"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_reaction_dict(new_dict: dict[int, Reaction]) -> None\n")),(0,i.kt)("p",null,"Override the reactions dictionary with a new dictionar."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"new_dict")," ",(0,i.kt)("em",{parentName:"li"},"dict","[int, Reaction]")," - The new reactions_dictionary.")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.get_reaction_list"}),(0,i.kt)("h4",{id:"get_reaction_list"},"get","_","reaction","_","list"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_reaction_list() -> list[Reaction]\n")),(0,i.kt)("p",null,"Obtain all the reactions in the Network."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"list[Reaction]")," - A list with all the reaction objects")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.sort_reactions"}),(0,i.kt)("h4",{id:"sort_reactions"},"sort","_","reactions"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def sort_reactions() -> None\n")),(0,i.kt)("p",null,"Sort the reaction dictionary by reaction type first and by the first reactant second."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.add_species"}),(0,i.kt)("h4",{id:"add_species"},"add","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def add_species(species: Union[Union[Species, str], list[Union[Species,\n str]]])\n")),(0,i.kt)("p",null,"Add species to the network, given a (list of) species. If it is a list of strings,\nit tries to instantiate a species class with it. It also checks for duplicate entries and\nfilters out attempts to add reaction types to the species."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species")," ",(0,i.kt)("em",{parentName:"li"},"Union[Union","[Species, str]",", list[Union","[Species, str]","]]")," - A (list of) species or strings.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Raises"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"ValueError")," - If we cannot parse the (list of) reactions"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"ValueError")," - If an ice specie with binding energy of zero is added.")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.remove_species"}),(0,i.kt)("h4",{id:"remove_species"},"remove","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def remove_species(specie_name: str) -> None\n")),(0,i.kt)("p",null,"Remove a specie from the network"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"specie_name")," ",(0,i.kt)("em",{parentName:"li"},"str")," - Species to remove")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.get_species_list"}),(0,i.kt)("h4",{id:"get_species_list"},"get","_","species","_","list"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_species_list() -> list[Species]\n")),(0,i.kt)("p",null,"Obtain a list with all the species in the network"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"list[Species]")," - A list of all the species in the reaction network")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.get_species_dict"}),(0,i.kt)("h4",{id:"get_species_dict"},"get","_","species","_","dict"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_species_dict() -> dict[str, Species]\n")),(0,i.kt)("p",null,"Get the internal dictionary that stores all the species, it consists\nof all species' names as key, with the species object as value."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," dict","[str, Species]",": A dictionary with the species"),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.get_specie"}),(0,i.kt)("h4",{id:"get_specie"},"get","_","specie"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_specie(specie_name: str) -> Species\n")),(0,i.kt)("p",null,"Get the species of the reaction network (from the internal dictionary)"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"specie_name")," ",(0,i.kt)("em",{parentName:"li"},"str")," - the name of the species as a string")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Species")," - The species object")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.set_specie"}),(0,i.kt)("h4",{id:"set_specie"},"set","_","specie"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_specie(species_name: str, species: Species) -> None\n")),(0,i.kt)("p",null,"Set the species of the reaction network in the internal dictionary"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_name")," ",(0,i.kt)("em",{parentName:"li"},"str")," - The name of the species as string"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species")," ",(0,i.kt)("em",{parentName:"li"},"Species")," - The Species object to set")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.set_species_dict"}),(0,i.kt)("h4",{id:"set_species_dict"},"set","_","species","_","dict"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_species_dict(new_species_dict: dict[str, Species]) -> None\n")),(0,i.kt)("p",null,"Set the internal species dict"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"new_species_dict")," ",(0,i.kt)("em",{parentName:"li"},"dict","[str, Species]")," - The new dictionary to set")),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.sort_species"}),(0,i.kt)("h4",{id:"sort_species"},"sort","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def sort_species() -> None\n")),(0,i.kt)("p",null,"Sort the species based on their mass in ascending order. We always make sure the Electron is last."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.check_network"}),(0,i.kt)("h4",{id:"check_network"},"check","_","network"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def check_network() -> None\n")),(0,i.kt)("p",null,"Run through the list of reactions and check for obvious errors such\nas duplicate reactions, multiple freeze out routes (to warn, not necessarily\nan error), etc."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.check_and_filter_species"}),(0,i.kt)("h4",{id:"check_and_filter_species"},"check","_","and","_","filter","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def check_and_filter_species() -> None\n")),(0,i.kt)("p",null,"Check every speces in network appears in at least one reaction.\nRemove any that do not and alert user."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.add_bulk_species"}),(0,i.kt)("h4",{id:"add_bulk_species"},"add","_","bulk","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def add_bulk_species() -> None\n")),(0,i.kt)("p",null,"For three phase models, MakeRates will produce the version of the species in the bulk\nso that the user doesn't have to endlessly relist the same species"),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.check_freeze_and_desorbs"}),(0,i.kt)("h4",{id:"check_freeze_and_desorbs"},"check","_","freeze","_","and","_","desorbs"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def check_freeze_and_desorbs() -> None\n")),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"add_freeze_reactions()")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"add_desorb_reactions()")," automatically generate\nall desorption and freeze out reactions. However, user may want to change a species on freeze out\neg C+ becomes ",(0,i.kt)("inlineCode",{parentName:"p"},"C")," rather than ",(0,i.kt)("inlineCode",{parentName:"p"},"C"),"+. This function checks for that and updates species so they'll\nfreeze or desorb correctly when reactions are generated."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.add_freeze_reactions"}),(0,i.kt)("h4",{id:"add_freeze_reactions"},"add","_","freeze","_","reactions"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def add_freeze_reactions() -> None\n")),(0,i.kt)("p",null,"Save the user effort by automatically generating freeze out reactions"),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.add_desorb_reactions"}),(0,i.kt)("h4",{id:"add_desorb_reactions"},"add","_","desorb","_","reactions"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def add_desorb_reactions() -> None\n")),(0,i.kt)("p",null,"Save the user effort by automatically generating desorption reactions"),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.add_chemdes_reactions"}),(0,i.kt)("h4",{id:"add_chemdes_reactions"},"add","_","chemdes","_","reactions"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def add_chemdes_reactions() -> None\n")),(0,i.kt)("p",null,"We have the user list all Langmuir-Hinshelwood and Eley-Rideal\nreactions once. Then we duplicate so that the reaction branches\nwith products on grain and products desorbing."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.check_for_excited_species"}),(0,i.kt)("h4",{id:"check_for_excited_species"},"check","_","for","_","excited","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def check_for_excited_species() -> bool\n")),(0,i.kt)("p",null,"Check if there are any exicted species in the network, true if there are any."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.add_excited_surface_reactions"}),(0,i.kt)("h4",{id:"add_excited_surface_reactions"},"add","_","excited","_","surface","_","reactions"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def add_excited_surface_reactions() -> None\n")),(0,i.kt)("p",null,"All excited species will relax to the ground state if they do not react\nthe vibrational frequency of the species is used as a pseudo approximation of the rate coefficient\nWe assume all grain reactions have an excited variant. For example:\n",(0,i.kt)("inlineCode",{parentName:"p"},"A"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"B")," LH ",(0,i.kt)("inlineCode",{parentName:"p"},"C")," will have the variants:\n",(0,i.kt)("inlineCode",{parentName:"p"},"A"),(0,i.kt)("em",{parentName:"p"},", ",(0,i.kt)("inlineCode",{parentName:"em"},"B")," EXSOLID ",(0,i.kt)("inlineCode",{parentName:"em"},"C")," and ",(0,i.kt)("inlineCode",{parentName:"em"},"A"),", ",(0,i.kt)("inlineCode",{parentName:"em"},"B"))," EXSOLID ",(0,i.kt)("inlineCode",{parentName:"p"},"C"),"\nIf only one of the reactants in the base reaction has an excited counterpart then\nonly one excited version of that reaction is created."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.add_bulk_reactions"}),(0,i.kt)("h4",{id:"add_bulk_reactions"},"add","_","bulk","_","reactions"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def add_bulk_reactions() -> None\n")),(0,i.kt)("p",null,"We assume any reaction that happens on the surface of grains can also happen\nin the bulk (just more slowly due to binding energy). The user therefore only\nlists surface reactions in their input reaction file and we duplicate here."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.freeze_checks"}),(0,i.kt)("h4",{id:"freeze_checks"},"freeze","_","checks"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def freeze_checks() -> None\n")),(0,i.kt)("p",null,"Check that every species freezes out and alert the user if a\nspecies freezes out via mutiple routes. This isn't necessarily an\nerror so best just print."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.duplicate_checks"}),(0,i.kt)("h4",{id:"duplicate_checks"},"duplicate","_","checks"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def duplicate_checks() -> None\n")),(0,i.kt)("p",null,"Check reaction network to make sure no reaction appears twice unless\nthey have different temperature ranges."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.index_important_reactions"}),(0,i.kt)("h4",{id:"index_important_reactions"},"index","_","important","_","reactions"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def index_important_reactions() -> None\n")),(0,i.kt)("p",null,"We have a whole bunch of important reactions and we want to store\ntheir indices. We find them all here."),(0,i.kt)("a",{id:"uclchem.makerates.network.Network.index_important_species"}),(0,i.kt)("h4",{id:"index_important_species"},"index","_","important","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def index_important_species() -> None\n")),(0,i.kt)("p",null,"Obtain the indices for all the important reactions."),(0,i.kt)("a",{id:"uclchem.makerates.network.LoadedNetwork"}),(0,i.kt)("h2",{id:"loadednetwork-objects"},"LoadedNetwork Objects"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"class LoadedNetwork(Network)\n")),(0,i.kt)("p",null,"Network version that skips all steps and just loads two lists. This is another\nhere be dragons version, use this with exceeding caution as no checks are performed for you."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"Network")," ",(0,i.kt)("strong",{parentName:"li"},"type")," - ",(0,i.kt)("em",{parentName:"li"},"description"))),(0,i.kt)("a",{id:"uclchem.makerates.network.LoadedNetwork.__init__"}),(0,i.kt)("h4",{id:"__init__-2"},"_","_","init","_","_"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def __init__(species: list[Species], reactions: list[Reaction]) -> None\n")),(0,i.kt)("p",null,"A loader of networks without any checks."),(0,i.kt)("p",null,"Here be dragons."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species")," ",(0,i.kt)("em",{parentName:"li"},"list","[Species]")," - A list of species objects"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reactions")," ",(0,i.kt)("em",{parentName:"li"},"list","[Reaction]")," - A list of reaction objects.")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions"}),(0,i.kt)("h1",{id:"uclchemmakeratesio_functions"},"uclchem.makerates.io","_","functions"),(0,i.kt)("p",null,"Functions to read in the species and reaction files and write output files"),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.read_species_file"}),(0,i.kt)("h4",{id:"read_species_file"},"read","_","species","_","file"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def read_species_file(file_name) -> list[Species]\n")),(0,i.kt)("p",null,"Reads in a Makerates species file"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"fileName")," ",(0,i.kt)("em",{parentName:"li"},"str")," - path to file containing the species list")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"list")," - List of Species objects")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.read_reaction_file"}),(0,i.kt)("h4",{id:"read_reaction_file"},"read","_","reaction","_","file"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def read_reaction_file(file_name: str, species_list: list[Species],\n ftype: str) -> tuple[list[Reaction], list[Reaction]]\n")),(0,i.kt)("p",null,"Reads in a reaction file of any kind (user, UMIST, KIDA)\nproduces a list of reactions for the network, filtered by species_list"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"file_name")," ",(0,i.kt)("em",{parentName:"li"},"str")," - A file name for the reaction file to read."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_list")," ",(0,i.kt)("em",{parentName:"li"},"list","[Species]")," - A list of chemical species to be used in the reading."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"ftype")," ",(0,i.kt)("em",{parentName:"li"},"str")," - 'UMIST','UCL', or 'KIDA' to describe format of file_name")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"list,list")," - Lists of kept and dropped reactions.")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.check_reaction"}),(0,i.kt)("h4",{id:"check_reaction"},"check","_","reaction"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def check_reaction(reaction_row, keep_list) -> bool\n")),(0,i.kt)("p",null,"Checks a row parsed from a reaction file and checks it only contains acceptable things.\nIt checks if all species in the reaction are present, and adds the temperature range is none is specified."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction_row")," ",(0,i.kt)("em",{parentName:"li"},"list")," - List parsed from a reaction file and formatted to be able to called Reaction(reaction_row)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"keep_list")," ",(0,i.kt)("em",{parentName:"li"},"list")," - list of elements that are acceptable in the reactant or product bits of row")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - Whether the row contains acceptable entries.")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.kida_parser"}),(0,i.kt)("h4",{id:"kida_parser"},"kida","_","parser"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def kida_parser(kida_file)\n")),(0,i.kt)("p",null,"KIDA used a fixed format file so we read each line in the chunks they specify\nand use python built in classes to convert to the necessary types.\nNOTE KIDA defines some of the same reaction types to UMIST but with different names\nand coefficients. We fix that by converting them here."),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.output_drops"}),(0,i.kt)("h4",{id:"output_drops"},"output","_","drops"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def output_drops(dropped_reactions: list[Reaction],\n output_dir: str,\n write_files=True)\n")),(0,i.kt)("p",null,"Writes the reactions that are dropped to disk/logs"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"dropped_reactions")," ",(0,i.kt)("em",{parentName:"li"},"list","[Reaction]")," - The reactions that were dropped"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"output_dir")," ",(0,i.kt)("em",{parentName:"li"},"str")," - The directory that dropped_reactions.csv will be written to."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"write_files")," ",(0,i.kt)("em",{parentName:"li"},"bool, optional")," - Whether or not to write the file. Defaults to True.")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.write_outputs"}),(0,i.kt)("h4",{id:"write_outputs"},"write","_","outputs"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def write_outputs(network: Network, output_dir: str = None) -> None\n")),(0,i.kt)("p",null,"Write the ODE and Network fortran source files to the fortran source."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"network")," ",(0,i.kt)("em",{parentName:"li"},"network")," - The makerates Network class"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"output_dir")," ",(0,i.kt)("em",{parentName:"li"},"bool")," - The directory to write to.")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.write_species"}),(0,i.kt)("h4",{id:"write_species"},"write","_","species"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def write_species(file_name: str, species_list: list[Species]) -> None\n")),(0,i.kt)("p",null,"Write the human readable species file. Note UCLCHEM doesn't use this file."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"fileName")," ",(0,i.kt)("em",{parentName:"li"},"str")," - path to output file"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_list")," ",(0,i.kt)("em",{parentName:"li"},"list")," - List of species objects for network")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.write_reactions"}),(0,i.kt)("h4",{id:"write_reactions"},"write","_","reactions"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def write_reactions(fileName, reaction_list) -> None\n")),(0,i.kt)("p",null,"Write the human readable reaction file. Note UCLCHEM doesn't use this file."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"fileName")," ",(0,i.kt)("em",{parentName:"li"},"str")," - path to output file"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction_list")," ",(0,i.kt)("em",{parentName:"li"},"list")," - List of reaction objects for network")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.write_odes_f90"}),(0,i.kt)("h4",{id:"write_odes_f90"},"write","_","odes","_","f90"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def write_odes_f90(file_name, species_list, reaction_list,\n three_phase) -> None\n")),(0,i.kt)("p",null,"Write the ODEs in Modern Fortran. This is an actual code file."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"file_name")," ",(0,i.kt)("em",{parentName:"li"},"str")," - Path to file where code will be written"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_list")," ",(0,i.kt)("em",{parentName:"li"},"list")," - List of species describing network"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction_list")," ",(0,i.kt)("em",{parentName:"li"},"list")," - List of reactions describing network"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"three_phase")," ",(0,i.kt)("em",{parentName:"li"},"bool")," - Flag for whether this is a 3 phase network")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.write_jacobian"}),(0,i.kt)("h4",{id:"write_jacobian"},"write","_","jacobian"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def write_jacobian(file_name, species_list) -> None\n")),(0,i.kt)("p",null,"Write jacobian in Modern Fortran. This has never improved UCLCHEM's speed\nand so is not used in the code as it stands.\nCurrent only works for three phase model."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"file_name")," ",(0,i.kt)("em",{parentName:"li"},"str")," - Path to jacobian file"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_list")," ",(0,i.kt)("em",{parentName:"li"},"species_list")," - List of species AFTER being processed by build_ode_string")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.build_ode_string"}),(0,i.kt)("h4",{id:"build_ode_string"},"build","_","ode","_","string"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def build_ode_string(species_list, reaction_list, three_phase) -> str\n")),(0,i.kt)("p",null,"A long, complex function that does the messy work of creating the actual ODE\ncode to calculate the rate of change of each species. Test any change to this code\nthoroughly because ODE mistakes are very hard to spot."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_list")," ",(0,i.kt)("em",{parentName:"li"},"list")," - List of species in network"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction_list")," ",(0,i.kt)("em",{parentName:"li"},"list")," - List of reactions in network"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"three_phase")," ",(0,i.kt)("em",{parentName:"li"},"bool")," - Bool denoting if this is a three phase network")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"str")," - One long string containing the entire ODE fortran code.")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.species_ode_string"}),(0,i.kt)("h4",{id:"species_ode_string"},"species","_","ode","_","string"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def species_ode_string(n: int, species: Species) -> str\n")),(0,i.kt)("p",null,"Build the string of Fortran code for a species once it's loss and gains\nstrings have been produced."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"n")," ",(0,i.kt)("em",{parentName:"li"},"int")," - Index of species in python format"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species")," ",(0,i.kt)("em",{parentName:"li"},"Species")," - species object")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"str")," - the fortran code for the rate of change of the species")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.write_evap_lists"}),(0,i.kt)("h4",{id:"write_evap_lists"},"write","_","evap","_","lists"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def write_evap_lists(network_file, species_list: list[Species]) -> None\n")),(0,i.kt)("p",null,"Two phase networks mimic episodic thermal desorption seen in lab (see Viti et al. 2004)\nby desorbing fixed fractions of material at specific temperatures. Three phase networks just\nuse binding energy and that fact we set binding energies in bulk to water by default.\nThis function writes all necessary arrays to the network file so these processes work."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"network_file")," ",(0,i.kt)("em",{parentName:"li"},"file")," - Open file object to which the network code is being written"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_list")," ",(0,i.kt)("em",{parentName:"li"},"list","[Species]")," - List of species in network")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.truncate_line"}),(0,i.kt)("h4",{id:"truncate_line"},"truncate","_","line"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def truncate_line(input_string, lineLength=72) -> str\n")),(0,i.kt)("p",null,"Take a string and adds line endings at regular intervals\nkeeps us from overshooting fortran's line limits and, frankly,\nmakes for nicer ode.f90 even if human readability isn't very impotant"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"input_string")," ",(0,i.kt)("em",{parentName:"li"},"str")," - Line of code to be truncated"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"lineLength")," ",(0,i.kt)("em",{parentName:"li"},"int, optional")," - rough line length. Defaults to 72.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"str")," - Code string with line endings at regular intervals")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.write_network_file"}),(0,i.kt)("h4",{id:"write_network_file"},"write","_","network","_","file"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def write_network_file(file_name, network)\n")),(0,i.kt)("p",null,"Write the Fortran code file that contains all network information for UCLCHEM.\nThis includes lists of reactants, products, binding energies, formationEnthalpies\nand so on."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"file_name")," ",(0,i.kt)("em",{parentName:"li"},"str")," - The file name where the code will be written."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"network")," ",(0,i.kt)("em",{parentName:"li"},"Network")," - A Network object built from lists of species and reactions.")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.find_reactant"}),(0,i.kt)("h4",{id:"find_reactant"},"find","_","reactant"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def find_reactant(species_list: list[str], reactant: str) -> int\n")),(0,i.kt)("p",null,"Try to find a reactant in the species list"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_list")," ",(0,i.kt)("em",{parentName:"li"},"list","[str]")," - A list of species in the network"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reactant")," ",(0,i.kt)("em",{parentName:"li"},"str")," - The reactant to be indexed")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"int")," - The index of the reactant, if it is not found, 9999")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.get_desorption_freeze_partners"}),(0,i.kt)("h4",{id:"get_desorption_freeze_partners"},"get","_","desorption","_","freeze","_","partners"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_desorption_freeze_partners(reaction_list) -> list[Reaction]\n")),(0,i.kt)("p",null,"Every desorption has a corresponding freeze out eg desorption of ",(0,i.kt)("inlineCode",{parentName:"p"},"CO")," and freeze of CO.\nThis find the corresponding freeze out for every desorb so that when desorb>>freeze\nwe can turn off freeze out in UCLCHEM."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reaction_list")," ",(0,i.kt)("em",{parentName:"li"},"list")," - Reactions in network")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"list")," - list of indices of freeze out reactions matching order of desorptions.")),(0,i.kt)("a",{id:"uclchem.makerates.io_functions.array_to_string"}),(0,i.kt)("h4",{id:"array_to_string"},"array","_","to","_","string"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},'def array_to_string(name, array, type="int", parameter=True) -> str\n')),(0,i.kt)("p",null,"Write an array to fortran source code"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"name")," ",(0,i.kt)("em",{parentName:"li"},"str")," - Variable name of array in Fortran"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"array")," ",(0,i.kt)("em",{parentName:"li"},"iterable")," - List of values of array"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"type")," ",(0,i.kt)("em",{parentName:"li"},"str, optional"),' - The array\'s type. Must be one of "int","float", or "string".Defaults to "int".'),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"parameter")," ",(0,i.kt)("em",{parentName:"li"},"bool, optional")," - Whether the array is a Fortran PARAMETER (constant). Defaults to True.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Raises"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"ValueError"),' - Raises an error if type isn\'t "int","float", or "string"')),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"str")," - String containing the Fortran code to declare this array.")),(0,i.kt)("a",{id:"uclchem.makerates.reaction"}),(0,i.kt)("h1",{id:"uclchemmakeratesreaction"},"uclchem.makerates.reaction"),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction"}),(0,i.kt)("h2",{id:"reaction-objects"},"Reaction Objects"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"class Reaction()\n")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.get_reactants"}),(0,i.kt)("h4",{id:"get_reactants"},"get","_","reactants"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_reactants() -> list[str]\n")),(0,i.kt)("p",null,"Get the four reactants present in the reaction, padded with NAN for nonexistent"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"list[str]")," - The four reactants names")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.get_sorted_reactants"}),(0,i.kt)("h4",{id:"get_sorted_reactants"},"get","_","sorted","_","reactants"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_sorted_reactants() -> list[str]\n")),(0,i.kt)("p",null,"Get the four reactants present in the reaction, sorted for fast comparisons"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reactants")," ",(0,i.kt)("em",{parentName:"li"},"list","[str]")," - The four sorted reactant names")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.set_reactants"}),(0,i.kt)("h4",{id:"set_reactants"},"set","_","reactants"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_reactants(reactants: list[str]) -> None\n")),(0,i.kt)("p",null,"Set the four reactants present in the reaction, padded with NAN for nonexistent"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reactants")," ",(0,i.kt)("em",{parentName:"li"},"list","[str]")," - The four reactants names")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.get_products"}),(0,i.kt)("h4",{id:"get_products"},"get","_","products"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_products() -> list[str]\n")),(0,i.kt)("p",null,"Get the four products present in the reaction, padded with NAN for nonexistent"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"reactants")," ",(0,i.kt)("em",{parentName:"li"},"list","[str]")," - The four products names")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.get_sorted_products"}),(0,i.kt)("h4",{id:"get_sorted_products"},"get","_","sorted","_","products"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_sorted_products() -> list[str]\n")),(0,i.kt)("p",null,"Get the four products present in the reaction, sorted for fast comparisons"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"products")," ",(0,i.kt)("em",{parentName:"li"},"list","[str]")," - The four sorted products names")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.set_products"}),(0,i.kt)("h4",{id:"set_products"},"set","_","products"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_products(products: list[str]) -> None\n")),(0,i.kt)("p",null,"Set the four products present in the reaction, padded with NAN for nonexistent"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"products")," ",(0,i.kt)("em",{parentName:"li"},"list","[str]")," - The four products names")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.get_alpha"}),(0,i.kt)("h4",{id:"get_alpha"},"get","_","alpha"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_alpha() -> float\n")),(0,i.kt)("p",null,"Get the alpha parameter from the Kooij-Arrhenius equation"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"float")," - the alpha parameter of the reaction")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.set_alpha"}),(0,i.kt)("h4",{id:"set_alpha"},"set","_","alpha"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_alpha(alpha: float) -> None\n")),(0,i.kt)("p",null,"Set the alpha parameter from the Kooij-Arrhenius equation"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"alpha")," ",(0,i.kt)("em",{parentName:"li"},"float")," - the alpha parameter of the reaction")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.get_beta"}),(0,i.kt)("h4",{id:"get_beta"},"get","_","beta"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_beta() -> float\n")),(0,i.kt)("p",null,"Get the beta parameter from the Kooij-Arrhenius equation"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"float")," - the beta parameter of the reaction")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.set_beta"}),(0,i.kt)("h4",{id:"set_beta"},"set","_","beta"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_beta(beta: float) -> None\n")),(0,i.kt)("p",null,"Set the beta parameter from the Kooij-Arrhenius equation"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"beta")," ",(0,i.kt)("em",{parentName:"li"},"float")," - the beta parameter of the reaction")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.set_gamma"}),(0,i.kt)("h4",{id:"set_gamma"},"set","_","gamma"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_gamma(gamma: float) -> None\n")),(0,i.kt)("p",null,"Set the gamma parameter from the Kooij-Arrhenius equation"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"gamma")," ",(0,i.kt)("em",{parentName:"li"},"float")," - the gamma parameter of the reaction")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.get_gamma"}),(0,i.kt)("h4",{id:"get_gamma"},"get","_","gamma"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_gamma() -> float\n")),(0,i.kt)("p",null,"Get the gamma parameter from the Kooij-Arrhenius equation"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"float")," - the gamma parameter of the reaction")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.set_templow"}),(0,i.kt)("h4",{id:"set_templow"},"set","_","templow"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_templow(templow: float) -> None\n")),(0,i.kt)("p",null,"Set the lower temperature boundary of the reaction in Kelvin"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"templow")," ",(0,i.kt)("em",{parentName:"li"},"float")," - the lower temperature boundary")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.get_templow"}),(0,i.kt)("h4",{id:"get_templow"},"get","_","templow"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_templow() -> float\n")),(0,i.kt)("p",null,"Get the lower temperature boundary of the reaction in Kelvin"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"float")," - the lower temperature boundary")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.set_temphigh"}),(0,i.kt)("h4",{id:"set_temphigh"},"set","_","temphigh"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def set_temphigh(temphigh: float) -> None\n")),(0,i.kt)("p",null,"Set the higher temperature boundary of the reaction in Kelvin"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"templow")," ",(0,i.kt)("em",{parentName:"li"},"float")," - the higher temperature boundary")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.get_temphigh"}),(0,i.kt)("h4",{id:"get_temphigh"},"get","_","temphigh"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_temphigh() -> float\n")),(0,i.kt)("p",null,"Get the higher temperature boundary of the reaction in Kelvin"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"float")," - the higher temperature boundary")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.NANCheck"}),(0,i.kt)("h4",{id:"nancheck"},"NANCheck"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def NANCheck(a)\n")),(0,i.kt)("p",null,"Convert any Falsy statement to a NAN string"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"a")," - thing to check for falsiness")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - input a if truthy, otherwise NAN")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.get_reaction_type"}),(0,i.kt)("h4",{id:"get_reaction_type"},"get","_","reaction","_","type"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def get_reaction_type() -> str\n")),(0,i.kt)("p",null,"Get the type of a reaction from the reactants\nFirst check the third reactant for a reaction type, then the second. If there are none\nin there, it will be regarded as a two body reaction."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("p",null," str:"),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.convert_to_bulk"}),(0,i.kt)("h4",{id:"convert_to_bulk"},"convert","_","to","_","bulk"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def convert_to_bulk() -> None\n")),(0,i.kt)("p",null,"Convert the surface species to bulk species in place for this reaction."),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.__eq__"}),(0,i.kt)("h4",{id:"__eq__-1"},"_","_","eq","_","_"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def __eq__(other) -> bool\n")),(0,i.kt)("p",null,"Check for equality against another reaction based on the products and reactants.\nNote that it does not check for the temperature ranges that the reactions might have!\nThe Reaction.check_temperature_collision can be used for this purpose."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"other")," - Another reaction set.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - equality")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.check_temperature_collision"}),(0,i.kt)("h4",{id:"check_temperature_collision"},"check","_","temperature","_","collision"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def check_temperature_collision(other) -> bool\n")),(0,i.kt)("p",null,"Check if two reactions have overlapping temperature ranges, returning True means there is a collision."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"other")," - Another reaction")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Raises"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"NotImplementedError")," - Currently we can only compare against instantiated Reaction objects.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Returns"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"bool")," - Whether there is a collision (True), or not (False)")),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.changes_surface_count"}),(0,i.kt)("h4",{id:"changes_surface_count"},"changes","_","surface","_","count"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def changes_surface_count()\n")),(0,i.kt)("p",null,"This checks whether a grain reaction changes number of particles on the surface\n2 reactants to 2 products won't but two reactants combining to one will."),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.changes_total_mantle"}),(0,i.kt)("h4",{id:"changes_total_mantle"},"changes","_","total","_","mantle"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def changes_total_mantle()\n")),(0,i.kt)("p",null,"Check if the total grains on the mantle are changed by the reaction."),(0,i.kt)("a",{id:"uclchem.makerates.reaction.Reaction.generate_ode_bit"}),(0,i.kt)("h4",{id:"generate_ode_bit"},"generate","_","ode","_","bit"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-python"},"def generate_ode_bit(i: int, species_names: list, three_phase: bool)\n")),(0,i.kt)("p",null,"Every reaction contributes a fixed rate of change to whatever species it\naffects. We create the string of fortran code describing that change here."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Arguments"),":"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"i")," ",(0,i.kt)("em",{parentName:"li"},"int")," - index of reaction in network in python format (counting from 0)"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"species_names")," ",(0,i.kt)("em",{parentName:"li"},"list")," - List of species names so we can find index of reactants in species list"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"three_phase")," ",(0,i.kt)("em",{parentName:"li"},"bool")," - Bool indicating whether this is three phase network")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3ca268a2.72ce5220.js b/assets/js/3ca268a2.72ce5220.js new file mode 100644 index 00000000..45781797 --- /dev/null +++ b/assets/js/3ca268a2.72ce5220.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3065],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=a.createContext({}),c=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return a.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=c(n),h=o,m=d["".concat(s,".").concat(h)]||d[h]||u[h]||r;return n?a.createElement(m,i(i({ref:t},p),{},{components:n})):a.createElement(m,i({ref:t},p))}));function h(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:o,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>h,frontMatter:()=>l,metadata:()=>c,toc:()=>u});var a=n(7462),o=n(3366),r=(n(7294),n(3905)),i=["components"],l={id:"install",title:"Installation",slug:"/"},s=void 0,c={unversionedId:"install",id:"install",title:"Installation",description:"Prerequisites",source:"@site/docs/start-basicuse.md",sourceDirName:".",slug:"/",permalink:"/docs/next/",draft:!1,tags:[],version:"current",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1678897922,formattedLastUpdatedAt:"Mar 15, 2023",frontMatter:{id:"install",title:"Installation",slug:"/"},sidebar:"docs",previous:{title:"Getting Started",permalink:"/docs/next/category/getting-started"},next:{title:"Creating a Network",permalink:"/docs/next/network"}},p={},u=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Obtaining UCLCHEM",id:"obtaining-uclchem",level:3},{value:"Software Requirements",id:"software-requirements",level:3},{value:"Apple and Windows",id:"apple-and-windows",level:3},{value:"Apple silicon/M1",id:"apple-siliconm1",level:3},{value:"Apple Intel",id:"apple-intel",level:3},{value:"Installation",id:"installation",level:2},{value:"Checking Your Install",id:"checking-your-install",level:2}],d={toc:u};function h(e){var t=e.components,n=(0,o.Z)(e,i);return(0,r.kt)("wrapper",(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"prerequisites"},"Prerequisites"),(0,r.kt)("h3",{id:"obtaining-uclchem"},"Obtaining UCLCHEM"),(0,r.kt)("p",null,"You can visit our ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/uclchem/UCLCHEM"},"main page")," to get download links for the code, or ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/uclchem/UCLCHEM"},"our github"),". Alternatively, you can use git to clone the repo directly from terminal."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"git clone https://github.com/uclchem/UCLCHEM.git\n")),(0,r.kt)("h3",{id:"software-requirements"},"Software Requirements"),(0,r.kt)("p",null,"You need to have the following software installed on your machine:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Python 3.x"),(0,r.kt)("li",{parentName:"ul"},"GNU Make"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://gcc.gnu.org/"},"GNU compilers"))),(0,r.kt)("p",null,"You will also need various python libraries but they will be installed if you follow the installation instructions below. Please note, UCLCHEM is installed by calling the ",(0,r.kt)("inlineCode",{parentName:"p"},"python3")," command. If you have Python 3.x but your system only recognizes ",(0,r.kt)("inlineCode",{parentName:"p"},"python")," as the command to use it, you should alias ",(0,r.kt)("inlineCode",{parentName:"p"},"python")," to ",(0,r.kt)("inlineCode",{parentName:"p"},"python3")," or update ",(0,r.kt)("inlineCode",{parentName:"p"},"src/fortran_src/Makefile")," to use ",(0,r.kt)("inlineCode",{parentName:"p"},"python")," anywhere it says ",(0,r.kt)("inlineCode",{parentName:"p"},"python3"),"."),(0,r.kt)("h3",{id:"apple-and-windows"},"Apple and Windows"),(0,r.kt)("p",null,"Mac users are encourage to use Xcode to get the GNU compilers and Windows users are most likely to have success with the Windows Subsystem for Linux. See our ",(0,r.kt)("a",{parentName:"p",href:"/docs/trouble-compile"},"troubleshooting")," page for more information if you encounter problems. For Mac users with Apple silicon special installations instructions are listed below the regular installation instructions."),(0,r.kt)("h3",{id:"apple-siliconm1"},"Apple silicon/M1"),(0,r.kt)("p",null,"For this use case we recommend the usage of the package manager conda (the installer for the minimal version can be found ",(0,r.kt)("a",{parentName:"p",href:"https://docs.conda.io/en/latest/miniconda.html"},"here"),").\nEnsure that you install the apple silicon/M1 version, together with Xcode."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"If you are on MacOS Ventura (13.X), you need to use ",(0,r.kt)("inlineCode",{parentName:"p"},"conda install -c conda-forge gfortran=12.2"),". Since at least fortran version 12 is needed for Ventura.")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"conda create -n uclchem_osx\nconda activate uclchem_osx\nconda config --env --set subdir osx-arm64\nconda install python=3.10\nconda install gfortran\n")),(0,r.kt)("p",null,"After this, one can continue with the installation instructions above and install. In order to use\nUCLCHEM in a new terminal session one has to use the command ",(0,r.kt)("inlineCode",{parentName:"p"},"conda activate uclchem_osx"),"."),(0,r.kt)("h3",{id:"apple-intel"},"Apple Intel"),(0,r.kt)("p",null,"Similar instructions as for M1, but now with the x86_64 instruction set. Again this requires Xcode."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"conda create -n uclchem_osx\nconda activate uclchem_osx\nconda config --env --set subdir osx-64\nconda install python=3.9\nconda install clang\nconda install gfortran\n")),(0,r.kt)("p",null,"After this, one can continue with the installation instructions above and install. In order to use\nUCLCHEM in a new terminal session one has to use the command ",(0,r.kt)("inlineCode",{parentName:"p"},"conda activate uclchem_osx"),"."),(0,r.kt)("p",null,"If you encounter further issues please check ",(0,r.kt)("a",{parentName:"p",href:"/docs/trouble-compile"},"troubleshooting"),"."),(0,r.kt)("h2",{id:"installation"},"Installation"),(0,r.kt)("p",null,"UCLCHEM is designed to be compiled to a python library. Despite this, we cannot distribute it as a python package via pypi or similar because the user needs to be able to recompile their own version in order to change the network. The chemical network is hard coded for efficiency so it is not possible to change the network without recompiling."),(0,r.kt)("p",null,"In order to compile UCLCHEM, you will simply need to do the folowing from the main directory of the repository:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"cd UCLCHEM\npip install -r requirements.txt\npip install .\n")),(0,r.kt)("p",null,"This will install the UCLCHEM library into your python environment, you can then import it and use it in your python scripts. If you get an error at this stage, it is very likely you do not have Cmake or gfortran installed. You must do this again every time you use ",(0,r.kt)("a",{parentName:"p",href:"/docs/network"},"Makerates"),"."),(0,r.kt)("p",null,"If it completes without error then, that's it! UCLCHEM is installed. We have tutorials on how to ",(0,r.kt)("a",{parentName:"p",href:"/docs/first_model"},"run your first model")," as well as more complex use cases. The rest of the 'Getting Started' section focuses on creating a network and the various parameters the user can control. "),(0,r.kt)("h2",{id:"checking-your-install"},"Checking Your Install"),(0,r.kt)("p",null,"We provide several ways to get acquainted with the code including a series of ",(0,r.kt)("a",{parentName:"p",href:"/docs/category/tutorials"},"tutorials"),". Alternatively, there are python scripts in ",(0,r.kt)("inlineCode",{parentName:"p"},"scripts/")," that can be used as templates for running your own models and comprehensive documentation on the ",(0,r.kt)("a",{parentName:"p",href:"/docs/pythonapi"},"python API")," and ",(0,r.kt)("a",{parentName:"p",href:"/docs/parameters"},"parameters"),"."),(0,r.kt)("p",null,"However, if you simply want to check whether your new network is working, you can use the ",(0,r.kt)("inlineCode",{parentName:"p"},"scripts/run_uclchem_tests.py")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"scripts/plot_uclchem_tests.py")," scripts. You can find outputs in the ",(0,r.kt)("inlineCode",{parentName:"p"},"examples/")," directory along with an explanation of what this does."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3ca268a2.ffe176bb.js b/assets/js/3ca268a2.ffe176bb.js deleted file mode 100644 index 1c893005..00000000 --- a/assets/js/3ca268a2.ffe176bb.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3065],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=a.createContext({}),c=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},p=function(e){var t=c(e.components);return a.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=c(n),h=o,m=d["".concat(s,".").concat(h)]||d[h]||u[h]||i;return n?a.createElement(m,r(r({ref:t},p),{},{components:n})):a.createElement(m,r({ref:t},p))}));function h(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,r=new Array(i);r[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:o,r[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>h,frontMatter:()=>l,metadata:()=>c,toc:()=>u});var a=n(7462),o=n(3366),i=(n(7294),n(3905)),r=["components"],l={id:"install",title:"Installation",slug:"/"},s=void 0,c={unversionedId:"install",id:"install",title:"Installation",description:"Prerequisites",source:"@site/docs/start-basicuse.md",sourceDirName:".",slug:"/",permalink:"/docs/next/",tags:[],version:"current",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1678897922,formattedLastUpdatedAt:"3/15/2023",frontMatter:{id:"install",title:"Installation",slug:"/"},sidebar:"docs",previous:{title:"Getting Started",permalink:"/docs/next/category/getting-started"},next:{title:"Creating a Network",permalink:"/docs/next/network"}},p={},u=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Obtaining UCLCHEM",id:"obtaining-uclchem",level:3},{value:"Software Requirements",id:"software-requirements",level:3},{value:"Apple and Windows",id:"apple-and-windows",level:3},{value:"Apple silicon/M1",id:"apple-siliconm1",level:3},{value:"Apple Intel",id:"apple-intel",level:3},{value:"Installation",id:"installation",level:2},{value:"Checking Your Install",id:"checking-your-install",level:2}],d={toc:u};function h(e){var t=e.components,n=(0,o.Z)(e,r);return(0,i.kt)("wrapper",(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"prerequisites"},"Prerequisites"),(0,i.kt)("h3",{id:"obtaining-uclchem"},"Obtaining UCLCHEM"),(0,i.kt)("p",null,"You can visit our ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/uclchem/UCLCHEM"},"main page")," to get download links for the code, or ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/uclchem/UCLCHEM"},"our github"),". Alternatively, you can use git to clone the repo directly from terminal."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"git clone https://github.com/uclchem/UCLCHEM.git\n")),(0,i.kt)("h3",{id:"software-requirements"},"Software Requirements"),(0,i.kt)("p",null,"You need to have the following software installed on your machine:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Python 3.x"),(0,i.kt)("li",{parentName:"ul"},"GNU Make"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://gcc.gnu.org/"},"GNU compilers"))),(0,i.kt)("p",null,"You will also need various python libraries but they will be installed if you follow the installation instructions below. Please note, UCLCHEM is installed by calling the ",(0,i.kt)("inlineCode",{parentName:"p"},"python3")," command. If you have Python 3.x but your system only recognizes ",(0,i.kt)("inlineCode",{parentName:"p"},"python")," as the command to use it, you should alias ",(0,i.kt)("inlineCode",{parentName:"p"},"python")," to ",(0,i.kt)("inlineCode",{parentName:"p"},"python3")," or update ",(0,i.kt)("inlineCode",{parentName:"p"},"src/fortran_src/Makefile")," to use ",(0,i.kt)("inlineCode",{parentName:"p"},"python")," anywhere it says ",(0,i.kt)("inlineCode",{parentName:"p"},"python3"),"."),(0,i.kt)("h3",{id:"apple-and-windows"},"Apple and Windows"),(0,i.kt)("p",null,"Mac users are encourage to use Xcode to get the GNU compilers and Windows users are most likely to have success with the Windows Subsystem for Linux. See our ",(0,i.kt)("a",{parentName:"p",href:"/docs/trouble-compile"},"troubleshooting")," page for more information if you encounter problems. For Mac users with Apple silicon special installations instructions are listed below the regular installation instructions."),(0,i.kt)("h3",{id:"apple-siliconm1"},"Apple silicon/M1"),(0,i.kt)("p",null,"For this use case we recommend the usage of the package manager conda (the installer for the minimal version can be found ",(0,i.kt)("a",{parentName:"p",href:"https://docs.conda.io/en/latest/miniconda.html"},"here"),").\nEnsure that you install the apple silicon/M1 version, together with Xcode."),(0,i.kt)("div",{className:"admonition admonition-caution alert alert--warning"},(0,i.kt)("div",{parentName:"div",className:"admonition-heading"},(0,i.kt)("h5",{parentName:"div"},(0,i.kt)("span",{parentName:"h5",className:"admonition-icon"},(0,i.kt)("svg",{parentName:"span",xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 16 16"},(0,i.kt)("path",{parentName:"svg",fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"}))),"caution")),(0,i.kt)("div",{parentName:"div",className:"admonition-content"},(0,i.kt)("p",{parentName:"div"},"If you are on MacOS Ventura (13.X), you need to use ",(0,i.kt)("inlineCode",{parentName:"p"},"conda install -c conda-forge gfortran=12.2"),". Since at least fortran version 12 is needed for Ventura."))),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"conda create -n uclchem_osx\nconda activate uclchem_osx\nconda config --env --set subdir osx-arm64\nconda install python=3.10\nconda install gfortran\n")),(0,i.kt)("p",null,"After this, one can continue with the installation instructions above and install. In order to use\nUCLCHEM in a new terminal session one has to use the command ",(0,i.kt)("inlineCode",{parentName:"p"},"conda activate uclchem_osx"),"."),(0,i.kt)("h3",{id:"apple-intel"},"Apple Intel"),(0,i.kt)("p",null,"Similar instructions as for M1, but now with the x86_64 instruction set. Again this requires Xcode."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"conda create -n uclchem_osx\nconda activate uclchem_osx\nconda config --env --set subdir osx-64\nconda install python=3.9\nconda install clang\nconda install gfortran\n")),(0,i.kt)("p",null,"After this, one can continue with the installation instructions above and install. In order to use\nUCLCHEM in a new terminal session one has to use the command ",(0,i.kt)("inlineCode",{parentName:"p"},"conda activate uclchem_osx"),"."),(0,i.kt)("p",null,"If you encounter further issues please check ",(0,i.kt)("a",{parentName:"p",href:"/docs/trouble-compile"},"troubleshooting"),"."),(0,i.kt)("h2",{id:"installation"},"Installation"),(0,i.kt)("p",null,"UCLCHEM is designed to be compiled to a python library. Despite this, we cannot distribute it as a python package via pypi or similar because the user needs to be able to recompile their own version in order to change the network. The chemical network is hard coded for efficiency so it is not possible to change the network without recompiling."),(0,i.kt)("p",null,"In order to compile UCLCHEM, you will simply need to do the folowing from the main directory of the repository:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"cd UCLCHEM\npip install -r requirements.txt\npip install .\n")),(0,i.kt)("p",null,"This will install the UCLCHEM library into your python environment, you can then import it and use it in your python scripts. If you get an error at this stage, it is very likely you do not have Cmake or gfortran installed. You must do this again every time you use ",(0,i.kt)("a",{parentName:"p",href:"/docs/network"},"Makerates"),"."),(0,i.kt)("p",null,"If it completes without error then, that's it! UCLCHEM is installed. We have tutorials on how to ",(0,i.kt)("a",{parentName:"p",href:"/docs/first_model"},"run your first model")," as well as more complex use cases. The rest of the 'Getting Started' section focuses on creating a network and the various parameters the user can control. "),(0,i.kt)("h2",{id:"checking-your-install"},"Checking Your Install"),(0,i.kt)("p",null,"We provide several ways to get acquainted with the code including a series of ",(0,i.kt)("a",{parentName:"p",href:"/docs/category/tutorials"},"tutorials"),". Alternatively, there are python scripts in ",(0,i.kt)("inlineCode",{parentName:"p"},"scripts/")," that can be used as templates for running your own models and comprehensive documentation on the ",(0,i.kt)("a",{parentName:"p",href:"/docs/pythonapi"},"python API")," and ",(0,i.kt)("a",{parentName:"p",href:"/docs/parameters"},"parameters"),"."),(0,i.kt)("p",null,"However, if you simply want to check whether your new network is working, you can use the ",(0,i.kt)("inlineCode",{parentName:"p"},"scripts/run_uclchem_tests.py")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"scripts/plot_uclchem_tests.py")," scripts. You can find outputs in the ",(0,i.kt)("inlineCode",{parentName:"p"},"examples/")," directory along with an explanation of what this does."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3ca94418.8918c9fb.js b/assets/js/3ca94418.8918c9fb.js new file mode 100644 index 00000000..8d91c355 --- /dev/null +++ b/assets/js/3ca94418.8918c9fb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[814],{3905:(a,e,t)=>{t.d(e,{Zo:()=>o,kt:()=>h});var s=t(7294);function n(a,e,t){return e in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function m(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.push.apply(t,s)}return t}function p(a){for(var e=1;e=0||(n[t]=a[t]);return n}(a,e);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(a);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(a,t)&&(n[t]=a[t])}return n}var i=s.createContext({}),l=function(a){var e=s.useContext(i),t=e;return a&&(t="function"==typeof a?a(e):p(p({},e),a)),t},o=function(a){var e=l(a.components);return s.createElement(i.Provider,{value:e},a.children)},c={inlineCode:"code",wrapper:function(a){var e=a.children;return s.createElement(s.Fragment,{},e)}},N=s.forwardRef((function(a,e){var t=a.components,n=a.mdxType,m=a.originalType,i=a.parentName,o=r(a,["components","mdxType","originalType","parentName"]),N=l(t),h=n,k=N["".concat(i,".").concat(h)]||N[h]||c[h]||m;return t?s.createElement(k,p(p({ref:e},o),{},{components:t})):s.createElement(k,p({ref:e},o))}));function h(a,e){var t=arguments,n=e&&e.mdxType;if("string"==typeof a||n){var m=t.length,p=new Array(m);p[0]=N;var r={};for(var i in e)hasOwnProperty.call(e,i)&&(r[i]=e[i]);r.originalType=a,r.mdxType="string"==typeof a?a:n,p[1]=r;for(var l=2;l{t.r(e),t.d(e,{assets:()=>o,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var s=t(7462),n=t(3366),m=(t(7294),t(3905)),p=["components"],r={id:"physics-hotcore",title:"Hot Core",author:"Jon Holdship"},i=void 0,l={unversionedId:"physics-hotcore",id:"version-v3.2.0/physics-hotcore",title:"Hot Core",description:"Main Contributors: Serena Viti, Jon Holdship",source:"@site/versioned_docs/version-v3.2.0/physics-hotcore.md",sourceDirName:".",slug:"/physics-hotcore",permalink:"/docs/physics-hotcore",draft:!1,tags:[],version:"v3.2.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"physics-hotcore",title:"Hot Core",author:"Jon Holdship"},sidebar:"docs",previous:{title:"Cloud Model",permalink:"/docs/physics-cloud"},next:{title:"Shock Models",permalink:"/docs/physics-shocks"}},o={},c=[],N={toc:c};function h(a){var e=a.components,t=(0,n.Z)(a,p);return(0,m.kt)("wrapper",(0,s.Z)({},N,t,{components:e,mdxType:"MDXLayout"}),(0,m.kt)("p",null,(0,m.kt)("strong",{parentName:"p"},"Main Contributors"),": Serena Viti, Jon Holdship"),(0,m.kt)("p",null,(0,m.kt)("strong",{parentName:"p"},"Source"),": src/fortran_src/hotcore.f90"),(0,m.kt)("p",null,"The hot core model can be used to model the envelopes around hot cores as a single point or a 1D line of gas parels. The temperature in this model increases following the temperature profiles given in ",(0,m.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1111/j.1365-2966.2004.08273.x"},"Viti et al. 2004")," with modifications by ",(0,m.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1111/j.1365-2966.2010.17077.x"},"Awad et al. 2010"),". These are time and radially dependent temperature profiles intended to match the heat up of the gas around a hot core."),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"T"),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("mn",{parentName:"mrow"},"10"),(0,m.kt)("mo",{parentName:"mrow"},"+"),(0,m.kt)("mi",{parentName:"mrow"},"A"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"t"),(0,m.kt)("mi",{parentName:"msup"},"B")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow",fence:"true"},"("),(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"mfrac"},"r"),(0,m.kt)("mi",{parentName:"mfrac"},"R")),(0,m.kt)("mo",{parentName:"mrow",fence:"true"},")")),(0,m.kt)("mfrac",{parentName:"msup"},(0,m.kt)("mn",{parentName:"mfrac"},"1"),(0,m.kt)("mn",{parentName:"mfrac"},"2"))),(0,m.kt)("mi",{parentName:"mrow"},"K")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"T = 10 + A t^B \\left(\\frac{r}{R}\\right)^{\\frac{1}{2}} K")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.68333em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.72777em",verticalAlign:"-0.08333em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mbin"},"+"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"2.17992em",verticalAlign:"-0.686em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8913309999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.113em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05017em"}},"B")))))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"mopen delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size2"},"(")),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.10756em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.00773em"}},"R"))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"r")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,m.kt)("span",{parentName:"span",className:"mclose delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size2"},")"))),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.49392em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.9029em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter sizing reset-size3 size6"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8443142857142858em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.656em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.2255000000000003em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line mtight",style:{borderBottomWidth:"0.049em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.384em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.344em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter sizing reset-size3 size6"})))))))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K")))))),(0,m.kt)("p",null,"Where ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"r")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"r")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.43056em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"r")))))," is the distance from the centre of the core to the current point, ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"R")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"R")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.68333em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.00773em"}},"R")))))," is the radius of the core (",(0,m.kt)("inlineCode",{parentName:"p"},"rout"),") and ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"A")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"A")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.68333em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A")))))," and ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"B")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"B")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.68333em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05017em"}},"B")))))," are empirically derived constants. These constants have been determined for specific protostellar masses and the user can choose from 1, 5, 10, 15, 25, and 60 solar masses using the ",(0,m.kt)("inlineCode",{parentName:"p"},"tempIndx")," variable when calling ",(0,m.kt)("a",{parentName:"p",href:"/docs/pythonapi#uclchem.model.hot_core"},"uclchem.model.hot_core")),(0,m.kt)("p",null,"A key aspect of hot cores is the sublimation of ices as the gas heats. TPD experiments have shown that this happens in multiple desorptions events per species rather than a single desorption once the temperature is enough to overcome the binding energy of a given species. In three phase models, this is achieved by the fact the binding energy of species in the bulk is assumed to be equal to the water binding energy, meaning a species will usually desorb from the surface earlier than from the bulk. In two phase networks, the hot core model uses the fixed desorption events of ",(0,m.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1111/j.1365-2966.2004.08273.x"},"Viti et al. 2004")," to mimic this."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3ca94418.fd7aadd9.js b/assets/js/3ca94418.fd7aadd9.js deleted file mode 100644 index 23f41b69..00000000 --- a/assets/js/3ca94418.fd7aadd9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[814],{3905:(a,e,t)=>{t.d(e,{Zo:()=>o,kt:()=>h});var s=t(7294);function n(a,e,t){return e in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function m(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.push.apply(t,s)}return t}function p(a){for(var e=1;e=0||(n[t]=a[t]);return n}(a,e);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(a);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(a,t)&&(n[t]=a[t])}return n}var i=s.createContext({}),l=function(a){var e=s.useContext(i),t=e;return a&&(t="function"==typeof a?a(e):p(p({},e),a)),t},o=function(a){var e=l(a.components);return s.createElement(i.Provider,{value:e},a.children)},c={inlineCode:"code",wrapper:function(a){var e=a.children;return s.createElement(s.Fragment,{},e)}},N=s.forwardRef((function(a,e){var t=a.components,n=a.mdxType,m=a.originalType,i=a.parentName,o=r(a,["components","mdxType","originalType","parentName"]),N=l(t),h=n,k=N["".concat(i,".").concat(h)]||N[h]||c[h]||m;return t?s.createElement(k,p(p({ref:e},o),{},{components:t})):s.createElement(k,p({ref:e},o))}));function h(a,e){var t=arguments,n=e&&e.mdxType;if("string"==typeof a||n){var m=t.length,p=new Array(m);p[0]=N;var r={};for(var i in e)hasOwnProperty.call(e,i)&&(r[i]=e[i]);r.originalType=a,r.mdxType="string"==typeof a?a:n,p[1]=r;for(var l=2;l{t.r(e),t.d(e,{assets:()=>o,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var s=t(7462),n=t(3366),m=(t(7294),t(3905)),p=["components"],r={id:"physics-hotcore",title:"Hot Core",author:"Jon Holdship"},i=void 0,l={unversionedId:"physics-hotcore",id:"version-v3.2.0/physics-hotcore",title:"Hot Core",description:"Main Contributors: Serena Viti, Jon Holdship",source:"@site/versioned_docs/version-v3.2.0/physics-hotcore.md",sourceDirName:".",slug:"/physics-hotcore",permalink:"/docs/physics-hotcore",tags:[],version:"v3.2.0",frontMatter:{id:"physics-hotcore",title:"Hot Core",author:"Jon Holdship"},sidebar:"docs",previous:{title:"Cloud Model",permalink:"/docs/physics-cloud"},next:{title:"Shock Models",permalink:"/docs/physics-shocks"}},o={},c=[],N={toc:c};function h(a){var e=a.components,t=(0,n.Z)(a,p);return(0,m.kt)("wrapper",(0,s.Z)({},N,t,{components:e,mdxType:"MDXLayout"}),(0,m.kt)("p",null,(0,m.kt)("strong",{parentName:"p"},"Main Contributors"),": Serena Viti, Jon Holdship"),(0,m.kt)("p",null,(0,m.kt)("strong",{parentName:"p"},"Source"),": src/fortran_src/hotcore.f90"),(0,m.kt)("p",null,"The hot core model can be used to model the envelopes around hot cores as a single point or a 1D line of gas parels. The temperature in this model increases following the temperature profiles given in ",(0,m.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1111/j.1365-2966.2004.08273.x"},"Viti et al. 2004")," with modifications by ",(0,m.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1111/j.1365-2966.2010.17077.x"},"Awad et al. 2010"),". These are time and radially dependent temperature profiles intended to match the heat up of the gas around a hot core."),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"T"),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("mn",{parentName:"mrow"},"10"),(0,m.kt)("mo",{parentName:"mrow"},"+"),(0,m.kt)("mi",{parentName:"mrow"},"A"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"t"),(0,m.kt)("mi",{parentName:"msup"},"B")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow",fence:"true"},"("),(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"mfrac"},"r"),(0,m.kt)("mi",{parentName:"mfrac"},"R")),(0,m.kt)("mo",{parentName:"mrow",fence:"true"},")")),(0,m.kt)("mfrac",{parentName:"msup"},(0,m.kt)("mn",{parentName:"mfrac"},"1"),(0,m.kt)("mn",{parentName:"mfrac"},"2"))),(0,m.kt)("mi",{parentName:"mrow"},"K")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"T = 10 + A t^B \\left(\\frac{r}{R}\\right)^{\\frac{1}{2}} K")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.68333em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.72777em",verticalAlign:"-0.08333em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mbin"},"+"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"2.17992em",verticalAlign:"-0.686em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8913309999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.113em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05017em"}},"B")))))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"mopen delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size2"},"(")),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.10756em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.00773em"}},"R"))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"r")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,m.kt)("span",{parentName:"span",className:"mclose delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size2"},")"))),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.49392em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.9029em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter sizing reset-size3 size6"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8443142857142858em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.656em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.2255000000000003em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line mtight",style:{borderBottomWidth:"0.049em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.384em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.344em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter sizing reset-size3 size6"})))))))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K")))))),(0,m.kt)("p",null,"Where ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"r")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"r")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.43056em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"r")))))," is the distance from the centre of the core to the current point, ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"R")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"R")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.68333em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.00773em"}},"R")))))," is the radius of the core (",(0,m.kt)("inlineCode",{parentName:"p"},"rout"),") and ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"A")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"A")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.68333em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A")))))," and ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"B")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"B")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.68333em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05017em"}},"B")))))," are empirically derived constants. These constants have been determined for specific protostellar masses and the user can choose from 1, 5, 10, 15, 25, and 60 solar masses using the ",(0,m.kt)("inlineCode",{parentName:"p"},"tempIndx")," variable when calling ",(0,m.kt)("a",{parentName:"p",href:"/docs/pythonapi#uclchem.model.hot_core"},"uclchem.model.hot_core")),(0,m.kt)("p",null,"A key aspect of hot cores is the sublimation of ices as the gas heats. TPD experiments have shown that this happens in multiple desorptions events per species rather than a single desorption once the temperature is enough to overcome the binding energy of a given species. In three phase models, this is achieved by the fact the binding energy of species in the bulk is assumed to be equal to the water binding energy, meaning a species will usually desorb from the surface earlier than from the bulk. In two phase networks, the hot core model uses the fixed desorption events of ",(0,m.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1111/j.1365-2966.2004.08273.x"},"Viti et al. 2004")," to mimic this."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4029de32.6d9bd70d.js b/assets/js/4029de32.6d9bd70d.js new file mode 100644 index 00000000..4b748479 --- /dev/null +++ b/assets/js/4029de32.6d9bd70d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5973],{3905:(t,a,e)=>{e.d(a,{Zo:()=>s,kt:()=>N});var n=e(7294);function r(t,a,e){return a in t?Object.defineProperty(t,a,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[a]=e,t}function l(t,a){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);a&&(n=n.filter((function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable}))),e.push.apply(e,n)}return e}function i(t){for(var a=1;a=0||(r[e]=t[e]);return r}(t,a);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,e)&&(r[e]=t[e])}return r}var p=n.createContext({}),o=function(t){var a=n.useContext(p),e=a;return t&&(e="function"==typeof t?t(a):i(i({},a),t)),e},s=function(t){var a=o(t.components);return n.createElement(p.Provider,{value:a},t.children)},d={inlineCode:"code",wrapper:function(t){var a=t.children;return n.createElement(n.Fragment,{},a)}},u=n.forwardRef((function(t,a){var e=t.components,r=t.mdxType,l=t.originalType,p=t.parentName,s=m(t,["components","mdxType","originalType","parentName"]),u=o(e),N=r,k=u["".concat(p,".").concat(N)]||u[N]||d[N]||l;return e?n.createElement(k,i(i({ref:a},s),{},{components:e})):n.createElement(k,i({ref:a},s))}));function N(t,a){var e=arguments,r=a&&a.mdxType;if("string"==typeof t||r){var l=e.length,i=new Array(l);i[0]=u;var m={};for(var p in a)hasOwnProperty.call(a,p)&&(m[p]=a[p]);m.originalType=t,m.mdxType="string"==typeof t?t:r,i[1]=m;for(var o=2;o{e.r(a),e.d(a,{assets:()=>s,contentTitle:()=>p,default:()=>N,frontMatter:()=>m,metadata:()=>o,toc:()=>d});var n=e(7462),r=e(3366),l=(e(7294),e(3905)),i=["components"],m={id:"parameters",title:"Model Parameters"},p=void 0,o={unversionedId:"parameters",id:"version-v3.2.0/parameters",title:"Model Parameters",description:"UCLCHEM will default to these values unless they are overridden by user. Users can override these by adding the variable name as written here in the paramdict argument of any UCLCHEM model function. paramdict is not case sensitive.",source:"@site/versioned_docs/version-v3.2.0/start-parameters.md",sourceDirName:".",slug:"/parameters",permalink:"/docs/parameters",draft:!1,tags:[],version:"v3.2.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"parameters",title:"Model Parameters"},sidebar:"docs",previous:{title:"Creating a Network",permalink:"/docs/network"},next:{title:"Python Reference",permalink:"/docs/pythonapi"}},s={},d=[{value:"Physical Variables",id:"physical-variables",level:2},{value:"Behavioural Controls",id:"behavioural-controls",level:2},{value:"Input and Output",id:"input-and-output",level:2},{value:"Initial Abundances",id:"initial-abundances",level:2},{value:"Integration Controls",id:"integration-controls",level:2},{value:"Here be Dragons",id:"here-be-dragons",level:2}],u={toc:d};function N(t){var a=t.components,e=(0,r.Z)(t,i);return(0,l.kt)("wrapper",(0,n.Z)({},u,e,{components:a,mdxType:"MDXLayout"}),(0,l.kt)("p",null,"UCLCHEM will default to these values unless they are overridden by user. Users can override these by adding the variable name as written here in the param_dict argument of any UCLCHEM model function. param_dict is not case sensitive."),(0,l.kt)("h2",{id:"physical-variables"},"Physical Variables"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Parameter"),(0,l.kt)("th",{parentName:"tr",align:null},"Default Value"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"initialTemp"),(0,l.kt)("td",{parentName:"tr",align:null},"10.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Initial gas temperature in Kelvin for all gas parcels in model.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"initialDens"),(0,l.kt)("td",{parentName:"tr",align:null},"1.00d2"),(0,l.kt)("td",{parentName:"tr",align:null},"Initial gas density in H nuclei per cm",(0,l.kt)("span",{parentName:"td",className:"math math-inline"},(0,l.kt)("span",{parentName:"span",className:"katex"},(0,l.kt)("span",{parentName:"span",className:"katex-mathml"},(0,l.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,l.kt)("semantics",{parentName:"math"},(0,l.kt)("mrow",{parentName:"semantics"},(0,l.kt)("msup",{parentName:"mrow"},(0,l.kt)("mrow",{parentName:"msup"}),(0,l.kt)("mrow",{parentName:"msup"},(0,l.kt)("mo",{parentName:"mrow"},"\u2212"),(0,l.kt)("mn",{parentName:"mrow"},"3")))),(0,l.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-3}")))),(0,l.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,l.kt)("span",{parentName:"span",className:"base"},(0,l.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,l.kt)("span",{parentName:"span",className:"mord"},(0,l.kt)("span",{parentName:"span"}),(0,l.kt)("span",{parentName:"span",className:"msupsub"},(0,l.kt)("span",{parentName:"span",className:"vlist-t"},(0,l.kt)("span",{parentName:"span",className:"vlist-r"},(0,l.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,l.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,l.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,l.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,l.kt)("span",{parentName:"span",className:"mord mtight"},(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"3")))))))))))))," for all gas parcels in model.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"finalDens"),(0,l.kt)("td",{parentName:"tr",align:null},"1.00d5"),(0,l.kt)("td",{parentName:"tr",align:null},"Final gas density achieved via freefall.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"currentTime"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Time at start of model in years.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"finalTime"),(0,l.kt)("td",{parentName:"tr",align:null},"5.0d6"),(0,l.kt)("td",{parentName:"tr",align:null},"Time to stop model in years, if not using ",(0,l.kt)("inlineCode",{parentName:"td"},"endAtFinalDensity")," below.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"radfield"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Interstellar radiation field in Habing")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"zeta"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Cosmic ray ionisation rate as multiple of ",(0,l.kt)("span",{parentName:"td",className:"math math-inline"},(0,l.kt)("span",{parentName:"span",className:"katex"},(0,l.kt)("span",{parentName:"span",className:"katex-mathml"},(0,l.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,l.kt)("semantics",{parentName:"math"},(0,l.kt)("mrow",{parentName:"semantics"},(0,l.kt)("mn",{parentName:"mrow"},"1.31"),(0,l.kt)("msup",{parentName:"mrow"},(0,l.kt)("mn",{parentName:"msup"},"0"),(0,l.kt)("mrow",{parentName:"msup"},(0,l.kt)("mo",{parentName:"mrow"},"\u2212"),(0,l.kt)("mn",{parentName:"mrow"},"17"))),(0,l.kt)("msup",{parentName:"mrow"},(0,l.kt)("mi",{parentName:"msup"},"s"),(0,l.kt)("mrow",{parentName:"msup"},(0,l.kt)("mo",{parentName:"mrow"},"\u2212"),(0,l.kt)("mn",{parentName:"mrow"},"1")))),(0,l.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"1.3 10^{-17} s^{-1}")))),(0,l.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,l.kt)("span",{parentName:"span",className:"base"},(0,l.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,l.kt)("span",{parentName:"span",className:"mord"},"1"),(0,l.kt)("span",{parentName:"span",className:"mord"},"."),(0,l.kt)("span",{parentName:"span",className:"mord"},"3"),(0,l.kt)("span",{parentName:"span",className:"mord"},"1"),(0,l.kt)("span",{parentName:"span",className:"mord"},(0,l.kt)("span",{parentName:"span",className:"mord"},"0"),(0,l.kt)("span",{parentName:"span",className:"msupsub"},(0,l.kt)("span",{parentName:"span",className:"vlist-t"},(0,l.kt)("span",{parentName:"span",className:"vlist-r"},(0,l.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,l.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,l.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,l.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,l.kt)("span",{parentName:"span",className:"mord mtight"},(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"1"),(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"7"))))))))),(0,l.kt)("span",{parentName:"span",className:"mord"},(0,l.kt)("span",{parentName:"span",className:"mord mathnormal"},"s"),(0,l.kt)("span",{parentName:"span",className:"msupsub"},(0,l.kt)("span",{parentName:"span",className:"vlist-t"},(0,l.kt)("span",{parentName:"span",className:"vlist-r"},(0,l.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,l.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,l.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,l.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,l.kt)("span",{parentName:"span",className:"mord mtight"},(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))))))))))))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"rout"),(0,l.kt)("td",{parentName:"tr",align:null},"0.05"),(0,l.kt)("td",{parentName:"tr",align:null},"Outer radius of cloud being modelled in pc.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"rin"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Minimum radial distance from cloud centre to consider.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"baseAv"),(0,l.kt)("td",{parentName:"tr",align:null},"2.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Extinction at cloud edge, Av of a parcel at rout.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"points"),(0,l.kt)("td",{parentName:"tr",align:null},"1"),(0,l.kt)("td",{parentName:"tr",align:null},"Number of gas parcels equally spaced between rin to rout to consider")))),(0,l.kt)("h2",{id:"behavioural-controls"},"Behavioural Controls"),(0,l.kt)("p",null,(0,l.kt)("em",{parentName:"p"},"The following parameters generally turn on or off features of the model. If a parameter is set to ",(0,l.kt)("inlineCode",{parentName:"em"},"True"),", then it is turned on. If it is set to ",(0,l.kt)("inlineCode",{parentName:"em"},"False"),", then it is turned off.")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Parameter"),(0,l.kt)("th",{parentName:"tr",align:null},"Default Value"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"freezeFactor"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Modify freeze out rate of gas parcels by this factor.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"endAtFinalDensity"),(0,l.kt)("td",{parentName:"tr",align:null},".False."),(0,l.kt)("td",{parentName:"tr",align:null},"Choose to end model at final density, otherwise end at final time.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"freefall"),(0,l.kt)("td",{parentName:"tr",align:null},".False."),(0,l.kt)("td",{parentName:"tr",align:null},"Controls whether models density increaes following freefall equation.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"freefallFactor"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Modify freefall rate by factor, usually to slow it.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"desorb"),(0,l.kt)("td",{parentName:"tr",align:null},".True."),(0,l.kt)("td",{parentName:"tr",align:null},"Toggles all non-thermal desoprtion processes on or off.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"h2desorb"),(0,l.kt)("td",{parentName:"tr",align:null},".True."),(0,l.kt)("td",{parentName:"tr",align:null},"Individually toggle non-thermal desorption due to H2 formation.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"crdesorb"),(0,l.kt)("td",{parentName:"tr",align:null},".True."),(0,l.kt)("td",{parentName:"tr",align:null},"Individually toggle non-thermal desorption due to cosmic rays.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"uvdesorb"),(0,l.kt)("td",{parentName:"tr",align:null},".True."),(0,l.kt)("td",{parentName:"tr",align:null},"Individually toggle non-thermal desorption due to uv photons.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"thermdesorb"),(0,l.kt)("td",{parentName:"tr",align:null},".True."),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle continuous thermal desorption.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"instantSublimation"),(0,l.kt)("td",{parentName:"tr",align:null},".False."),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle instantaneous sublimation of the ices at t")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"cosmicRayAttenuation"),(0,l.kt)("td",{parentName:"tr",align:null},".False."),(0,l.kt)("td",{parentName:"tr",align:null},"Use column density to attenuate cosmic ray ionisation rate following ",(0,l.kt)("a",{parentName:"td",href:"https://arxiv.org/abs/1803.09348"},"Padovani et al. 2018"),".")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ionModel"),(0,l.kt)("td",{parentName:"tr",align:null},"'L'"),(0,l.kt)("td",{parentName:"tr",align:null},"L/H model for cosmic ray attenuation ",(0,l.kt)("a",{parentName:"td",href:"https://arxiv.org/abs/1803.09348"},"Padovani et al. 2018"),".")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"improvedH2CRPDissociation"),(0,l.kt)("td",{parentName:"tr",align:null},".False."),(0,l.kt)("td",{parentName:"tr",align:null},"Use H2 CRP dissociation rate from ",(0,l.kt)("a",{parentName:"td",href:"https://arxiv.org/abs/1809.04168"},"Padovani et al. 2018b"),".")))),(0,l.kt)("h2",{id:"input-and-output"},"Input and Output"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Parameter"),(0,l.kt)("th",{parentName:"tr",align:null},"Default Value"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"outputFile"),(0,l.kt)("td",{parentName:"tr",align:null},'"output/full.dat"'),(0,l.kt)("td",{parentName:"tr",align:null},"File to write full output of UCLCHEM. This includes physical parameter values and all abundances at every time step.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"columnFile"),(0,l.kt)("td",{parentName:"tr",align:null},'"output/column.dat"'),(0,l.kt)("td",{parentName:"tr",align:null},"File to write specific species abundances, see outSpecies.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"writeStep"),(0,l.kt)("td",{parentName:"tr",align:null},"1"),(0,l.kt)("td",{parentName:"tr",align:null},"Writing to columnFile only happens every writeStep timesteps.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"abundSaveFile"),(0,l.kt)("td",{parentName:"tr",align:null},"None"),(0,l.kt)("td",{parentName:"tr",align:null},"File to store final abundances at the end of the model so future models can use them as the initial abundances. If not provided, no file will be produced.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"abundLoadFile"),(0,l.kt)("td",{parentName:"tr",align:null},"None"),(0,l.kt)("td",{parentName:"tr",align:null},"File from which to load initial abundances for the model, created through ",(0,l.kt)("inlineCode",{parentName:"td"},"abundSaveFile"),". If not provided, the model starts from elemental gas.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"outSpecies"),(0,l.kt)("td",{parentName:"tr",align:null},"None"),(0,l.kt)("td",{parentName:"tr",align:null},"A space separated list of species to output to columnFile. Supplied as a separate list argument to most python functions, see python API docs.")))),(0,l.kt)("h2",{id:"initial-abundances"},"Initial Abundances"),(0,l.kt)("p",null,(0,l.kt)("em",{parentName:"p"},"Unless otherwise specified, we take all abundances from Jenkins et al. 2009, using the heavily depleted case from Table 4.")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Parameter"),(0,l.kt)("th",{parentName:"tr",align:null},"Default Value"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"metallicity"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Scale the abundances of all elements heavier than He by this factor.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ion"),(0,l.kt)("td",{parentName:"tr",align:null},"2"),(0,l.kt)("td",{parentName:"tr",align:null},"Sets how much elemental C is initially atomic (0")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fh"),(0,l.kt)("td",{parentName:"tr",align:null},"0.5"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of H is always 1 by definition because abundances are relative to number of H nuclei. Use fh to set how much to initially put in atomic H, the rest goes to H2.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fhe"),(0,l.kt)("td",{parentName:"tr",align:null},"0.1"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of He.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fc"),(0,l.kt)("td",{parentName:"tr",align:null},"1.77d-04"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of C.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fo"),(0,l.kt)("td",{parentName:"tr",align:null},"3.34d-04"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of O.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fn"),(0,l.kt)("td",{parentName:"tr",align:null},"6.18d-05"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of N.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fs"),(0,l.kt)("td",{parentName:"tr",align:null},"3.51d-6"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of S.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fmg"),(0,l.kt)("td",{parentName:"tr",align:null},"2.256d-06"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of Mg.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fsi"),(0,l.kt)("td",{parentName:"tr",align:null},"1.78d-06"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of Si.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fcl"),(0,l.kt)("td",{parentName:"tr",align:null},"3.39d-08"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of Cl.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fp"),(0,l.kt)("td",{parentName:"tr",align:null},"7.78d-08"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of P.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ffe"),(0,l.kt)("td",{parentName:"tr",align:null},"2.01d-7"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of Fe.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ff"),(0,l.kt)("td",{parentName:"tr",align:null},"3.6d-08"),(0,l.kt)("td",{parentName:"tr",align:null},"fp depleted 1/100 of solar from Asplund 2009.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fd"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"The following elements are not typically used. We do not recommend any particular value.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fli"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of Li.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fna"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of Na.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fpah"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Total initial abundance of PAHs.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"f15n"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Total initial abundance of 15N.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"f13c"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Total initial abundance of 13C.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"f18O"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Total initial abundance of 18O.")))),(0,l.kt)("h2",{id:"integration-controls"},"Integration Controls"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Parameter"),(0,l.kt)("th",{parentName:"tr",align:null},"Default Value"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"reltol"),(0,l.kt)("td",{parentName:"tr",align:null},"1d-8"),(0,l.kt)("td",{parentName:"tr",align:null},"Relative tolerance for integration, see ",(0,l.kt)("a",{parentName:"td",href:"/docs/trouble-integration"},"integration docs")," for advice.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"abstol_factor"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0d-14"),(0,l.kt)("td",{parentName:"tr",align:null},"Absolute tolerance for integration is calculated by multiplying species abundance by this factor.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"abstol_min"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0d-25"),(0,l.kt)("td",{parentName:"tr",align:null},"Minimum value absolute tolerances can take.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"MXSTEP"),(0,l.kt)("td",{parentName:"tr",align:null},"10000"),(0,l.kt)("td",{parentName:"tr",align:null},"Maximum steps allowed in integration before warning is thrown.")))),(0,l.kt)("h2",{id:"here-be-dragons"},"Here be Dragons"),(0,l.kt)("p",null,(0,l.kt)("em",{parentName:"p"},"These are not recommended to be changed unless you know what you are doing")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Parameter"),(0,l.kt)("th",{parentName:"tr",align:null},"Default Value"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ebmaxh2"),(0,l.kt)("td",{parentName:"tr",align:null},"1.21d3"),(0,l.kt)("td",{parentName:"tr",align:null},"Maximum binding energy of species desorbed by H2 formation.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ebmaxcr"),(0,l.kt)("td",{parentName:"tr",align:null},"1.21d3"),(0,l.kt)("td",{parentName:"tr",align:null},"Maximum binding energy of species desorbed by cosmic ray ionisation.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ebmaxuvcr"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0d4"),(0,l.kt)("td",{parentName:"tr",align:null},"Maximum binding energy of species desorbed by UV photons.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"epsilon"),(0,l.kt)("td",{parentName:"tr",align:null},"0.01"),(0,l.kt)("td",{parentName:"tr",align:null},"Number of molecules desorbed per H2 formation.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"uv_yield"),(0,l.kt)("td",{parentName:"tr",align:null},"0.1"),(0,l.kt)("td",{parentName:"tr",align:null},"Number of molecules desorbed per UV photon.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"phi"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0d5"),(0,l.kt)("td",{parentName:"tr",align:null},"Number of molecules desorbed per cosmic ray ionisation.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"uvcreff"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0d-3"),(0,l.kt)("td",{parentName:"tr",align:null},"Ratio of CR induced UV photons to ISRF UV photons.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"omega"),(0,l.kt)("td",{parentName:"tr",align:null},"0.5"),(0,l.kt)("td",{parentName:"tr",align:null},"Dust grain albedo.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"alpha"),(0,l.kt)("td",{parentName:"tr",align:null},"{1:0.0,2:0.0}"),(0,l.kt)("td",{parentName:"tr",align:null},"Set alpha coeffecients of reactions using a python dictionary where keys are reaction numbers and values are the coefficients. Once you do this, you cannot return to the default value in the same python script or without restarting the kernel in iPython. See the chemistry docs for how alpha is used for each reaction type.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"beta"),(0,l.kt)("td",{parentName:"tr",align:null},"{1:0.0,2:0.0}"),(0,l.kt)("td",{parentName:"tr",align:null},"Set beta coeffecients of reactions using a python dictionary where keys are reaction numbers and values are the coefficients. Once you do this, you cannot return to the default value in the same python script or without restarting the kernel in iPython. See the chemistry docs for how beta is used for each reaction type.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"gama"),(0,l.kt)("td",{parentName:"tr",align:null},"{1:0.0,2:0.0}"),(0,l.kt)("td",{parentName:"tr",align:null},"Set gama coeffecients of reactions using a python dictionary where keys are reaction numbers and values are the coefficients. Once you do this, you cannot return to the default value in the same python script or without restarting the kernel in iPython. See the chemistry docs for how gama is used for each reaction type.")))))}N.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4029de32.c9c2cbb6.js b/assets/js/4029de32.c9c2cbb6.js deleted file mode 100644 index 62ef96aa..00000000 --- a/assets/js/4029de32.c9c2cbb6.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5973],{3905:(t,a,e)=>{e.d(a,{Zo:()=>s,kt:()=>N});var n=e(7294);function r(t,a,e){return a in t?Object.defineProperty(t,a,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[a]=e,t}function l(t,a){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);a&&(n=n.filter((function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable}))),e.push.apply(e,n)}return e}function i(t){for(var a=1;a=0||(r[e]=t[e]);return r}(t,a);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,e)&&(r[e]=t[e])}return r}var p=n.createContext({}),o=function(t){var a=n.useContext(p),e=a;return t&&(e="function"==typeof t?t(a):i(i({},a),t)),e},s=function(t){var a=o(t.components);return n.createElement(p.Provider,{value:a},t.children)},d={inlineCode:"code",wrapper:function(t){var a=t.children;return n.createElement(n.Fragment,{},a)}},u=n.forwardRef((function(t,a){var e=t.components,r=t.mdxType,l=t.originalType,p=t.parentName,s=m(t,["components","mdxType","originalType","parentName"]),u=o(e),N=r,k=u["".concat(p,".").concat(N)]||u[N]||d[N]||l;return e?n.createElement(k,i(i({ref:a},s),{},{components:e})):n.createElement(k,i({ref:a},s))}));function N(t,a){var e=arguments,r=a&&a.mdxType;if("string"==typeof t||r){var l=e.length,i=new Array(l);i[0]=u;var m={};for(var p in a)hasOwnProperty.call(a,p)&&(m[p]=a[p]);m.originalType=t,m.mdxType="string"==typeof t?t:r,i[1]=m;for(var o=2;o{e.r(a),e.d(a,{assets:()=>s,contentTitle:()=>p,default:()=>N,frontMatter:()=>m,metadata:()=>o,toc:()=>d});var n=e(7462),r=e(3366),l=(e(7294),e(3905)),i=["components"],m={id:"parameters",title:"Model Parameters"},p=void 0,o={unversionedId:"parameters",id:"version-v3.2.0/parameters",title:"Model Parameters",description:"UCLCHEM will default to these values unless they are overridden by user. Users can override these by adding the variable name as written here in the paramdict argument of any UCLCHEM model function. paramdict is not case sensitive.",source:"@site/versioned_docs/version-v3.2.0/start-parameters.md",sourceDirName:".",slug:"/parameters",permalink:"/docs/parameters",tags:[],version:"v3.2.0",frontMatter:{id:"parameters",title:"Model Parameters"},sidebar:"docs",previous:{title:"Creating a Network",permalink:"/docs/network"},next:{title:"Python Reference",permalink:"/docs/pythonapi"}},s={},d=[{value:"Physical Variables",id:"physical-variables",level:2},{value:"Behavioural Controls",id:"behavioural-controls",level:2},{value:"Input and Output",id:"input-and-output",level:2},{value:"Initial Abundances",id:"initial-abundances",level:2},{value:"Integration Controls",id:"integration-controls",level:2},{value:"Here be Dragons",id:"here-be-dragons",level:2}],u={toc:d};function N(t){var a=t.components,e=(0,r.Z)(t,i);return(0,l.kt)("wrapper",(0,n.Z)({},u,e,{components:a,mdxType:"MDXLayout"}),(0,l.kt)("p",null,"UCLCHEM will default to these values unless they are overridden by user. Users can override these by adding the variable name as written here in the param_dict argument of any UCLCHEM model function. param_dict is not case sensitive."),(0,l.kt)("h2",{id:"physical-variables"},"Physical Variables"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Parameter"),(0,l.kt)("th",{parentName:"tr",align:null},"Default Value"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"initialTemp"),(0,l.kt)("td",{parentName:"tr",align:null},"10.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Initial gas temperature in Kelvin for all gas parcels in model.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"initialDens"),(0,l.kt)("td",{parentName:"tr",align:null},"1.00d2"),(0,l.kt)("td",{parentName:"tr",align:null},"Initial gas density in H nuclei per cm",(0,l.kt)("span",{parentName:"td",className:"math math-inline"},(0,l.kt)("span",{parentName:"span",className:"katex"},(0,l.kt)("span",{parentName:"span",className:"katex-mathml"},(0,l.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,l.kt)("semantics",{parentName:"math"},(0,l.kt)("mrow",{parentName:"semantics"},(0,l.kt)("msup",{parentName:"mrow"},(0,l.kt)("mrow",{parentName:"msup"}),(0,l.kt)("mrow",{parentName:"msup"},(0,l.kt)("mo",{parentName:"mrow"},"\u2212"),(0,l.kt)("mn",{parentName:"mrow"},"3")))),(0,l.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-3}")))),(0,l.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,l.kt)("span",{parentName:"span",className:"base"},(0,l.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,l.kt)("span",{parentName:"span",className:"mord"},(0,l.kt)("span",{parentName:"span"}),(0,l.kt)("span",{parentName:"span",className:"msupsub"},(0,l.kt)("span",{parentName:"span",className:"vlist-t"},(0,l.kt)("span",{parentName:"span",className:"vlist-r"},(0,l.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,l.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,l.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,l.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,l.kt)("span",{parentName:"span",className:"mord mtight"},(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"3")))))))))))))," for all gas parcels in model.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"finalDens"),(0,l.kt)("td",{parentName:"tr",align:null},"1.00d5"),(0,l.kt)("td",{parentName:"tr",align:null},"Final gas density achieved via freefall.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"currentTime"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Time at start of model in years.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"finalTime"),(0,l.kt)("td",{parentName:"tr",align:null},"5.0d6"),(0,l.kt)("td",{parentName:"tr",align:null},"Time to stop model in years, if not using ",(0,l.kt)("inlineCode",{parentName:"td"},"endAtFinalDensity")," below.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"radfield"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Interstellar radiation field in Habing")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"zeta"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Cosmic ray ionisation rate as multiple of ",(0,l.kt)("span",{parentName:"td",className:"math math-inline"},(0,l.kt)("span",{parentName:"span",className:"katex"},(0,l.kt)("span",{parentName:"span",className:"katex-mathml"},(0,l.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,l.kt)("semantics",{parentName:"math"},(0,l.kt)("mrow",{parentName:"semantics"},(0,l.kt)("mn",{parentName:"mrow"},"1.31"),(0,l.kt)("msup",{parentName:"mrow"},(0,l.kt)("mn",{parentName:"msup"},"0"),(0,l.kt)("mrow",{parentName:"msup"},(0,l.kt)("mo",{parentName:"mrow"},"\u2212"),(0,l.kt)("mn",{parentName:"mrow"},"17"))),(0,l.kt)("msup",{parentName:"mrow"},(0,l.kt)("mi",{parentName:"msup"},"s"),(0,l.kt)("mrow",{parentName:"msup"},(0,l.kt)("mo",{parentName:"mrow"},"\u2212"),(0,l.kt)("mn",{parentName:"mrow"},"1")))),(0,l.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"1.3 10^{-17} s^{-1}")))),(0,l.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,l.kt)("span",{parentName:"span",className:"base"},(0,l.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,l.kt)("span",{parentName:"span",className:"mord"},"1"),(0,l.kt)("span",{parentName:"span",className:"mord"},"."),(0,l.kt)("span",{parentName:"span",className:"mord"},"3"),(0,l.kt)("span",{parentName:"span",className:"mord"},"1"),(0,l.kt)("span",{parentName:"span",className:"mord"},(0,l.kt)("span",{parentName:"span",className:"mord"},"0"),(0,l.kt)("span",{parentName:"span",className:"msupsub"},(0,l.kt)("span",{parentName:"span",className:"vlist-t"},(0,l.kt)("span",{parentName:"span",className:"vlist-r"},(0,l.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,l.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,l.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,l.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,l.kt)("span",{parentName:"span",className:"mord mtight"},(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"1"),(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"7"))))))))),(0,l.kt)("span",{parentName:"span",className:"mord"},(0,l.kt)("span",{parentName:"span",className:"mord mathnormal"},"s"),(0,l.kt)("span",{parentName:"span",className:"msupsub"},(0,l.kt)("span",{parentName:"span",className:"vlist-t"},(0,l.kt)("span",{parentName:"span",className:"vlist-r"},(0,l.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,l.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,l.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,l.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,l.kt)("span",{parentName:"span",className:"mord mtight"},(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))))))))))))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"rout"),(0,l.kt)("td",{parentName:"tr",align:null},"0.05"),(0,l.kt)("td",{parentName:"tr",align:null},"Outer radius of cloud being modelled in pc.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"rin"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Minimum radial distance from cloud centre to consider.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"baseAv"),(0,l.kt)("td",{parentName:"tr",align:null},"2.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Extinction at cloud edge, Av of a parcel at rout.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"points"),(0,l.kt)("td",{parentName:"tr",align:null},"1"),(0,l.kt)("td",{parentName:"tr",align:null},"Number of gas parcels equally spaced between rin to rout to consider")))),(0,l.kt)("h2",{id:"behavioural-controls"},"Behavioural Controls"),(0,l.kt)("p",null,(0,l.kt)("em",{parentName:"p"},"The following parameters generally turn on or off features of the model. If a parameter is set to ",(0,l.kt)("inlineCode",{parentName:"em"},"True"),", then it is turned on. If it is set to ",(0,l.kt)("inlineCode",{parentName:"em"},"False"),", then it is turned off.")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Parameter"),(0,l.kt)("th",{parentName:"tr",align:null},"Default Value"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"freezeFactor"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Modify freeze out rate of gas parcels by this factor.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"endAtFinalDensity"),(0,l.kt)("td",{parentName:"tr",align:null},".False."),(0,l.kt)("td",{parentName:"tr",align:null},"Choose to end model at final density, otherwise end at final time.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"freefall"),(0,l.kt)("td",{parentName:"tr",align:null},".False."),(0,l.kt)("td",{parentName:"tr",align:null},"Controls whether models density increaes following freefall equation.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"freefallFactor"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Modify freefall rate by factor, usually to slow it.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"desorb"),(0,l.kt)("td",{parentName:"tr",align:null},".True."),(0,l.kt)("td",{parentName:"tr",align:null},"Toggles all non-thermal desoprtion processes on or off.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"h2desorb"),(0,l.kt)("td",{parentName:"tr",align:null},".True."),(0,l.kt)("td",{parentName:"tr",align:null},"Individually toggle non-thermal desorption due to H2 formation.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"crdesorb"),(0,l.kt)("td",{parentName:"tr",align:null},".True."),(0,l.kt)("td",{parentName:"tr",align:null},"Individually toggle non-thermal desorption due to cosmic rays.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"uvdesorb"),(0,l.kt)("td",{parentName:"tr",align:null},".True."),(0,l.kt)("td",{parentName:"tr",align:null},"Individually toggle non-thermal desorption due to uv photons.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"thermdesorb"),(0,l.kt)("td",{parentName:"tr",align:null},".True."),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle continuous thermal desorption.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"instantSublimation"),(0,l.kt)("td",{parentName:"tr",align:null},".False."),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle instantaneous sublimation of the ices at t")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"cosmicRayAttenuation"),(0,l.kt)("td",{parentName:"tr",align:null},".False."),(0,l.kt)("td",{parentName:"tr",align:null},"Use column density to attenuate cosmic ray ionisation rate following ",(0,l.kt)("a",{parentName:"td",href:"https://arxiv.org/abs/1803.09348"},"Padovani et al. 2018"),".")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ionModel"),(0,l.kt)("td",{parentName:"tr",align:null},"'L'"),(0,l.kt)("td",{parentName:"tr",align:null},"L/H model for cosmic ray attenuation ",(0,l.kt)("a",{parentName:"td",href:"https://arxiv.org/abs/1803.09348"},"Padovani et al. 2018"),".")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"improvedH2CRPDissociation"),(0,l.kt)("td",{parentName:"tr",align:null},".False."),(0,l.kt)("td",{parentName:"tr",align:null},"Use H2 CRP dissociation rate from ",(0,l.kt)("a",{parentName:"td",href:"https://arxiv.org/abs/1809.04168"},"Padovani et al. 2018b"),".")))),(0,l.kt)("h2",{id:"input-and-output"},"Input and Output"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Parameter"),(0,l.kt)("th",{parentName:"tr",align:null},"Default Value"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"outputFile"),(0,l.kt)("td",{parentName:"tr",align:null},'"output/full.dat"'),(0,l.kt)("td",{parentName:"tr",align:null},"File to write full output of UCLCHEM. This includes physical parameter values and all abundances at every time step.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"columnFile"),(0,l.kt)("td",{parentName:"tr",align:null},'"output/column.dat"'),(0,l.kt)("td",{parentName:"tr",align:null},"File to write specific species abundances, see outSpecies.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"writeStep"),(0,l.kt)("td",{parentName:"tr",align:null},"1"),(0,l.kt)("td",{parentName:"tr",align:null},"Writing to columnFile only happens every writeStep timesteps.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"abundSaveFile"),(0,l.kt)("td",{parentName:"tr",align:null},"None"),(0,l.kt)("td",{parentName:"tr",align:null},"File to store final abundances at the end of the model so future models can use them as the initial abundances. If not provided, no file will be produced.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"abundLoadFile"),(0,l.kt)("td",{parentName:"tr",align:null},"None"),(0,l.kt)("td",{parentName:"tr",align:null},"File from which to load initial abundances for the model, created through ",(0,l.kt)("inlineCode",{parentName:"td"},"abundSaveFile"),". If not provided, the model starts from elemental gas.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"outSpecies"),(0,l.kt)("td",{parentName:"tr",align:null},"None"),(0,l.kt)("td",{parentName:"tr",align:null},"A space separated list of species to output to columnFile. Supplied as a separate list argument to most python functions, see python API docs.")))),(0,l.kt)("h2",{id:"initial-abundances"},"Initial Abundances"),(0,l.kt)("p",null,(0,l.kt)("em",{parentName:"p"},"Unless otherwise specified, we take all abundances from Jenkins et al. 2009, using the heavily depleted case from Table 4.")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Parameter"),(0,l.kt)("th",{parentName:"tr",align:null},"Default Value"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"metallicity"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Scale the abundances of all elements heavier than He by this factor.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ion"),(0,l.kt)("td",{parentName:"tr",align:null},"2"),(0,l.kt)("td",{parentName:"tr",align:null},"Sets how much elemental C is initially atomic (0")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fh"),(0,l.kt)("td",{parentName:"tr",align:null},"0.5"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of H is always 1 by definition because abundances are relative to number of H nuclei. Use fh to set how much to initially put in atomic H, the rest goes to H2.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fhe"),(0,l.kt)("td",{parentName:"tr",align:null},"0.1"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of He.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fc"),(0,l.kt)("td",{parentName:"tr",align:null},"1.77d-04"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of C.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fo"),(0,l.kt)("td",{parentName:"tr",align:null},"3.34d-04"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of O.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fn"),(0,l.kt)("td",{parentName:"tr",align:null},"6.18d-05"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of N.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fs"),(0,l.kt)("td",{parentName:"tr",align:null},"3.51d-6"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of S.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fmg"),(0,l.kt)("td",{parentName:"tr",align:null},"2.256d-06"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of Mg.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fsi"),(0,l.kt)("td",{parentName:"tr",align:null},"1.78d-06"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of Si.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fcl"),(0,l.kt)("td",{parentName:"tr",align:null},"3.39d-08"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of Cl.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fp"),(0,l.kt)("td",{parentName:"tr",align:null},"7.78d-08"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of P.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ffe"),(0,l.kt)("td",{parentName:"tr",align:null},"2.01d-7"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of Fe.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ff"),(0,l.kt)("td",{parentName:"tr",align:null},"3.6d-08"),(0,l.kt)("td",{parentName:"tr",align:null},"fp depleted 1/100 of solar from Asplund 2009.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fd"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"The following elements are not typically used. We do not recommend any particular value.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fli"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of Li.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fna"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of Na.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fpah"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Total initial abundance of PAHs.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"f15n"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Total initial abundance of 15N.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"f13c"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Total initial abundance of 13C.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"f18O"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Total initial abundance of 18O.")))),(0,l.kt)("h2",{id:"integration-controls"},"Integration Controls"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Parameter"),(0,l.kt)("th",{parentName:"tr",align:null},"Default Value"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"reltol"),(0,l.kt)("td",{parentName:"tr",align:null},"1d-8"),(0,l.kt)("td",{parentName:"tr",align:null},"Relative tolerance for integration, see ",(0,l.kt)("a",{parentName:"td",href:"/docs/trouble-integration"},"integration docs")," for advice.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"abstol_factor"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0d-14"),(0,l.kt)("td",{parentName:"tr",align:null},"Absolute tolerance for integration is calculated by multiplying species abundance by this factor.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"abstol_min"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0d-25"),(0,l.kt)("td",{parentName:"tr",align:null},"Minimum value absolute tolerances can take.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"MXSTEP"),(0,l.kt)("td",{parentName:"tr",align:null},"10000"),(0,l.kt)("td",{parentName:"tr",align:null},"Maximum steps allowed in integration before warning is thrown.")))),(0,l.kt)("h2",{id:"here-be-dragons"},"Here be Dragons"),(0,l.kt)("p",null,(0,l.kt)("em",{parentName:"p"},"These are not recommended to be changed unless you know what you are doing")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Parameter"),(0,l.kt)("th",{parentName:"tr",align:null},"Default Value"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ebmaxh2"),(0,l.kt)("td",{parentName:"tr",align:null},"1.21d3"),(0,l.kt)("td",{parentName:"tr",align:null},"Maximum binding energy of species desorbed by H2 formation.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ebmaxcr"),(0,l.kt)("td",{parentName:"tr",align:null},"1.21d3"),(0,l.kt)("td",{parentName:"tr",align:null},"Maximum binding energy of species desorbed by cosmic ray ionisation.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ebmaxuvcr"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0d4"),(0,l.kt)("td",{parentName:"tr",align:null},"Maximum binding energy of species desorbed by UV photons.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"epsilon"),(0,l.kt)("td",{parentName:"tr",align:null},"0.01"),(0,l.kt)("td",{parentName:"tr",align:null},"Number of molecules desorbed per H2 formation.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"uv_yield"),(0,l.kt)("td",{parentName:"tr",align:null},"0.1"),(0,l.kt)("td",{parentName:"tr",align:null},"Number of molecules desorbed per UV photon.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"phi"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0d5"),(0,l.kt)("td",{parentName:"tr",align:null},"Number of molecules desorbed per cosmic ray ionisation.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"uvcreff"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0d-3"),(0,l.kt)("td",{parentName:"tr",align:null},"Ratio of CR induced UV photons to ISRF UV photons.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"omega"),(0,l.kt)("td",{parentName:"tr",align:null},"0.5"),(0,l.kt)("td",{parentName:"tr",align:null},"Dust grain albedo.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"alpha"),(0,l.kt)("td",{parentName:"tr",align:null},"{1:0.0,2:0.0}"),(0,l.kt)("td",{parentName:"tr",align:null},"Set alpha coeffecients of reactions using a python dictionary where keys are reaction numbers and values are the coefficients. Once you do this, you cannot return to the default value in the same python script or without restarting the kernel in iPython. See the chemistry docs for how alpha is used for each reaction type.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"beta"),(0,l.kt)("td",{parentName:"tr",align:null},"{1:0.0,2:0.0}"),(0,l.kt)("td",{parentName:"tr",align:null},"Set beta coeffecients of reactions using a python dictionary where keys are reaction numbers and values are the coefficients. Once you do this, you cannot return to the default value in the same python script or without restarting the kernel in iPython. See the chemistry docs for how beta is used for each reaction type.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"gama"),(0,l.kt)("td",{parentName:"tr",align:null},"{1:0.0,2:0.0}"),(0,l.kt)("td",{parentName:"tr",align:null},"Set gama coeffecients of reactions using a python dictionary where keys are reaction numbers and values are the coefficients. Once you do this, you cannot return to the default value in the same python script or without restarting the kernel in iPython. See the chemistry docs for how gama is used for each reaction type.")))))}N.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/43cd5493.1a43fb72.js b/assets/js/43cd5493.1a43fb72.js deleted file mode 100644 index 740d4e11..00000000 --- a/assets/js/43cd5493.1a43fb72.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4401],{3905:(a,e,t)=>{t.d(e,{Zo:()=>i,kt:()=>o});var s=t(7294);function m(a,e,t){return e in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function n(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.push.apply(t,s)}return t}function p(a){for(var e=1;e=0||(m[t]=a[t]);return m}(a,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(a);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(a,t)&&(m[t]=a[t])}return m}var N=s.createContext({}),l=function(a){var e=s.useContext(N),t=e;return a&&(t="function"==typeof a?a(e):p(p({},e),a)),t},i=function(a){var e=l(a.components);return s.createElement(N.Provider,{value:e},a.children)},k={inlineCode:"code",wrapper:function(a){var e=a.children;return s.createElement(s.Fragment,{},e)}},c=s.forwardRef((function(a,e){var t=a.components,m=a.mdxType,n=a.originalType,N=a.parentName,i=r(a,["components","mdxType","originalType","parentName"]),c=l(t),o=m,h=c["".concat(N,".").concat(o)]||c[o]||k[o]||n;return t?s.createElement(h,p(p({ref:e},i),{},{components:t})):s.createElement(h,p({ref:e},i))}));function o(a,e){var t=arguments,m=e&&e.mdxType;if("string"==typeof a||m){var n=t.length,p=new Array(n);p[0]=c;var r={};for(var N in e)hasOwnProperty.call(e,N)&&(r[N]=e[N]);r.originalType=a,r.mdxType="string"==typeof a?a:m,p[1]=r;for(var l=2;l{t.r(e),t.d(e,{assets:()=>i,contentTitle:()=>N,default:()=>o,frontMatter:()=>r,metadata:()=>l,toc:()=>k});var s=t(7462),m=t(3366),n=(t(7294),t(3905)),p=["components"],r={id:"gas",title:"Gas Phase Reactions"},N=void 0,l={unversionedId:"gas",id:"gas",title:"Gas Phase Reactions",description:"Gas phase ODEs",source:"@site/docs/chem-gas.md",sourceDirName:".",slug:"/gas",permalink:"/docs/next/gas",tags:[],version:"current",lastUpdatedBy:"jonholdship",lastUpdatedAt:1651073142,formattedLastUpdatedAt:"4/27/2022",frontMatter:{id:"gas",title:"Gas Phase Reactions"},sidebar:"docs",previous:{title:"Chemistry",permalink:"/docs/next/category/chemistry"},next:{title:"Grain Surface Reactions",permalink:"/docs/next/grain"}},i={},k=[{value:"Gas phase ODEs",id:"gas-phase-odes",level:2},{value:"Reaction Rates",id:"reaction-rates",level:2}],c={toc:k};function o(a){var e=a.components,t=(0,m.Z)(a,p);return(0,n.kt)("wrapper",(0,s.Z)({},c,t,{components:e,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"gas-phase-odes"},"Gas phase ODEs"),(0,n.kt)("p",null,"The rate of change of the concentration of a gas phase species due to a single two body reaction is"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"i"))),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mi",{parentName:"mrow"},"k"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"j")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"k"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dn_i}{dt} = k_{jk} n_j n_k")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.05744em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03148em"}},"k"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03148em"}},"k")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))),(0,n.kt)("p",null,"where ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mi",{parentName:"mrow"},"k")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k_{jk}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03148em"}},"k"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the rate of that reaction in units of ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"c"),(0,n.kt)("msup",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msup"},"m"),(0,n.kt)("mn",{parentName:"msup"},"3")),(0,n.kt)("msup",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msup"},"s"),(0,n.kt)("mrow",{parentName:"msup"},(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mn",{parentName:"mrow"},"1")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"cm^{3} s^{-1}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"c"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"m"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},"3"))))))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"s"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))))))))))),". Since we work in fractional abundances rather than concentrations, we can remove factors of ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"H"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_H")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," since ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"j")),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"j")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"H"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_j=X_jn_H")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.716668em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.969438em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"i"))),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mi",{parentName:"mrow"},"k"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"j")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"k")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"H"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dX_i}{dt} = k_{jk} X_j X_k n_H")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.05744em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03148em"}},"k"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03148em"}},"k")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))),(0,n.kt)("p",null,"For reactions between involving only a single body such as ionization by a cosmic ray, we have"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"i"))),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mi",{parentName:"msub"},"i")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"i"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dX_i}{dt} = k_{i} X_i")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.05744em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.84444em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))),(0,n.kt)("p",null,"The total rate of change of the fractional abundance of a species due to gas phase reactions is then just the sum of these terms for all reactions where it is a product minus the sum of all reactions where it is a reactant."),(0,n.kt)("p",null,"As a rule, any part of a reaction ODE which does not depend on abundance (eg the rate itself) is calculated between timesteps by the subroutine ",(0,n.kt)("inlineCode",{parentName:"p"},"calculateReactionRates")," in ",(0,n.kt)("inlineCode",{parentName:"p"},"rates.f90"),". The abundances are include in the ODE calculation itself so they can be updated between steps by the solver."),(0,n.kt)("h2",{id:"reaction-rates"},"Reaction Rates"),(0,n.kt)("p",null,"Gas phase chemistry in UCLCHEM uses the UMIST12 database. This is a database listing reactants and products with up to three rate constants which we label ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"\u03b1"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"\u03b2"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"n"),(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"\u03b3")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\alpha, \\beta, and \\gamma")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8888799999999999em",verticalAlign:"-0.19444em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,n.kt)("span",{parentName:"span",className:"mpunct"},","),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05278em"}},"\u03b2"),(0,n.kt)("span",{parentName:"span",className:"mpunct"},","),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05556em"}},"\u03b3")))))," for thousands of gas phase reactions. We briefly list here the way in which the rates in the above equations are calculated for each reaction type and more information can be found in ",(0,n.kt)("a",{parentName:"p",href:"https://ui.adsabs.harvard.edu/abs/2013A&A...550A..36M/abstract"},"McElroy et al. 2013")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Two Body Reactions")," use the Kooji-Arrhenius equation."),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"k"),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mi",{parentName:"mrow"},"\u03b1"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"mfrac"},"T"),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mn",{parentName:"mrow"},"300"),(0,n.kt)("mi",{parentName:"mrow"},"K"))),(0,n.kt)("msup",{parentName:"mrow"},(0,n.kt)("mo",{parentName:"msup",stretchy:"false"},")"),(0,n.kt)("mi",{parentName:"msup"},"\u03b2")),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"x"),(0,n.kt)("mi",{parentName:"mrow"},"p"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"\u03b3"),(0,n.kt)("mi",{parentName:"mrow",mathvariant:"normal"},"/"),(0,n.kt)("mi",{parentName:"mrow"},"T"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k = \\alpha (\\frac{T}{300K})^\\beta exp(-\\gamma/T)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.04633em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"3"),(0,n.kt)("span",{parentName:"span",className:"mord"},"0"),(0,n.kt)("span",{parentName:"span",className:"mord"},"0"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8991079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-3.1130000000000004em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05278em"}},"\u03b2")))))))),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"x"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"p"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05556em"}},"\u03b3"),(0,n.kt)("span",{parentName:"span",className:"mord"},"/"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Cosmic Ray Protons")),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"k"),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mi",{parentName:"mrow"},"\u03b1"),(0,n.kt)("mi",{parentName:"mrow"},"\u03b6")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k = \\alpha \\zeta")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8888799999999999em",verticalAlign:"-0.19444em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07378em"}},"\u03b6")))))),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Cosmic Ray induced photons")),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"k"),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mi",{parentName:"mrow"},"\u03b1"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"mfrac"},"T"),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mn",{parentName:"mrow"},"300"),(0,n.kt)("mi",{parentName:"mrow"},"K"))),(0,n.kt)("msup",{parentName:"mrow"},(0,n.kt)("mo",{parentName:"msup",stretchy:"false"},")"),(0,n.kt)("mi",{parentName:"msup"},"\u03b2")),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"mfrac"},"E"),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mn",{parentName:"mrow"},"1"),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"\u03c9"))),(0,n.kt)("mi",{parentName:"mrow"},"\u03b6")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k = \\alpha (\\frac{T}{300K})^\\beta \\frac{E}{1-\\omega} \\zeta")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.1296600000000003em",verticalAlign:"-0.7693300000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"3"),(0,n.kt)("span",{parentName:"span",className:"mord"},"0"),(0,n.kt)("span",{parentName:"span",className:"mord"},"0"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8991079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-3.1130000000000004em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05278em"}},"\u03b2")))))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"1"),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,n.kt)("span",{parentName:"span",className:"mbin"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"\u03c9"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05764em"}},"E")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.7693300000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07378em"}},"\u03b6")))))),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"UV Photons")),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"k"),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mi",{parentName:"mrow"},"\u03b1"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"F"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"U"),(0,n.kt)("mi",{parentName:"mrow"},"V"))),(0,n.kt)("mi",{parentName:"mrow"},"exp"),(0,n.kt)("mo",{parentName:"mrow"},"\u2061"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"k"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"A"),(0,n.kt)("mi",{parentName:"msub"},"v")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k = \\alpha F_{UV}\\exp(-kA_v)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"F"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.13889em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10903em"}},"U"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.22222em"}},"V"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,n.kt)("span",{parentName:"span",className:"mop"},"exp"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03588em"}},"v")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,"where ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"\u03b6")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\zeta")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8888799999999999em",verticalAlign:"-0.19444em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07378em"}},"\u03b6")))))," is the cosmic ray ionization rate in units of 1.3 10",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msup",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"msup"}),(0,n.kt)("mo",{parentName:"msup"},"\u2212")),(0,n.kt)("mn",{parentName:"mrow"},"17")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^-17")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span"}),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mbin mtight"},"\u2212")))))))),(0,n.kt)("span",{parentName:"span",className:"mord"},"1"),(0,n.kt)("span",{parentName:"span",className:"mord"},"7")))))," s",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msup",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"msup"}),(0,n.kt)("mrow",{parentName:"msup"},(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mn",{parentName:"mrow"},"1")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-1}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span"}),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))))))))))),", E is the efficiency with which cosmic rays cause ionization, ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"\u03c9")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\omega")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.43056em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"\u03c9")))))," is the dust grain albedo, ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"F"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"U"),(0,n.kt)("mi",{parentName:"mrow"},"V"))),(0,n.kt)("mi",{parentName:"mrow"},"exp"),(0,n.kt)("mo",{parentName:"mrow"},"\u2061"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"k"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"A"),(0,n.kt)("mi",{parentName:"msub"},"v")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"F_{UV} \\exp(-kA_v)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"F"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.13889em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10903em"}},"U"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.22222em"}},"V"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,n.kt)("span",{parentName:"span",className:"mop"},"exp"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03588em"}},"v")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))," is the attenuated UV field."))}o.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/43cd5493.8220f700.js b/assets/js/43cd5493.8220f700.js new file mode 100644 index 00000000..506ca565 --- /dev/null +++ b/assets/js/43cd5493.8220f700.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4401],{3905:(a,e,t)=>{t.d(e,{Zo:()=>i,kt:()=>o});var s=t(7294);function m(a,e,t){return e in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function n(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.push.apply(t,s)}return t}function p(a){for(var e=1;e=0||(m[t]=a[t]);return m}(a,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(a);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(a,t)&&(m[t]=a[t])}return m}var N=s.createContext({}),l=function(a){var e=s.useContext(N),t=e;return a&&(t="function"==typeof a?a(e):p(p({},e),a)),t},i=function(a){var e=l(a.components);return s.createElement(N.Provider,{value:e},a.children)},k={inlineCode:"code",wrapper:function(a){var e=a.children;return s.createElement(s.Fragment,{},e)}},c=s.forwardRef((function(a,e){var t=a.components,m=a.mdxType,n=a.originalType,N=a.parentName,i=r(a,["components","mdxType","originalType","parentName"]),c=l(t),o=m,h=c["".concat(N,".").concat(o)]||c[o]||k[o]||n;return t?s.createElement(h,p(p({ref:e},i),{},{components:t})):s.createElement(h,p({ref:e},i))}));function o(a,e){var t=arguments,m=e&&e.mdxType;if("string"==typeof a||m){var n=t.length,p=new Array(n);p[0]=c;var r={};for(var N in e)hasOwnProperty.call(e,N)&&(r[N]=e[N]);r.originalType=a,r.mdxType="string"==typeof a?a:m,p[1]=r;for(var l=2;l{t.r(e),t.d(e,{assets:()=>i,contentTitle:()=>N,default:()=>o,frontMatter:()=>r,metadata:()=>l,toc:()=>k});var s=t(7462),m=t(3366),n=(t(7294),t(3905)),p=["components"],r={id:"gas",title:"Gas Phase Reactions"},N=void 0,l={unversionedId:"gas",id:"gas",title:"Gas Phase Reactions",description:"Gas phase ODEs",source:"@site/docs/chem-gas.md",sourceDirName:".",slug:"/gas",permalink:"/docs/next/gas",draft:!1,tags:[],version:"current",lastUpdatedBy:"jonholdship",lastUpdatedAt:1651073142,formattedLastUpdatedAt:"Apr 27, 2022",frontMatter:{id:"gas",title:"Gas Phase Reactions"},sidebar:"docs",previous:{title:"Notation",permalink:"/docs/next/notation"},next:{title:"Grain Surface Reactions",permalink:"/docs/next/grain"}},i={},k=[{value:"Gas phase ODEs",id:"gas-phase-odes",level:2},{value:"Reaction Rates",id:"reaction-rates",level:2}],c={toc:k};function o(a){var e=a.components,t=(0,m.Z)(a,p);return(0,n.kt)("wrapper",(0,s.Z)({},c,t,{components:e,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"gas-phase-odes"},"Gas phase ODEs"),(0,n.kt)("p",null,"The rate of change of the concentration of a gas phase species due to a single two body reaction is"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"i"))),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mi",{parentName:"mrow"},"k"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"j")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"k"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dn_i}{dt} = k_{jk} n_j n_k")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.05744em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03148em"}},"k"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03148em"}},"k")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))),(0,n.kt)("p",null,"where ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mi",{parentName:"mrow"},"k")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k_{jk}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03148em"}},"k"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the rate of that reaction in units of ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"c"),(0,n.kt)("msup",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msup"},"m"),(0,n.kt)("mn",{parentName:"msup"},"3")),(0,n.kt)("msup",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msup"},"s"),(0,n.kt)("mrow",{parentName:"msup"},(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mn",{parentName:"mrow"},"1")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"cm^{3} s^{-1}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"c"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"m"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},"3"))))))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"s"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))))))))))),". Since we work in fractional abundances rather than concentrations, we can remove factors of ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"H"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_H")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," since ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"j")),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"j")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"H"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_j=X_jn_H")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.716668em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.969438em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"i"))),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mi",{parentName:"mrow"},"k"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"j")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"k")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"H"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dX_i}{dt} = k_{jk} X_j X_k n_H")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.05744em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03148em"}},"k"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03148em"}},"k")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))),(0,n.kt)("p",null,"For reactions between involving only a single body such as ionization by a cosmic ray, we have"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"i"))),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mi",{parentName:"msub"},"i")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"i"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dX_i}{dt} = k_{i} X_i")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.05744em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.84444em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))),(0,n.kt)("p",null,"The total rate of change of the fractional abundance of a species due to gas phase reactions is then just the sum of these terms for all reactions where it is a product minus the sum of all reactions where it is a reactant."),(0,n.kt)("p",null,"As a rule, any part of a reaction ODE which does not depend on abundance (eg the rate itself) is calculated between timesteps by the subroutine ",(0,n.kt)("inlineCode",{parentName:"p"},"calculateReactionRates")," in ",(0,n.kt)("inlineCode",{parentName:"p"},"rates.f90"),". The abundances are include in the ODE calculation itself so they can be updated between steps by the solver."),(0,n.kt)("h2",{id:"reaction-rates"},"Reaction Rates"),(0,n.kt)("p",null,"Gas phase chemistry in UCLCHEM uses the UMIST12 database. This is a database listing reactants and products with up to three rate constants which we label ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"\u03b1"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"\u03b2"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"n"),(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"\u03b3")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\alpha, \\beta, and \\gamma")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8888799999999999em",verticalAlign:"-0.19444em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,n.kt)("span",{parentName:"span",className:"mpunct"},","),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05278em"}},"\u03b2"),(0,n.kt)("span",{parentName:"span",className:"mpunct"},","),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05556em"}},"\u03b3")))))," for thousands of gas phase reactions. We briefly list here the way in which the rates in the above equations are calculated for each reaction type and more information can be found in ",(0,n.kt)("a",{parentName:"p",href:"https://ui.adsabs.harvard.edu/abs/2013A&A...550A..36M/abstract"},"McElroy et al. 2013")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Two Body Reactions")," use the Kooji-Arrhenius equation."),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"k"),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mi",{parentName:"mrow"},"\u03b1"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"mfrac"},"T"),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mn",{parentName:"mrow"},"300"),(0,n.kt)("mi",{parentName:"mrow"},"K"))),(0,n.kt)("msup",{parentName:"mrow"},(0,n.kt)("mo",{parentName:"msup",stretchy:"false"},")"),(0,n.kt)("mi",{parentName:"msup"},"\u03b2")),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"x"),(0,n.kt)("mi",{parentName:"mrow"},"p"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"\u03b3"),(0,n.kt)("mi",{parentName:"mrow",mathvariant:"normal"},"/"),(0,n.kt)("mi",{parentName:"mrow"},"T"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k = \\alpha (\\frac{T}{300K})^\\beta exp(-\\gamma/T)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.04633em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"3"),(0,n.kt)("span",{parentName:"span",className:"mord"},"0"),(0,n.kt)("span",{parentName:"span",className:"mord"},"0"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8991079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-3.1130000000000004em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05278em"}},"\u03b2")))))))),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"x"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"p"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05556em"}},"\u03b3"),(0,n.kt)("span",{parentName:"span",className:"mord"},"/"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Cosmic Ray Protons")),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"k"),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mi",{parentName:"mrow"},"\u03b1"),(0,n.kt)("mi",{parentName:"mrow"},"\u03b6")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k = \\alpha \\zeta")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8888799999999999em",verticalAlign:"-0.19444em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07378em"}},"\u03b6")))))),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Cosmic Ray induced photons")),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"k"),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mi",{parentName:"mrow"},"\u03b1"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"mfrac"},"T"),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mn",{parentName:"mrow"},"300"),(0,n.kt)("mi",{parentName:"mrow"},"K"))),(0,n.kt)("msup",{parentName:"mrow"},(0,n.kt)("mo",{parentName:"msup",stretchy:"false"},")"),(0,n.kt)("mi",{parentName:"msup"},"\u03b2")),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"mfrac"},"E"),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mn",{parentName:"mrow"},"1"),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"\u03c9"))),(0,n.kt)("mi",{parentName:"mrow"},"\u03b6")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k = \\alpha (\\frac{T}{300K})^\\beta \\frac{E}{1-\\omega} \\zeta")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.1296600000000003em",verticalAlign:"-0.7693300000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"3"),(0,n.kt)("span",{parentName:"span",className:"mord"},"0"),(0,n.kt)("span",{parentName:"span",className:"mord"},"0"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8991079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-3.1130000000000004em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05278em"}},"\u03b2")))))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"1"),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,n.kt)("span",{parentName:"span",className:"mbin"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"\u03c9"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05764em"}},"E")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.7693300000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07378em"}},"\u03b6")))))),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"UV Photons")),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"k"),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mi",{parentName:"mrow"},"\u03b1"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"F"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"U"),(0,n.kt)("mi",{parentName:"mrow"},"V"))),(0,n.kt)("mi",{parentName:"mrow"},"exp"),(0,n.kt)("mo",{parentName:"mrow"},"\u2061"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"k"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"A"),(0,n.kt)("mi",{parentName:"msub"},"v")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k = \\alpha F_{UV}\\exp(-kA_v)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"F"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.13889em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10903em"}},"U"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.22222em"}},"V"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,n.kt)("span",{parentName:"span",className:"mop"},"exp"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03588em"}},"v")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,"where ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"\u03b6")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\zeta")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8888799999999999em",verticalAlign:"-0.19444em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07378em"}},"\u03b6")))))," is the cosmic ray ionization rate in units of 1.3 10",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msup",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"msup"}),(0,n.kt)("mo",{parentName:"msup"},"\u2212")),(0,n.kt)("mn",{parentName:"mrow"},"17")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^-17")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span"}),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mbin mtight"},"\u2212")))))))),(0,n.kt)("span",{parentName:"span",className:"mord"},"1"),(0,n.kt)("span",{parentName:"span",className:"mord"},"7")))))," s",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msup",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"msup"}),(0,n.kt)("mrow",{parentName:"msup"},(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mn",{parentName:"mrow"},"1")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-1}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span"}),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))))))))))),", E is the efficiency with which cosmic rays cause ionization, ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"\u03c9")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\omega")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.43056em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"\u03c9")))))," is the dust grain albedo, ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"F"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"U"),(0,n.kt)("mi",{parentName:"mrow"},"V"))),(0,n.kt)("mi",{parentName:"mrow"},"exp"),(0,n.kt)("mo",{parentName:"mrow"},"\u2061"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"k"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"A"),(0,n.kt)("mi",{parentName:"msub"},"v")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"F_{UV} \\exp(-kA_v)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"F"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.13889em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10903em"}},"U"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.22222em"}},"V"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,n.kt)("span",{parentName:"span",className:"mop"},"exp"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03588em"}},"v")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))," is the attenuated UV field."))}o.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/44815e26.7727ec8f.js b/assets/js/44815e26.7727ec8f.js deleted file mode 100644 index 4891a8cf..00000000 --- a/assets/js/44815e26.7727ec8f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9125],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>u});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),h=c(n),u=o,m=h["".concat(s,".").concat(u)]||h[u]||p[u]||a;return n?r.createElement(m,i(i({ref:t},d),{},{components:n})):r.createElement(m,i({ref:t},d))}));function u(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=h;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:o,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>s,default:()=>u,frontMatter:()=>l,metadata:()=>c,toc:()=>p});var r=n(7462),o=n(3366),a=(n(7294),n(3905)),i=["components"],l={title:"Chemical modelling of glycolaldehyde and ethylene glycol in star-forming regions",authors:"jonholdship"},s=void 0,c={permalink:"/blog/2018/03/27/audrey-coms",source:"@site/blog/2018-03-27-audrey-coms.md",title:"Chemical modelling of glycolaldehyde and ethylene glycol in star-forming regions",description:"Audrey Coutens has published modelling work on glycoaldehyde and ethylene glycol using UCLCHEM. You can find the paper here and the abstract below.",date:"2018-03-27T00:00:00.000Z",formattedDate:"March 27, 2018",tags:[],readingTime:1.405,truncated:!1,authors:[{name:"Jonathan Holdship",title:"UCLCHEM developer",url:"https://jonholdship.github.io",imageURL:"/img/jon.png",key:"jonholdship"}],frontMatter:{title:"Chemical modelling of glycolaldehyde and ethylene glycol in star-forming regions",authors:"jonholdship"},prevItem:{title:"The Chemistry of Phosphorus-bearing Molecules under Energetic Phenomena",permalink:"/blog/2018/06/20/izaskun-phosphorus"},nextItem:{title:"Chemical modelling of complex organic molecules with peptide-like bonds in star-forming regions",permalink:"/blog/2018/02/05/david-grains"}},d={authorsImageUrls:[void 0]},p=[],h={toc:p};function u(e){var t=e.components,n=(0,o.Z)(e,i);return(0,a.kt)("wrapper",(0,r.Z)({},h,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Audrey Coutens has published modelling work on glycoaldehyde and ethylene glycol using UCLCHEM. You can find ",(0,a.kt)("a",{parentName:"p",href:"https://arxiv.org/abs/1712.08778"},"the paper here")," and the abstract below."),(0,a.kt)("p",null,"Peptide bonds (N-C = O) play a key role in metabolic processes since they link amino acids into peptide chains or proteins. Recently, several molecules containing peptide-like bonds have been detected across multiple environments in the interstellar medium, growing the need to fully understand their chemistry and their role in forming larger pre-biotic molecules. We present a comprehensive study of the chemistry of three molecules containing peptide-like bonds: HNCO, NH2CHO, and CH3NCO. We also included other CHNO isomers (HCNO, HOCN) and C2H3NO isomers (CH3OCN, CH3CNO) to the study. We have used the UCLCHEM gas-grain chemical code and included in our chemical network all possible formation/destruction pathways of these peptide-like molecules recently investigated either by theoretical calculations or in laboratory experiments. Our predictions are compared to observations obtained towards the proto-star IRAS 16293-2422 and the L1544 pre-stellar core. Our results show that some key reactions involving the CHNO and C2H3NO isomers need to be modified to match the observations. Consistently with recent laboratory findings, hydrogenation is unlikely to produce NH2CHO on grain surfaces, while a combination of radical-radical surface reactions and gas-phase reactions is a better alternative. In addition, better results are obtained for NH2CHO when a slightly higher activation energy of 25 K is considered for the gas-phase reaction NH2 + H2CO \u2192 NH2CHO + H. Finally, our modelling shows that the observed correlation between NH2CHO and HNCO in star-forming regions may come from the fact that HNCO and NH2CHO react to temperature in the same manner rather than from a direct chemical link between the two species."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/44815e26.c99141b5.js b/assets/js/44815e26.c99141b5.js new file mode 100644 index 00000000..549c07f0 --- /dev/null +++ b/assets/js/44815e26.c99141b5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9125],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>u});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=c(n),u=o,m=p["".concat(s,".").concat(u)]||p[u]||h[u]||a;return n?r.createElement(m,i(i({ref:t},d),{},{components:n})):r.createElement(m,i({ref:t},d))}));function u(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=p;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:o,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>s,default:()=>u,frontMatter:()=>l,metadata:()=>c,toc:()=>h});var r=n(7462),o=n(3366),a=(n(7294),n(3905)),i=["components"],l={title:"Chemical modelling of glycolaldehyde and ethylene glycol in star-forming regions",authors:"jonholdship"},s=void 0,c={permalink:"/blog/2018/03/27/audrey-coms",source:"@site/blog/2018-03-27-audrey-coms.md",title:"Chemical modelling of glycolaldehyde and ethylene glycol in star-forming regions",description:"Audrey Coutens has published modelling work on glycoaldehyde and ethylene glycol using UCLCHEM. You can find the paper here and the abstract below.",date:"2018-03-27T00:00:00.000Z",formattedDate:"March 27, 2018",tags:[],readingTime:1.405,hasTruncateMarker:!1,authors:[{name:"Jonathan Holdship",title:"UCLCHEM developer",url:"https://jonholdship.github.io",imageURL:"/img/jon.png",key:"jonholdship"}],frontMatter:{title:"Chemical modelling of glycolaldehyde and ethylene glycol in star-forming regions",authors:"jonholdship"},prevItem:{title:"The Chemistry of Phosphorus-bearing Molecules under Energetic Phenomena",permalink:"/blog/2018/06/20/izaskun-phosphorus"},nextItem:{title:"Chemical modelling of complex organic molecules with peptide-like bonds in star-forming regions",permalink:"/blog/2018/02/05/david-grains"}},d={authorsImageUrls:[void 0]},h=[],p={toc:h};function u(e){var t=e.components,n=(0,o.Z)(e,i);return(0,a.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Audrey Coutens has published modelling work on glycoaldehyde and ethylene glycol using UCLCHEM. You can find ",(0,a.kt)("a",{parentName:"p",href:"https://arxiv.org/abs/1712.08778"},"the paper here")," and the abstract below."),(0,a.kt)("p",null,"Peptide bonds (N-C = O) play a key role in metabolic processes since they link amino acids into peptide chains or proteins. Recently, several molecules containing peptide-like bonds have been detected across multiple environments in the interstellar medium, growing the need to fully understand their chemistry and their role in forming larger pre-biotic molecules. We present a comprehensive study of the chemistry of three molecules containing peptide-like bonds: HNCO, NH2CHO, and CH3NCO. We also included other CHNO isomers (HCNO, HOCN) and C2H3NO isomers (CH3OCN, CH3CNO) to the study. We have used the UCLCHEM gas-grain chemical code and included in our chemical network all possible formation/destruction pathways of these peptide-like molecules recently investigated either by theoretical calculations or in laboratory experiments. Our predictions are compared to observations obtained towards the proto-star IRAS 16293-2422 and the L1544 pre-stellar core. Our results show that some key reactions involving the CHNO and C2H3NO isomers need to be modified to match the observations. Consistently with recent laboratory findings, hydrogenation is unlikely to produce NH2CHO on grain surfaces, while a combination of radical-radical surface reactions and gas-phase reactions is a better alternative. In addition, better results are obtained for NH2CHO when a slightly higher activation energy of 25 K is considered for the gas-phase reaction NH2 + H2CO \u2192 NH2CHO + H. Finally, our modelling shows that the observed correlation between NH2CHO and HNCO in star-forming regions may come from the fact that HNCO and NH2CHO react to temperature in the same manner rather than from a direct chemical link between the two species."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/44936c8a.8e9fa299.js b/assets/js/44936c8a.8e9fa299.js new file mode 100644 index 00000000..7fdf1c7a --- /dev/null +++ b/assets/js/44936c8a.8e9fa299.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6901],{3905:(a,e,t)=>{t.d(e,{Zo:()=>i,kt:()=>o});var s=t(7294);function m(a,e,t){return e in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function n(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.push.apply(t,s)}return t}function p(a){for(var e=1;e=0||(m[t]=a[t]);return m}(a,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(a);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(a,t)&&(m[t]=a[t])}return m}var N=s.createContext({}),l=function(a){var e=s.useContext(N),t=e;return a&&(t="function"==typeof a?a(e):p(p({},e),a)),t},i=function(a){var e=l(a.components);return s.createElement(N.Provider,{value:e},a.children)},k={inlineCode:"code",wrapper:function(a){var e=a.children;return s.createElement(s.Fragment,{},e)}},c=s.forwardRef((function(a,e){var t=a.components,m=a.mdxType,n=a.originalType,N=a.parentName,i=r(a,["components","mdxType","originalType","parentName"]),c=l(t),o=m,h=c["".concat(N,".").concat(o)]||c[o]||k[o]||n;return t?s.createElement(h,p(p({ref:e},i),{},{components:t})):s.createElement(h,p({ref:e},i))}));function o(a,e){var t=arguments,m=e&&e.mdxType;if("string"==typeof a||m){var n=t.length,p=new Array(n);p[0]=c;var r={};for(var N in e)hasOwnProperty.call(e,N)&&(r[N]=e[N]);r.originalType=a,r.mdxType="string"==typeof a?a:m,p[1]=r;for(var l=2;l{t.r(e),t.d(e,{assets:()=>i,contentTitle:()=>N,default:()=>o,frontMatter:()=>r,metadata:()=>l,toc:()=>k});var s=t(7462),m=t(3366),n=(t(7294),t(3905)),p=["components"],r={id:"gas",title:"Gas Phase Reactions"},N=void 0,l={unversionedId:"gas",id:"version-v3.2.0/gas",title:"Gas Phase Reactions",description:"Gas phase ODEs",source:"@site/versioned_docs/version-v3.2.0/chem-gas.md",sourceDirName:".",slug:"/gas",permalink:"/docs/gas",draft:!1,tags:[],version:"v3.2.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"gas",title:"Gas Phase Reactions"},sidebar:"docs",previous:{title:"Chemistry",permalink:"/docs/category/chemistry"},next:{title:"Grain Surface Reactions",permalink:"/docs/grain"}},i={},k=[{value:"Gas phase ODEs",id:"gas-phase-odes",level:2},{value:"Reaction Rates",id:"reaction-rates",level:2}],c={toc:k};function o(a){var e=a.components,t=(0,m.Z)(a,p);return(0,n.kt)("wrapper",(0,s.Z)({},c,t,{components:e,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"gas-phase-odes"},"Gas phase ODEs"),(0,n.kt)("p",null,"The rate of change of the concentration of a gas phase species due to a single two body reaction is"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"i"))),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mi",{parentName:"mrow"},"k"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"j")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"k"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dn_i}{dt} = k_{jk} n_j n_k")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.05744em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03148em"}},"k"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03148em"}},"k")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))),(0,n.kt)("p",null,"where ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mi",{parentName:"mrow"},"k")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k_{jk}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03148em"}},"k"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the rate of that reaction in units of ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"c"),(0,n.kt)("msup",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msup"},"m"),(0,n.kt)("mn",{parentName:"msup"},"3")),(0,n.kt)("msup",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msup"},"s"),(0,n.kt)("mrow",{parentName:"msup"},(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mn",{parentName:"mrow"},"1")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"cm^{3} s^{-1}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"c"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"m"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},"3"))))))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"s"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))))))))))),". Since we work in fractional abundances rather than concentrations, we can remove factors of ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"H"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_H")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," since ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"j")),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"j")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"H"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_j=X_jn_H")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.716668em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.969438em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"i"))),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mi",{parentName:"mrow"},"k"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"j")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"k")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"H"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dX_i}{dt} = k_{jk} X_j X_k n_H")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.05744em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03148em"}},"k"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03148em"}},"k")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))),(0,n.kt)("p",null,"For reactions between involving only a single body such as ionization by a cosmic ray, we have"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"i"))),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mi",{parentName:"msub"},"i")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"i"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dX_i}{dt} = k_{i} X_i")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.05744em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.84444em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))),(0,n.kt)("p",null,"The total rate of change of the fractional abundance of a species due to gas phase reactions is then just the sum of these terms for all reactions where it is a product minus the sum of all reactions where it is a reactant."),(0,n.kt)("p",null,"As a rule, any part of a reaction ODE which does not depend on abundance (eg the rate itself) is calculated between timesteps by the subroutine ",(0,n.kt)("inlineCode",{parentName:"p"},"calculateReactionRates")," in ",(0,n.kt)("inlineCode",{parentName:"p"},"rates.f90"),". The abundances are include in the ODE calculation itself so they can be updated between steps by the solver."),(0,n.kt)("h2",{id:"reaction-rates"},"Reaction Rates"),(0,n.kt)("p",null,"Gas phase chemistry in UCLCHEM uses the UMIST12 database. This is a database listing reactants and products with up to three rate constants which we label ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"\u03b1"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"\u03b2"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"n"),(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"\u03b3")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\alpha, \\beta, and \\gamma")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8888799999999999em",verticalAlign:"-0.19444em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,n.kt)("span",{parentName:"span",className:"mpunct"},","),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05278em"}},"\u03b2"),(0,n.kt)("span",{parentName:"span",className:"mpunct"},","),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05556em"}},"\u03b3")))))," for thousands of gas phase reactions. We briefly list here the way in which the rates in the above equations are calculated for each reaction type and more information can be found in ",(0,n.kt)("a",{parentName:"p",href:"https://ui.adsabs.harvard.edu/abs/2013A&A...550A..36M/abstract"},"McElroy et al. 2013")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Two Body Reactions")," use the Kooji-Arrhenius equation."),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"k"),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mi",{parentName:"mrow"},"\u03b1"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"mfrac"},"T"),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mn",{parentName:"mrow"},"300"),(0,n.kt)("mi",{parentName:"mrow"},"K"))),(0,n.kt)("msup",{parentName:"mrow"},(0,n.kt)("mo",{parentName:"msup",stretchy:"false"},")"),(0,n.kt)("mi",{parentName:"msup"},"\u03b2")),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"x"),(0,n.kt)("mi",{parentName:"mrow"},"p"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"\u03b3"),(0,n.kt)("mi",{parentName:"mrow",mathvariant:"normal"},"/"),(0,n.kt)("mi",{parentName:"mrow"},"T"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k = \\alpha (\\frac{T}{300K})^\\beta exp(-\\gamma/T)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.04633em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"3"),(0,n.kt)("span",{parentName:"span",className:"mord"},"0"),(0,n.kt)("span",{parentName:"span",className:"mord"},"0"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8991079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-3.1130000000000004em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05278em"}},"\u03b2")))))))),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"x"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"p"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05556em"}},"\u03b3"),(0,n.kt)("span",{parentName:"span",className:"mord"},"/"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Cosmic Ray Protons")),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"k"),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mi",{parentName:"mrow"},"\u03b1"),(0,n.kt)("mi",{parentName:"mrow"},"\u03b6")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k = \\alpha \\zeta")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8888799999999999em",verticalAlign:"-0.19444em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07378em"}},"\u03b6")))))),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Cosmic Ray induced photons")),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"k"),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mi",{parentName:"mrow"},"\u03b1"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"mfrac"},"T"),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mn",{parentName:"mrow"},"300"),(0,n.kt)("mi",{parentName:"mrow"},"K"))),(0,n.kt)("msup",{parentName:"mrow"},(0,n.kt)("mo",{parentName:"msup",stretchy:"false"},")"),(0,n.kt)("mi",{parentName:"msup"},"\u03b2")),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"mfrac"},"E"),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mn",{parentName:"mrow"},"1"),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"\u03c9"))),(0,n.kt)("mi",{parentName:"mrow"},"\u03b6")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k = \\alpha (\\frac{T}{300K})^\\beta \\frac{E}{1-\\omega} \\zeta")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.1296600000000003em",verticalAlign:"-0.7693300000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"3"),(0,n.kt)("span",{parentName:"span",className:"mord"},"0"),(0,n.kt)("span",{parentName:"span",className:"mord"},"0"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8991079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-3.1130000000000004em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05278em"}},"\u03b2")))))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"1"),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,n.kt)("span",{parentName:"span",className:"mbin"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"\u03c9"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05764em"}},"E")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.7693300000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07378em"}},"\u03b6")))))),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"UV Photons")),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"k"),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mi",{parentName:"mrow"},"\u03b1"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"F"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"U"),(0,n.kt)("mi",{parentName:"mrow"},"V"))),(0,n.kt)("mi",{parentName:"mrow"},"exp"),(0,n.kt)("mo",{parentName:"mrow"},"\u2061"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"k"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"A"),(0,n.kt)("mi",{parentName:"msub"},"v")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k = \\alpha F_{UV}\\exp(-kA_v)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"F"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.13889em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10903em"}},"U"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.22222em"}},"V"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,n.kt)("span",{parentName:"span",className:"mop"},"exp"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03588em"}},"v")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,"where ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"\u03b6")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\zeta")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8888799999999999em",verticalAlign:"-0.19444em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07378em"}},"\u03b6")))))," is the cosmic ray ionization rate in units of 1.3 10",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msup",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"msup"}),(0,n.kt)("mo",{parentName:"msup"},"\u2212")),(0,n.kt)("mn",{parentName:"mrow"},"17")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^-17")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span"}),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mbin mtight"},"\u2212")))))))),(0,n.kt)("span",{parentName:"span",className:"mord"},"1"),(0,n.kt)("span",{parentName:"span",className:"mord"},"7")))))," s",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msup",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"msup"}),(0,n.kt)("mrow",{parentName:"msup"},(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mn",{parentName:"mrow"},"1")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-1}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span"}),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))))))))))),", E is the efficiency with which cosmic rays cause ionization, ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"\u03c9")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\omega")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.43056em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"\u03c9")))))," is the dust grain albedo, ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"F"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"U"),(0,n.kt)("mi",{parentName:"mrow"},"V"))),(0,n.kt)("mi",{parentName:"mrow"},"exp"),(0,n.kt)("mo",{parentName:"mrow"},"\u2061"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"k"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"A"),(0,n.kt)("mi",{parentName:"msub"},"v")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"F_{UV} \\exp(-kA_v)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"F"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.13889em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10903em"}},"U"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.22222em"}},"V"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,n.kt)("span",{parentName:"span",className:"mop"},"exp"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03588em"}},"v")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))," is the attenuated UV field."))}o.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/44936c8a.ca95407b.js b/assets/js/44936c8a.ca95407b.js deleted file mode 100644 index 44b3ba51..00000000 --- a/assets/js/44936c8a.ca95407b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6901],{3905:(a,e,t)=>{t.d(e,{Zo:()=>i,kt:()=>o});var s=t(7294);function m(a,e,t){return e in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function n(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.push.apply(t,s)}return t}function p(a){for(var e=1;e=0||(m[t]=a[t]);return m}(a,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(a);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(a,t)&&(m[t]=a[t])}return m}var N=s.createContext({}),l=function(a){var e=s.useContext(N),t=e;return a&&(t="function"==typeof a?a(e):p(p({},e),a)),t},i=function(a){var e=l(a.components);return s.createElement(N.Provider,{value:e},a.children)},k={inlineCode:"code",wrapper:function(a){var e=a.children;return s.createElement(s.Fragment,{},e)}},c=s.forwardRef((function(a,e){var t=a.components,m=a.mdxType,n=a.originalType,N=a.parentName,i=r(a,["components","mdxType","originalType","parentName"]),c=l(t),o=m,h=c["".concat(N,".").concat(o)]||c[o]||k[o]||n;return t?s.createElement(h,p(p({ref:e},i),{},{components:t})):s.createElement(h,p({ref:e},i))}));function o(a,e){var t=arguments,m=e&&e.mdxType;if("string"==typeof a||m){var n=t.length,p=new Array(n);p[0]=c;var r={};for(var N in e)hasOwnProperty.call(e,N)&&(r[N]=e[N]);r.originalType=a,r.mdxType="string"==typeof a?a:m,p[1]=r;for(var l=2;l{t.r(e),t.d(e,{assets:()=>i,contentTitle:()=>N,default:()=>o,frontMatter:()=>r,metadata:()=>l,toc:()=>k});var s=t(7462),m=t(3366),n=(t(7294),t(3905)),p=["components"],r={id:"gas",title:"Gas Phase Reactions"},N=void 0,l={unversionedId:"gas",id:"version-v3.2.0/gas",title:"Gas Phase Reactions",description:"Gas phase ODEs",source:"@site/versioned_docs/version-v3.2.0/chem-gas.md",sourceDirName:".",slug:"/gas",permalink:"/docs/gas",tags:[],version:"v3.2.0",frontMatter:{id:"gas",title:"Gas Phase Reactions"},sidebar:"docs",previous:{title:"Chemistry",permalink:"/docs/category/chemistry"},next:{title:"Grain Surface Reactions",permalink:"/docs/grain"}},i={},k=[{value:"Gas phase ODEs",id:"gas-phase-odes",level:2},{value:"Reaction Rates",id:"reaction-rates",level:2}],c={toc:k};function o(a){var e=a.components,t=(0,m.Z)(a,p);return(0,n.kt)("wrapper",(0,s.Z)({},c,t,{components:e,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"gas-phase-odes"},"Gas phase ODEs"),(0,n.kt)("p",null,"The rate of change of the concentration of a gas phase species due to a single two body reaction is"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"i"))),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mi",{parentName:"mrow"},"k"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"j")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"k"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dn_i}{dt} = k_{jk} n_j n_k")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.05744em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03148em"}},"k"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03148em"}},"k")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))),(0,n.kt)("p",null,"where ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mi",{parentName:"mrow"},"k")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k_{jk}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03148em"}},"k"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the rate of that reaction in units of ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"c"),(0,n.kt)("msup",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msup"},"m"),(0,n.kt)("mn",{parentName:"msup"},"3")),(0,n.kt)("msup",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msup"},"s"),(0,n.kt)("mrow",{parentName:"msup"},(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mn",{parentName:"mrow"},"1")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"cm^{3} s^{-1}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"c"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"m"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},"3"))))))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"s"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))))))))))),". Since we work in fractional abundances rather than concentrations, we can remove factors of ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"H"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_H")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," since ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"j")),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"j")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"H"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_j=X_jn_H")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.716668em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.969438em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"i"))),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mi",{parentName:"mrow"},"k"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"j")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"k")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"H"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dX_i}{dt} = k_{jk} X_j X_k n_H")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.05744em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03148em"}},"k"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03148em"}},"k")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))),(0,n.kt)("p",null,"For reactions between involving only a single body such as ionization by a cosmic ray, we have"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"i"))),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mi",{parentName:"msub"},"i")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"i"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dX_i}{dt} = k_{i} X_i")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.05744em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.84444em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))),(0,n.kt)("p",null,"The total rate of change of the fractional abundance of a species due to gas phase reactions is then just the sum of these terms for all reactions where it is a product minus the sum of all reactions where it is a reactant."),(0,n.kt)("p",null,"As a rule, any part of a reaction ODE which does not depend on abundance (eg the rate itself) is calculated between timesteps by the subroutine ",(0,n.kt)("inlineCode",{parentName:"p"},"calculateReactionRates")," in ",(0,n.kt)("inlineCode",{parentName:"p"},"rates.f90"),". The abundances are include in the ODE calculation itself so they can be updated between steps by the solver."),(0,n.kt)("h2",{id:"reaction-rates"},"Reaction Rates"),(0,n.kt)("p",null,"Gas phase chemistry in UCLCHEM uses the UMIST12 database. This is a database listing reactants and products with up to three rate constants which we label ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"\u03b1"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"\u03b2"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"n"),(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"\u03b3")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\alpha, \\beta, and \\gamma")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8888799999999999em",verticalAlign:"-0.19444em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,n.kt)("span",{parentName:"span",className:"mpunct"},","),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05278em"}},"\u03b2"),(0,n.kt)("span",{parentName:"span",className:"mpunct"},","),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05556em"}},"\u03b3")))))," for thousands of gas phase reactions. We briefly list here the way in which the rates in the above equations are calculated for each reaction type and more information can be found in ",(0,n.kt)("a",{parentName:"p",href:"https://ui.adsabs.harvard.edu/abs/2013A&A...550A..36M/abstract"},"McElroy et al. 2013")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Two Body Reactions")," use the Kooji-Arrhenius equation."),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"k"),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mi",{parentName:"mrow"},"\u03b1"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"mfrac"},"T"),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mn",{parentName:"mrow"},"300"),(0,n.kt)("mi",{parentName:"mrow"},"K"))),(0,n.kt)("msup",{parentName:"mrow"},(0,n.kt)("mo",{parentName:"msup",stretchy:"false"},")"),(0,n.kt)("mi",{parentName:"msup"},"\u03b2")),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"x"),(0,n.kt)("mi",{parentName:"mrow"},"p"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"\u03b3"),(0,n.kt)("mi",{parentName:"mrow",mathvariant:"normal"},"/"),(0,n.kt)("mi",{parentName:"mrow"},"T"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k = \\alpha (\\frac{T}{300K})^\\beta exp(-\\gamma/T)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.04633em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"3"),(0,n.kt)("span",{parentName:"span",className:"mord"},"0"),(0,n.kt)("span",{parentName:"span",className:"mord"},"0"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8991079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-3.1130000000000004em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05278em"}},"\u03b2")))))))),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"x"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"p"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05556em"}},"\u03b3"),(0,n.kt)("span",{parentName:"span",className:"mord"},"/"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Cosmic Ray Protons")),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"k"),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mi",{parentName:"mrow"},"\u03b1"),(0,n.kt)("mi",{parentName:"mrow"},"\u03b6")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k = \\alpha \\zeta")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8888799999999999em",verticalAlign:"-0.19444em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07378em"}},"\u03b6")))))),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Cosmic Ray induced photons")),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"k"),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mi",{parentName:"mrow"},"\u03b1"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"mfrac"},"T"),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mn",{parentName:"mrow"},"300"),(0,n.kt)("mi",{parentName:"mrow"},"K"))),(0,n.kt)("msup",{parentName:"mrow"},(0,n.kt)("mo",{parentName:"msup",stretchy:"false"},")"),(0,n.kt)("mi",{parentName:"msup"},"\u03b2")),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"mfrac"},"E"),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mn",{parentName:"mrow"},"1"),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"\u03c9"))),(0,n.kt)("mi",{parentName:"mrow"},"\u03b6")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k = \\alpha (\\frac{T}{300K})^\\beta \\frac{E}{1-\\omega} \\zeta")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.1296600000000003em",verticalAlign:"-0.7693300000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"3"),(0,n.kt)("span",{parentName:"span",className:"mord"},"0"),(0,n.kt)("span",{parentName:"span",className:"mord"},"0"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8991079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-3.1130000000000004em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05278em"}},"\u03b2")))))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"1"),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,n.kt)("span",{parentName:"span",className:"mbin"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"\u03c9"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05764em"}},"E")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.7693300000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07378em"}},"\u03b6")))))),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"UV Photons")),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"k"),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mi",{parentName:"mrow"},"\u03b1"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"F"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"U"),(0,n.kt)("mi",{parentName:"mrow"},"V"))),(0,n.kt)("mi",{parentName:"mrow"},"exp"),(0,n.kt)("mo",{parentName:"mrow"},"\u2061"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"k"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"A"),(0,n.kt)("mi",{parentName:"msub"},"v")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k = \\alpha F_{UV}\\exp(-kA_v)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"F"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.13889em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10903em"}},"U"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.22222em"}},"V"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,n.kt)("span",{parentName:"span",className:"mop"},"exp"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03588em"}},"v")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,"where ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"\u03b6")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\zeta")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8888799999999999em",verticalAlign:"-0.19444em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07378em"}},"\u03b6")))))," is the cosmic ray ionization rate in units of 1.3 10",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msup",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"msup"}),(0,n.kt)("mo",{parentName:"msup"},"\u2212")),(0,n.kt)("mn",{parentName:"mrow"},"17")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^-17")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span"}),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mbin mtight"},"\u2212")))))))),(0,n.kt)("span",{parentName:"span",className:"mord"},"1"),(0,n.kt)("span",{parentName:"span",className:"mord"},"7")))))," s",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msup",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"msup"}),(0,n.kt)("mrow",{parentName:"msup"},(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mn",{parentName:"mrow"},"1")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-1}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span"}),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))))))))))),", E is the efficiency with which cosmic rays cause ionization, ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"\u03c9")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\omega")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.43056em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"\u03c9")))))," is the dust grain albedo, ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"F"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"U"),(0,n.kt)("mi",{parentName:"mrow"},"V"))),(0,n.kt)("mi",{parentName:"mrow"},"exp"),(0,n.kt)("mo",{parentName:"mrow"},"\u2061"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"k"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"A"),(0,n.kt)("mi",{parentName:"msub"},"v")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"F_{UV} \\exp(-kA_v)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"F"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.13889em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10903em"}},"U"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.22222em"}},"V"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,n.kt)("span",{parentName:"span",className:"mop"},"exp"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03588em"}},"v")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))," is the attenuated UV field."))}o.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/463275cf.31da68a2.js b/assets/js/463275cf.31da68a2.js new file mode 100644 index 00000000..731110f8 --- /dev/null +++ b/assets/js/463275cf.31da68a2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7197],{3905:(a,e,t)=>{t.d(e,{Zo:()=>i,kt:()=>o});var s=t(7294);function m(a,e,t){return e in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function n(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.push.apply(t,s)}return t}function p(a){for(var e=1;e=0||(m[t]=a[t]);return m}(a,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(a);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(a,t)&&(m[t]=a[t])}return m}var l=s.createContext({}),N=function(a){var e=s.useContext(l),t=e;return a&&(t="function"==typeof a?a(e):p(p({},e),a)),t},i=function(a){var e=N(a.components);return s.createElement(l.Provider,{value:e},a.children)},k={inlineCode:"code",wrapper:function(a){var e=a.children;return s.createElement(s.Fragment,{},e)}},c=s.forwardRef((function(a,e){var t=a.components,m=a.mdxType,n=a.originalType,l=a.parentName,i=r(a,["components","mdxType","originalType","parentName"]),c=N(t),o=m,h=c["".concat(l,".").concat(o)]||c[o]||k[o]||n;return t?s.createElement(h,p(p({ref:e},i),{},{components:t})):s.createElement(h,p({ref:e},i))}));function o(a,e){var t=arguments,m=e&&e.mdxType;if("string"==typeof a||m){var n=t.length,p=new Array(n);p[0]=c;var r={};for(var l in e)hasOwnProperty.call(e,l)&&(r[l]=e[l]);r.originalType=a,r.mdxType="string"==typeof a?a:m,p[1]=r;for(var N=2;N{t.r(e),t.d(e,{assets:()=>i,contentTitle:()=>l,default:()=>o,frontMatter:()=>r,metadata:()=>N,toc:()=>k});var s=t(7462),m=t(3366),n=(t(7294),t(3905)),p=["components"],r={id:"bulk",title:"Bulk Ice Processes"},l=void 0,N={unversionedId:"bulk",id:"version-v3.1.0/bulk",title:"Bulk Ice Processes",description:"For a three phase network, we must include reactions in the bulk and the process by which it is formed. To do this, MakeRates automatically duplicates all LH reactions so that a reaction on the surface and one in the bulk ice exists in the network. We then include two methods by which material can move between the bulk and the surface. First is the accumulation of the bulk as new surface layers are formed and second is the individual swapping of a particle from the bulk with one on the surface. Both of these processes are taken from Garrod & Pauly 2011",source:"@site/versioned_docs/version-v3.1.0/chem-bulk.md",sourceDirName:".",slug:"/bulk",permalink:"/docs/v3.1.0/bulk",draft:!1,tags:[],version:"v3.1.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"bulk",title:"Bulk Ice Processes"},sidebar:"docs",previous:{title:"Adsorption & Desorption Reactions",permalink:"/docs/v3.1.0/desorb"},next:{title:"Developer",permalink:"/docs/v3.1.0/category/developer"}},i={},k=[{value:"Surface Transfer",id:"surface-transfer",level:2},{value:"Individual Swapping",id:"individual-swapping",level:2}],c={toc:k};function o(a){var e=a.components,t=(0,m.Z)(a,p);return(0,n.kt)("wrapper",(0,s.Z)({},c,t,{components:e,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"For a three phase network, we must include reactions in the bulk and the process by which it is formed. To do this, MakeRates automatically duplicates all LH reactions so that a reaction on the surface and one in the bulk ice exists in the network. We then include two methods by which material can move between the bulk and the surface. First is the accumulation of the bulk as new surface layers are formed and second is the individual swapping of a particle from the bulk with one on the surface. Both of these processes are taken from ",(0,n.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1088/0004-637X/735/1/15"},"Garrod & Pauly 2011")),(0,n.kt)("h2",{id:"surface-transfer"},"Surface Transfer"),(0,n.kt)("p",null,"Once the surface layer of an ice mantle is full, any further material deposited will form a new layer and the old one becomes part of the bulk. Likewise, if any suface is removed then some of the bulk becomes surface. Therefore, we calculate the total rate of change of all species on the surface ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"["),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"n"),(0,n.kt)("mi",{parentName:"mrow"},"s")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"]")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"[\\frac{dns}{dt}]")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"1.2251079999999999em",verticalAlign:"-0.345em"}}),(0,n.kt)("span",{parentName:"span",className:"mopen"},"["),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8801079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.6550000000000002em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t")))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.394em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"n"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.345em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},"]")))))," ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"msub"}),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"c"),(0,n.kt)("mi",{parentName:"mrow"},"h"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"m")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_{chem}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.486108em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span"}),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"h"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"m"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," due to chemistry, freeze out and desorption and use it to calculate the rate of surface to bulk transfer for each species."),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"\u03b1"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"c"),(0,n.kt)("mi",{parentName:"mrow"},"c"))),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"["),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"n"),(0,n.kt)("mi",{parentName:"mrow"},"s")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mo",{parentName:"msub",stretchy:"false"},"]"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"c"),(0,n.kt)("mi",{parentName:"mrow"},"h"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"m"))),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("msub",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dn_s(i)}{dt} = \\alpha_{acc}[\\frac{dns}{dt}]_{chem} \\frac{n_s(i)}{n_s}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.263em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.0037em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"["),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},(0,n.kt)("span",{parentName:"span",className:"mclose"},"]"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"h"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"m"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"}))))))),(0,n.kt)("p",null,"where the first two terms give the total rate of surface to bulk transfer and the final fraction divides this amongst the species on the surface. We subtract this ODE from each surface species and add it to the equivalent bulk species. If the rate of change of the surface is negative, the bulk is transferred to the surface."),(0,n.kt)("h2",{id:"individual-swapping"},"Individual Swapping"),(0,n.kt)("p",null,"Any species in the bulk has the possibilty of diffusing to the surface. It will then displace a surface particle (which will join the bulk) and become part of the surface. We follow Ruaud et al. 2016 by first calculating the rate at which bulk species diffuse to the surface,"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"K"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"w"),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"p"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mn",{parentName:"mfrac"},"1"),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"t"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"h"),(0,n.kt)("mi",{parentName:"mrow"},"o"),(0,n.kt)("mi",{parentName:"mrow"},"p"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"l"),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"y")))))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"K_{swap} = \\frac{1}{t_{hop} N_{lay}}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.969438em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15139200000000003em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07153em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.02691em"}},"w"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"p"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.293548em",verticalAlign:"-0.972108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.32144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"h"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"p"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.01968em"}},"l"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03588em"}},"y"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"1")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.972108em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"}))))))),(0,n.kt)("p",null,"where ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"t"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"h"),(0,n.kt)("mi",{parentName:"mrow"},"o"),(0,n.kt)("mi",{parentName:"mrow"},"p")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"t_{hop}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.9011879999999999em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"h"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"p"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is our usual diffusion timescale and ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"l"),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"y")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"N_{lay}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.969438em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.01968em"}},"l"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03588em"}},"y"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the number of mantle layers with a minimum of 1. This gives a simple ODE"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"K"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"w"),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"p"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"b")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dX_s(i)}{dt} = K_{swap}X_b(i)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"1.036108em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15139200000000003em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07153em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.02691em"}},"w"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"p"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"b")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,"and we get the rate at which things move from the surface to the bulk by summing this rate of change over all mantle species to get a total rate of swapping from the bulk to the surface. We then divide that by the fraction of the surface which is made up of a species to get its rate of swapping to the bulk."),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"m")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub",mathvariant:"normal"},"\u03a3"),(0,n.kt)("mi",{parentName:"msub"},"j")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"K"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"w"),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"p"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"j"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"b")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("msub",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dX_m(i)}{dt} = \\Sigma_j K_{swap,j}X_b(j) \\frac{X_s(i)}{X_s}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"m")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.263em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"\u03a3"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07153em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.02691em"}},"w"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"p"),(0,n.kt)("span",{parentName:"span",className:"mpunct mtight"},","),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"b")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"}))))))),(0,n.kt)("p",null,"This ensures that the net movement between the surface and the bulk from this process is zero."))}o.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/463275cf.ed45dcc8.js b/assets/js/463275cf.ed45dcc8.js deleted file mode 100644 index 58145ab9..00000000 --- a/assets/js/463275cf.ed45dcc8.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7197],{3905:(a,e,t)=>{t.d(e,{Zo:()=>i,kt:()=>o});var s=t(7294);function m(a,e,t){return e in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function n(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.push.apply(t,s)}return t}function p(a){for(var e=1;e=0||(m[t]=a[t]);return m}(a,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(a);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(a,t)&&(m[t]=a[t])}return m}var l=s.createContext({}),N=function(a){var e=s.useContext(l),t=e;return a&&(t="function"==typeof a?a(e):p(p({},e),a)),t},i=function(a){var e=N(a.components);return s.createElement(l.Provider,{value:e},a.children)},k={inlineCode:"code",wrapper:function(a){var e=a.children;return s.createElement(s.Fragment,{},e)}},c=s.forwardRef((function(a,e){var t=a.components,m=a.mdxType,n=a.originalType,l=a.parentName,i=r(a,["components","mdxType","originalType","parentName"]),c=N(t),o=m,h=c["".concat(l,".").concat(o)]||c[o]||k[o]||n;return t?s.createElement(h,p(p({ref:e},i),{},{components:t})):s.createElement(h,p({ref:e},i))}));function o(a,e){var t=arguments,m=e&&e.mdxType;if("string"==typeof a||m){var n=t.length,p=new Array(n);p[0]=c;var r={};for(var l in e)hasOwnProperty.call(e,l)&&(r[l]=e[l]);r.originalType=a,r.mdxType="string"==typeof a?a:m,p[1]=r;for(var N=2;N{t.r(e),t.d(e,{assets:()=>i,contentTitle:()=>l,default:()=>o,frontMatter:()=>r,metadata:()=>N,toc:()=>k});var s=t(7462),m=t(3366),n=(t(7294),t(3905)),p=["components"],r={id:"bulk",title:"Bulk Ice Processes"},l=void 0,N={unversionedId:"bulk",id:"version-v3.1.0/bulk",title:"Bulk Ice Processes",description:"For a three phase network, we must include reactions in the bulk and the process by which it is formed. To do this, MakeRates automatically duplicates all LH reactions so that a reaction on the surface and one in the bulk ice exists in the network. We then include two methods by which material can move between the bulk and the surface. First is the accumulation of the bulk as new surface layers are formed and second is the individual swapping of a particle from the bulk with one on the surface. Both of these processes are taken from Garrod & Pauly 2011",source:"@site/versioned_docs/version-v3.1.0/chem-bulk.md",sourceDirName:".",slug:"/bulk",permalink:"/docs/v3.1.0/bulk",tags:[],version:"v3.1.0",frontMatter:{id:"bulk",title:"Bulk Ice Processes"},sidebar:"docs",previous:{title:"Adsorption & Desorption Reactions",permalink:"/docs/v3.1.0/desorb"},next:{title:"Developer",permalink:"/docs/v3.1.0/category/developer"}},i={},k=[{value:"Surface Transfer",id:"surface-transfer",level:2},{value:"Individual Swapping",id:"individual-swapping",level:2}],c={toc:k};function o(a){var e=a.components,t=(0,m.Z)(a,p);return(0,n.kt)("wrapper",(0,s.Z)({},c,t,{components:e,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"For a three phase network, we must include reactions in the bulk and the process by which it is formed. To do this, MakeRates automatically duplicates all LH reactions so that a reaction on the surface and one in the bulk ice exists in the network. We then include two methods by which material can move between the bulk and the surface. First is the accumulation of the bulk as new surface layers are formed and second is the individual swapping of a particle from the bulk with one on the surface. Both of these processes are taken from ",(0,n.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1088/0004-637X/735/1/15"},"Garrod & Pauly 2011")),(0,n.kt)("h2",{id:"surface-transfer"},"Surface Transfer"),(0,n.kt)("p",null,"Once the surface layer of an ice mantle is full, any further material deposited will form a new layer and the old one becomes part of the bulk. Likewise, if any suface is removed then some of the bulk becomes surface. Therefore, we calculate the total rate of change of all species on the surface ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"["),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"n"),(0,n.kt)("mi",{parentName:"mrow"},"s")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"]")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"[\\frac{dns}{dt}]")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"1.2251079999999999em",verticalAlign:"-0.345em"}}),(0,n.kt)("span",{parentName:"span",className:"mopen"},"["),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8801079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.6550000000000002em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t")))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.394em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"n"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.345em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},"]")))))," ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"msub"}),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"c"),(0,n.kt)("mi",{parentName:"mrow"},"h"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"m")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_{chem}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.486108em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span"}),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"h"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"m"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," due to chemistry, freeze out and desorption and use it to calculate the rate of surface to bulk transfer for each species."),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"\u03b1"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"c"),(0,n.kt)("mi",{parentName:"mrow"},"c"))),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"["),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"n"),(0,n.kt)("mi",{parentName:"mrow"},"s")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mo",{parentName:"msub",stretchy:"false"},"]"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"c"),(0,n.kt)("mi",{parentName:"mrow"},"h"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"m"))),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("msub",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dn_s(i)}{dt} = \\alpha_{acc}[\\frac{dns}{dt}]_{chem} \\frac{n_s(i)}{n_s}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.263em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.0037em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"["),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},(0,n.kt)("span",{parentName:"span",className:"mclose"},"]"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"h"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"m"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"}))))))),(0,n.kt)("p",null,"where the first two terms give the total rate of surface to bulk transfer and the final fraction divides this amongst the species on the surface. We subtract this ODE from each surface species and add it to the equivalent bulk species. If the rate of change of the surface is negative, the bulk is transferred to the surface."),(0,n.kt)("h2",{id:"individual-swapping"},"Individual Swapping"),(0,n.kt)("p",null,"Any species in the bulk has the possibilty of diffusing to the surface. It will then displace a surface particle (which will join the bulk) and become part of the surface. We follow Ruaud et al. 2016 by first calculating the rate at which bulk species diffuse to the surface,"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"K"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"w"),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"p"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mn",{parentName:"mfrac"},"1"),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"t"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"h"),(0,n.kt)("mi",{parentName:"mrow"},"o"),(0,n.kt)("mi",{parentName:"mrow"},"p"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"l"),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"y")))))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"K_{swap} = \\frac{1}{t_{hop} N_{lay}}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.969438em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15139200000000003em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07153em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.02691em"}},"w"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"p"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.293548em",verticalAlign:"-0.972108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.32144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"h"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"p"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.01968em"}},"l"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03588em"}},"y"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"1")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.972108em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"}))))))),(0,n.kt)("p",null,"where ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"t"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"h"),(0,n.kt)("mi",{parentName:"mrow"},"o"),(0,n.kt)("mi",{parentName:"mrow"},"p")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"t_{hop}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.9011879999999999em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"h"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"p"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is our usual diffusion timescale and ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"l"),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"y")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"N_{lay}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.969438em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.01968em"}},"l"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03588em"}},"y"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the number of mantle layers with a minimum of 1. This gives a simple ODE"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"K"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"w"),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"p"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"b")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dX_s(i)}{dt} = K_{swap}X_b(i)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"1.036108em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15139200000000003em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07153em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.02691em"}},"w"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"p"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"b")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,"and we get the rate at which things move from the surface to the bulk by summing this rate of change over all mantle species to get a total rate of swapping from the bulk to the surface. We then divide that by the fraction of the surface which is made up of a species to get its rate of swapping to the bulk."),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"m")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub",mathvariant:"normal"},"\u03a3"),(0,n.kt)("mi",{parentName:"msub"},"j")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"K"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"w"),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"p"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"j"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"b")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("msub",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dX_m(i)}{dt} = \\Sigma_j K_{swap,j}X_b(j) \\frac{X_s(i)}{X_s}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"m")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.263em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"\u03a3"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07153em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.02691em"}},"w"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"p"),(0,n.kt)("span",{parentName:"span",className:"mpunct mtight"},","),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"b")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"}))))))),(0,n.kt)("p",null,"This ensures that the net movement between the surface and the bulk from this process is zero."))}o.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4791faca.8df128fa.js b/assets/js/4791faca.8df128fa.js deleted file mode 100644 index c94d434b..00000000 --- a/assets/js/4791faca.8df128fa.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1702],{3905:(e,a,t)=>{t.d(a,{Zo:()=>l,kt:()=>k});var s=t(7294);function n(e,a,t){return a in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}function r(e,a){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);a&&(s=s.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),t.push.apply(t,s)}return t}function i(e){for(var a=1;a=0||(n[t]=e[t]);return n}(e,a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(n[t]=e[t])}return n}var o=s.createContext({}),p=function(e){var a=s.useContext(o),t=a;return e&&(t="function"==typeof e?e(a):i(i({},a),e)),t},l=function(e){var a=p(e.components);return s.createElement(o.Provider,{value:a},e.children)},c={inlineCode:"code",wrapper:function(e){var a=e.children;return s.createElement(s.Fragment,{},a)}},h=s.forwardRef((function(e,a){var t=e.components,n=e.mdxType,r=e.originalType,o=e.parentName,l=m(e,["components","mdxType","originalType","parentName"]),h=p(t),k=n,d=h["".concat(o,".").concat(k)]||h[k]||c[k]||r;return t?s.createElement(d,i(i({ref:a},l),{},{components:t})):s.createElement(d,i({ref:a},l))}));function k(e,a){var t=arguments,n=a&&a.mdxType;if("string"==typeof e||n){var r=t.length,i=new Array(r);i[0]=h;var m={};for(var o in a)hasOwnProperty.call(a,o)&&(m[o]=a[o]);m.originalType=e,m.mdxType="string"==typeof e?e:n,i[1]=m;for(var p=2;p{t.r(a),t.d(a,{assets:()=>l,contentTitle:()=>o,default:()=>k,frontMatter:()=>m,metadata:()=>p,toc:()=>c});var s=t(7462),n=t(3366),r=(t(7294),t(3905)),i=["components"],m={id:"physics-shocks",title:"Shock Models"},o=void 0,p={unversionedId:"physics-shocks",id:"version-v3.1.0/physics-shocks",title:"Shock Models",description:"Main Contributors: Izaskun Jimenez-Serra, Tom James, Jon Holdship",source:"@site/versioned_docs/version-v3.1.0/physics-shocks.md",sourceDirName:".",slug:"/physics-shocks",permalink:"/docs/v3.1.0/physics-shocks",tags:[],version:"v3.1.0",frontMatter:{id:"physics-shocks",title:"Shock Models"},sidebar:"docs",previous:{title:"Hot Core",permalink:"/docs/v3.1.0/physics-hotcore"},next:{title:"Collapse Models",permalink:"/docs/v3.1.0/physics-collapse"}},l={},c=[{value:"Shock Profiles",id:"shock-profiles",level:2},{value:"C-Shocks",id:"c-shocks",level:3},{value:"J-shocks",id:"j-shocks",level:3},{value:"Dimensions",id:"dimensions",level:2},{value:"Sputtering",id:"sputtering",level:2}],h={toc:c};function k(e){var a=e.components,t=(0,n.Z)(e,i);return(0,r.kt)("wrapper",(0,s.Z)({},h,t,{components:a,mdxType:"MDXLayout"}),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Main Contributors"),": Izaskun Jimenez-Serra, Tom James, Jon Holdship"),(0,r.kt)("h2",{id:"shock-profiles"},"Shock Profiles"),(0,r.kt)("p",null,"UCLCHEM uses two different shock parameterizations. These provide the physical properties of a gas through time as it is subjected to a shock. Whilst the most accurate MHD shock models solve the chemistry, MHD and radiative transfer problems simulataneously, few of these models include chemistry as detailed as UCLCHEM. We assume that the MHD models on which our parameterizations were validated used detailed enough chemistry that the shock profiles could be accurately calculated. This means that more detailed chemistry can be safely post-processed using UCLCHEM, a parameterization simply means the user can select parameters freely rather than from a preset selection of profiles from another code such as ",(0,r.kt)("a",{parentName:"p",href:"http://cdsads.u-strasbg.fr/abs/2015A&A...578A..63F"},"MHDvode"),"."),(0,r.kt)("h3",{id:"c-shocks"},"C-Shocks"),(0,r.kt)("p",null,"The C-shock is based on the parameterization by ",(0,r.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1051/0004-6361:20078054"},"Jimenez-Serra et al. 2008"),". It parameterizes the density, temperature and velocity profiles of c-shocks as a function of shock velocity, initial gas density and magnetic field. These were validated against the results of the detailed shock modelling of ",(0,r.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1046/j.1365-8711.2003.06716.x"},"Flower et al. 2003"),". Details of it's use can be found in ",(0,r.kt)("a",{parentName:"p",href:"/docs/pythonapi#uclchem.model.cshock"},"the c-shock function docs"),"."),(0,r.kt)("p",null,"A key value in this model is the dissipation length, which is the distance over which the velocity of the ions and the neutrals equalizes. In some sense, this is the extent of the C-shock, although post-shock cooling does continue for some distance after. The C-shock function will return the dissipation time (see ",(0,r.kt)("a",{parentName:"p",href:"/docs/physics-shocks#dimensions"},"below"),") and will also uses shorter timesteps for a number of years equal to twice the dissipation time in order to fully resolve the shock. The number of these time steps is controlled by an optional parameter."),(0,r.kt)("h3",{id:"j-shocks"},"J-shocks"),(0,r.kt)("p",null,"jshock is a similar parameterization for j-shocks from ",(0,r.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1051/0004-6361/201936536"},"James et al.")," validated against more recent results from MHDvode (",(0,r.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1051/0004-6361/201525740"},"Flower et al. 2015"),"). See the ",(0,r.kt)("a",{parentName:"p",href:"/docs/pythonapi#uclchem.model.jshock"},"j-shock function docs")," for details."),(0,r.kt)("h2",{id:"dimensions"},"Dimensions"),(0,r.kt)("p",null,"Both shock models are intended to be run as single point models only and the code will return an error for ",(0,r.kt)("inlineCode",{parentName:"p"},"points > 1"),". However, you can look at the 1D profile of a shock by converting between time and distance. If we assume the shock is stationary, that is that it's structure is unchanged as it moves through a cloud of gas, then the points that are far away in time are the same as those far away in space."),(0,r.kt)("img",{src:"/img/shock.png",width:"600","margin-left":"40%"}),(0,r.kt)("p",null,"As an illustration, as a shock front moves through a cloud and first hits a parcel of gas, this is t=0 in our shock model output. 5000 years later, the shock front has moved on, thus the output of UCLCHEM at t=5000 years is the state of a parcel of gas that was first hit 5000 years ago and is now far behind the shock front."),(0,r.kt)("p",null,"By using the shock velocity, you can translate 5000 years to the distance between the parcel that was shocked 5000 years ago and the parcel that is just being reached by the shock front,"),(0,r.kt)("div",{className:"math math-display"},(0,r.kt)("span",{parentName:"div",className:"katex-display"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("mi",{parentName:"mrow"},"z"),(0,r.kt)("mo",{parentName:"mrow"},"="),(0,r.kt)("msub",{parentName:"mrow"},(0,r.kt)("mi",{parentName:"msub"},"v"),(0,r.kt)("mi",{parentName:"msub"},"s")),(0,r.kt)("mi",{parentName:"mrow"},"t")),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"z= v_s t")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.43056em",verticalAlign:"0em"}}),(0,r.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.04398em"}},"z"),(0,r.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,r.kt)("span",{parentName:"span",className:"mrel"},"="),(0,r.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.76508em",verticalAlign:"-0.15em"}}),(0,r.kt)("span",{parentName:"span",className:"mord"},(0,r.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"v"),(0,r.kt)("span",{parentName:"span",className:"msupsub"},(0,r.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,r.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03588em",marginRight:"0.05em"}},(0,r.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,r.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,r.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,r.kt)("span",{parentName:"span"})))))),(0,r.kt)("span",{parentName:"span",className:"mord mathnormal"},"t")))))),(0,r.kt)("p",null,"Thus the history of a single point in a shocked cloud that is output by UCLCHEM can also be translated to a snapshot of a cloud that covers distance z."),(0,r.kt)("h2",{id:"sputtering"},"Sputtering"),(0,r.kt)("p",null,"The C-shock model uses the sputtering process described by ",(0,r.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1051/0004-6361:20078054"},"Jimenez-Serra et al. 2008"),". Briefly, we calculate the average energy imparted on the grains from a collision between the shocked gas and the grains. We then combine this with the collision rate and average yield for a given energy to calculate the sputtering rate which we integrate through time. In practice, this sputtering is so quick that it happens almost instantaneously at ",(0,r.kt)("span",{parentName:"p",className:"math math-inline"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("msub",{parentName:"mrow"},(0,r.kt)("mi",{parentName:"msub"},"t"),(0,r.kt)("mrow",{parentName:"msub"},(0,r.kt)("mi",{parentName:"mrow"},"s"),(0,r.kt)("mi",{parentName:"mrow"},"a"),(0,r.kt)("mi",{parentName:"mrow"},"t")))),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"t_{sat}")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.76508em",verticalAlign:"-0.15em"}}),(0,r.kt)("span",{parentName:"span",className:"mord"},(0,r.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"),(0,r.kt)("span",{parentName:"span",className:"msupsub"},(0,r.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.2805559999999999em"}},(0,r.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,r.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,r.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,r.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,r.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"))))),(0,r.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,r.kt)("span",{parentName:"span"})))))))))),", the saturation time. This is the time at which the silicon abundance stops increasing in more detailed models, used as a proxy for when the ices are fully sputtered. Thus it is likely that you will see a step change in the ice abundances where sputtering has not occurred yet in one time step and is complete in the second unless your timestep is very small."),(0,r.kt)("p",null,"The J-shock would begin with ",(0,r.kt)("span",{parentName:"p",className:"math math-inline"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("msub",{parentName:"mrow"},(0,r.kt)("mi",{parentName:"msub"},"V"),(0,r.kt)("mi",{parentName:"msub"},"s"))),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"V_s")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,r.kt)("span",{parentName:"span",className:"mord"},(0,r.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"V"),(0,r.kt)("span",{parentName:"span",className:"msupsub"},(0,r.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,r.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.22222em",marginRight:"0.05em"}},(0,r.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,r.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,r.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,r.kt)("span",{parentName:"span"}))))))))))," as the initial drift velocity of the sputtering routine described above and would instantaneously sputter at t = 0 yr. Furthermore, temperatures typically reach a minimum of 1000 K meaning the thermal sublimation is almost complete. Thus, we do not need to worry about the sputtering process in the J-shock, we simply remove all grain material and add it to the gas at t = 0 yr."))}k.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d226c097.2d5d1379.js b/assets/js/4791faca.e53f8f7b.js similarity index 91% rename from assets/js/d226c097.2d5d1379.js rename to assets/js/4791faca.e53f8f7b.js index 2e6ba05f..f798b3df 100644 --- a/assets/js/d226c097.2d5d1379.js +++ b/assets/js/4791faca.e53f8f7b.js @@ -1 +1 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6742],{3905:(e,a,t)=>{t.d(a,{Zo:()=>l,kt:()=>k});var s=t(7294);function n(e,a,t){return a in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}function r(e,a){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);a&&(s=s.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),t.push.apply(t,s)}return t}function i(e){for(var a=1;a=0||(n[t]=e[t]);return n}(e,a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(n[t]=e[t])}return n}var o=s.createContext({}),p=function(e){var a=s.useContext(o),t=a;return e&&(t="function"==typeof e?e(a):i(i({},a),e)),t},l=function(e){var a=p(e.components);return s.createElement(o.Provider,{value:a},e.children)},c={inlineCode:"code",wrapper:function(e){var a=e.children;return s.createElement(s.Fragment,{},a)}},h=s.forwardRef((function(e,a){var t=e.components,n=e.mdxType,r=e.originalType,o=e.parentName,l=m(e,["components","mdxType","originalType","parentName"]),h=p(t),k=n,d=h["".concat(o,".").concat(k)]||h[k]||c[k]||r;return t?s.createElement(d,i(i({ref:a},l),{},{components:t})):s.createElement(d,i({ref:a},l))}));function k(e,a){var t=arguments,n=a&&a.mdxType;if("string"==typeof e||n){var r=t.length,i=new Array(r);i[0]=h;var m={};for(var o in a)hasOwnProperty.call(a,o)&&(m[o]=a[o]);m.originalType=e,m.mdxType="string"==typeof e?e:n,i[1]=m;for(var p=2;p{t.r(a),t.d(a,{assets:()=>l,contentTitle:()=>o,default:()=>k,frontMatter:()=>m,metadata:()=>p,toc:()=>c});var s=t(7462),n=t(3366),r=(t(7294),t(3905)),i=["components"],m={id:"physics-shocks",title:"Shock Models"},o=void 0,p={unversionedId:"physics-shocks",id:"version-v3.2.0/physics-shocks",title:"Shock Models",description:"Main Contributors: Izaskun Jimenez-Serra, Tom James, Jon Holdship",source:"@site/versioned_docs/version-v3.2.0/physics-shocks.md",sourceDirName:".",slug:"/physics-shocks",permalink:"/docs/physics-shocks",tags:[],version:"v3.2.0",frontMatter:{id:"physics-shocks",title:"Shock Models"},sidebar:"docs",previous:{title:"Hot Core",permalink:"/docs/physics-hotcore"},next:{title:"Collapse Models",permalink:"/docs/physics-collapse"}},l={},c=[{value:"Shock Profiles",id:"shock-profiles",level:2},{value:"C-Shocks",id:"c-shocks",level:3},{value:"J-shocks",id:"j-shocks",level:3},{value:"Dimensions",id:"dimensions",level:2},{value:"Sputtering",id:"sputtering",level:2}],h={toc:c};function k(e){var a=e.components,t=(0,n.Z)(e,i);return(0,r.kt)("wrapper",(0,s.Z)({},h,t,{components:a,mdxType:"MDXLayout"}),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Main Contributors"),": Izaskun Jimenez-Serra, Tom James, Jon Holdship"),(0,r.kt)("h2",{id:"shock-profiles"},"Shock Profiles"),(0,r.kt)("p",null,"UCLCHEM uses two different shock parameterizations. These provide the physical properties of a gas through time as it is subjected to a shock. Whilst the most accurate MHD shock models solve the chemistry, MHD and radiative transfer problems simulataneously, few of these models include chemistry as detailed as UCLCHEM. We assume that the MHD models on which our parameterizations were validated used detailed enough chemistry that the shock profiles could be accurately calculated. This means that more detailed chemistry can be safely post-processed using UCLCHEM, a parameterization simply means the user can select parameters freely rather than from a preset selection of profiles from another code such as ",(0,r.kt)("a",{parentName:"p",href:"http://cdsads.u-strasbg.fr/abs/2015A&A...578A..63F"},"MHDvode"),"."),(0,r.kt)("h3",{id:"c-shocks"},"C-Shocks"),(0,r.kt)("p",null,"The C-shock is based on the parameterization by ",(0,r.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1051/0004-6361:20078054"},"Jimenez-Serra et al. 2008"),". It parameterizes the density, temperature and velocity profiles of c-shocks as a function of shock velocity, initial gas density and magnetic field. These were validated against the results of the detailed shock modelling of ",(0,r.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1046/j.1365-8711.2003.06716.x"},"Flower et al. 2003"),". Details of it's use can be found in ",(0,r.kt)("a",{parentName:"p",href:"/docs/pythonapi#uclchem.model.cshock"},"the c-shock function docs"),"."),(0,r.kt)("p",null,"A key value in this model is the dissipation length, which is the distance over which the velocity of the ions and the neutrals equalizes. In some sense, this is the extent of the C-shock, although post-shock cooling does continue for some distance after. The C-shock function will return the dissipation time (see ",(0,r.kt)("a",{parentName:"p",href:"/docs/physics-shocks#dimensions"},"below"),") and will also uses shorter timesteps for a number of years equal to twice the dissipation time in order to fully resolve the shock. The number of these time steps is controlled by an optional parameter."),(0,r.kt)("h3",{id:"j-shocks"},"J-shocks"),(0,r.kt)("p",null,"jshock is a similar parameterization for j-shocks from ",(0,r.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1051/0004-6361/201936536"},"James et al.")," validated against more recent results from MHDvode (",(0,r.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1051/0004-6361/201525740"},"Flower et al. 2015"),"). See the ",(0,r.kt)("a",{parentName:"p",href:"/docs/pythonapi#uclchem.model.jshock"},"j-shock function docs")," for details."),(0,r.kt)("h2",{id:"dimensions"},"Dimensions"),(0,r.kt)("p",null,"Both shock models are intended to be run as single point models only and the code will return an error for ",(0,r.kt)("inlineCode",{parentName:"p"},"points > 1"),". However, you can look at the 1D profile of a shock by converting between time and distance. If we assume the shock is stationary, that is that it's structure is unchanged as it moves through a cloud of gas, then the points that are far away in time are the same as those far away in space."),(0,r.kt)("img",{src:"/img/shock.png",width:"600","margin-left":"40%"}),(0,r.kt)("p",null,"As an illustration, as a shock front moves through a cloud and first hits a parcel of gas, this is t=0 in our shock model output. 5000 years later, the shock front has moved on, thus the output of UCLCHEM at t=5000 years is the state of a parcel of gas that was first hit 5000 years ago and is now far behind the shock front."),(0,r.kt)("p",null,"By using the shock velocity, you can translate 5000 years to the distance between the parcel that was shocked 5000 years ago and the parcel that is just being reached by the shock front,"),(0,r.kt)("div",{className:"math math-display"},(0,r.kt)("span",{parentName:"div",className:"katex-display"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("mi",{parentName:"mrow"},"z"),(0,r.kt)("mo",{parentName:"mrow"},"="),(0,r.kt)("msub",{parentName:"mrow"},(0,r.kt)("mi",{parentName:"msub"},"v"),(0,r.kt)("mi",{parentName:"msub"},"s")),(0,r.kt)("mi",{parentName:"mrow"},"t")),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"z= v_s t")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.43056em",verticalAlign:"0em"}}),(0,r.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.04398em"}},"z"),(0,r.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,r.kt)("span",{parentName:"span",className:"mrel"},"="),(0,r.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.76508em",verticalAlign:"-0.15em"}}),(0,r.kt)("span",{parentName:"span",className:"mord"},(0,r.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"v"),(0,r.kt)("span",{parentName:"span",className:"msupsub"},(0,r.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,r.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03588em",marginRight:"0.05em"}},(0,r.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,r.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,r.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,r.kt)("span",{parentName:"span"})))))),(0,r.kt)("span",{parentName:"span",className:"mord mathnormal"},"t")))))),(0,r.kt)("p",null,"Thus the history of a single point in a shocked cloud that is output by UCLCHEM can also be translated to a snapshot of a cloud that covers distance z."),(0,r.kt)("h2",{id:"sputtering"},"Sputtering"),(0,r.kt)("p",null,"The C-shock model uses the sputtering process described by ",(0,r.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1051/0004-6361:20078054"},"Jimenez-Serra et al. 2008"),". Briefly, we calculate the average energy imparted on the grains from a collision between the shocked gas and the grains. We then combine this with the collision rate and average yield for a given energy to calculate the sputtering rate which we integrate through time. In practice, this sputtering is so quick that it happens almost instantaneously at ",(0,r.kt)("span",{parentName:"p",className:"math math-inline"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("msub",{parentName:"mrow"},(0,r.kt)("mi",{parentName:"msub"},"t"),(0,r.kt)("mrow",{parentName:"msub"},(0,r.kt)("mi",{parentName:"mrow"},"s"),(0,r.kt)("mi",{parentName:"mrow"},"a"),(0,r.kt)("mi",{parentName:"mrow"},"t")))),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"t_{sat}")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.76508em",verticalAlign:"-0.15em"}}),(0,r.kt)("span",{parentName:"span",className:"mord"},(0,r.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"),(0,r.kt)("span",{parentName:"span",className:"msupsub"},(0,r.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.2805559999999999em"}},(0,r.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,r.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,r.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,r.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,r.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"))))),(0,r.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,r.kt)("span",{parentName:"span"})))))))))),", the saturation time. This is the time at which the silicon abundance stops increasing in more detailed models, used as a proxy for when the ices are fully sputtered. Thus it is likely that you will see a step change in the ice abundances where sputtering has not occurred yet in one time step and is complete in the second unless your timestep is very small."),(0,r.kt)("p",null,"The J-shock would begin with ",(0,r.kt)("span",{parentName:"p",className:"math math-inline"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("msub",{parentName:"mrow"},(0,r.kt)("mi",{parentName:"msub"},"V"),(0,r.kt)("mi",{parentName:"msub"},"s"))),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"V_s")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,r.kt)("span",{parentName:"span",className:"mord"},(0,r.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"V"),(0,r.kt)("span",{parentName:"span",className:"msupsub"},(0,r.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,r.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.22222em",marginRight:"0.05em"}},(0,r.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,r.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,r.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,r.kt)("span",{parentName:"span"}))))))))))," as the initial drift velocity of the sputtering routine described above and would instantaneously sputter at t = 0 yr. Furthermore, temperatures typically reach a minimum of 1000 K meaning the thermal sublimation is almost complete. Thus, we do not need to worry about the sputtering process in the J-shock, we simply remove all grain material and add it to the gas at t = 0 yr."))}k.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1702],{3905:(e,a,t)=>{t.d(a,{Zo:()=>l,kt:()=>d});var s=t(7294);function n(e,a,t){return a in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}function r(e,a){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);a&&(s=s.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),t.push.apply(t,s)}return t}function i(e){for(var a=1;a=0||(n[t]=e[t]);return n}(e,a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(n[t]=e[t])}return n}var o=s.createContext({}),p=function(e){var a=s.useContext(o),t=a;return e&&(t="function"==typeof e?e(a):i(i({},a),e)),t},l=function(e){var a=p(e.components);return s.createElement(o.Provider,{value:a},e.children)},c={inlineCode:"code",wrapper:function(e){var a=e.children;return s.createElement(s.Fragment,{},a)}},h=s.forwardRef((function(e,a){var t=e.components,n=e.mdxType,r=e.originalType,o=e.parentName,l=m(e,["components","mdxType","originalType","parentName"]),h=p(t),d=n,k=h["".concat(o,".").concat(d)]||h[d]||c[d]||r;return t?s.createElement(k,i(i({ref:a},l),{},{components:t})):s.createElement(k,i({ref:a},l))}));function d(e,a){var t=arguments,n=a&&a.mdxType;if("string"==typeof e||n){var r=t.length,i=new Array(r);i[0]=h;var m={};for(var o in a)hasOwnProperty.call(a,o)&&(m[o]=a[o]);m.originalType=e,m.mdxType="string"==typeof e?e:n,i[1]=m;for(var p=2;p{t.r(a),t.d(a,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>m,metadata:()=>p,toc:()=>c});var s=t(7462),n=t(3366),r=(t(7294),t(3905)),i=["components"],m={id:"physics-shocks",title:"Shock Models"},o=void 0,p={unversionedId:"physics-shocks",id:"version-v3.1.0/physics-shocks",title:"Shock Models",description:"Main Contributors: Izaskun Jimenez-Serra, Tom James, Jon Holdship",source:"@site/versioned_docs/version-v3.1.0/physics-shocks.md",sourceDirName:".",slug:"/physics-shocks",permalink:"/docs/v3.1.0/physics-shocks",draft:!1,tags:[],version:"v3.1.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"physics-shocks",title:"Shock Models"},sidebar:"docs",previous:{title:"Hot Core",permalink:"/docs/v3.1.0/physics-hotcore"},next:{title:"Collapse Models",permalink:"/docs/v3.1.0/physics-collapse"}},l={},c=[{value:"Shock Profiles",id:"shock-profiles",level:2},{value:"C-Shocks",id:"c-shocks",level:3},{value:"J-shocks",id:"j-shocks",level:3},{value:"Dimensions",id:"dimensions",level:2},{value:"Sputtering",id:"sputtering",level:2}],h={toc:c};function d(e){var a=e.components,t=(0,n.Z)(e,i);return(0,r.kt)("wrapper",(0,s.Z)({},h,t,{components:a,mdxType:"MDXLayout"}),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Main Contributors"),": Izaskun Jimenez-Serra, Tom James, Jon Holdship"),(0,r.kt)("h2",{id:"shock-profiles"},"Shock Profiles"),(0,r.kt)("p",null,"UCLCHEM uses two different shock parameterizations. These provide the physical properties of a gas through time as it is subjected to a shock. Whilst the most accurate MHD shock models solve the chemistry, MHD and radiative transfer problems simulataneously, few of these models include chemistry as detailed as UCLCHEM. We assume that the MHD models on which our parameterizations were validated used detailed enough chemistry that the shock profiles could be accurately calculated. This means that more detailed chemistry can be safely post-processed using UCLCHEM, a parameterization simply means the user can select parameters freely rather than from a preset selection of profiles from another code such as ",(0,r.kt)("a",{parentName:"p",href:"http://cdsads.u-strasbg.fr/abs/2015A&A...578A..63F"},"MHDvode"),"."),(0,r.kt)("h3",{id:"c-shocks"},"C-Shocks"),(0,r.kt)("p",null,"The C-shock is based on the parameterization by ",(0,r.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1051/0004-6361:20078054"},"Jimenez-Serra et al. 2008"),". It parameterizes the density, temperature and velocity profiles of c-shocks as a function of shock velocity, initial gas density and magnetic field. These were validated against the results of the detailed shock modelling of ",(0,r.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1046/j.1365-8711.2003.06716.x"},"Flower et al. 2003"),". Details of it's use can be found in ",(0,r.kt)("a",{parentName:"p",href:"/docs/pythonapi#uclchem.model.cshock"},"the c-shock function docs"),"."),(0,r.kt)("p",null,"A key value in this model is the dissipation length, which is the distance over which the velocity of the ions and the neutrals equalizes. In some sense, this is the extent of the C-shock, although post-shock cooling does continue for some distance after. The C-shock function will return the dissipation time (see ",(0,r.kt)("a",{parentName:"p",href:"/docs/physics-shocks#dimensions"},"below"),") and will also uses shorter timesteps for a number of years equal to twice the dissipation time in order to fully resolve the shock. The number of these time steps is controlled by an optional parameter."),(0,r.kt)("h3",{id:"j-shocks"},"J-shocks"),(0,r.kt)("p",null,"jshock is a similar parameterization for j-shocks from ",(0,r.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1051/0004-6361/201936536"},"James et al.")," validated against more recent results from MHDvode (",(0,r.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1051/0004-6361/201525740"},"Flower et al. 2015"),"). See the ",(0,r.kt)("a",{parentName:"p",href:"/docs/pythonapi#uclchem.model.jshock"},"j-shock function docs")," for details."),(0,r.kt)("h2",{id:"dimensions"},"Dimensions"),(0,r.kt)("p",null,"Both shock models are intended to be run as single point models only and the code will return an error for ",(0,r.kt)("inlineCode",{parentName:"p"},"points > 1"),". However, you can look at the 1D profile of a shock by converting between time and distance. If we assume the shock is stationary, that is that it's structure is unchanged as it moves through a cloud of gas, then the points that are far away in time are the same as those far away in space."),(0,r.kt)("img",{src:"/img/shock.png",width:"600","margin-left":"40%"}),(0,r.kt)("p",null,"As an illustration, as a shock front moves through a cloud and first hits a parcel of gas, this is t=0 in our shock model output. 5000 years later, the shock front has moved on, thus the output of UCLCHEM at t=5000 years is the state of a parcel of gas that was first hit 5000 years ago and is now far behind the shock front."),(0,r.kt)("p",null,"By using the shock velocity, you can translate 5000 years to the distance between the parcel that was shocked 5000 years ago and the parcel that is just being reached by the shock front,"),(0,r.kt)("div",{className:"math math-display"},(0,r.kt)("span",{parentName:"div",className:"katex-display"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("mi",{parentName:"mrow"},"z"),(0,r.kt)("mo",{parentName:"mrow"},"="),(0,r.kt)("msub",{parentName:"mrow"},(0,r.kt)("mi",{parentName:"msub"},"v"),(0,r.kt)("mi",{parentName:"msub"},"s")),(0,r.kt)("mi",{parentName:"mrow"},"t")),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"z= v_s t")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.43056em",verticalAlign:"0em"}}),(0,r.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.04398em"}},"z"),(0,r.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,r.kt)("span",{parentName:"span",className:"mrel"},"="),(0,r.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.76508em",verticalAlign:"-0.15em"}}),(0,r.kt)("span",{parentName:"span",className:"mord"},(0,r.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"v"),(0,r.kt)("span",{parentName:"span",className:"msupsub"},(0,r.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,r.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03588em",marginRight:"0.05em"}},(0,r.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,r.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,r.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,r.kt)("span",{parentName:"span"})))))),(0,r.kt)("span",{parentName:"span",className:"mord mathnormal"},"t")))))),(0,r.kt)("p",null,"Thus the history of a single point in a shocked cloud that is output by UCLCHEM can also be translated to a snapshot of a cloud that covers distance z."),(0,r.kt)("h2",{id:"sputtering"},"Sputtering"),(0,r.kt)("p",null,"The C-shock model uses the sputtering process described by ",(0,r.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1051/0004-6361:20078054"},"Jimenez-Serra et al. 2008"),". Briefly, we calculate the average energy imparted on the grains from a collision between the shocked gas and the grains. We then combine this with the collision rate and average yield for a given energy to calculate the sputtering rate which we integrate through time. In practice, this sputtering is so quick that it happens almost instantaneously at ",(0,r.kt)("span",{parentName:"p",className:"math math-inline"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("msub",{parentName:"mrow"},(0,r.kt)("mi",{parentName:"msub"},"t"),(0,r.kt)("mrow",{parentName:"msub"},(0,r.kt)("mi",{parentName:"mrow"},"s"),(0,r.kt)("mi",{parentName:"mrow"},"a"),(0,r.kt)("mi",{parentName:"mrow"},"t")))),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"t_{sat}")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.76508em",verticalAlign:"-0.15em"}}),(0,r.kt)("span",{parentName:"span",className:"mord"},(0,r.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"),(0,r.kt)("span",{parentName:"span",className:"msupsub"},(0,r.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.2805559999999999em"}},(0,r.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,r.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,r.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,r.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,r.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"))))),(0,r.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,r.kt)("span",{parentName:"span"})))))))))),", the saturation time. This is the time at which the silicon abundance stops increasing in more detailed models, used as a proxy for when the ices are fully sputtered. Thus it is likely that you will see a step change in the ice abundances where sputtering has not occurred yet in one time step and is complete in the second unless your timestep is very small."),(0,r.kt)("p",null,"The J-shock would begin with ",(0,r.kt)("span",{parentName:"p",className:"math math-inline"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("msub",{parentName:"mrow"},(0,r.kt)("mi",{parentName:"msub"},"V"),(0,r.kt)("mi",{parentName:"msub"},"s"))),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"V_s")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,r.kt)("span",{parentName:"span",className:"mord"},(0,r.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"V"),(0,r.kt)("span",{parentName:"span",className:"msupsub"},(0,r.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,r.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.22222em",marginRight:"0.05em"}},(0,r.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,r.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,r.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,r.kt)("span",{parentName:"span"}))))))))))," as the initial drift velocity of the sputtering routine described above and would instantaneously sputter at t = 0 yr. Furthermore, temperatures typically reach a minimum of 1000 K meaning the thermal sublimation is almost complete. Thus, we do not need to worry about the sputtering process in the J-shock, we simply remove all grain material and add it to the gas at t = 0 yr."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4608.0931fc03.js b/assets/js/4972.b9a66fc4.js similarity index 51% rename from assets/js/4608.0931fc03.js rename to assets/js/4972.b9a66fc4.js index 0dca141d..fdc2223d 100644 --- a/assets/js/4608.0931fc03.js +++ b/assets/js/4972.b9a66fc4.js @@ -1 +1 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4608],{4608:(e,t,n)=>{n.r(t),n.d(t,{default:()=>i});var a=n(7294),l=n(2600),o=n(5999),r=n(2662);function i(){return a.createElement(a.Fragment,null,a.createElement(r.d,{title:(0,o.I)({id:"theme.NotFound.title",message:"Page Not Found"})}),a.createElement(l.Z,null,a.createElement("main",{className:"container margin-vert--xl"},a.createElement("div",{className:"row"},a.createElement("div",{className:"col col--6 col--offset-3"},a.createElement("h1",{className:"hero__title"},a.createElement(o.Z,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),a.createElement("p",null,a.createElement(o.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),a.createElement("p",null,a.createElement(o.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))))}}}]); \ No newline at end of file +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4972],{4972:(e,t,n)=>{n.r(t),n.d(t,{default:()=>i});var a=n(7294),l=n(5999),o=n(1944),r=n(7961);function i(){return a.createElement(a.Fragment,null,a.createElement(o.d,{title:(0,l.I)({id:"theme.NotFound.title",message:"Page Not Found"})}),a.createElement(r.Z,null,a.createElement("main",{className:"container margin-vert--xl"},a.createElement("div",{className:"row"},a.createElement("div",{className:"col col--6 col--offset-3"},a.createElement("h1",{className:"hero__title"},a.createElement(l.Z,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))))}}}]); \ No newline at end of file diff --git a/assets/js/4b111dda.8af06373.js b/assets/js/4b111dda.8af06373.js deleted file mode 100644 index b0910970..00000000 --- a/assets/js/4b111dda.8af06373.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5241],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>u});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},h=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),h=c(n),u=o,m=h["".concat(s,".").concat(u)]||h[u]||p[u]||a;return n?r.createElement(m,i(i({ref:t},d),{},{components:n})):r.createElement(m,i({ref:t},d))}));function u(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=h;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:o,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>s,default:()=>u,frontMatter:()=>l,metadata:()=>c,toc:()=>p});var r=n(7462),o=n(3366),a=(n(7294),n(3905)),i=["components"],l={title:"Chemical modelling of glycolaldehyde and ethylene glycol in star-forming regions",authors:"jonholdship"},s=void 0,c={permalink:"/blog/2018/03/27/audrey-coms",source:"@site/blog/2018-03-27-audrey-coms.md",title:"Chemical modelling of glycolaldehyde and ethylene glycol in star-forming regions",description:"Audrey Coutens has published modelling work on glycoaldehyde and ethylene glycol using UCLCHEM. You can find the paper here and the abstract below.",date:"2018-03-27T00:00:00.000Z",formattedDate:"March 27, 2018",tags:[],readingTime:1.405,truncated:!1,authors:[{name:"Jonathan Holdship",title:"UCLCHEM developer",url:"https://jonholdship.github.io",imageURL:"/img/jon.png",key:"jonholdship"}],frontMatter:{title:"Chemical modelling of glycolaldehyde and ethylene glycol in star-forming regions",authors:"jonholdship"},prevItem:{title:"The Chemistry of Phosphorus-bearing Molecules under Energetic Phenomena",permalink:"/blog/2018/06/20/izaskun-phosphorus"},nextItem:{title:"Chemical modelling of complex organic molecules with peptide-like bonds in star-forming regions",permalink:"/blog/2018/02/05/david-grains"}},d={authorsImageUrls:[void 0]},p=[],h={toc:p};function u(e){var t=e.components,n=(0,o.Z)(e,i);return(0,a.kt)("wrapper",(0,r.Z)({},h,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Audrey Coutens has published modelling work on glycoaldehyde and ethylene glycol using UCLCHEM. You can find ",(0,a.kt)("a",{parentName:"p",href:"https://arxiv.org/abs/1712.08778"},"the paper here")," and the abstract below."),(0,a.kt)("p",null,"Peptide bonds (N-C = O) play a key role in metabolic processes since they link amino acids into peptide chains or proteins. Recently, several molecules containing peptide-like bonds have been detected across multiple environments in the interstellar medium, growing the need to fully understand their chemistry and their role in forming larger pre-biotic molecules. We present a comprehensive study of the chemistry of three molecules containing peptide-like bonds: HNCO, NH2CHO, and CH3NCO. We also included other CHNO isomers (HCNO, HOCN) and C2H3NO isomers (CH3OCN, CH3CNO) to the study. We have used the UCLCHEM gas-grain chemical code and included in our chemical network all possible formation/destruction pathways of these peptide-like molecules recently investigated either by theoretical calculations or in laboratory experiments. Our predictions are compared to observations obtained towards the proto-star IRAS 16293-2422 and the L1544 pre-stellar core. Our results show that some key reactions involving the CHNO and C2H3NO isomers need to be modified to match the observations. Consistently with recent laboratory findings, hydrogenation is unlikely to produce NH2CHO on grain surfaces, while a combination of radical-radical surface reactions and gas-phase reactions is a better alternative. In addition, better results are obtained for NH2CHO when a slightly higher activation energy of 25 K is considered for the gas-phase reaction NH2 + H2CO \u2192 NH2CHO + H. Finally, our modelling shows that the observed correlation between NH2CHO and HNCO in star-forming regions may come from the fact that HNCO and NH2CHO react to temperature in the same manner rather than from a direct chemical link between the two species."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4b111dda.91c2a6bd.js b/assets/js/4b111dda.91c2a6bd.js new file mode 100644 index 00000000..365054c1 --- /dev/null +++ b/assets/js/4b111dda.91c2a6bd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5241],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>u});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},h={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=c(n),u=o,m=p["".concat(s,".").concat(u)]||p[u]||h[u]||a;return n?r.createElement(m,i(i({ref:t},d),{},{components:n})):r.createElement(m,i({ref:t},d))}));function u(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=p;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:o,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>s,default:()=>u,frontMatter:()=>l,metadata:()=>c,toc:()=>h});var r=n(7462),o=n(3366),a=(n(7294),n(3905)),i=["components"],l={title:"Chemical modelling of glycolaldehyde and ethylene glycol in star-forming regions",authors:"jonholdship"},s=void 0,c={permalink:"/blog/2018/03/27/audrey-coms",source:"@site/blog/2018-03-27-audrey-coms.md",title:"Chemical modelling of glycolaldehyde and ethylene glycol in star-forming regions",description:"Audrey Coutens has published modelling work on glycoaldehyde and ethylene glycol using UCLCHEM. You can find the paper here and the abstract below.",date:"2018-03-27T00:00:00.000Z",formattedDate:"March 27, 2018",tags:[],readingTime:1.405,hasTruncateMarker:!1,authors:[{name:"Jonathan Holdship",title:"UCLCHEM developer",url:"https://jonholdship.github.io",imageURL:"/img/jon.png",key:"jonholdship"}],frontMatter:{title:"Chemical modelling of glycolaldehyde and ethylene glycol in star-forming regions",authors:"jonholdship"},prevItem:{title:"The Chemistry of Phosphorus-bearing Molecules under Energetic Phenomena",permalink:"/blog/2018/06/20/izaskun-phosphorus"},nextItem:{title:"Chemical modelling of complex organic molecules with peptide-like bonds in star-forming regions",permalink:"/blog/2018/02/05/david-grains"}},d={authorsImageUrls:[void 0]},h=[],p={toc:h};function u(e){var t=e.components,n=(0,o.Z)(e,i);return(0,a.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Audrey Coutens has published modelling work on glycoaldehyde and ethylene glycol using UCLCHEM. You can find ",(0,a.kt)("a",{parentName:"p",href:"https://arxiv.org/abs/1712.08778"},"the paper here")," and the abstract below."),(0,a.kt)("p",null,"Peptide bonds (N-C = O) play a key role in metabolic processes since they link amino acids into peptide chains or proteins. Recently, several molecules containing peptide-like bonds have been detected across multiple environments in the interstellar medium, growing the need to fully understand their chemistry and their role in forming larger pre-biotic molecules. We present a comprehensive study of the chemistry of three molecules containing peptide-like bonds: HNCO, NH2CHO, and CH3NCO. We also included other CHNO isomers (HCNO, HOCN) and C2H3NO isomers (CH3OCN, CH3CNO) to the study. We have used the UCLCHEM gas-grain chemical code and included in our chemical network all possible formation/destruction pathways of these peptide-like molecules recently investigated either by theoretical calculations or in laboratory experiments. Our predictions are compared to observations obtained towards the proto-star IRAS 16293-2422 and the L1544 pre-stellar core. Our results show that some key reactions involving the CHNO and C2H3NO isomers need to be modified to match the observations. Consistently with recent laboratory findings, hydrogenation is unlikely to produce NH2CHO on grain surfaces, while a combination of radical-radical surface reactions and gas-phase reactions is a better alternative. In addition, better results are obtained for NH2CHO when a slightly higher activation energy of 25 K is considered for the gas-phase reaction NH2 + H2CO \u2192 NH2CHO + H. Finally, our modelling shows that the observed correlation between NH2CHO and HNCO in star-forming regions may come from the fact that HNCO and NH2CHO react to temperature in the same manner rather than from a direct chemical link between the two species."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4c70ee09.07f6c3e9.js b/assets/js/4c70ee09.c737d261.js similarity index 50% rename from assets/js/4c70ee09.07f6c3e9.js rename to assets/js/4c70ee09.c737d261.js index 8a4a4d5a..365129eb 100644 --- a/assets/js/4c70ee09.07f6c3e9.js +++ b/assets/js/4c70ee09.c737d261.js @@ -1 +1 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1841],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>u});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),c=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=c(r),u=o,f=d["".concat(l,".").concat(u)]||d[u]||h[u]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function u(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:o,i[1]=s;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>u,frontMatter:()=>s,metadata:()=>c,toc:()=>h});var n=r(7462),o=r(3366),a=(r(7294),r(3905)),i=["components"],s={title:"Collapsing Prestellar Cores - a new physics module",author:"jonholdship"},l=void 0,c={permalink:"/blog/2018/07/12/felix-collapse",source:"@site/blog/2018-07-12-felix-collapse.md",title:"Collapsing Prestellar Cores - a new physics module",description:"Felix Priestley has used UCLCHEM to study the collapse of prestellar cores. In the process, he's created a new physics module collapse.f90 which follows a sphere of gas collapsing in different ways. The paper can be found here and the abstract is below.",date:"2018-07-12T00:00:00.000Z",formattedDate:"July 12, 2018",tags:[],readingTime:1.505,truncated:!1,authors:[{name:"jonholdship"}],frontMatter:{title:"Collapsing Prestellar Cores - a new physics module",author:"jonholdship"},prevItem:{title:"Nitrogen fractionation in external galaxies",permalink:"/blog/2019/04/19/serena-nitrogen-frac"},nextItem:{title:"The Chemistry of Phosphorus-bearing Molecules under Energetic Phenomena",permalink:"/blog/2018/06/20/izaskun-phosphorus"}},p={authorsImageUrls:[void 0]},h=[],d={toc:h};function u(e){var t=e.components,r=(0,o.Z)(e,i);return(0,a.kt)("wrapper",(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"https://fpriestley.github.io/"},"Felix Priestley")," has used UCLCHEM to study the collapse of prestellar cores. In the process, he's created a new physics module ",(0,a.kt)("inlineCode",{parentName:"p"},"collapse.f90")," which follows a sphere of gas collapsing in different ways. The ",(0,a.kt)("a",{parentName:"p",href:"https://arxiv.org/pdf/1806.01699.pdf"},"paper can be found here")," and the abstract is below."),(0,a.kt)("p",null,"Peptide bonds (N-C = O) play a key role in metabolic processes since they link amino acids into peptide chains or proteins. Recently, several molecules containing peptide-like bonds have been detected across multiple environments in the interstellar medium, growing the need to fully understand their chemistry and their role in forming larger pre-biotic molecules. We present a comprehensive study of the chemistry of three molecules containing peptide-like bonds: HNCO, NH2CHO, and CH3NCO. We also included other CHNO isomers (HCNO, HOCN) and C2H3NO isomers (CH3OCN, CH3CNO) to the study. We have used the UCLCHEM gas-grain chemical code and included in our chemical network all possible formation/destruction pathways of these peptide-like molecules recently investigated either by theoretical calculations or in laboratory experiments. Our predictions are compared to observations obtained towards the proto-star IRAS 16293-2422 and the L1544 pre-stellar core. Our results show that some key reactions involving the CHNO and C2H3NO isomers need to be modified to match the observations. Consistently with recent laboratory findings, hydrogenation is unlikely to produce NH2CHO on grain surfaces, while a combination of radical-radical surface reactions and gas-phase reactions is a better alternative. In addition, better results are obtained for NH2CHO when a slightly higher activation energy of 25 K is considered for the gas-phase reaction NH2 + H2CO \u2192 NH2CHO + H. Finally, our modelling shows that the observed correlation between NH2CHO and HNCO in star-forming regions may come from the fact that HNCO and NH2CHO react to temperature in the same manner rather than from a direct chemical link between the two species."))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1841],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>u});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),c=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=c(r),u=o,f=d["".concat(l,".").concat(u)]||d[u]||h[u]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function u(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:o,i[1]=s;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>u,frontMatter:()=>s,metadata:()=>c,toc:()=>h});var n=r(7462),o=r(3366),a=(r(7294),r(3905)),i=["components"],s={title:"Collapsing Prestellar Cores - a new physics module",author:"jonholdship"},l=void 0,c={permalink:"/blog/2018/07/12/felix-collapse",source:"@site/blog/2018-07-12-felix-collapse.md",title:"Collapsing Prestellar Cores - a new physics module",description:"Felix Priestley has used UCLCHEM to study the collapse of prestellar cores. In the process, he's created a new physics module collapse.f90 which follows a sphere of gas collapsing in different ways. The paper can be found here and the abstract is below.",date:"2018-07-12T00:00:00.000Z",formattedDate:"July 12, 2018",tags:[],readingTime:1.505,hasTruncateMarker:!1,authors:[{name:"jonholdship"}],frontMatter:{title:"Collapsing Prestellar Cores - a new physics module",author:"jonholdship"},prevItem:{title:"Nitrogen fractionation in external galaxies",permalink:"/blog/2019/04/19/serena-nitrogen-frac"},nextItem:{title:"The Chemistry of Phosphorus-bearing Molecules under Energetic Phenomena",permalink:"/blog/2018/06/20/izaskun-phosphorus"}},p={authorsImageUrls:[void 0]},h=[],d={toc:h};function u(e){var t=e.components,r=(0,o.Z)(e,i);return(0,a.kt)("wrapper",(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"https://fpriestley.github.io/"},"Felix Priestley")," has used UCLCHEM to study the collapse of prestellar cores. In the process, he's created a new physics module ",(0,a.kt)("inlineCode",{parentName:"p"},"collapse.f90")," which follows a sphere of gas collapsing in different ways. The ",(0,a.kt)("a",{parentName:"p",href:"https://arxiv.org/pdf/1806.01699.pdf"},"paper can be found here")," and the abstract is below."),(0,a.kt)("p",null,"Peptide bonds (N-C = O) play a key role in metabolic processes since they link amino acids into peptide chains or proteins. Recently, several molecules containing peptide-like bonds have been detected across multiple environments in the interstellar medium, growing the need to fully understand their chemistry and their role in forming larger pre-biotic molecules. We present a comprehensive study of the chemistry of three molecules containing peptide-like bonds: HNCO, NH2CHO, and CH3NCO. We also included other CHNO isomers (HCNO, HOCN) and C2H3NO isomers (CH3OCN, CH3CNO) to the study. We have used the UCLCHEM gas-grain chemical code and included in our chemical network all possible formation/destruction pathways of these peptide-like molecules recently investigated either by theoretical calculations or in laboratory experiments. Our predictions are compared to observations obtained towards the proto-star IRAS 16293-2422 and the L1544 pre-stellar core. Our results show that some key reactions involving the CHNO and C2H3NO isomers need to be modified to match the observations. Consistently with recent laboratory findings, hydrogenation is unlikely to produce NH2CHO on grain surfaces, while a combination of radical-radical surface reactions and gas-phase reactions is a better alternative. In addition, better results are obtained for NH2CHO when a slightly higher activation energy of 25 K is considered for the gas-phase reaction NH2 + H2CO \u2192 NH2CHO + H. Finally, our modelling shows that the observed correlation between NH2CHO and HNCO in star-forming regions may come from the fact that HNCO and NH2CHO react to temperature in the same manner rather than from a direct chemical link between the two species."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4c7304f4.07ff8d97.js b/assets/js/4c7304f4.07ff8d97.js deleted file mode 100644 index 0bfce2d5..00000000 --- a/assets/js/4c7304f4.07ff8d97.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2764],{3905:(e,t,l)=>{l.d(t,{Zo:()=>d,kt:()=>m});var n=l(7294);function r(e,t,l){return t in e?Object.defineProperty(e,t,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[t]=l,e}function a(e,t){var l=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),l.push.apply(l,n)}return l}function o(e){for(var t=1;t=0||(r[l]=e[l]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,l)&&(r[l]=e[l])}return r}var u=n.createContext({}),i=function(e){var t=n.useContext(u),l=t;return e&&(l="function"==typeof e?e(t):o(o({},t),e)),l},d=function(e){var t=i(e.components);return n.createElement(u.Provider,{value:t},e.children)},c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var l=e.components,r=e.mdxType,a=e.originalType,u=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=i(l),m=r,k=p["".concat(u,".").concat(m)]||p[m]||c[m]||a;return l?n.createElement(k,o(o({ref:t},d),{},{components:l})):n.createElement(k,o({ref:t},d))}));function m(e,t){var l=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=l.length,o=new Array(a);o[0]=p;var s={};for(var u in t)hasOwnProperty.call(t,u)&&(s[u]=t[u]);s.originalType=e,s.mdxType="string"==typeof e?e:r,o[1]=s;for(var i=2;i{l.r(t),l.d(t,{assets:()=>d,contentTitle:()=>u,default:()=>m,frontMatter:()=>s,metadata:()=>i,toc:()=>c});var n=l(7462),r=l(3366),a=(l(7294),l(3905)),o=["components"],s={},u="Running a Grid",i={unversionedId:"running_a_grid",id:"running_a_grid",title:"Running a Grid",description:"A common task is to run UCLCHEM over a grid of parameter combinations. This notebook sets up a simple approach to doing so for regular grids.",source:"@site/docs/running_a_grid.md",sourceDirName:".",slug:"/running_a_grid",permalink:"/docs/next/running_a_grid",tags:[],version:"current",lastUpdatedBy:"jonholdship",lastUpdatedAt:1652867284,formattedLastUpdatedAt:"5/18/2022",frontMatter:{},sidebar:"docs",previous:{title:"Advanced Physical Modelling",permalink:"/docs/next/modelling_objects"},next:{title:"Chemical Analysis",permalink:"/docs/next/chemical_analysis"}},d={},c=[{value:"A Simple Grid",id:"a-simple-grid",level:2},{value:"Define Parameter Space",id:"define-parameter-space",level:3},{value:"Set up the model",id:"set-up-the-model",level:3},{value:"Run Grid",id:"run-grid",level:3},{value:"The Simple Way",id:"the-simple-way",level:4},{value:"The Fast Way",id:"the-fast-way",level:4},{value:"Checking Your Grid",id:"checking-your-grid",level:2},{value:"Complex Grid",id:"complex-grid",level:2},{value:"Summary",id:"summary",level:2}],p={toc:c};function m(e){var t=e.components,l=(0,r.Z)(e,o);return(0,a.kt)("wrapper",(0,n.Z)({},p,l,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"running-a-grid"},"Running a Grid"),(0,a.kt)("p",null,"A common task is to run UCLCHEM over a grid of parameter combinations. This notebook sets up a simple approach to doing so for regular grids."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"import uclchem\nimport numpy as np\nimport pandas as pd\nfrom multiprocessing import Pool\nimport os\n")),(0,a.kt)("h2",{id:"a-simple-grid"},"A Simple Grid"),(0,a.kt)("h3",{id:"define-parameter-space"},"Define Parameter Space"),(0,a.kt)("p",null,"First, we define our parameter space. We do this by using numpy and pandas to produce a table of all possible combinations of some parameters of interest."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},'# This part can be substituted with any choice of grid\n#here we just vary the density, temperature and zeta \ntemperatures = np.linspace(10, 50, 3)\ndensities = np.logspace(4,6,3)\nzetas = np.logspace(1, 3, 3)\n\n#meshgrid will give all combinations, then we shape into columns and put into a table\nparameterSpace = np.asarray(np.meshgrid(temperatures,densities,zetas)).reshape(3, -1)\nmodel_table=pd.DataFrame(parameterSpace.T, columns=[\'temperature\',\'density\',\'zeta\'])\n\n#keep track of where each model output will be saved and make sure that folder exists\nmodel_table["outputFile"]=model_table.apply(lambda row: f"../grid_folder/{row.temperature}_{row.density}_{row.zeta}.csv", axis=1)\nprint(f"{model_table.shape[0]} models to run")\nif not os.path.exists("../grid_folder"):\n os.makedirs("../grid_folder")\n')),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"27 models to run\n")),(0,a.kt)("h3",{id:"set-up-the-model"},"Set up the model"),(0,a.kt)("p",null,"Next, we need a function that will run our model. We write a quick function that takes a row from our dataframe and uses it to populate a parameter dictionary for UCLCHEM and then run a cloud model. We can then map our dataframe to that function."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},'def run_model(row):\n #basic set of parameters we\'ll use for this grid. \n ParameterDictionary = {"endatfinaldensity":False,\n "freefall": False,\n "initialDens": row.density,\n "initialTemp": row.temperature,\n "zeta": row.zeta,\n "outputFile": row.outputFile,\n "finalTime":1.0e6,\n "baseAv":10}\n result = uclchem.model.cloud(param_dict=ParameterDictionary)\n return result[0]#just the integer error code\n')),(0,a.kt)("h3",{id:"run-grid"},"Run Grid"),(0,a.kt)("h4",{id:"the-simple-way"},"The Simple Way"),(0,a.kt)("p",null,"We can use pandas apply to simply pass each row to our helper function in turn. This will take some time since we're running the models one by one. I'll use the ",(0,a.kt)("inlineCode",{parentName:"p"},"head")," function just to run five rows as an example here."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"result=model_table.head().apply(run_model, axis=1)\n")),(0,a.kt)("h4",{id:"the-fast-way"},"The Fast Way"),(0,a.kt)("p",null,"Alternatively, we can use multiprocessing to run the models in parallel. That will allow us to run many models simulataneously and make use of all the cores available on our machine."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"def pool_func(x):\n i,row=x\n return run_model(row)\n\nwith Pool(processes=6) as pool:\n results = pool.map(pool_func, model_table.iterrows())\n")),(0,a.kt)("h2",{id:"checking-your-grid"},"Checking Your Grid"),(0,a.kt)("p",null,"After running, we should do two things. First, let's add ",(0,a.kt)("inlineCode",{parentName:"p"},"results")," to our dataframe as a new column. Positive results mean a successful UCLCHEM run and negative ones are unsuccessful. Then we can run each model through ",(0,a.kt)("inlineCode",{parentName:"p"},"check_element_conservation")," to check the integration was successful. We'll use both these things to flag models that failed in some way."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"def element_check(output_file):\n df=uclchem.analysis.read_output_file(output_file)\n #get conservation values\n conserves=uclchem.analysis.check_element_conservation(df)\n #check if any error is greater than 1%\n return all([float(x[:-1])<1 for x in conserves.values()])\n")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},'model_table["run_result"]=results\nmodel_table["elements_conserved"]=model_table["outputFile"].map(element_check)\n#check both conditions are met\nmodel_table["Successful"]=(model_table.run_result>=0) & (model_table.elements_conserved)\n')),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"model_table.head()\n")),(0,a.kt)("div",null,(0,a.kt)("table",{border:"1",class:"dataframe"},(0,a.kt)("thead",null,(0,a.kt)("tr",null,(0,a.kt)("th",null),(0,a.kt)("th",null,"temperature"),(0,a.kt)("th",null,"density"),(0,a.kt)("th",null,"zeta"),(0,a.kt)("th",null,"outputFile"),(0,a.kt)("th",null,"run_result"),(0,a.kt)("th",null,"elements_conserved"),(0,a.kt)("th",null,"Successful"))),(0,a.kt)("tbody",null,(0,a.kt)("tr",null,(0,a.kt)("th",null,"0"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"../grid_folder/10.0_10000.0_10.0.csv"),(0,a.kt)("td",null,"1"),(0,a.kt)("td",null,"True"),(0,a.kt)("td",null,"True")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"1"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"100.0"),(0,a.kt)("td",null,"../grid_folder/10.0_10000.0_100.0.csv"),(0,a.kt)("td",null,"1"),(0,a.kt)("td",null,"True"),(0,a.kt)("td",null,"True")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"2"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"1000.0"),(0,a.kt)("td",null,"../grid_folder/10.0_10000.0_1000.0.csv"),(0,a.kt)("td",null,"1"),(0,a.kt)("td",null,"True"),(0,a.kt)("td",null,"True")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"3"),(0,a.kt)("td",null,"30.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"../grid_folder/30.0_10000.0_10.0.csv"),(0,a.kt)("td",null,"1"),(0,a.kt)("td",null,"True"),(0,a.kt)("td",null,"True")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"4"),(0,a.kt)("td",null,"30.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"100.0"),(0,a.kt)("td",null,"../grid_folder/30.0_10000.0_100.0.csv"),(0,a.kt)("td",null,"1"),(0,a.kt)("td",null,"True"),(0,a.kt)("td",null,"True"))))),(0,a.kt)("h2",{id:"complex-grid"},"Complex Grid"),(0,a.kt)("p",null,"The above was straightforward enough but what about a modelling a grid of shocks? Not only do we want to loop over relevant parameters, we also need to run a few preliminary models to give ourselves starting abundances. We'll start by defining two helper functions, one to run our preliminary cloud and one to run the shock."),(0,a.kt)("p",null,"Let's further imagine that we want to obtain the abundances of several species at the end of the model. We can use the ",(0,a.kt)("inlineCode",{parentName:"p"},"out_species")," parameter to specify which species we want to track and return them to our dataframe."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},'out_species=["CO","H2O","CH3OH"]\n\ndef run_prelim(density):\n #basic set of parameters we\'ll use for this grid. \n ParameterDictionary = {"endatfinaldensity":True,\n "freefall": True,\n "initialDens":1e2,\n "finalDens": density,\n "initialTemp": 10.0,\n "abundSaveFile": f"../grid_folder/starts/{density:.0f}.csv",\n "baseAv":1}\n result = uclchem.model.cloud(param_dict=ParameterDictionary)\n return result\n\ndef run_model(row):\n i,row=row # we know we\'re receiving the iterrows() tuple\n #basic set of parameters we\'ll use for this grid. \n ParameterDictionary = {"endatfinaldensity":False,\n "freefall": False,\n "initialDens": row.density,\n "initialTemp": 10.0,\n "outputFile": row.outputFile,\n "abundLoadFile": f"../grid_folder/starts/{row.density:.0f}.csv",\n "finalTime":1.0e5,\n "abstol_factor":1e-18,\n "reltol":1e-12,\n "baseAv":1}\n result = uclchem.model.cshock(row.shock_velocity,param_dict=ParameterDictionary,out_species=out_species)\n #First check UCLCHEM\'s result flag to seeif it\'s positive, if it is return the abundances\n if result[0]>0:\n return result[:]\n #if not, return NaNs because model failed\n else:\n return([np.nan]*len(out_species))\n')),(0,a.kt)("p",null,"Then we define our parameter space again. We'll create two folders, one to store a set of initial abundances for each starting density in our model and another to store our shock outputs."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},'# This part can be substituted with any choice of grid\n# here we just combine various initial and final densities into an easily iterable array\nshock_velocities = np.linspace(10, 50, 3)\ndensities = np.logspace(4,6,3)\n\nparameterSpace = np.asarray(np.meshgrid(shock_velocities,densities)).reshape(2, -1)\nmodel_table=pd.DataFrame(parameterSpace.T, columns=[\'shock_velocity\',\'density\'])\nmodel_table["outputFile"]=model_table.apply(lambda row: f"../grid_folder/shocks/{row.shock_velocity}_{row.density}.csv", axis=1)\nprint(f"{model_table.shape[0]} models to run")\n\nfor folder in ["starts","shocks"]:\n if not os.path.exists(f"../grid_folder/{folder}"):\n os.makedirs(f"../grid_folder/{folder}")\n')),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"9 models to run\n")),(0,a.kt)("p",null,"We can then run our preliminary models followed by our science models. The science models will return the abundances at the final time step of each run so we can unpack those directly to our dataframe."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"with Pool(processes=3) as pool:\n results = pool.map(run_prelim, densities)\n")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},'with Pool(processes=6) as pool:\n results = pool.map(run_model, model_table.iterrows())\nmodel_table[["Result","Dissipation Time"]+out_species]=results\n')),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"model_table\n")),(0,a.kt)("div",null,(0,a.kt)("table",{border:"1",class:"dataframe"},(0,a.kt)("thead",null,(0,a.kt)("tr",null,(0,a.kt)("th",null),(0,a.kt)("th",null,"shock_velocity"),(0,a.kt)("th",null,"density"),(0,a.kt)("th",null,"outputFile"),(0,a.kt)("th",null,"Result"),(0,a.kt)("th",null,"Dissipation Time"),(0,a.kt)("th",null,"CO"),(0,a.kt)("th",null,"H2O"),(0,a.kt)("th",null,"CH3OH"))),(0,a.kt)("tbody",null,(0,a.kt)("tr",null,(0,a.kt)("th",null,"0"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/10.0_10000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"1171.898734"),(0,a.kt)("td",null,"7.316441e-05"),(0,a.kt)("td",null,"4.355495e-06"),(0,a.kt)("td",null,"4.624479e-07")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"1"),(0,a.kt)("td",null,"30.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/30.0_10000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"1171.898734"),(0,a.kt)("td",null,"2.591790e-05"),(0,a.kt)("td",null,"2.113885e-05"),(0,a.kt)("td",null,"1.196330e-07")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"2"),(0,a.kt)("td",null,"50.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/50.0_10000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"1171.898734"),(0,a.kt)("td",null,"1.320822e-05"),(0,a.kt)("td",null,"8.126066e-06"),(0,a.kt)("td",null,"1.989081e-08")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"3"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"100000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/10.0_100000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"117.189873"),(0,a.kt)("td",null,"1.082083e-07"),(0,a.kt)("td",null,"1.158740e-09"),(0,a.kt)("td",null,"3.697607e-10")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"4"),(0,a.kt)("td",null,"30.0"),(0,a.kt)("td",null,"100000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/30.0_100000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"117.189873"),(0,a.kt)("td",null,"1.121259e-10"),(0,a.kt)("td",null,"3.789106e-10"),(0,a.kt)("td",null,"4.907284e-10")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"5"),(0,a.kt)("td",null,"50.0"),(0,a.kt)("td",null,"100000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/50.0_100000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"117.189873"),(0,a.kt)("td",null,"2.454392e-10"),(0,a.kt)("td",null,"3.443643e-10"),(0,a.kt)("td",null,"6.454671e-10")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"6"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"1000000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/10.0_1000000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"11.718987"),(0,a.kt)("td",null,"1.084005e-10"),(0,a.kt)("td",null,"3.565914e-11"),(0,a.kt)("td",null,"4.816630e-11")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"7"),(0,a.kt)("td",null,"30.0"),(0,a.kt)("td",null,"1000000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/30.0_1000000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"11.718987"),(0,a.kt)("td",null,"1.897782e-10"),(0,a.kt)("td",null,"6.498499e-11"),(0,a.kt)("td",null,"7.847277e-12")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"8"),(0,a.kt)("td",null,"50.0"),(0,a.kt)("td",null,"1000000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/50.0_1000000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"11.718987"),(0,a.kt)("td",null,"2.167651e-10"),(0,a.kt)("td",null,"6.600196e-12"),(0,a.kt)("td",null,"3.412340e-12"))))),(0,a.kt)("h2",{id:"summary"},"Summary"),(0,a.kt)("p",null,"There are many ways to run grids of models and users will naturally develop their own methods. This notebook is just a simple example of how to run UCLCHEM for many parameter combinations whilst producing a useful output (the model_table) to keep track of all the combinations that were run. In a real script, we'd save the model file to csv at the end."),(0,a.kt)("p",null,"For much larger grids, it's recommended that you find a way to make your script robust to failure. Over a huge range of parameters, it is quite likely UCLCHEM will hit integration trouble for at least a few parameter combinations. Very occasionally, UCLCHEM will get caught in a loop where it fails to integrate and cannot adjust its strategy to manage it. This isn't a problem for small grids as the model can be stopped and the tolerances adjusted. However, for very large grids, you may end up locking all threads as they each get stuck on a different model. The best solution we've found for this case is to add a check so that models in your dataframe are skipped if their file already exists, this allows you to stop and restart the grid script as needed."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4c7304f4.d06bdc8c.js b/assets/js/4c7304f4.d06bdc8c.js new file mode 100644 index 00000000..311c3dd0 --- /dev/null +++ b/assets/js/4c7304f4.d06bdc8c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2764],{3905:(e,t,l)=>{l.d(t,{Zo:()=>d,kt:()=>m});var n=l(7294);function r(e,t,l){return t in e?Object.defineProperty(e,t,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[t]=l,e}function a(e,t){var l=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),l.push.apply(l,n)}return l}function o(e){for(var t=1;t=0||(r[l]=e[l]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,l)&&(r[l]=e[l])}return r}var u=n.createContext({}),i=function(e){var t=n.useContext(u),l=t;return e&&(l="function"==typeof e?e(t):o(o({},t),e)),l},d=function(e){var t=i(e.components);return n.createElement(u.Provider,{value:t},e.children)},c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var l=e.components,r=e.mdxType,a=e.originalType,u=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=i(l),m=r,k=p["".concat(u,".").concat(m)]||p[m]||c[m]||a;return l?n.createElement(k,o(o({ref:t},d),{},{components:l})):n.createElement(k,o({ref:t},d))}));function m(e,t){var l=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=l.length,o=new Array(a);o[0]=p;var s={};for(var u in t)hasOwnProperty.call(t,u)&&(s[u]=t[u]);s.originalType=e,s.mdxType="string"==typeof e?e:r,o[1]=s;for(var i=2;i{l.r(t),l.d(t,{assets:()=>d,contentTitle:()=>u,default:()=>m,frontMatter:()=>s,metadata:()=>i,toc:()=>c});var n=l(7462),r=l(3366),a=(l(7294),l(3905)),o=["components"],s={},u="Running a Grid",i={unversionedId:"running_a_grid",id:"running_a_grid",title:"Running a Grid",description:"A common task is to run UCLCHEM over a grid of parameter combinations. This notebook sets up a simple approach to doing so for regular grids.",source:"@site/docs/running_a_grid.md",sourceDirName:".",slug:"/running_a_grid",permalink:"/docs/next/running_a_grid",draft:!1,tags:[],version:"current",lastUpdatedBy:"jonholdship",lastUpdatedAt:1652867284,formattedLastUpdatedAt:"May 18, 2022",frontMatter:{},sidebar:"docs",previous:{title:"Advanced Physical Modelling",permalink:"/docs/next/modelling_objects"},next:{title:"Chemical Analysis",permalink:"/docs/next/chemical_analysis"}},d={},c=[{value:"A Simple Grid",id:"a-simple-grid",level:2},{value:"Define Parameter Space",id:"define-parameter-space",level:3},{value:"Set up the model",id:"set-up-the-model",level:3},{value:"Run Grid",id:"run-grid",level:3},{value:"The Simple Way",id:"the-simple-way",level:4},{value:"The Fast Way",id:"the-fast-way",level:4},{value:"Checking Your Grid",id:"checking-your-grid",level:2},{value:"Complex Grid",id:"complex-grid",level:2},{value:"Summary",id:"summary",level:2}],p={toc:c};function m(e){var t=e.components,l=(0,r.Z)(e,o);return(0,a.kt)("wrapper",(0,n.Z)({},p,l,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"running-a-grid"},"Running a Grid"),(0,a.kt)("p",null,"A common task is to run UCLCHEM over a grid of parameter combinations. This notebook sets up a simple approach to doing so for regular grids."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"import uclchem\nimport numpy as np\nimport pandas as pd\nfrom multiprocessing import Pool\nimport os\n")),(0,a.kt)("h2",{id:"a-simple-grid"},"A Simple Grid"),(0,a.kt)("h3",{id:"define-parameter-space"},"Define Parameter Space"),(0,a.kt)("p",null,"First, we define our parameter space. We do this by using numpy and pandas to produce a table of all possible combinations of some parameters of interest."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},'# This part can be substituted with any choice of grid\n#here we just vary the density, temperature and zeta \ntemperatures = np.linspace(10, 50, 3)\ndensities = np.logspace(4,6,3)\nzetas = np.logspace(1, 3, 3)\n\n#meshgrid will give all combinations, then we shape into columns and put into a table\nparameterSpace = np.asarray(np.meshgrid(temperatures,densities,zetas)).reshape(3, -1)\nmodel_table=pd.DataFrame(parameterSpace.T, columns=[\'temperature\',\'density\',\'zeta\'])\n\n#keep track of where each model output will be saved and make sure that folder exists\nmodel_table["outputFile"]=model_table.apply(lambda row: f"../grid_folder/{row.temperature}_{row.density}_{row.zeta}.csv", axis=1)\nprint(f"{model_table.shape[0]} models to run")\nif not os.path.exists("../grid_folder"):\n os.makedirs("../grid_folder")\n')),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"27 models to run\n")),(0,a.kt)("h3",{id:"set-up-the-model"},"Set up the model"),(0,a.kt)("p",null,"Next, we need a function that will run our model. We write a quick function that takes a row from our dataframe and uses it to populate a parameter dictionary for UCLCHEM and then run a cloud model. We can then map our dataframe to that function."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},'def run_model(row):\n #basic set of parameters we\'ll use for this grid. \n ParameterDictionary = {"endatfinaldensity":False,\n "freefall": False,\n "initialDens": row.density,\n "initialTemp": row.temperature,\n "zeta": row.zeta,\n "outputFile": row.outputFile,\n "finalTime":1.0e6,\n "baseAv":10}\n result = uclchem.model.cloud(param_dict=ParameterDictionary)\n return result[0]#just the integer error code\n')),(0,a.kt)("h3",{id:"run-grid"},"Run Grid"),(0,a.kt)("h4",{id:"the-simple-way"},"The Simple Way"),(0,a.kt)("p",null,"We can use pandas apply to simply pass each row to our helper function in turn. This will take some time since we're running the models one by one. I'll use the ",(0,a.kt)("inlineCode",{parentName:"p"},"head")," function just to run five rows as an example here."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"result=model_table.head().apply(run_model, axis=1)\n")),(0,a.kt)("h4",{id:"the-fast-way"},"The Fast Way"),(0,a.kt)("p",null,"Alternatively, we can use multiprocessing to run the models in parallel. That will allow us to run many models simulataneously and make use of all the cores available on our machine."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"def pool_func(x):\n i,row=x\n return run_model(row)\n\nwith Pool(processes=6) as pool:\n results = pool.map(pool_func, model_table.iterrows())\n")),(0,a.kt)("h2",{id:"checking-your-grid"},"Checking Your Grid"),(0,a.kt)("p",null,"After running, we should do two things. First, let's add ",(0,a.kt)("inlineCode",{parentName:"p"},"results")," to our dataframe as a new column. Positive results mean a successful UCLCHEM run and negative ones are unsuccessful. Then we can run each model through ",(0,a.kt)("inlineCode",{parentName:"p"},"check_element_conservation")," to check the integration was successful. We'll use both these things to flag models that failed in some way."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"def element_check(output_file):\n df=uclchem.analysis.read_output_file(output_file)\n #get conservation values\n conserves=uclchem.analysis.check_element_conservation(df)\n #check if any error is greater than 1%\n return all([float(x[:-1])<1 for x in conserves.values()])\n")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},'model_table["run_result"]=results\nmodel_table["elements_conserved"]=model_table["outputFile"].map(element_check)\n#check both conditions are met\nmodel_table["Successful"]=(model_table.run_result>=0) & (model_table.elements_conserved)\n')),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"model_table.head()\n")),(0,a.kt)("div",null,(0,a.kt)("table",{border:"1",class:"dataframe"},(0,a.kt)("thead",null,(0,a.kt)("tr",null,(0,a.kt)("th",null),(0,a.kt)("th",null,"temperature"),(0,a.kt)("th",null,"density"),(0,a.kt)("th",null,"zeta"),(0,a.kt)("th",null,"outputFile"),(0,a.kt)("th",null,"run_result"),(0,a.kt)("th",null,"elements_conserved"),(0,a.kt)("th",null,"Successful"))),(0,a.kt)("tbody",null,(0,a.kt)("tr",null,(0,a.kt)("th",null,"0"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"../grid_folder/10.0_10000.0_10.0.csv"),(0,a.kt)("td",null,"1"),(0,a.kt)("td",null,"True"),(0,a.kt)("td",null,"True")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"1"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"100.0"),(0,a.kt)("td",null,"../grid_folder/10.0_10000.0_100.0.csv"),(0,a.kt)("td",null,"1"),(0,a.kt)("td",null,"True"),(0,a.kt)("td",null,"True")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"2"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"1000.0"),(0,a.kt)("td",null,"../grid_folder/10.0_10000.0_1000.0.csv"),(0,a.kt)("td",null,"1"),(0,a.kt)("td",null,"True"),(0,a.kt)("td",null,"True")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"3"),(0,a.kt)("td",null,"30.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"../grid_folder/30.0_10000.0_10.0.csv"),(0,a.kt)("td",null,"1"),(0,a.kt)("td",null,"True"),(0,a.kt)("td",null,"True")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"4"),(0,a.kt)("td",null,"30.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"100.0"),(0,a.kt)("td",null,"../grid_folder/30.0_10000.0_100.0.csv"),(0,a.kt)("td",null,"1"),(0,a.kt)("td",null,"True"),(0,a.kt)("td",null,"True"))))),(0,a.kt)("h2",{id:"complex-grid"},"Complex Grid"),(0,a.kt)("p",null,"The above was straightforward enough but what about a modelling a grid of shocks? Not only do we want to loop over relevant parameters, we also need to run a few preliminary models to give ourselves starting abundances. We'll start by defining two helper functions, one to run our preliminary cloud and one to run the shock."),(0,a.kt)("p",null,"Let's further imagine that we want to obtain the abundances of several species at the end of the model. We can use the ",(0,a.kt)("inlineCode",{parentName:"p"},"out_species")," parameter to specify which species we want to track and return them to our dataframe."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},'out_species=["CO","H2O","CH3OH"]\n\ndef run_prelim(density):\n #basic set of parameters we\'ll use for this grid. \n ParameterDictionary = {"endatfinaldensity":True,\n "freefall": True,\n "initialDens":1e2,\n "finalDens": density,\n "initialTemp": 10.0,\n "abundSaveFile": f"../grid_folder/starts/{density:.0f}.csv",\n "baseAv":1}\n result = uclchem.model.cloud(param_dict=ParameterDictionary)\n return result\n\ndef run_model(row):\n i,row=row # we know we\'re receiving the iterrows() tuple\n #basic set of parameters we\'ll use for this grid. \n ParameterDictionary = {"endatfinaldensity":False,\n "freefall": False,\n "initialDens": row.density,\n "initialTemp": 10.0,\n "outputFile": row.outputFile,\n "abundLoadFile": f"../grid_folder/starts/{row.density:.0f}.csv",\n "finalTime":1.0e5,\n "abstol_factor":1e-18,\n "reltol":1e-12,\n "baseAv":1}\n result = uclchem.model.cshock(row.shock_velocity,param_dict=ParameterDictionary,out_species=out_species)\n #First check UCLCHEM\'s result flag to seeif it\'s positive, if it is return the abundances\n if result[0]>0:\n return result[:]\n #if not, return NaNs because model failed\n else:\n return([np.nan]*len(out_species))\n')),(0,a.kt)("p",null,"Then we define our parameter space again. We'll create two folders, one to store a set of initial abundances for each starting density in our model and another to store our shock outputs."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},'# This part can be substituted with any choice of grid\n# here we just combine various initial and final densities into an easily iterable array\nshock_velocities = np.linspace(10, 50, 3)\ndensities = np.logspace(4,6,3)\n\nparameterSpace = np.asarray(np.meshgrid(shock_velocities,densities)).reshape(2, -1)\nmodel_table=pd.DataFrame(parameterSpace.T, columns=[\'shock_velocity\',\'density\'])\nmodel_table["outputFile"]=model_table.apply(lambda row: f"../grid_folder/shocks/{row.shock_velocity}_{row.density}.csv", axis=1)\nprint(f"{model_table.shape[0]} models to run")\n\nfor folder in ["starts","shocks"]:\n if not os.path.exists(f"../grid_folder/{folder}"):\n os.makedirs(f"../grid_folder/{folder}")\n')),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"9 models to run\n")),(0,a.kt)("p",null,"We can then run our preliminary models followed by our science models. The science models will return the abundances at the final time step of each run so we can unpack those directly to our dataframe."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"with Pool(processes=3) as pool:\n results = pool.map(run_prelim, densities)\n")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},'with Pool(processes=6) as pool:\n results = pool.map(run_model, model_table.iterrows())\nmodel_table[["Result","Dissipation Time"]+out_species]=results\n')),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"model_table\n")),(0,a.kt)("div",null,(0,a.kt)("table",{border:"1",class:"dataframe"},(0,a.kt)("thead",null,(0,a.kt)("tr",null,(0,a.kt)("th",null),(0,a.kt)("th",null,"shock_velocity"),(0,a.kt)("th",null,"density"),(0,a.kt)("th",null,"outputFile"),(0,a.kt)("th",null,"Result"),(0,a.kt)("th",null,"Dissipation Time"),(0,a.kt)("th",null,"CO"),(0,a.kt)("th",null,"H2O"),(0,a.kt)("th",null,"CH3OH"))),(0,a.kt)("tbody",null,(0,a.kt)("tr",null,(0,a.kt)("th",null,"0"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/10.0_10000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"1171.898734"),(0,a.kt)("td",null,"7.316441e-05"),(0,a.kt)("td",null,"4.355495e-06"),(0,a.kt)("td",null,"4.624479e-07")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"1"),(0,a.kt)("td",null,"30.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/30.0_10000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"1171.898734"),(0,a.kt)("td",null,"2.591790e-05"),(0,a.kt)("td",null,"2.113885e-05"),(0,a.kt)("td",null,"1.196330e-07")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"2"),(0,a.kt)("td",null,"50.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/50.0_10000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"1171.898734"),(0,a.kt)("td",null,"1.320822e-05"),(0,a.kt)("td",null,"8.126066e-06"),(0,a.kt)("td",null,"1.989081e-08")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"3"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"100000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/10.0_100000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"117.189873"),(0,a.kt)("td",null,"1.082083e-07"),(0,a.kt)("td",null,"1.158740e-09"),(0,a.kt)("td",null,"3.697607e-10")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"4"),(0,a.kt)("td",null,"30.0"),(0,a.kt)("td",null,"100000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/30.0_100000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"117.189873"),(0,a.kt)("td",null,"1.121259e-10"),(0,a.kt)("td",null,"3.789106e-10"),(0,a.kt)("td",null,"4.907284e-10")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"5"),(0,a.kt)("td",null,"50.0"),(0,a.kt)("td",null,"100000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/50.0_100000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"117.189873"),(0,a.kt)("td",null,"2.454392e-10"),(0,a.kt)("td",null,"3.443643e-10"),(0,a.kt)("td",null,"6.454671e-10")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"6"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"1000000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/10.0_1000000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"11.718987"),(0,a.kt)("td",null,"1.084005e-10"),(0,a.kt)("td",null,"3.565914e-11"),(0,a.kt)("td",null,"4.816630e-11")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"7"),(0,a.kt)("td",null,"30.0"),(0,a.kt)("td",null,"1000000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/30.0_1000000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"11.718987"),(0,a.kt)("td",null,"1.897782e-10"),(0,a.kt)("td",null,"6.498499e-11"),(0,a.kt)("td",null,"7.847277e-12")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"8"),(0,a.kt)("td",null,"50.0"),(0,a.kt)("td",null,"1000000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/50.0_1000000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"11.718987"),(0,a.kt)("td",null,"2.167651e-10"),(0,a.kt)("td",null,"6.600196e-12"),(0,a.kt)("td",null,"3.412340e-12"))))),(0,a.kt)("h2",{id:"summary"},"Summary"),(0,a.kt)("p",null,"There are many ways to run grids of models and users will naturally develop their own methods. This notebook is just a simple example of how to run UCLCHEM for many parameter combinations whilst producing a useful output (the model_table) to keep track of all the combinations that were run. In a real script, we'd save the model file to csv at the end."),(0,a.kt)("p",null,"For much larger grids, it's recommended that you find a way to make your script robust to failure. Over a huge range of parameters, it is quite likely UCLCHEM will hit integration trouble for at least a few parameter combinations. Very occasionally, UCLCHEM will get caught in a loop where it fails to integrate and cannot adjust its strategy to manage it. This isn't a problem for small grids as the model can be stopped and the tolerances adjusted. However, for very large grids, you may end up locking all threads as they each get stuck on a different model. The best solution we've found for this case is to add a check so that models in your dataframe are skipped if their file already exists, this allows you to stop and restart the grid script as needed."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4f352dd6.4906d0dd.js b/assets/js/4f352dd6.d9212974.js similarity index 58% rename from assets/js/4f352dd6.4906d0dd.js rename to assets/js/4f352dd6.d9212974.js index 045c391e..45b1b9d4 100644 --- a/assets/js/4f352dd6.4906d0dd.js +++ b/assets/js/4f352dd6.d9212974.js @@ -1 +1 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4908],{3905:(e,t,r)=>{r.d(t,{Zo:()=>h,kt:()=>m});var a=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=a.createContext({}),c=function(e){var t=a.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},h=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,l=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),u=c(r),m=n,d=u["".concat(l,".").concat(m)]||u[m]||p[m]||o;return r?a.createElement(d,i(i({ref:t},h),{},{components:r})):a.createElement(d,i({ref:t},h))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:n,i[1]=s;for(var c=2;c{r.r(t),r.d(t,{assets:()=>h,contentTitle:()=>l,default:()=>m,frontMatter:()=>s,metadata:()=>c,toc:()=>p});var a=r(7462),n=r(3366),o=(r(7294),r(3905)),i=["components"],s={title:"The Cosmic-ray Ionization Rate in NGC 253",authors:"jonholdship"},l=void 0,c={permalink:"/blog/2022/04/14/crir-ngc253",source:"@site/blog/2022-04-14-crir-ngc253.md",title:"The Cosmic-ray Ionization Rate in NGC 253",description:"NGC 253 is a nearby starburst galaxy which hosts several large clouds of gas in its central molecular zone. These clouds are similar to GMCs but orders of magnitude more massive and much hotter, where the star formation rate is very high. The temperature of this gas is important because the star formation efficiency will be determined by how much internal energy that gas has.",date:"2022-04-14T00:00:00.000Z",formattedDate:"April 14, 2022",tags:[],readingTime:.895,truncated:!1,authors:[{name:"Jonathan Holdship",title:"UCLCHEM developer",url:"https://jonholdship.github.io",imageURL:"/img/jon.png",key:"jonholdship"}],frontMatter:{title:"The Cosmic-ray Ionization Rate in NGC 253",authors:"jonholdship"},prevItem:{title:"UCLCHEM v3.0",permalink:"/blog/2022/04/29/uclchem-v3"},nextItem:{title:"HITs - History Independent Tracers",permalink:"/blog/2022/02/06/holdship-hits"}},h={authorsImageUrls:[void 0]},p=[],u={toc:p};function m(e){var t=e.components,r=(0,n.Z)(e,i);return(0,o.kt)("wrapper",(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"NGC 253 is a nearby starburst galaxy which hosts several large clouds of gas in its central molecular zone. These clouds are similar to GMCs but orders of magnitude more massive and much hotter, where the star formation rate is very high. The temperature of this gas is important because the star formation efficiency will be determined by how much internal energy that gas has."),(0,o.kt)("p",null,"Many mechanisms could be heating this gas including mechanical heating due to turbulent shocks, UV photons, X-ray photons, and cosmic-rays. Whilst all are reasonable suspects in the CMZ of NGC 253, previous studies have shown ",(0,o.kt)("a",{parentName:"p",href:"https://ui.adsabs.harvard.edu/abs/2021A%26A...654A..55H/abstract"},"1")," ",(0,o.kt)("a",{parentName:"p",href:"https://ui.adsabs.harvard.edu/abs/2021ApJ...923...24H/abstract"},"2")," that the cosmic-ray ionization rate (CRIR) is likely to be very high."),(0,o.kt)("p",null,"In ",(0,o.kt)("a",{parentName:"p",href:"https://ui.adsabs.harvard.edu/abs/2022arXiv220403668H/abstract"},"a recent piece of work")," we have used UCLCHEM to show that the ratio of SO and H_3O^+ is a powerful probe of the CRIR. We model ALMA observations of emission from these molecules using UCLCHEM and ",(0,o.kt)("a",{parentName:"p",href:"https://spectralradex.readthedocs.io/en/latest/"},"SpectralRadex")," to infer the CRIR. We find that regardless of the temperature of the gas, the CRIR is around 10^4 times larger than in the Milky Way."))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4908],{3905:(e,t,r)=>{r.d(t,{Zo:()=>h,kt:()=>m});var a=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=a.createContext({}),c=function(e){var t=a.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},h=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,l=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),u=c(r),m=n,d=u["".concat(l,".").concat(m)]||u[m]||p[m]||o;return r?a.createElement(d,i(i({ref:t},h),{},{components:r})):a.createElement(d,i({ref:t},h))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:n,i[1]=s;for(var c=2;c{r.r(t),r.d(t,{assets:()=>h,contentTitle:()=>l,default:()=>m,frontMatter:()=>s,metadata:()=>c,toc:()=>p});var a=r(7462),n=r(3366),o=(r(7294),r(3905)),i=["components"],s={title:"The Cosmic-ray Ionization Rate in NGC 253",authors:"jonholdship"},l=void 0,c={permalink:"/blog/2022/04/14/crir-ngc253",source:"@site/blog/2022-04-14-crir-ngc253.md",title:"The Cosmic-ray Ionization Rate in NGC 253",description:"NGC 253 is a nearby starburst galaxy which hosts several large clouds of gas in its central molecular zone. These clouds are similar to GMCs but orders of magnitude more massive and much hotter, where the star formation rate is very high. The temperature of this gas is important because the star formation efficiency will be determined by how much internal energy that gas has.",date:"2022-04-14T00:00:00.000Z",formattedDate:"April 14, 2022",tags:[],readingTime:.895,hasTruncateMarker:!1,authors:[{name:"Jonathan Holdship",title:"UCLCHEM developer",url:"https://jonholdship.github.io",imageURL:"/img/jon.png",key:"jonholdship"}],frontMatter:{title:"The Cosmic-ray Ionization Rate in NGC 253",authors:"jonholdship"},prevItem:{title:"UCLCHEM v3.0",permalink:"/blog/2022/04/29/uclchem-v3"},nextItem:{title:"HITs - History Independent Tracers",permalink:"/blog/2022/02/06/holdship-hits"}},h={authorsImageUrls:[void 0]},p=[],u={toc:p};function m(e){var t=e.components,r=(0,n.Z)(e,i);return(0,o.kt)("wrapper",(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"NGC 253 is a nearby starburst galaxy which hosts several large clouds of gas in its central molecular zone. These clouds are similar to GMCs but orders of magnitude more massive and much hotter, where the star formation rate is very high. The temperature of this gas is important because the star formation efficiency will be determined by how much internal energy that gas has."),(0,o.kt)("p",null,"Many mechanisms could be heating this gas including mechanical heating due to turbulent shocks, UV photons, X-ray photons, and cosmic-rays. Whilst all are reasonable suspects in the CMZ of NGC 253, previous studies have shown ",(0,o.kt)("a",{parentName:"p",href:"https://ui.adsabs.harvard.edu/abs/2021A%26A...654A..55H/abstract"},"1")," ",(0,o.kt)("a",{parentName:"p",href:"https://ui.adsabs.harvard.edu/abs/2021ApJ...923...24H/abstract"},"2")," that the cosmic-ray ionization rate (CRIR) is likely to be very high."),(0,o.kt)("p",null,"In ",(0,o.kt)("a",{parentName:"p",href:"https://ui.adsabs.harvard.edu/abs/2022arXiv220403668H/abstract"},"a recent piece of work")," we have used UCLCHEM to show that the ratio of SO and H_3O^+ is a powerful probe of the CRIR. We model ALMA observations of emission from these molecules using UCLCHEM and ",(0,o.kt)("a",{parentName:"p",href:"https://spectralradex.readthedocs.io/en/latest/"},"SpectralRadex")," to infer the CRIR. We find that regardless of the temperature of the gas, the CRIR is around 10^4 times larger than in the Milky Way."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/512466b5.692a4140.js b/assets/js/512466b5.692a4140.js deleted file mode 100644 index 4469f452..00000000 --- a/assets/js/512466b5.692a4140.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2080],{3905:(e,a,t)=>{t.d(a,{Zo:()=>l,kt:()=>d});var s=t(7294);function n(e,a,t){return a in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}function r(e,a){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);a&&(s=s.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),t.push.apply(t,s)}return t}function i(e){for(var a=1;a=0||(n[t]=e[t]);return n}(e,a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(n[t]=e[t])}return n}var o=s.createContext({}),p=function(e){var a=s.useContext(o),t=a;return e&&(t="function"==typeof e?e(a):i(i({},a),e)),t},l=function(e){var a=p(e.components);return s.createElement(o.Provider,{value:a},e.children)},c={inlineCode:"code",wrapper:function(e){var a=e.children;return s.createElement(s.Fragment,{},a)}},h=s.forwardRef((function(e,a){var t=e.components,n=e.mdxType,r=e.originalType,o=e.parentName,l=m(e,["components","mdxType","originalType","parentName"]),h=p(t),d=n,k=h["".concat(o,".").concat(d)]||h[d]||c[d]||r;return t?s.createElement(k,i(i({ref:a},l),{},{components:t})):s.createElement(k,i({ref:a},l))}));function d(e,a){var t=arguments,n=a&&a.mdxType;if("string"==typeof e||n){var r=t.length,i=new Array(r);i[0]=h;var m={};for(var o in a)hasOwnProperty.call(a,o)&&(m[o]=a[o]);m.originalType=e,m.mdxType="string"==typeof e?e:n,i[1]=m;for(var p=2;p{t.r(a),t.d(a,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>m,metadata:()=>p,toc:()=>c});var s=t(7462),n=t(3366),r=(t(7294),t(3905)),i=["components"],m={id:"physics-shocks",title:"Shock Models"},o=void 0,p={unversionedId:"physics-shocks",id:"physics-shocks",title:"Shock Models",description:"Main Contributors: Izaskun Jimenez-Serra, Tom James, Jon Holdship",source:"@site/docs/physics-shocks.md",sourceDirName:".",slug:"/physics-shocks",permalink:"/docs/next/physics-shocks",tags:[],version:"current",lastUpdatedBy:"jonholdship",lastUpdatedAt:1651241879,formattedLastUpdatedAt:"4/29/2022",frontMatter:{id:"physics-shocks",title:"Shock Models"},sidebar:"docs",previous:{title:"Hot Core",permalink:"/docs/next/physics-hotcore"},next:{title:"Collapse Models",permalink:"/docs/next/physics-collapse"}},l={},c=[{value:"Shock Profiles",id:"shock-profiles",level:2},{value:"C-Shocks",id:"c-shocks",level:3},{value:"J-shocks",id:"j-shocks",level:3},{value:"Dimensions",id:"dimensions",level:2},{value:"Sputtering",id:"sputtering",level:2}],h={toc:c};function d(e){var a=e.components,t=(0,n.Z)(e,i);return(0,r.kt)("wrapper",(0,s.Z)({},h,t,{components:a,mdxType:"MDXLayout"}),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Main Contributors"),": Izaskun Jimenez-Serra, Tom James, Jon Holdship"),(0,r.kt)("h2",{id:"shock-profiles"},"Shock Profiles"),(0,r.kt)("p",null,"UCLCHEM uses two different shock parameterizations. These provide the physical properties of a gas through time as it is subjected to a shock. Whilst the most accurate MHD shock models solve the chemistry, MHD and radiative transfer problems simulataneously, few of these models include chemistry as detailed as UCLCHEM. We assume that the MHD models on which our parameterizations were validated used detailed enough chemistry that the shock profiles could be accurately calculated. This means that more detailed chemistry can be safely post-processed using UCLCHEM, a parameterization simply means the user can select parameters freely rather than from a preset selection of profiles from another code such as ",(0,r.kt)("a",{parentName:"p",href:"http://cdsads.u-strasbg.fr/abs/2015A&A...578A..63F"},"MHDvode"),"."),(0,r.kt)("h3",{id:"c-shocks"},"C-Shocks"),(0,r.kt)("p",null,"The C-shock is based on the parameterization by ",(0,r.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1051/0004-6361:20078054"},"Jimenez-Serra et al. 2008"),". It parameterizes the density, temperature and velocity profiles of c-shocks as a function of shock velocity, initial gas density and magnetic field. These were validated against the results of the detailed shock modelling of ",(0,r.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1046/j.1365-8711.2003.06716.x"},"Flower et al. 2003"),". Details of it's use can be found in ",(0,r.kt)("a",{parentName:"p",href:"/docs/pythonapi#uclchem.model.cshock"},"the c-shock function docs"),"."),(0,r.kt)("p",null,"A key value in this model is the dissipation length, which is the distance over which the velocity of the ions and the neutrals equalizes. In some sense, this is the extent of the C-shock, although post-shock cooling does continue for some distance after. The C-shock function will return the dissipation time (see ",(0,r.kt)("a",{parentName:"p",href:"/docs/physics-shocks#dimensions"},"below"),") and will also uses shorter timesteps for a number of years equal to twice the dissipation time in order to fully resolve the shock. The number of these time steps is controlled by an optional parameter."),(0,r.kt)("h3",{id:"j-shocks"},"J-shocks"),(0,r.kt)("p",null,"jshock is a similar parameterization for j-shocks from ",(0,r.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1051/0004-6361/201936536"},"James et al.")," validated against more recent results from MHDvode (",(0,r.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1051/0004-6361/201525740"},"Flower et al. 2015"),"). See the ",(0,r.kt)("a",{parentName:"p",href:"/docs/pythonapi#uclchem.model.jshock"},"j-shock function docs")," for details."),(0,r.kt)("h2",{id:"dimensions"},"Dimensions"),(0,r.kt)("p",null,"Both shock models are intended to be run as single point models only and the code will return an error for ",(0,r.kt)("inlineCode",{parentName:"p"},"points > 1"),". However, you can look at the 1D profile of a shock by converting between time and distance. If we assume the shock is stationary, that is that it's structure is unchanged as it moves through a cloud of gas, then the points that are far away in time are the same as those far away in space."),(0,r.kt)("img",{src:"/img/shock.png",width:"600","margin-left":"40%"}),(0,r.kt)("p",null,"As an illustration, as a shock front moves through a cloud and first hits a parcel of gas, this is t=0 in our shock model output. 5000 years later, the shock front has moved on, thus the output of UCLCHEM at t=5000 years is the state of a parcel of gas that was first hit 5000 years ago and is now far behind the shock front."),(0,r.kt)("p",null,"By using the shock velocity, you can translate 5000 years to the distance between the parcel that was shocked 5000 years ago and the parcel that is just being reached by the shock front,"),(0,r.kt)("div",{className:"math math-display"},(0,r.kt)("span",{parentName:"div",className:"katex-display"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("mi",{parentName:"mrow"},"z"),(0,r.kt)("mo",{parentName:"mrow"},"="),(0,r.kt)("msub",{parentName:"mrow"},(0,r.kt)("mi",{parentName:"msub"},"v"),(0,r.kt)("mi",{parentName:"msub"},"s")),(0,r.kt)("mi",{parentName:"mrow"},"t")),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"z= v_s t")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.43056em",verticalAlign:"0em"}}),(0,r.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.04398em"}},"z"),(0,r.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,r.kt)("span",{parentName:"span",className:"mrel"},"="),(0,r.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.76508em",verticalAlign:"-0.15em"}}),(0,r.kt)("span",{parentName:"span",className:"mord"},(0,r.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"v"),(0,r.kt)("span",{parentName:"span",className:"msupsub"},(0,r.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,r.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03588em",marginRight:"0.05em"}},(0,r.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,r.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,r.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,r.kt)("span",{parentName:"span"})))))),(0,r.kt)("span",{parentName:"span",className:"mord mathnormal"},"t")))))),(0,r.kt)("p",null,"Thus the history of a single point in a shocked cloud that is output by UCLCHEM can also be translated to a snapshot of a cloud that covers distance z."),(0,r.kt)("h2",{id:"sputtering"},"Sputtering"),(0,r.kt)("p",null,"The C-shock model uses the sputtering process described by ",(0,r.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1051/0004-6361:20078054"},"Jimenez-Serra et al. 2008"),". Briefly, we calculate the average energy imparted on the grains from a collision between the shocked gas and the grains. We then combine this with the collision rate and average yield for a given energy to calculate the sputtering rate which we integrate through time. In practice, this sputtering is so quick that it happens almost instantaneously at ",(0,r.kt)("span",{parentName:"p",className:"math math-inline"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("msub",{parentName:"mrow"},(0,r.kt)("mi",{parentName:"msub"},"t"),(0,r.kt)("mrow",{parentName:"msub"},(0,r.kt)("mi",{parentName:"mrow"},"s"),(0,r.kt)("mi",{parentName:"mrow"},"a"),(0,r.kt)("mi",{parentName:"mrow"},"t")))),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"t_{sat}")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.76508em",verticalAlign:"-0.15em"}}),(0,r.kt)("span",{parentName:"span",className:"mord"},(0,r.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"),(0,r.kt)("span",{parentName:"span",className:"msupsub"},(0,r.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.2805559999999999em"}},(0,r.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,r.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,r.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,r.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,r.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"))))),(0,r.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,r.kt)("span",{parentName:"span"})))))))))),", the saturation time. This is the time at which the silicon abundance stops increasing in more detailed models, used as a proxy for when the ices are fully sputtered. Thus it is likely that you will see a step change in the ice abundances where sputtering has not occurred yet in one time step and is complete in the second unless your timestep is very small."),(0,r.kt)("p",null,"The J-shock would begin with ",(0,r.kt)("span",{parentName:"p",className:"math math-inline"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("msub",{parentName:"mrow"},(0,r.kt)("mi",{parentName:"msub"},"V"),(0,r.kt)("mi",{parentName:"msub"},"s"))),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"V_s")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,r.kt)("span",{parentName:"span",className:"mord"},(0,r.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"V"),(0,r.kt)("span",{parentName:"span",className:"msupsub"},(0,r.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,r.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.22222em",marginRight:"0.05em"}},(0,r.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,r.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,r.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,r.kt)("span",{parentName:"span"}))))))))))," as the initial drift velocity of the sputtering routine described above and would instantaneously sputter at t = 0 yr. Furthermore, temperatures typically reach a minimum of 1000 K meaning the thermal sublimation is almost complete. Thus, we do not need to worry about the sputtering process in the J-shock, we simply remove all grain material and add it to the gas at t = 0 yr."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/512466b5.8486178f.js b/assets/js/512466b5.8486178f.js new file mode 100644 index 00000000..01eccf50 --- /dev/null +++ b/assets/js/512466b5.8486178f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2080],{3905:(e,a,t)=>{t.d(a,{Zo:()=>l,kt:()=>d});var s=t(7294);function n(e,a,t){return a in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}function r(e,a){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);a&&(s=s.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),t.push.apply(t,s)}return t}function i(e){for(var a=1;a=0||(n[t]=e[t]);return n}(e,a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(n[t]=e[t])}return n}var o=s.createContext({}),p=function(e){var a=s.useContext(o),t=a;return e&&(t="function"==typeof e?e(a):i(i({},a),e)),t},l=function(e){var a=p(e.components);return s.createElement(o.Provider,{value:a},e.children)},c={inlineCode:"code",wrapper:function(e){var a=e.children;return s.createElement(s.Fragment,{},a)}},h=s.forwardRef((function(e,a){var t=e.components,n=e.mdxType,r=e.originalType,o=e.parentName,l=m(e,["components","mdxType","originalType","parentName"]),h=p(t),d=n,k=h["".concat(o,".").concat(d)]||h[d]||c[d]||r;return t?s.createElement(k,i(i({ref:a},l),{},{components:t})):s.createElement(k,i({ref:a},l))}));function d(e,a){var t=arguments,n=a&&a.mdxType;if("string"==typeof e||n){var r=t.length,i=new Array(r);i[0]=h;var m={};for(var o in a)hasOwnProperty.call(a,o)&&(m[o]=a[o]);m.originalType=e,m.mdxType="string"==typeof e?e:n,i[1]=m;for(var p=2;p{t.r(a),t.d(a,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>m,metadata:()=>p,toc:()=>c});var s=t(7462),n=t(3366),r=(t(7294),t(3905)),i=["components"],m={id:"physics-shocks",title:"Shock Models"},o=void 0,p={unversionedId:"physics-shocks",id:"physics-shocks",title:"Shock Models",description:"Main Contributors: Izaskun Jimenez-Serra, Tom James, Jon Holdship",source:"@site/docs/physics-shocks.md",sourceDirName:".",slug:"/physics-shocks",permalink:"/docs/next/physics-shocks",draft:!1,tags:[],version:"current",lastUpdatedBy:"jonholdship",lastUpdatedAt:1651241879,formattedLastUpdatedAt:"Apr 29, 2022",frontMatter:{id:"physics-shocks",title:"Shock Models"},sidebar:"docs",previous:{title:"Hot Core",permalink:"/docs/next/physics-hotcore"},next:{title:"Collapse Models",permalink:"/docs/next/physics-collapse"}},l={},c=[{value:"Shock Profiles",id:"shock-profiles",level:2},{value:"C-Shocks",id:"c-shocks",level:3},{value:"J-shocks",id:"j-shocks",level:3},{value:"Dimensions",id:"dimensions",level:2},{value:"Sputtering",id:"sputtering",level:2}],h={toc:c};function d(e){var a=e.components,t=(0,n.Z)(e,i);return(0,r.kt)("wrapper",(0,s.Z)({},h,t,{components:a,mdxType:"MDXLayout"}),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Main Contributors"),": Izaskun Jimenez-Serra, Tom James, Jon Holdship"),(0,r.kt)("h2",{id:"shock-profiles"},"Shock Profiles"),(0,r.kt)("p",null,"UCLCHEM uses two different shock parameterizations. These provide the physical properties of a gas through time as it is subjected to a shock. Whilst the most accurate MHD shock models solve the chemistry, MHD and radiative transfer problems simulataneously, few of these models include chemistry as detailed as UCLCHEM. We assume that the MHD models on which our parameterizations were validated used detailed enough chemistry that the shock profiles could be accurately calculated. This means that more detailed chemistry can be safely post-processed using UCLCHEM, a parameterization simply means the user can select parameters freely rather than from a preset selection of profiles from another code such as ",(0,r.kt)("a",{parentName:"p",href:"http://cdsads.u-strasbg.fr/abs/2015A&A...578A..63F"},"MHDvode"),"."),(0,r.kt)("h3",{id:"c-shocks"},"C-Shocks"),(0,r.kt)("p",null,"The C-shock is based on the parameterization by ",(0,r.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1051/0004-6361:20078054"},"Jimenez-Serra et al. 2008"),". It parameterizes the density, temperature and velocity profiles of c-shocks as a function of shock velocity, initial gas density and magnetic field. These were validated against the results of the detailed shock modelling of ",(0,r.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1046/j.1365-8711.2003.06716.x"},"Flower et al. 2003"),". Details of it's use can be found in ",(0,r.kt)("a",{parentName:"p",href:"/docs/pythonapi#uclchem.model.cshock"},"the c-shock function docs"),"."),(0,r.kt)("p",null,"A key value in this model is the dissipation length, which is the distance over which the velocity of the ions and the neutrals equalizes. In some sense, this is the extent of the C-shock, although post-shock cooling does continue for some distance after. The C-shock function will return the dissipation time (see ",(0,r.kt)("a",{parentName:"p",href:"/docs/physics-shocks#dimensions"},"below"),") and will also uses shorter timesteps for a number of years equal to twice the dissipation time in order to fully resolve the shock. The number of these time steps is controlled by an optional parameter."),(0,r.kt)("h3",{id:"j-shocks"},"J-shocks"),(0,r.kt)("p",null,"jshock is a similar parameterization for j-shocks from ",(0,r.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1051/0004-6361/201936536"},"James et al.")," validated against more recent results from MHDvode (",(0,r.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1051/0004-6361/201525740"},"Flower et al. 2015"),"). See the ",(0,r.kt)("a",{parentName:"p",href:"/docs/pythonapi#uclchem.model.jshock"},"j-shock function docs")," for details."),(0,r.kt)("h2",{id:"dimensions"},"Dimensions"),(0,r.kt)("p",null,"Both shock models are intended to be run as single point models only and the code will return an error for ",(0,r.kt)("inlineCode",{parentName:"p"},"points > 1"),". However, you can look at the 1D profile of a shock by converting between time and distance. If we assume the shock is stationary, that is that it's structure is unchanged as it moves through a cloud of gas, then the points that are far away in time are the same as those far away in space."),(0,r.kt)("img",{src:"/img/shock.png",width:"600","margin-left":"40%"}),(0,r.kt)("p",null,"As an illustration, as a shock front moves through a cloud and first hits a parcel of gas, this is t=0 in our shock model output. 5000 years later, the shock front has moved on, thus the output of UCLCHEM at t=5000 years is the state of a parcel of gas that was first hit 5000 years ago and is now far behind the shock front."),(0,r.kt)("p",null,"By using the shock velocity, you can translate 5000 years to the distance between the parcel that was shocked 5000 years ago and the parcel that is just being reached by the shock front,"),(0,r.kt)("div",{className:"math math-display"},(0,r.kt)("span",{parentName:"div",className:"katex-display"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("mi",{parentName:"mrow"},"z"),(0,r.kt)("mo",{parentName:"mrow"},"="),(0,r.kt)("msub",{parentName:"mrow"},(0,r.kt)("mi",{parentName:"msub"},"v"),(0,r.kt)("mi",{parentName:"msub"},"s")),(0,r.kt)("mi",{parentName:"mrow"},"t")),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"z= v_s t")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.43056em",verticalAlign:"0em"}}),(0,r.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.04398em"}},"z"),(0,r.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,r.kt)("span",{parentName:"span",className:"mrel"},"="),(0,r.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.76508em",verticalAlign:"-0.15em"}}),(0,r.kt)("span",{parentName:"span",className:"mord"},(0,r.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"v"),(0,r.kt)("span",{parentName:"span",className:"msupsub"},(0,r.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,r.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03588em",marginRight:"0.05em"}},(0,r.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,r.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,r.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,r.kt)("span",{parentName:"span"})))))),(0,r.kt)("span",{parentName:"span",className:"mord mathnormal"},"t")))))),(0,r.kt)("p",null,"Thus the history of a single point in a shocked cloud that is output by UCLCHEM can also be translated to a snapshot of a cloud that covers distance z."),(0,r.kt)("h2",{id:"sputtering"},"Sputtering"),(0,r.kt)("p",null,"The C-shock model uses the sputtering process described by ",(0,r.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1051/0004-6361:20078054"},"Jimenez-Serra et al. 2008"),". Briefly, we calculate the average energy imparted on the grains from a collision between the shocked gas and the grains. We then combine this with the collision rate and average yield for a given energy to calculate the sputtering rate which we integrate through time. In practice, this sputtering is so quick that it happens almost instantaneously at ",(0,r.kt)("span",{parentName:"p",className:"math math-inline"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("msub",{parentName:"mrow"},(0,r.kt)("mi",{parentName:"msub"},"t"),(0,r.kt)("mrow",{parentName:"msub"},(0,r.kt)("mi",{parentName:"mrow"},"s"),(0,r.kt)("mi",{parentName:"mrow"},"a"),(0,r.kt)("mi",{parentName:"mrow"},"t")))),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"t_{sat}")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.76508em",verticalAlign:"-0.15em"}}),(0,r.kt)("span",{parentName:"span",className:"mord"},(0,r.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"),(0,r.kt)("span",{parentName:"span",className:"msupsub"},(0,r.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.2805559999999999em"}},(0,r.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,r.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,r.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,r.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,r.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"))))),(0,r.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,r.kt)("span",{parentName:"span"})))))))))),", the saturation time. This is the time at which the silicon abundance stops increasing in more detailed models, used as a proxy for when the ices are fully sputtered. Thus it is likely that you will see a step change in the ice abundances where sputtering has not occurred yet in one time step and is complete in the second unless your timestep is very small."),(0,r.kt)("p",null,"The J-shock would begin with ",(0,r.kt)("span",{parentName:"p",className:"math math-inline"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("msub",{parentName:"mrow"},(0,r.kt)("mi",{parentName:"msub"},"V"),(0,r.kt)("mi",{parentName:"msub"},"s"))),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"V_s")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,r.kt)("span",{parentName:"span",className:"mord"},(0,r.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"V"),(0,r.kt)("span",{parentName:"span",className:"msupsub"},(0,r.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,r.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.22222em",marginRight:"0.05em"}},(0,r.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,r.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,r.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,r.kt)("span",{parentName:"span"}))))))))))," as the initial drift velocity of the sputtering routine described above and would instantaneously sputter at t = 0 yr. Furthermore, temperatures typically reach a minimum of 1000 K meaning the thermal sublimation is almost complete. Thus, we do not need to worry about the sputtering process in the J-shock, we simply remove all grain material and add it to the gas at t = 0 yr."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/538f2129.0b72b3f7.js b/assets/js/538f2129.0b72b3f7.js deleted file mode 100644 index ffe65c04..00000000 --- a/assets/js/538f2129.0b72b3f7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9561],{3905:(e,t,l)=>{l.d(t,{Zo:()=>d,kt:()=>m});var n=l(7294);function r(e,t,l){return t in e?Object.defineProperty(e,t,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[t]=l,e}function a(e,t){var l=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),l.push.apply(l,n)}return l}function o(e){for(var t=1;t=0||(r[l]=e[l]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,l)&&(r[l]=e[l])}return r}var u=n.createContext({}),i=function(e){var t=n.useContext(u),l=t;return e&&(l="function"==typeof e?e(t):o(o({},t),e)),l},d=function(e){var t=i(e.components);return n.createElement(u.Provider,{value:t},e.children)},c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var l=e.components,r=e.mdxType,a=e.originalType,u=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=i(l),m=r,k=p["".concat(u,".").concat(m)]||p[m]||c[m]||a;return l?n.createElement(k,o(o({ref:t},d),{},{components:l})):n.createElement(k,o({ref:t},d))}));function m(e,t){var l=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=l.length,o=new Array(a);o[0]=p;var s={};for(var u in t)hasOwnProperty.call(t,u)&&(s[u]=t[u]);s.originalType=e,s.mdxType="string"==typeof e?e:r,o[1]=s;for(var i=2;i{l.r(t),l.d(t,{assets:()=>d,contentTitle:()=>u,default:()=>m,frontMatter:()=>s,metadata:()=>i,toc:()=>c});var n=l(7462),r=l(3366),a=(l(7294),l(3905)),o=["components"],s={},u="Running a Grid",i={unversionedId:"running_a_grid",id:"version-v3.1.0/running_a_grid",title:"Running a Grid",description:"A common task is to run UCLCHEM over a grid of parameter combinations. This notebook sets up a simple approach to doing so for regular grids.",source:"@site/versioned_docs/version-v3.1.0/running_a_grid.md",sourceDirName:".",slug:"/running_a_grid",permalink:"/docs/v3.1.0/running_a_grid",tags:[],version:"v3.1.0",frontMatter:{},sidebar:"docs",previous:{title:"Advanced Physical Modelling",permalink:"/docs/v3.1.0/modelling_objects"},next:{title:"Chemical Analysis",permalink:"/docs/v3.1.0/chemical_analysis"}},d={},c=[{value:"A Simple Grid",id:"a-simple-grid",level:2},{value:"Define Parameter Space",id:"define-parameter-space",level:3},{value:"Set up the model",id:"set-up-the-model",level:3},{value:"Run Grid",id:"run-grid",level:3},{value:"The Simple Way",id:"the-simple-way",level:4},{value:"The Fast Way",id:"the-fast-way",level:4},{value:"Checking Your Grid",id:"checking-your-grid",level:2},{value:"Complex Grid",id:"complex-grid",level:2},{value:"Summary",id:"summary",level:2}],p={toc:c};function m(e){var t=e.components,l=(0,r.Z)(e,o);return(0,a.kt)("wrapper",(0,n.Z)({},p,l,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"running-a-grid"},"Running a Grid"),(0,a.kt)("p",null,"A common task is to run UCLCHEM over a grid of parameter combinations. This notebook sets up a simple approach to doing so for regular grids."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"import uclchem\nimport numpy as np\nimport pandas as pd\nfrom multiprocessing import Pool\nimport os\n")),(0,a.kt)("h2",{id:"a-simple-grid"},"A Simple Grid"),(0,a.kt)("h3",{id:"define-parameter-space"},"Define Parameter Space"),(0,a.kt)("p",null,"First, we define our parameter space. We do this by using numpy and pandas to produce a table of all possible combinations of some parameters of interest."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},'# This part can be substituted with any choice of grid\n#here we just vary the density, temperature and zeta \ntemperatures = np.linspace(10, 50, 3)\ndensities = np.logspace(4,6,3)\nzetas = np.logspace(1, 3, 3)\n\n#meshgrid will give all combinations, then we shape into columns and put into a table\nparameterSpace = np.asarray(np.meshgrid(temperatures,densities,zetas)).reshape(3, -1)\nmodel_table=pd.DataFrame(parameterSpace.T, columns=[\'temperature\',\'density\',\'zeta\'])\n\n#keep track of where each model output will be saved and make sure that folder exists\nmodel_table["outputFile"]=model_table.apply(lambda row: f"../grid_folder/{row.temperature}_{row.density}_{row.zeta}.csv", axis=1)\nprint(f"{model_table.shape[0]} models to run")\nif not os.path.exists("../grid_folder"):\n os.makedirs("../grid_folder")\n')),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"27 models to run\n")),(0,a.kt)("h3",{id:"set-up-the-model"},"Set up the model"),(0,a.kt)("p",null,"Next, we need a function that will run our model. We write a quick function that takes a row from our dataframe and uses it to populate a parameter dictionary for UCLCHEM and then run a cloud model. We can then map our dataframe to that function."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},'def run_model(row):\n #basic set of parameters we\'ll use for this grid. \n ParameterDictionary = {"endatfinaldensity":False,\n "freefall": False,\n "initialDens": row.density,\n "initialTemp": row.temperature,\n "zeta": row.zeta,\n "outputFile": row.outputFile,\n "finalTime":1.0e6,\n "baseAv":10}\n result = uclchem.model.cloud(param_dict=ParameterDictionary)\n return result[0]#just the integer error code\n')),(0,a.kt)("h3",{id:"run-grid"},"Run Grid"),(0,a.kt)("h4",{id:"the-simple-way"},"The Simple Way"),(0,a.kt)("p",null,"We can use pandas apply to simply pass each row to our helper function in turn. This will take some time since we're running the models one by one. I'll use the ",(0,a.kt)("inlineCode",{parentName:"p"},"head")," function just to run five rows as an example here."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"result=model_table.head().apply(run_model, axis=1)\n")),(0,a.kt)("h4",{id:"the-fast-way"},"The Fast Way"),(0,a.kt)("p",null,"Alternatively, we can use multiprocessing to run the models in parallel. That will allow us to run many models simulataneously and make use of all the cores available on our machine."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"def pool_func(x):\n i,row=x\n return run_model(row)\n\nwith Pool(processes=6) as pool:\n results = pool.map(pool_func, model_table.iterrows())\n")),(0,a.kt)("h2",{id:"checking-your-grid"},"Checking Your Grid"),(0,a.kt)("p",null,"After running, we should do two things. First, let's add ",(0,a.kt)("inlineCode",{parentName:"p"},"results")," to our dataframe as a new column. Positive results mean a successful UCLCHEM run and negative ones are unsuccessful. Then we can run each model through ",(0,a.kt)("inlineCode",{parentName:"p"},"check_element_conservation")," to check the integration was successful. We'll use both these things to flag models that failed in some way."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"def element_check(output_file):\n df=uclchem.analysis.read_output_file(output_file)\n #get conservation values\n conserves=uclchem.analysis.check_element_conservation(df)\n #check if any error is greater than 1%\n return all([float(x[:-1])<1 for x in conserves.values()])\n")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},'model_table["run_result"]=results\nmodel_table["elements_conserved"]=model_table["outputFile"].map(element_check)\n#check both conditions are met\nmodel_table["Successful"]=(model_table.run_result>=0) & (model_table.elements_conserved)\n')),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"model_table.head()\n")),(0,a.kt)("div",null,(0,a.kt)("table",{border:"1",class:"dataframe"},(0,a.kt)("thead",null,(0,a.kt)("tr",null,(0,a.kt)("th",null),(0,a.kt)("th",null,"temperature"),(0,a.kt)("th",null,"density"),(0,a.kt)("th",null,"zeta"),(0,a.kt)("th",null,"outputFile"),(0,a.kt)("th",null,"run_result"),(0,a.kt)("th",null,"elements_conserved"),(0,a.kt)("th",null,"Successful"))),(0,a.kt)("tbody",null,(0,a.kt)("tr",null,(0,a.kt)("th",null,"0"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"../grid_folder/10.0_10000.0_10.0.csv"),(0,a.kt)("td",null,"1"),(0,a.kt)("td",null,"True"),(0,a.kt)("td",null,"True")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"1"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"100.0"),(0,a.kt)("td",null,"../grid_folder/10.0_10000.0_100.0.csv"),(0,a.kt)("td",null,"1"),(0,a.kt)("td",null,"True"),(0,a.kt)("td",null,"True")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"2"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"1000.0"),(0,a.kt)("td",null,"../grid_folder/10.0_10000.0_1000.0.csv"),(0,a.kt)("td",null,"1"),(0,a.kt)("td",null,"True"),(0,a.kt)("td",null,"True")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"3"),(0,a.kt)("td",null,"30.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"../grid_folder/30.0_10000.0_10.0.csv"),(0,a.kt)("td",null,"1"),(0,a.kt)("td",null,"True"),(0,a.kt)("td",null,"True")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"4"),(0,a.kt)("td",null,"30.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"100.0"),(0,a.kt)("td",null,"../grid_folder/30.0_10000.0_100.0.csv"),(0,a.kt)("td",null,"1"),(0,a.kt)("td",null,"True"),(0,a.kt)("td",null,"True"))))),(0,a.kt)("h2",{id:"complex-grid"},"Complex Grid"),(0,a.kt)("p",null,"The above was straightforward enough but what about a modelling a grid of shocks? Not only do we want to loop over relevant parameters, we also need to run a few preliminary models to give ourselves starting abundances. We'll start by defining two helper functions, one to run our preliminary cloud and one to run the shock."),(0,a.kt)("p",null,"Let's further imagine that we want to obtain the abundances of several species at the end of the model. We can use the ",(0,a.kt)("inlineCode",{parentName:"p"},"out_species")," parameter to specify which species we want to track and return them to our dataframe."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},'out_species=["CO","H2O","CH3OH"]\n\ndef run_prelim(density):\n #basic set of parameters we\'ll use for this grid. \n ParameterDictionary = {"endatfinaldensity":True,\n "freefall": True,\n "initialDens":1e2,\n "finalDens": density,\n "initialTemp": 10.0,\n "abundSaveFile": f"../grid_folder/starts/{density:.0f}.csv",\n "baseAv":1}\n result = uclchem.model.cloud(param_dict=ParameterDictionary)\n return result\n\ndef run_model(row):\n i,row=row # we know we\'re receiving the iterrows() tuple\n #basic set of parameters we\'ll use for this grid. \n ParameterDictionary = {"endatfinaldensity":False,\n "freefall": False,\n "initialDens": row.density,\n "initialTemp": 10.0,\n "outputFile": row.outputFile,\n "abundLoadFile": f"../grid_folder/starts/{row.density:.0f}.csv",\n "finalTime":1.0e5,\n "abstol_factor":1e-18,\n "reltol":1e-12,\n "baseAv":1}\n result = uclchem.model.cshock(row.shock_velocity,param_dict=ParameterDictionary,out_species=out_species)\n #First check UCLCHEM\'s result flag to seeif it\'s positive, if it is return the abundances\n if result[0]>0:\n return result[:]\n #if not, return NaNs because model failed\n else:\n return([np.nan]*len(out_species))\n')),(0,a.kt)("p",null,"Then we define our parameter space again. We'll create two folders, one to store a set of initial abundances for each starting density in our model and another to store our shock outputs."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},'# This part can be substituted with any choice of grid\n# here we just combine various initial and final densities into an easily iterable array\nshock_velocities = np.linspace(10, 50, 3)\ndensities = np.logspace(4,6,3)\n\nparameterSpace = np.asarray(np.meshgrid(shock_velocities,densities)).reshape(2, -1)\nmodel_table=pd.DataFrame(parameterSpace.T, columns=[\'shock_velocity\',\'density\'])\nmodel_table["outputFile"]=model_table.apply(lambda row: f"../grid_folder/shocks/{row.shock_velocity}_{row.density}.csv", axis=1)\nprint(f"{model_table.shape[0]} models to run")\n\nfor folder in ["starts","shocks"]:\n if not os.path.exists(f"../grid_folder/{folder}"):\n os.makedirs(f"../grid_folder/{folder}")\n')),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"9 models to run\n")),(0,a.kt)("p",null,"We can then run our preliminary models followed by our science models. The science models will return the abundances at the final time step of each run so we can unpack those directly to our dataframe."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"with Pool(processes=3) as pool:\n results = pool.map(run_prelim, densities)\n")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},'with Pool(processes=6) as pool:\n results = pool.map(run_model, model_table.iterrows())\nmodel_table[["Result","Dissipation Time"]+out_species]=results\n')),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"model_table\n")),(0,a.kt)("div",null,(0,a.kt)("table",{border:"1",class:"dataframe"},(0,a.kt)("thead",null,(0,a.kt)("tr",null,(0,a.kt)("th",null),(0,a.kt)("th",null,"shock_velocity"),(0,a.kt)("th",null,"density"),(0,a.kt)("th",null,"outputFile"),(0,a.kt)("th",null,"Result"),(0,a.kt)("th",null,"Dissipation Time"),(0,a.kt)("th",null,"CO"),(0,a.kt)("th",null,"H2O"),(0,a.kt)("th",null,"CH3OH"))),(0,a.kt)("tbody",null,(0,a.kt)("tr",null,(0,a.kt)("th",null,"0"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/10.0_10000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"1171.898734"),(0,a.kt)("td",null,"7.316441e-05"),(0,a.kt)("td",null,"4.355495e-06"),(0,a.kt)("td",null,"4.624479e-07")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"1"),(0,a.kt)("td",null,"30.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/30.0_10000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"1171.898734"),(0,a.kt)("td",null,"2.591790e-05"),(0,a.kt)("td",null,"2.113885e-05"),(0,a.kt)("td",null,"1.196330e-07")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"2"),(0,a.kt)("td",null,"50.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/50.0_10000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"1171.898734"),(0,a.kt)("td",null,"1.320822e-05"),(0,a.kt)("td",null,"8.126066e-06"),(0,a.kt)("td",null,"1.989081e-08")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"3"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"100000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/10.0_100000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"117.189873"),(0,a.kt)("td",null,"1.082083e-07"),(0,a.kt)("td",null,"1.158740e-09"),(0,a.kt)("td",null,"3.697607e-10")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"4"),(0,a.kt)("td",null,"30.0"),(0,a.kt)("td",null,"100000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/30.0_100000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"117.189873"),(0,a.kt)("td",null,"1.121259e-10"),(0,a.kt)("td",null,"3.789106e-10"),(0,a.kt)("td",null,"4.907284e-10")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"5"),(0,a.kt)("td",null,"50.0"),(0,a.kt)("td",null,"100000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/50.0_100000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"117.189873"),(0,a.kt)("td",null,"2.454392e-10"),(0,a.kt)("td",null,"3.443643e-10"),(0,a.kt)("td",null,"6.454671e-10")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"6"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"1000000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/10.0_1000000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"11.718987"),(0,a.kt)("td",null,"1.084005e-10"),(0,a.kt)("td",null,"3.565914e-11"),(0,a.kt)("td",null,"4.816630e-11")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"7"),(0,a.kt)("td",null,"30.0"),(0,a.kt)("td",null,"1000000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/30.0_1000000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"11.718987"),(0,a.kt)("td",null,"1.897782e-10"),(0,a.kt)("td",null,"6.498499e-11"),(0,a.kt)("td",null,"7.847277e-12")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"8"),(0,a.kt)("td",null,"50.0"),(0,a.kt)("td",null,"1000000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/50.0_1000000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"11.718987"),(0,a.kt)("td",null,"2.167651e-10"),(0,a.kt)("td",null,"6.600196e-12"),(0,a.kt)("td",null,"3.412340e-12"))))),(0,a.kt)("h2",{id:"summary"},"Summary"),(0,a.kt)("p",null,"There are many ways to run grids of models and users will naturally develop their own methods. This notebook is just a simple example of how to run UCLCHEM for many parameter combinations whilst producing a useful output (the model_table) to keep track of all the combinations that were run. In a real script, we'd save the model file to csv at the end."),(0,a.kt)("p",null,"For much larger grids, it's recommended that you find a way to make your script robust to failure. Over a huge range of parameters, it is quite likely UCLCHEM will hit integration trouble for at least a few parameter combinations. Very occasionally, UCLCHEM will get caught in a loop where it fails to integrate and cannot adjust its strategy to manage it. This isn't a problem for small grids as the model can be stopped and the tolerances adjusted. However, for very large grids, you may end up locking all threads as they each get stuck on a different model. The best solution we've found for this case is to add a check so that models in your dataframe are skipped if their file already exists, this allows you to stop and restart the grid script as needed."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/538f2129.71fe8cf8.js b/assets/js/538f2129.71fe8cf8.js new file mode 100644 index 00000000..bce43fd3 --- /dev/null +++ b/assets/js/538f2129.71fe8cf8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9561],{3905:(e,t,l)=>{l.d(t,{Zo:()=>d,kt:()=>m});var n=l(7294);function r(e,t,l){return t in e?Object.defineProperty(e,t,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[t]=l,e}function a(e,t){var l=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),l.push.apply(l,n)}return l}function o(e){for(var t=1;t=0||(r[l]=e[l]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,l)&&(r[l]=e[l])}return r}var u=n.createContext({}),i=function(e){var t=n.useContext(u),l=t;return e&&(l="function"==typeof e?e(t):o(o({},t),e)),l},d=function(e){var t=i(e.components);return n.createElement(u.Provider,{value:t},e.children)},c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var l=e.components,r=e.mdxType,a=e.originalType,u=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=i(l),m=r,k=p["".concat(u,".").concat(m)]||p[m]||c[m]||a;return l?n.createElement(k,o(o({ref:t},d),{},{components:l})):n.createElement(k,o({ref:t},d))}));function m(e,t){var l=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=l.length,o=new Array(a);o[0]=p;var s={};for(var u in t)hasOwnProperty.call(t,u)&&(s[u]=t[u]);s.originalType=e,s.mdxType="string"==typeof e?e:r,o[1]=s;for(var i=2;i{l.r(t),l.d(t,{assets:()=>d,contentTitle:()=>u,default:()=>m,frontMatter:()=>s,metadata:()=>i,toc:()=>c});var n=l(7462),r=l(3366),a=(l(7294),l(3905)),o=["components"],s={},u="Running a Grid",i={unversionedId:"running_a_grid",id:"version-v3.1.0/running_a_grid",title:"Running a Grid",description:"A common task is to run UCLCHEM over a grid of parameter combinations. This notebook sets up a simple approach to doing so for regular grids.",source:"@site/versioned_docs/version-v3.1.0/running_a_grid.md",sourceDirName:".",slug:"/running_a_grid",permalink:"/docs/v3.1.0/running_a_grid",draft:!1,tags:[],version:"v3.1.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{},sidebar:"docs",previous:{title:"Advanced Physical Modelling",permalink:"/docs/v3.1.0/modelling_objects"},next:{title:"Chemical Analysis",permalink:"/docs/v3.1.0/chemical_analysis"}},d={},c=[{value:"A Simple Grid",id:"a-simple-grid",level:2},{value:"Define Parameter Space",id:"define-parameter-space",level:3},{value:"Set up the model",id:"set-up-the-model",level:3},{value:"Run Grid",id:"run-grid",level:3},{value:"The Simple Way",id:"the-simple-way",level:4},{value:"The Fast Way",id:"the-fast-way",level:4},{value:"Checking Your Grid",id:"checking-your-grid",level:2},{value:"Complex Grid",id:"complex-grid",level:2},{value:"Summary",id:"summary",level:2}],p={toc:c};function m(e){var t=e.components,l=(0,r.Z)(e,o);return(0,a.kt)("wrapper",(0,n.Z)({},p,l,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"running-a-grid"},"Running a Grid"),(0,a.kt)("p",null,"A common task is to run UCLCHEM over a grid of parameter combinations. This notebook sets up a simple approach to doing so for regular grids."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"import uclchem\nimport numpy as np\nimport pandas as pd\nfrom multiprocessing import Pool\nimport os\n")),(0,a.kt)("h2",{id:"a-simple-grid"},"A Simple Grid"),(0,a.kt)("h3",{id:"define-parameter-space"},"Define Parameter Space"),(0,a.kt)("p",null,"First, we define our parameter space. We do this by using numpy and pandas to produce a table of all possible combinations of some parameters of interest."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},'# This part can be substituted with any choice of grid\n#here we just vary the density, temperature and zeta \ntemperatures = np.linspace(10, 50, 3)\ndensities = np.logspace(4,6,3)\nzetas = np.logspace(1, 3, 3)\n\n#meshgrid will give all combinations, then we shape into columns and put into a table\nparameterSpace = np.asarray(np.meshgrid(temperatures,densities,zetas)).reshape(3, -1)\nmodel_table=pd.DataFrame(parameterSpace.T, columns=[\'temperature\',\'density\',\'zeta\'])\n\n#keep track of where each model output will be saved and make sure that folder exists\nmodel_table["outputFile"]=model_table.apply(lambda row: f"../grid_folder/{row.temperature}_{row.density}_{row.zeta}.csv", axis=1)\nprint(f"{model_table.shape[0]} models to run")\nif not os.path.exists("../grid_folder"):\n os.makedirs("../grid_folder")\n')),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"27 models to run\n")),(0,a.kt)("h3",{id:"set-up-the-model"},"Set up the model"),(0,a.kt)("p",null,"Next, we need a function that will run our model. We write a quick function that takes a row from our dataframe and uses it to populate a parameter dictionary for UCLCHEM and then run a cloud model. We can then map our dataframe to that function."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},'def run_model(row):\n #basic set of parameters we\'ll use for this grid. \n ParameterDictionary = {"endatfinaldensity":False,\n "freefall": False,\n "initialDens": row.density,\n "initialTemp": row.temperature,\n "zeta": row.zeta,\n "outputFile": row.outputFile,\n "finalTime":1.0e6,\n "baseAv":10}\n result = uclchem.model.cloud(param_dict=ParameterDictionary)\n return result[0]#just the integer error code\n')),(0,a.kt)("h3",{id:"run-grid"},"Run Grid"),(0,a.kt)("h4",{id:"the-simple-way"},"The Simple Way"),(0,a.kt)("p",null,"We can use pandas apply to simply pass each row to our helper function in turn. This will take some time since we're running the models one by one. I'll use the ",(0,a.kt)("inlineCode",{parentName:"p"},"head")," function just to run five rows as an example here."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"result=model_table.head().apply(run_model, axis=1)\n")),(0,a.kt)("h4",{id:"the-fast-way"},"The Fast Way"),(0,a.kt)("p",null,"Alternatively, we can use multiprocessing to run the models in parallel. That will allow us to run many models simulataneously and make use of all the cores available on our machine."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"def pool_func(x):\n i,row=x\n return run_model(row)\n\nwith Pool(processes=6) as pool:\n results = pool.map(pool_func, model_table.iterrows())\n")),(0,a.kt)("h2",{id:"checking-your-grid"},"Checking Your Grid"),(0,a.kt)("p",null,"After running, we should do two things. First, let's add ",(0,a.kt)("inlineCode",{parentName:"p"},"results")," to our dataframe as a new column. Positive results mean a successful UCLCHEM run and negative ones are unsuccessful. Then we can run each model through ",(0,a.kt)("inlineCode",{parentName:"p"},"check_element_conservation")," to check the integration was successful. We'll use both these things to flag models that failed in some way."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"def element_check(output_file):\n df=uclchem.analysis.read_output_file(output_file)\n #get conservation values\n conserves=uclchem.analysis.check_element_conservation(df)\n #check if any error is greater than 1%\n return all([float(x[:-1])<1 for x in conserves.values()])\n")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},'model_table["run_result"]=results\nmodel_table["elements_conserved"]=model_table["outputFile"].map(element_check)\n#check both conditions are met\nmodel_table["Successful"]=(model_table.run_result>=0) & (model_table.elements_conserved)\n')),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"model_table.head()\n")),(0,a.kt)("div",null,(0,a.kt)("table",{border:"1",class:"dataframe"},(0,a.kt)("thead",null,(0,a.kt)("tr",null,(0,a.kt)("th",null),(0,a.kt)("th",null,"temperature"),(0,a.kt)("th",null,"density"),(0,a.kt)("th",null,"zeta"),(0,a.kt)("th",null,"outputFile"),(0,a.kt)("th",null,"run_result"),(0,a.kt)("th",null,"elements_conserved"),(0,a.kt)("th",null,"Successful"))),(0,a.kt)("tbody",null,(0,a.kt)("tr",null,(0,a.kt)("th",null,"0"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"../grid_folder/10.0_10000.0_10.0.csv"),(0,a.kt)("td",null,"1"),(0,a.kt)("td",null,"True"),(0,a.kt)("td",null,"True")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"1"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"100.0"),(0,a.kt)("td",null,"../grid_folder/10.0_10000.0_100.0.csv"),(0,a.kt)("td",null,"1"),(0,a.kt)("td",null,"True"),(0,a.kt)("td",null,"True")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"2"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"1000.0"),(0,a.kt)("td",null,"../grid_folder/10.0_10000.0_1000.0.csv"),(0,a.kt)("td",null,"1"),(0,a.kt)("td",null,"True"),(0,a.kt)("td",null,"True")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"3"),(0,a.kt)("td",null,"30.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"../grid_folder/30.0_10000.0_10.0.csv"),(0,a.kt)("td",null,"1"),(0,a.kt)("td",null,"True"),(0,a.kt)("td",null,"True")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"4"),(0,a.kt)("td",null,"30.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"100.0"),(0,a.kt)("td",null,"../grid_folder/30.0_10000.0_100.0.csv"),(0,a.kt)("td",null,"1"),(0,a.kt)("td",null,"True"),(0,a.kt)("td",null,"True"))))),(0,a.kt)("h2",{id:"complex-grid"},"Complex Grid"),(0,a.kt)("p",null,"The above was straightforward enough but what about a modelling a grid of shocks? Not only do we want to loop over relevant parameters, we also need to run a few preliminary models to give ourselves starting abundances. We'll start by defining two helper functions, one to run our preliminary cloud and one to run the shock."),(0,a.kt)("p",null,"Let's further imagine that we want to obtain the abundances of several species at the end of the model. We can use the ",(0,a.kt)("inlineCode",{parentName:"p"},"out_species")," parameter to specify which species we want to track and return them to our dataframe."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},'out_species=["CO","H2O","CH3OH"]\n\ndef run_prelim(density):\n #basic set of parameters we\'ll use for this grid. \n ParameterDictionary = {"endatfinaldensity":True,\n "freefall": True,\n "initialDens":1e2,\n "finalDens": density,\n "initialTemp": 10.0,\n "abundSaveFile": f"../grid_folder/starts/{density:.0f}.csv",\n "baseAv":1}\n result = uclchem.model.cloud(param_dict=ParameterDictionary)\n return result\n\ndef run_model(row):\n i,row=row # we know we\'re receiving the iterrows() tuple\n #basic set of parameters we\'ll use for this grid. \n ParameterDictionary = {"endatfinaldensity":False,\n "freefall": False,\n "initialDens": row.density,\n "initialTemp": 10.0,\n "outputFile": row.outputFile,\n "abundLoadFile": f"../grid_folder/starts/{row.density:.0f}.csv",\n "finalTime":1.0e5,\n "abstol_factor":1e-18,\n "reltol":1e-12,\n "baseAv":1}\n result = uclchem.model.cshock(row.shock_velocity,param_dict=ParameterDictionary,out_species=out_species)\n #First check UCLCHEM\'s result flag to seeif it\'s positive, if it is return the abundances\n if result[0]>0:\n return result[:]\n #if not, return NaNs because model failed\n else:\n return([np.nan]*len(out_species))\n')),(0,a.kt)("p",null,"Then we define our parameter space again. We'll create two folders, one to store a set of initial abundances for each starting density in our model and another to store our shock outputs."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},'# This part can be substituted with any choice of grid\n# here we just combine various initial and final densities into an easily iterable array\nshock_velocities = np.linspace(10, 50, 3)\ndensities = np.logspace(4,6,3)\n\nparameterSpace = np.asarray(np.meshgrid(shock_velocities,densities)).reshape(2, -1)\nmodel_table=pd.DataFrame(parameterSpace.T, columns=[\'shock_velocity\',\'density\'])\nmodel_table["outputFile"]=model_table.apply(lambda row: f"../grid_folder/shocks/{row.shock_velocity}_{row.density}.csv", axis=1)\nprint(f"{model_table.shape[0]} models to run")\n\nfor folder in ["starts","shocks"]:\n if not os.path.exists(f"../grid_folder/{folder}"):\n os.makedirs(f"../grid_folder/{folder}")\n')),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"9 models to run\n")),(0,a.kt)("p",null,"We can then run our preliminary models followed by our science models. The science models will return the abundances at the final time step of each run so we can unpack those directly to our dataframe."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"with Pool(processes=3) as pool:\n results = pool.map(run_prelim, densities)\n")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},'with Pool(processes=6) as pool:\n results = pool.map(run_model, model_table.iterrows())\nmodel_table[["Result","Dissipation Time"]+out_species]=results\n')),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"model_table\n")),(0,a.kt)("div",null,(0,a.kt)("table",{border:"1",class:"dataframe"},(0,a.kt)("thead",null,(0,a.kt)("tr",null,(0,a.kt)("th",null),(0,a.kt)("th",null,"shock_velocity"),(0,a.kt)("th",null,"density"),(0,a.kt)("th",null,"outputFile"),(0,a.kt)("th",null,"Result"),(0,a.kt)("th",null,"Dissipation Time"),(0,a.kt)("th",null,"CO"),(0,a.kt)("th",null,"H2O"),(0,a.kt)("th",null,"CH3OH"))),(0,a.kt)("tbody",null,(0,a.kt)("tr",null,(0,a.kt)("th",null,"0"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/10.0_10000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"1171.898734"),(0,a.kt)("td",null,"7.316441e-05"),(0,a.kt)("td",null,"4.355495e-06"),(0,a.kt)("td",null,"4.624479e-07")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"1"),(0,a.kt)("td",null,"30.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/30.0_10000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"1171.898734"),(0,a.kt)("td",null,"2.591790e-05"),(0,a.kt)("td",null,"2.113885e-05"),(0,a.kt)("td",null,"1.196330e-07")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"2"),(0,a.kt)("td",null,"50.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/50.0_10000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"1171.898734"),(0,a.kt)("td",null,"1.320822e-05"),(0,a.kt)("td",null,"8.126066e-06"),(0,a.kt)("td",null,"1.989081e-08")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"3"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"100000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/10.0_100000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"117.189873"),(0,a.kt)("td",null,"1.082083e-07"),(0,a.kt)("td",null,"1.158740e-09"),(0,a.kt)("td",null,"3.697607e-10")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"4"),(0,a.kt)("td",null,"30.0"),(0,a.kt)("td",null,"100000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/30.0_100000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"117.189873"),(0,a.kt)("td",null,"1.121259e-10"),(0,a.kt)("td",null,"3.789106e-10"),(0,a.kt)("td",null,"4.907284e-10")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"5"),(0,a.kt)("td",null,"50.0"),(0,a.kt)("td",null,"100000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/50.0_100000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"117.189873"),(0,a.kt)("td",null,"2.454392e-10"),(0,a.kt)("td",null,"3.443643e-10"),(0,a.kt)("td",null,"6.454671e-10")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"6"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"1000000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/10.0_1000000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"11.718987"),(0,a.kt)("td",null,"1.084005e-10"),(0,a.kt)("td",null,"3.565914e-11"),(0,a.kt)("td",null,"4.816630e-11")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"7"),(0,a.kt)("td",null,"30.0"),(0,a.kt)("td",null,"1000000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/30.0_1000000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"11.718987"),(0,a.kt)("td",null,"1.897782e-10"),(0,a.kt)("td",null,"6.498499e-11"),(0,a.kt)("td",null,"7.847277e-12")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"8"),(0,a.kt)("td",null,"50.0"),(0,a.kt)("td",null,"1000000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/50.0_1000000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"11.718987"),(0,a.kt)("td",null,"2.167651e-10"),(0,a.kt)("td",null,"6.600196e-12"),(0,a.kt)("td",null,"3.412340e-12"))))),(0,a.kt)("h2",{id:"summary"},"Summary"),(0,a.kt)("p",null,"There are many ways to run grids of models and users will naturally develop their own methods. This notebook is just a simple example of how to run UCLCHEM for many parameter combinations whilst producing a useful output (the model_table) to keep track of all the combinations that were run. In a real script, we'd save the model file to csv at the end."),(0,a.kt)("p",null,"For much larger grids, it's recommended that you find a way to make your script robust to failure. Over a huge range of parameters, it is quite likely UCLCHEM will hit integration trouble for at least a few parameter combinations. Very occasionally, UCLCHEM will get caught in a loop where it fails to integrate and cannot adjust its strategy to manage it. This isn't a problem for small grids as the model can be stopped and the tolerances adjusted. However, for very large grids, you may end up locking all threads as they each get stuck on a different model. The best solution we've found for this case is to add a check so that models in your dataframe are skipped if their file already exists, this allows you to stop and restart the grid script as needed."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/56e1034f.6aee3445.js b/assets/js/56e1034f.0290df3f.js similarity index 64% rename from assets/js/56e1034f.6aee3445.js rename to assets/js/56e1034f.0290df3f.js index c7f58fca..afe1a2aa 100644 --- a/assets/js/56e1034f.6aee3445.js +++ b/assets/js/56e1034f.0290df3f.js @@ -1 +1 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6137],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),m=p(n),h=o,d=m["".concat(s,".").concat(h)]||m[h]||u[h]||a;return n?r.createElement(d,i(i({ref:t},c),{},{components:n})):r.createElement(d,i({ref:t},c))}));function h(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:o,i[1]=l;for(var p=2;p{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>h,frontMatter:()=>l,metadata:()=>p,toc:()=>u});var r=n(7462),o=n(3366),a=(n(7294),n(3905)),i=["components"],l={title:"New Website",authors:"jonholdship"},s=void 0,p={permalink:"/blog/2020/02/14/New-Website",source:"@site/blog/2020-02-14-New-Website.md",title:"New Website",description:"We're replacing our old website! The old site was essentially just a poster for UCLCHEM with some github links. The new website has a similar landing page but importantly, we've moved all the documentation for UCLCHEM online. We'll keep that up to date and are open to comments from users as we're keen to make UCLCHEM as easy to use as possible.",date:"2020-02-14T00:00:00.000Z",formattedDate:"February 14, 2020",tags:[],readingTime:.715,truncated:!1,authors:[{name:"Jonathan Holdship",title:"UCLCHEM developer",url:"https://jonholdship.github.io",imageURL:"/img/jon.png",key:"jonholdship"}],frontMatter:{title:"New Website",authors:"jonholdship"},prevItem:{title:"First measurement of nitrogen fractionation in shocked clumps of the L1157 protostellar outflow. SOLIS XI",permalink:"/blog/2020/12/07/milena-nitrogen-solis"},nextItem:{title:"Tracing shock type with chemical diagnostics - an application to L1157",permalink:"/blog/2019/12/10/tom-shock"}},c={authorsImageUrls:[void 0]},u=[],m={toc:u};function h(e){var t=e.components,n=(0,o.Z)(e,i);return(0,a.kt)("wrapper",(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"We're replacing our old website! The old site was essentially just a poster for UCLCHEM with some github links. The new website has a similar landing page but importantly, we've moved all the documentation for UCLCHEM online. We'll keep that up to date and are open to comments from users as we're keen to make UCLCHEM as easy to use as possible."),(0,a.kt)("p",null,"We'll also keep this blog updated with any major updates to UCLCHEM. As a rule, we'll push minor tweaks, bug fixes and background changes that won't affect how the user interacts with the code regularly. However, major changes, feature improvements and changes that will change how you interact with the code will be published as a new version on github and come with an explanatory blog post. Come back if your latest git pull leaves you wondering what happened to UCLCHEM!"))}h.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6137],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),m=p(n),h=o,d=m["".concat(s,".").concat(h)]||m[h]||u[h]||a;return n?r.createElement(d,i(i({ref:t},c),{},{components:n})):r.createElement(d,i({ref:t},c))}));function h(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:o,i[1]=l;for(var p=2;p{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>h,frontMatter:()=>l,metadata:()=>p,toc:()=>u});var r=n(7462),o=n(3366),a=(n(7294),n(3905)),i=["components"],l={title:"New Website",authors:"jonholdship"},s=void 0,p={permalink:"/blog/2020/02/14/New-Website",source:"@site/blog/2020-02-14-New-Website.md",title:"New Website",description:"We're replacing our old website! The old site was essentially just a poster for UCLCHEM with some github links. The new website has a similar landing page but importantly, we've moved all the documentation for UCLCHEM online. We'll keep that up to date and are open to comments from users as we're keen to make UCLCHEM as easy to use as possible.",date:"2020-02-14T00:00:00.000Z",formattedDate:"February 14, 2020",tags:[],readingTime:.715,hasTruncateMarker:!1,authors:[{name:"Jonathan Holdship",title:"UCLCHEM developer",url:"https://jonholdship.github.io",imageURL:"/img/jon.png",key:"jonholdship"}],frontMatter:{title:"New Website",authors:"jonholdship"},prevItem:{title:"First measurement of nitrogen fractionation in shocked clumps of the L1157 protostellar outflow. SOLIS XI",permalink:"/blog/2020/12/07/milena-nitrogen-solis"},nextItem:{title:"Tracing shock type with chemical diagnostics - an application to L1157",permalink:"/blog/2019/12/10/tom-shock"}},c={authorsImageUrls:[void 0]},u=[],m={toc:u};function h(e){var t=e.components,n=(0,o.Z)(e,i);return(0,a.kt)("wrapper",(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"We're replacing our old website! The old site was essentially just a poster for UCLCHEM with some github links. The new website has a similar landing page but importantly, we've moved all the documentation for UCLCHEM online. We'll keep that up to date and are open to comments from users as we're keen to make UCLCHEM as easy to use as possible."),(0,a.kt)("p",null,"We'll also keep this blog updated with any major updates to UCLCHEM. As a rule, we'll push minor tweaks, bug fixes and background changes that won't affect how the user interacts with the code regularly. However, major changes, feature improvements and changes that will change how you interact with the code will be published as a new version on github and come with an explanatory blog post. Come back if your latest git pull leaves you wondering what happened to UCLCHEM!"))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5a334135.8f9e090c.js b/assets/js/5a334135.8f9e090c.js deleted file mode 100644 index 5010a046..00000000 --- a/assets/js/5a334135.8f9e090c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7950],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>g});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=c(n),g=o,f=d["".concat(s,".").concat(g)]||d[g]||p[g]||a;return n?r.createElement(f,i(i({ref:t},u),{},{components:n})):r.createElement(f,i({ref:t},u))}));function g(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:o,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>s,default:()=>g,frontMatter:()=>l,metadata:()=>c,toc:()=>p});var r=n(7462),o=n(3366),a=(n(7294),n(3905)),i=["components"],l={id:"trouble-integration",title:"Integration"},s=void 0,c={unversionedId:"trouble-integration",id:"version-v3.2.0/trouble-integration",title:"Integration",description:"My code just keeps running",source:"@site/versioned_docs/version-v3.2.0/trouble-integration.md",sourceDirName:".",slug:"/trouble-integration",permalink:"/docs/trouble-integration",tags:[],version:"v3.2.0",frontMatter:{id:"trouble-integration",title:"Integration"},sidebar:"docs",previous:{title:"Compilation Issues",permalink:"/docs/trouble-compile"},next:{title:"Core Physics",permalink:"/docs/physics-core"}},u={},p=[{value:"My code just keeps running",id:"my-code-just-keeps-running",level:2},{value:"Crashing/Stalling Model Runs",id:"crashingstalling-model-runs",level:2}],d={toc:p};function g(e){var t=e.components,n=(0,o.Z)(e,i);return(0,a.kt)("wrapper",(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"my-code-just-keeps-running"},"My code just keeps running"),(0,a.kt)("p",null,"If you're working in jupyter notebooks, fortran output will often not be printed to the cell outputs until the cell finishes running. This can be a real problem if the integration is failing because UCLCHEM may be printing warnings to the screen but you won't see them. If your code is running for a few minutes in a notebook, you may want to export the code to a python script and run it. The uclchem output will print to the console and you will see the integration errors piling up."),(0,a.kt)("h2",{id:"crashingstalling-model-runs"},"Crashing/Stalling Model Runs"),(0,a.kt)("p",null,"Chemical ODEs are infamously stiff and, as such, difficult to solve. There's also no single solver configuration we can use that will guarantee an efficient and accurate solution to every single problem. In particular, if you have a very large network or one with very fast reactions, you may find the integrator stuggles. "),(0,a.kt)("p",null,'You\'ll know the integrator is struggling if you find you get a lot of printed messages stating "ISTATE = -n" (where n is some integer). If the model run completes and there is nothing obviously wrong (eg oscillations) then its likely the solution is fine and your network/parameter combination is at the edge of what the solver can handle. If it takes a very long time or never completes, there is an issue.'),(0,a.kt)("p",null,"One good method to check the validity of your solution is to use the element conservation functions in the ",(0,a.kt)("a",{parentName:"p",href:"/docs/pythonapi#uclchem.analysis.check_element_conservation"},"python module"),". The integrator typically fails to conserve elemental abundances when the integration has accumulated too large an error. Thus, checking for conservation can reassure you that the integration was successful even if the integrator struggled."),(0,a.kt)("p",null,"To fix this, your first port of call should be the ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol_factor"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol_min")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"reltol")," parameters. The comments in ",(0,a.kt)("inlineCode",{parentName:"p"},"src/fortran_src/dvode.f90")," give a fantastic overview of the integrator but in essence, DVODE takes two parameters: ",(0,a.kt)("inlineCode",{parentName:"p"},"reltol")," should set the decimal place accuracy of your abundances and ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol")," the overall error you'll accept. In UCLCHEM, reltol is just a number but we use DVODE's option of making ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol")," a vector with one value per species instead of a single value. This allows us to change the error tolerance depending on the species abundances. ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol")," will take the value of ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol_factor")," times the species abundance or ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol_min"),", whichever is larger."),(0,a.kt)("p",null,"Changing the tolerances is a dark art and it isn't necessarily the case that smaller values = more accuracy and larger values = faster integration. Trying a few values (particularly of ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol_factor"),") is always a good first step when you hit integrator problems."),(0,a.kt)("p",null,"If that doesn't work, you should investigate whether your network is reasonable. Duplicated reactions and bad rate coefficients can result in reactions going too quickly and breaking the integrator."))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5a334135.ee86b4a1.js b/assets/js/5a334135.ee86b4a1.js new file mode 100644 index 00000000..5b8aa691 --- /dev/null +++ b/assets/js/5a334135.ee86b4a1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7950],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=c(n),f=o,g=d["".concat(s,".").concat(f)]||d[f]||p[f]||a;return n?r.createElement(g,i(i({ref:t},u),{},{components:n})):r.createElement(g,i({ref:t},u))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:o,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>s,default:()=>f,frontMatter:()=>l,metadata:()=>c,toc:()=>p});var r=n(7462),o=n(3366),a=(n(7294),n(3905)),i=["components"],l={id:"trouble-integration",title:"Integration"},s=void 0,c={unversionedId:"trouble-integration",id:"version-v3.2.0/trouble-integration",title:"Integration",description:"My code just keeps running",source:"@site/versioned_docs/version-v3.2.0/trouble-integration.md",sourceDirName:".",slug:"/trouble-integration",permalink:"/docs/trouble-integration",draft:!1,tags:[],version:"v3.2.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"trouble-integration",title:"Integration"},sidebar:"docs",previous:{title:"Compilation Issues",permalink:"/docs/trouble-compile"},next:{title:"Core Physics",permalink:"/docs/physics-core"}},u={},p=[{value:"My code just keeps running",id:"my-code-just-keeps-running",level:2},{value:"Crashing/Stalling Model Runs",id:"crashingstalling-model-runs",level:2}],d={toc:p};function f(e){var t=e.components,n=(0,o.Z)(e,i);return(0,a.kt)("wrapper",(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"my-code-just-keeps-running"},"My code just keeps running"),(0,a.kt)("p",null,"If you're working in jupyter notebooks, fortran output will often not be printed to the cell outputs until the cell finishes running. This can be a real problem if the integration is failing because UCLCHEM may be printing warnings to the screen but you won't see them. If your code is running for a few minutes in a notebook, you may want to export the code to a python script and run it. The uclchem output will print to the console and you will see the integration errors piling up."),(0,a.kt)("h2",{id:"crashingstalling-model-runs"},"Crashing/Stalling Model Runs"),(0,a.kt)("p",null,"Chemical ODEs are infamously stiff and, as such, difficult to solve. There's also no single solver configuration we can use that will guarantee an efficient and accurate solution to every single problem. In particular, if you have a very large network or one with very fast reactions, you may find the integrator stuggles. "),(0,a.kt)("p",null,'You\'ll know the integrator is struggling if you find you get a lot of printed messages stating "ISTATE = -n" (where n is some integer). If the model run completes and there is nothing obviously wrong (eg oscillations) then its likely the solution is fine and your network/parameter combination is at the edge of what the solver can handle. If it takes a very long time or never completes, there is an issue.'),(0,a.kt)("p",null,"One good method to check the validity of your solution is to use the element conservation functions in the ",(0,a.kt)("a",{parentName:"p",href:"/docs/pythonapi#uclchem.analysis.check_element_conservation"},"python module"),". The integrator typically fails to conserve elemental abundances when the integration has accumulated too large an error. Thus, checking for conservation can reassure you that the integration was successful even if the integrator struggled."),(0,a.kt)("p",null,"To fix this, your first port of call should be the ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol_factor"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol_min")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"reltol")," parameters. The comments in ",(0,a.kt)("inlineCode",{parentName:"p"},"src/fortran_src/dvode.f90")," give a fantastic overview of the integrator but in essence, DVODE takes two parameters: ",(0,a.kt)("inlineCode",{parentName:"p"},"reltol")," should set the decimal place accuracy of your abundances and ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol")," the overall error you'll accept. In UCLCHEM, reltol is just a number but we use DVODE's option of making ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol")," a vector with one value per species instead of a single value. This allows us to change the error tolerance depending on the species abundances. ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol")," will take the value of ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol_factor")," times the species abundance or ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol_min"),", whichever is larger."),(0,a.kt)("p",null,"Changing the tolerances is a dark art and it isn't necessarily the case that smaller values = more accuracy and larger values = faster integration. Trying a few values (particularly of ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol_factor"),") is always a good first step when you hit integrator problems."),(0,a.kt)("p",null,"If that doesn't work, you should investigate whether your network is reasonable. Duplicated reactions and bad rate coefficients can result in reactions going too quickly and breaking the integrator."))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5a7d93ee.7e25234e.js b/assets/js/5a7d93ee.7e25234e.js new file mode 100644 index 00000000..7706e97c --- /dev/null +++ b/assets/js/5a7d93ee.7e25234e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9364],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var i=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=i.createContext({}),c=function(e){var t=i.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=c(e.components);return i.createElement(l.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},u=i.forwardRef((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=c(n),h=a,m=u["".concat(l,".").concat(h)]||u[h]||d[h]||r;return n?i.createElement(m,o(o({ref:t},p),{},{components:n})):i.createElement(m,o({ref:t},p))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,o=new Array(r);o[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:a,o[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>h,frontMatter:()=>s,metadata:()=>c,toc:()=>d});var i=n(7462),a=n(3366),r=(n(7294),n(3905)),o=["components"],s={id:"dev-overview",title:"Overview of the Code"},l=void 0,c={unversionedId:"dev-overview",id:"version-v3.2.0/dev-overview",title:"Overview of the Code",description:"The page is designed to give a brief overview of the code's structure. It's less about the scientific justification for the various treatments in the code and more about how the code is segmented and where to look for things.",source:"@site/versioned_docs/version-v3.2.0/dev-overview.md",sourceDirName:".",slug:"/dev-overview",permalink:"/docs/dev-overview",draft:!1,tags:[],version:"v3.2.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"dev-overview",title:"Overview of the Code"},sidebar:"docs",previous:{title:"Developer",permalink:"/docs/category/developer"},next:{title:"Writing The Python Interface",permalink:"/docs/dev-python-wrap"}},p={},d=[{value:"Basic Algorithm",id:"basic-algorithm",level:2},{value:"Physics",id:"physics",level:2},{value:"Chemistry",id:"chemistry",level:2},{value:"Constants",id:"constants",level:2}],u={toc:d};function h(e){var t=e.components,n=(0,a.Z)(e,o);return(0,r.kt)("wrapper",(0,i.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The page is designed to give a brief overview of the code's structure. It's less about the scientific justification for the various treatments in the code and more about how the code is segmented and where to look for things."),(0,r.kt)("h2",{id:"basic-algorithm"},"Basic Algorithm"),(0,r.kt)("p",null,"Centering the code on the python wrap has made the underlying algorithm more difficult to follow than in older versions of the code. However, you can more or less see the whole procedure of solving the chemical model in ",(0,r.kt)("inlineCode",{parentName:"p"},"solveAbundances")," in ",(0,r.kt)("inlineCode",{parentName:"p"},"src/fortran_src/wrap.f90"),". The steps are:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Set all parameters to defaultparameters.f90 values")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Read parameters from the dictionary input")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Initialize physics variables such as column density and model specific values")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Initialize chemical variables like initial abundances")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"While ",(0,r.kt)("inlineCode",{parentName:"p"},"time < finalTime")," or ",(0,r.kt)("inlineCode",{parentName:"p"},"density")," < ",(0,r.kt)("inlineCode",{parentName:"p"},"finalDens")),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"get a new target time"),(0,r.kt)("li",{parentName:"ul"},"update abundances from current time to target time"),(0,r.kt)("li",{parentName:"ul"},"update physics variables to new time"),(0,r.kt)("li",{parentName:"ul"},"Allow physics modules to affect abundances directly (eg to sputter ices)"),(0,r.kt)("li",{parentName:"ul"},"output parameters"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"output final abundances if ",(0,r.kt)("inlineCode",{parentName:"p"},"abundSaveFile")," set."))),(0,r.kt)("p",null,"Exactly what happens in the initialize physics and update physics sections depends on the physical model in question."),(0,r.kt)("h2",{id:"physics"},"Physics"),(0,r.kt)("p",null,"There are a number of physics modules which all implement the same subroutines in different ways. They also all pull from core-physics.f90, a module that contains all the non-optional physics variables. When we initialize or update physics, we first call the initialize/update subroutine from core-physics.f90 and then call it from the physics module. This is achieved by passing the relevant physics module's subroutines to ",(0,r.kt)("inlineCode",{parentName:"p"},"solveAbundances")," from each of the various subroutines in wrap.f90."),(0,r.kt)("p",null,"If you'd like to implement your own physics model, you should try as closely as possible to follow this structure. Since core-physics is always updated first, you can override it with your module. For example, core-physics will calculate the Av and column density in the standard way but you could recalculate your column density in your updatePhysics subroutine to get new behaviour."),(0,r.kt)("h2",{id:"chemistry"},"Chemistry"),(0,r.kt)("p",null,"A large number of the fortran files make up the chemistry module. There's:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"chemistry.f90")," which contains the core chemistry routines and variables."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"rates.f90")," which is actually directly included in ",(0,r.kt)("inlineCode",{parentName:"li"},"chemistry.f90")," and just contains most of the reaction rate calculations"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"surfacereactions.f90")," and ",(0,r.kt)("inlineCode",{parentName:"li"},"photoreactions.f90")," which each contain a lot of the surface or photon chemistry related variables and subroutines. These are often so involved that we just separated them out to avoid overfilling ",(0,r.kt)("inlineCode",{parentName:"li"},"rates.f90"),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"odes.f90")," which is generated by MakeRates and is a huge file of ordinary differential equations."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"network.f90")," is also generated by MakeRates and contains lists of things like species names, reaction types, the index of the species that is the nth reactant of each reaction, etc. ",(0,r.kt)("strong",{parentName:"li"},"If you want to store something like the index of a species or reaction, consider having MakeRates add to this file."))),(0,r.kt)("h2",{id:"constants"},"Constants"),(0,r.kt)("p",null,"All constants are defined in ",(0,r.kt)("inlineCode",{parentName:"p"},"constants.f90")," and are accessed by the ",(0,r.kt)("inlineCode",{parentName:"p"},"constants")," module. If you need a physical constant, it's best check if it's here before defining it. There should be no harm at all in importing this module into any other code as it compiles first and nothing is modifiable (eg you can't overwrite the value of ",(0,r.kt)("inlineCode",{parentName:"p"},"PI")," defined in constants.f90)."),(0,r.kt)("p",null,"It's also where we declare ",(0,r.kt)("inlineCode",{parentName:"p"},"dp"),", which allows us to declare real64 variables in the iso standard way. All the ",(0,r.kt)("inlineCode",{parentName:"p"},"real(dp)")," variables you see declared in the code come from this."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5a7d93ee.e010d149.js b/assets/js/5a7d93ee.e010d149.js deleted file mode 100644 index cbee0f21..00000000 --- a/assets/js/5a7d93ee.e010d149.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9364],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var i=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=i.createContext({}),c=function(e){var t=i.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=c(e.components);return i.createElement(s.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},u=i.forwardRef((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(n),h=a,m=u["".concat(s,".").concat(h)]||u[h]||d[h]||r;return n?i.createElement(m,o(o({ref:t},p),{},{components:n})):i.createElement(m,o({ref:t},p))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,o=new Array(r);o[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:a,o[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>h,frontMatter:()=>l,metadata:()=>c,toc:()=>d});var i=n(7462),a=n(3366),r=(n(7294),n(3905)),o=["components"],l={id:"dev-overview",title:"Overview of the Code"},s=void 0,c={unversionedId:"dev-overview",id:"version-v3.2.0/dev-overview",title:"Overview of the Code",description:"The page is designed to give a brief overview of the code's structure. It's less about the scientific justification for the various treatments in the code and more about how the code is segmented and where to look for things.",source:"@site/versioned_docs/version-v3.2.0/dev-overview.md",sourceDirName:".",slug:"/dev-overview",permalink:"/docs/dev-overview",tags:[],version:"v3.2.0",frontMatter:{id:"dev-overview",title:"Overview of the Code"},sidebar:"docs",previous:{title:"Developer",permalink:"/docs/category/developer"},next:{title:"Writing The Python Interface",permalink:"/docs/dev-python-wrap"}},p={},d=[{value:"Basic Algorithm",id:"basic-algorithm",level:2},{value:"Physics",id:"physics",level:2},{value:"Chemistry",id:"chemistry",level:2},{value:"Constants",id:"constants",level:2}],u={toc:d};function h(e){var t=e.components,n=(0,a.Z)(e,o);return(0,r.kt)("wrapper",(0,i.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The page is designed to give a brief overview of the code's structure. It's less about the scientific justification for the various treatments in the code and more about how the code is segmented and where to look for things."),(0,r.kt)("h2",{id:"basic-algorithm"},"Basic Algorithm"),(0,r.kt)("p",null,"Centering the code on the python wrap has made the underlying algorithm more difficult to follow than in older versions of the code. However, you can more or less see the whole procedure of solving the chemical model in ",(0,r.kt)("inlineCode",{parentName:"p"},"solveAbundances")," in ",(0,r.kt)("inlineCode",{parentName:"p"},"src/fortran_src/wrap.f90"),". The steps are:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Set all parameters to defaultparameters.f90 values")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Read parameters from the dictionary input")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Initialize physics variables such as column density and model specific values")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Initialize chemical variables like initial abundances")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"While ",(0,r.kt)("inlineCode",{parentName:"p"},"time < finalTime")," or ",(0,r.kt)("inlineCode",{parentName:"p"},"density")," < ",(0,r.kt)("inlineCode",{parentName:"p"},"finalDens")),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"get a new target time"),(0,r.kt)("li",{parentName:"ul"},"update abundances from current time to target time"),(0,r.kt)("li",{parentName:"ul"},"update physics variables to new time"),(0,r.kt)("li",{parentName:"ul"},"Allow physics modules to affect abundances directly (eg to sputter ices)"),(0,r.kt)("li",{parentName:"ul"},"output parameters"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"output final abundances if ",(0,r.kt)("inlineCode",{parentName:"p"},"abundSaveFile")," set."))),(0,r.kt)("p",null,"Exactly what happens in the initialize physics and update physics sections depends on the physical model in question."),(0,r.kt)("h2",{id:"physics"},"Physics"),(0,r.kt)("p",null,"There are a number of physics modules which all implement the same subroutines in different ways. They also all pull from core-physics.f90, a module that contains all the non-optional physics variables. When we initialize or update physics, we first call the initialize/update subroutine from core-physics.f90 and then call it from the physics module. This is achieved by passing the relevant physics module's subroutines to ",(0,r.kt)("inlineCode",{parentName:"p"},"solveAbundances")," from each of the various subroutines in wrap.f90."),(0,r.kt)("p",null,"If you'd like to implement your own physics model, you should try as closely as possible to follow this structure. Since core-physics is always updated first, you can override it with your module. For example, core-physics will calculate the Av and column density in the standard way but you could recalculate your column density in your updatePhysics subroutine to get new behaviour."),(0,r.kt)("h2",{id:"chemistry"},"Chemistry"),(0,r.kt)("p",null,"A large number of the fortran files make up the chemistry module. There's:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"chemistry.f90")," which contains the core chemistry routines and variables."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"rates.f90")," which is actually directly included in ",(0,r.kt)("inlineCode",{parentName:"li"},"chemistry.f90")," and just contains most of the reaction rate calculations"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"surfacereactions.f90")," and ",(0,r.kt)("inlineCode",{parentName:"li"},"photoreactions.f90")," which each contain a lot of the surface or photon chemistry related variables and subroutines. These are often so involved that we just separated them out to avoid overfilling ",(0,r.kt)("inlineCode",{parentName:"li"},"rates.f90"),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"odes.f90")," which is generated by MakeRates and is a huge file of ordinary differential equations."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"network.f90")," is also generated by MakeRates and contains lists of things like species names, reaction types, the index of the species that is the nth reactant of each reaction, etc. ",(0,r.kt)("strong",{parentName:"li"},"If you want to store something like the index of a species or reaction, consider having MakeRates add to this file."))),(0,r.kt)("h2",{id:"constants"},"Constants"),(0,r.kt)("p",null,"All constants are defined in ",(0,r.kt)("inlineCode",{parentName:"p"},"constants.f90")," and are accessed by the ",(0,r.kt)("inlineCode",{parentName:"p"},"constants")," module. If you need a physical constant, it's best check if it's here before defining it. There should be no harm at all in importing this module into any other code as it compiles first and nothing is modifiable (eg you can't overwrite the value of ",(0,r.kt)("inlineCode",{parentName:"p"},"PI")," defined in constants.f90)."),(0,r.kt)("p",null,"It's also where we declare ",(0,r.kt)("inlineCode",{parentName:"p"},"dp"),", which allows us to declare real64 variables in the iso standard way. All the ",(0,r.kt)("inlineCode",{parentName:"p"},"real(dp)")," variables you see declared in the code come from this."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5bfb9a5a.1e612f41.js b/assets/js/5bfb9a5a.690fb1d2.js similarity index 58% rename from assets/js/5bfb9a5a.1e612f41.js rename to assets/js/5bfb9a5a.690fb1d2.js index 1c5c9a71..a93cdbae 100644 --- a/assets/js/5bfb9a5a.1e612f41.js +++ b/assets/js/5bfb9a5a.690fb1d2.js @@ -1 +1 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[978],{3905:(e,t,r)=>{r.d(t,{Zo:()=>h,kt:()=>m});var a=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=a.createContext({}),c=function(e){var t=a.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},h=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,l=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),u=c(r),m=n,d=u["".concat(l,".").concat(m)]||u[m]||p[m]||o;return r?a.createElement(d,i(i({ref:t},h),{},{components:r})):a.createElement(d,i({ref:t},h))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:n,i[1]=s;for(var c=2;c{r.r(t),r.d(t,{assets:()=>h,contentTitle:()=>l,default:()=>m,frontMatter:()=>s,metadata:()=>c,toc:()=>p});var a=r(7462),n=r(3366),o=(r(7294),r(3905)),i=["components"],s={title:"The Cosmic-ray Ionization Rate in NGC 253",authors:"jonholdship"},l=void 0,c={permalink:"/blog/2022/04/14/crir-ngc253",source:"@site/blog/2022-04-14-crir-ngc253.md",title:"The Cosmic-ray Ionization Rate in NGC 253",description:"NGC 253 is a nearby starburst galaxy which hosts several large clouds of gas in its central molecular zone. These clouds are similar to GMCs but orders of magnitude more massive and much hotter, where the star formation rate is very high. The temperature of this gas is important because the star formation efficiency will be determined by how much internal energy that gas has.",date:"2022-04-14T00:00:00.000Z",formattedDate:"April 14, 2022",tags:[],readingTime:.895,truncated:!1,authors:[{name:"Jonathan Holdship",title:"UCLCHEM developer",url:"https://jonholdship.github.io",imageURL:"/img/jon.png",key:"jonholdship"}],frontMatter:{title:"The Cosmic-ray Ionization Rate in NGC 253",authors:"jonholdship"},prevItem:{title:"UCLCHEM v3.0",permalink:"/blog/2022/04/29/uclchem-v3"},nextItem:{title:"HITs - History Independent Tracers",permalink:"/blog/2022/02/06/holdship-hits"}},h={authorsImageUrls:[void 0]},p=[],u={toc:p};function m(e){var t=e.components,r=(0,n.Z)(e,i);return(0,o.kt)("wrapper",(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"NGC 253 is a nearby starburst galaxy which hosts several large clouds of gas in its central molecular zone. These clouds are similar to GMCs but orders of magnitude more massive and much hotter, where the star formation rate is very high. The temperature of this gas is important because the star formation efficiency will be determined by how much internal energy that gas has."),(0,o.kt)("p",null,"Many mechanisms could be heating this gas including mechanical heating due to turbulent shocks, UV photons, X-ray photons, and cosmic-rays. Whilst all are reasonable suspects in the CMZ of NGC 253, previous studies have shown ",(0,o.kt)("a",{parentName:"p",href:"https://ui.adsabs.harvard.edu/abs/2021A%26A...654A..55H/abstract"},"1")," ",(0,o.kt)("a",{parentName:"p",href:"https://ui.adsabs.harvard.edu/abs/2021ApJ...923...24H/abstract"},"2")," that the cosmic-ray ionization rate (CRIR) is likely to be very high."),(0,o.kt)("p",null,"In ",(0,o.kt)("a",{parentName:"p",href:"https://ui.adsabs.harvard.edu/abs/2022arXiv220403668H/abstract"},"a recent piece of work")," we have used UCLCHEM to show that the ratio of SO and H_3O^+ is a powerful probe of the CRIR. We model ALMA observations of emission from these molecules using UCLCHEM and ",(0,o.kt)("a",{parentName:"p",href:"https://spectralradex.readthedocs.io/en/latest/"},"SpectralRadex")," to infer the CRIR. We find that regardless of the temperature of the gas, the CRIR is around 10^4 times larger than in the Milky Way."))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[978],{3905:(e,t,r)=>{r.d(t,{Zo:()=>h,kt:()=>m});var a=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=a.createContext({}),c=function(e){var t=a.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},h=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,l=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),u=c(r),m=n,d=u["".concat(l,".").concat(m)]||u[m]||p[m]||o;return r?a.createElement(d,i(i({ref:t},h),{},{components:r})):a.createElement(d,i({ref:t},h))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,i=new Array(o);i[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:n,i[1]=s;for(var c=2;c{r.r(t),r.d(t,{assets:()=>h,contentTitle:()=>l,default:()=>m,frontMatter:()=>s,metadata:()=>c,toc:()=>p});var a=r(7462),n=r(3366),o=(r(7294),r(3905)),i=["components"],s={title:"The Cosmic-ray Ionization Rate in NGC 253",authors:"jonholdship"},l=void 0,c={permalink:"/blog/2022/04/14/crir-ngc253",source:"@site/blog/2022-04-14-crir-ngc253.md",title:"The Cosmic-ray Ionization Rate in NGC 253",description:"NGC 253 is a nearby starburst galaxy which hosts several large clouds of gas in its central molecular zone. These clouds are similar to GMCs but orders of magnitude more massive and much hotter, where the star formation rate is very high. The temperature of this gas is important because the star formation efficiency will be determined by how much internal energy that gas has.",date:"2022-04-14T00:00:00.000Z",formattedDate:"April 14, 2022",tags:[],readingTime:.895,hasTruncateMarker:!1,authors:[{name:"Jonathan Holdship",title:"UCLCHEM developer",url:"https://jonholdship.github.io",imageURL:"/img/jon.png",key:"jonholdship"}],frontMatter:{title:"The Cosmic-ray Ionization Rate in NGC 253",authors:"jonholdship"},prevItem:{title:"UCLCHEM v3.0",permalink:"/blog/2022/04/29/uclchem-v3"},nextItem:{title:"HITs - History Independent Tracers",permalink:"/blog/2022/02/06/holdship-hits"}},h={authorsImageUrls:[void 0]},p=[],u={toc:p};function m(e){var t=e.components,r=(0,n.Z)(e,i);return(0,o.kt)("wrapper",(0,a.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"NGC 253 is a nearby starburst galaxy which hosts several large clouds of gas in its central molecular zone. These clouds are similar to GMCs but orders of magnitude more massive and much hotter, where the star formation rate is very high. The temperature of this gas is important because the star formation efficiency will be determined by how much internal energy that gas has."),(0,o.kt)("p",null,"Many mechanisms could be heating this gas including mechanical heating due to turbulent shocks, UV photons, X-ray photons, and cosmic-rays. Whilst all are reasonable suspects in the CMZ of NGC 253, previous studies have shown ",(0,o.kt)("a",{parentName:"p",href:"https://ui.adsabs.harvard.edu/abs/2021A%26A...654A..55H/abstract"},"1")," ",(0,o.kt)("a",{parentName:"p",href:"https://ui.adsabs.harvard.edu/abs/2021ApJ...923...24H/abstract"},"2")," that the cosmic-ray ionization rate (CRIR) is likely to be very high."),(0,o.kt)("p",null,"In ",(0,o.kt)("a",{parentName:"p",href:"https://ui.adsabs.harvard.edu/abs/2022arXiv220403668H/abstract"},"a recent piece of work")," we have used UCLCHEM to show that the ratio of SO and H_3O^+ is a powerful probe of the CRIR. We model ALMA observations of emission from these molecules using UCLCHEM and ",(0,o.kt)("a",{parentName:"p",href:"https://spectralradex.readthedocs.io/en/latest/"},"SpectralRadex")," to infer the CRIR. We find that regardless of the temperature of the gas, the CRIR is around 10^4 times larger than in the Milky Way."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5dbea504.15f9385e.js b/assets/js/5dbea504.15f9385e.js deleted file mode 100644 index f7c28dc6..00000000 --- a/assets/js/5dbea504.15f9385e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5138],{3905:(e,t,o)=>{o.d(t,{Zo:()=>d,kt:()=>h});var n=o(7294);function r(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function i(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function a(e){for(var t=1;t=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}var l=n.createContext({}),c=function(e){var t=n.useContext(l),o=t;return e&&(o="function"==typeof e?e(t):a(a({},t),e)),o},d=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var o=e.components,r=e.mdxType,i=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=c(o),h=r,m=u["".concat(l,".").concat(h)]||u[h]||p[h]||i;return o?n.createElement(m,a(a({ref:t},d),{},{components:o})):n.createElement(m,a({ref:t},d))}));function h(e,t){var o=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=o.length,a=new Array(i);a[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:r,a[1]=s;for(var c=2;c{o.r(t),o.d(t,{assets:()=>d,contentTitle:()=>l,default:()=>h,frontMatter:()=>s,metadata:()=>c,toc:()=>p});var n=o(7462),r=o(3366),i=(o(7294),o(3905)),a=["components"],s={id:"physics-cloud",title:"Cloud Model",author:"Jon Holdship"},l=void 0,c={unversionedId:"physics-cloud",id:"version-v3.1.0/physics-cloud",title:"Cloud Model",description:"Main Contributors: Serena Viti, Jon Holdship",source:"@site/versioned_docs/version-v3.1.0/physics-cloud.md",sourceDirName:".",slug:"/physics-cloud",permalink:"/docs/v3.1.0/physics-cloud",tags:[],version:"v3.1.0",frontMatter:{id:"physics-cloud",title:"Cloud Model",author:"Jon Holdship"},sidebar:"docs",previous:{title:"Core Physics",permalink:"/docs/v3.1.0/physics-core"},next:{title:"Hot Core",permalink:"/docs/v3.1.0/physics-hotcore"}},d={},p=[],u={toc:p};function h(e){var t=e.components,o=(0,r.Z)(e,a);return(0,i.kt)("wrapper",(0,n.Z)({},u,o,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Main Contributors"),": Serena Viti, Jon Holdship"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Source"),": src/fortran_src/cloud.f90"),(0,i.kt)("p",null,"The cloud model is our simplest physical model and is intended to model spherical clouds of gas with constant physical conditions. The exception to this is the density which can be modified using the ",(0,i.kt)("inlineCode",{parentName:"p"},"freefall")," parameter. "),(0,i.kt)("p",null,"Cloud is a 1D model that models positions through the cloud that are evenly spaced between some inner radius ",(0,i.kt)("inlineCode",{parentName:"p"},"rin")," and the outer radius ",(0,i.kt)("inlineCode",{parentName:"p"},"rout"),". The number of positions is set by the ",(0,i.kt)("inlineCode",{parentName:"p"},"points")," parameter and each position is treated almost independently with no transfer of material between them. The one interaction they have is that positions closer to the edge of the cloud (rout) are used to calculate column densities for the positions further into the cloud. Since UCLCHEM treats self-shielding of H2, C and CO, it does a fair job of properly modelling UV processes in a 1D cloud."),(0,i.kt)("p",null,"However, we caution UCLCHEM's cloud is not a PDR model. It does not consider heating and cooling and uses a fixed temperature for all positions. Moreover, it is unlikely one will model enough positions in the low Av parts of the cloud to properly capture the self-shielding. Therefore, we recommend using ",(0,i.kt)("a",{parentName:"p",href:"https://uclchem.github.io/3dpdr"},"3D-PDR")," for your PDR modelling needs."),(0,i.kt)("p",null,"Cloud is more suitable for studing the UV shielded parts of molecular clouds. If we assume the only depth dependent effect on the chemistry in these clouds is the UV radiation, it becomes reasonable to assume the UV shielded parts of the cloud are homogeneous and can be modelled with a single point code. Thus, most users will use cloud with ",(0,i.kt)("inlineCode",{parentName:"p"},"points=1")," and some combination of ",(0,i.kt)("inlineCode",{parentName:"p"},"rout"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"baseAv"),", and density that produce a large Av."),(0,i.kt)("img",{src:"/img/dark_cloud.png",width:"600","margin-left":"40%"}),(0,i.kt)("p",null,"The other major use of cloud is to model a simple cloud of gas in order to calculate reasonable starting abundances for another model. We may wish to run a hot core or shock model for some investigation and require reasonable initial conditions for the gas. We do this by starting a cloud model with a low density gas of atoms and ions with no molecules or ices. We then allow it to collapse using the ",(0,i.kt)("inlineCode",{parentName:"p"},"freefall")," parameter to reach the density of the gas in our science model. Whatever abundances are reached are then used as the starting abundances in the science model."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5dbea504.dd9f08a0.js b/assets/js/5dbea504.dd9f08a0.js new file mode 100644 index 00000000..7ea6250c --- /dev/null +++ b/assets/js/5dbea504.dd9f08a0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5138],{3905:(e,t,o)=>{o.d(t,{Zo:()=>c,kt:()=>h});var n=o(7294);function r(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function i(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function a(e){for(var t=1;t=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}var l=n.createContext({}),d=function(e){var t=n.useContext(l),o=t;return e&&(o="function"==typeof e?e(t):a(a({},t),e)),o},c=function(e){var t=d(e.components);return n.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var o=e.components,r=e.mdxType,i=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),u=d(o),h=r,m=u["".concat(l,".").concat(h)]||u[h]||p[h]||i;return o?n.createElement(m,a(a({ref:t},c),{},{components:o})):n.createElement(m,a({ref:t},c))}));function h(e,t){var o=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=o.length,a=new Array(i);a[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:r,a[1]=s;for(var d=2;d{o.r(t),o.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>s,metadata:()=>d,toc:()=>p});var n=o(7462),r=o(3366),i=(o(7294),o(3905)),a=["components"],s={id:"physics-cloud",title:"Cloud Model",author:"Jon Holdship"},l=void 0,d={unversionedId:"physics-cloud",id:"version-v3.1.0/physics-cloud",title:"Cloud Model",description:"Main Contributors: Serena Viti, Jon Holdship",source:"@site/versioned_docs/version-v3.1.0/physics-cloud.md",sourceDirName:".",slug:"/physics-cloud",permalink:"/docs/v3.1.0/physics-cloud",draft:!1,tags:[],version:"v3.1.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"physics-cloud",title:"Cloud Model",author:"Jon Holdship"},sidebar:"docs",previous:{title:"Core Physics",permalink:"/docs/v3.1.0/physics-core"},next:{title:"Hot Core",permalink:"/docs/v3.1.0/physics-hotcore"}},c={},p=[],u={toc:p};function h(e){var t=e.components,o=(0,r.Z)(e,a);return(0,i.kt)("wrapper",(0,n.Z)({},u,o,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Main Contributors"),": Serena Viti, Jon Holdship"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Source"),": src/fortran_src/cloud.f90"),(0,i.kt)("p",null,"The cloud model is our simplest physical model and is intended to model spherical clouds of gas with constant physical conditions. The exception to this is the density which can be modified using the ",(0,i.kt)("inlineCode",{parentName:"p"},"freefall")," parameter. "),(0,i.kt)("p",null,"Cloud is a 1D model that models positions through the cloud that are evenly spaced between some inner radius ",(0,i.kt)("inlineCode",{parentName:"p"},"rin")," and the outer radius ",(0,i.kt)("inlineCode",{parentName:"p"},"rout"),". The number of positions is set by the ",(0,i.kt)("inlineCode",{parentName:"p"},"points")," parameter and each position is treated almost independently with no transfer of material between them. The one interaction they have is that positions closer to the edge of the cloud (rout) are used to calculate column densities for the positions further into the cloud. Since UCLCHEM treats self-shielding of H2, C and CO, it does a fair job of properly modelling UV processes in a 1D cloud."),(0,i.kt)("p",null,"However, we caution UCLCHEM's cloud is not a PDR model. It does not consider heating and cooling and uses a fixed temperature for all positions. Moreover, it is unlikely one will model enough positions in the low Av parts of the cloud to properly capture the self-shielding. Therefore, we recommend using ",(0,i.kt)("a",{parentName:"p",href:"https://uclchem.github.io/3dpdr"},"3D-PDR")," for your PDR modelling needs."),(0,i.kt)("p",null,"Cloud is more suitable for studing the UV shielded parts of molecular clouds. If we assume the only depth dependent effect on the chemistry in these clouds is the UV radiation, it becomes reasonable to assume the UV shielded parts of the cloud are homogeneous and can be modelled with a single point code. Thus, most users will use cloud with ",(0,i.kt)("inlineCode",{parentName:"p"},"points=1")," and some combination of ",(0,i.kt)("inlineCode",{parentName:"p"},"rout"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"baseAv"),", and density that produce a large Av."),(0,i.kt)("img",{src:"/img/dark_cloud.png",width:"600","margin-left":"40%"}),(0,i.kt)("p",null,"The other major use of cloud is to model a simple cloud of gas in order to calculate reasonable starting abundances for another model. We may wish to run a hot core or shock model for some investigation and require reasonable initial conditions for the gas. We do this by starting a cloud model with a low density gas of atoms and ions with no molecules or ices. We then allow it to collapse using the ",(0,i.kt)("inlineCode",{parentName:"p"},"freefall")," parameter to reach the density of the gas in our science model. Whatever abundances are reached are then used as the starting abundances in the science model."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/607afc38.95dd200d.js b/assets/js/607afc38.95dd200d.js new file mode 100644 index 00000000..ecb3aa99 --- /dev/null +++ b/assets/js/607afc38.95dd200d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6275],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),d=u(n),h=a,m=d["".concat(l,".").concat(h)]||d[h]||p[h]||o;return n?r.createElement(m,i(i({ref:t},c),{},{components:n})):r.createElement(m,i({ref:t},c))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:a,i[1]=s;for(var u=2;u{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>s,metadata:()=>u,toc:()=>p});var r=n(7462),a=n(3366),o=(n(7294),n(3905)),i=["components"],s={id:"dev-python-wrap",title:"Writing The Python Interface"},l=void 0,u={unversionedId:"dev-python-wrap",id:"dev-python-wrap",title:"Writing The Python Interface",description:"The python interface is a relatively complex bit of code, a lot of work is put on the development side to make the user side a smooth experience. Writing the core of UCLCHEM in Fortran gives great performance benefits but compiling it to python with F2PY has its peculiarities. Here, we discuss the steps needed to adjust the code.",source:"@site/docs/dev-python-wrap.md",sourceDirName:".",slug:"/dev-python-wrap",permalink:"/docs/next/dev-python-wrap",draft:!1,tags:[],version:"current",lastUpdatedBy:"jonholdship",lastUpdatedAt:1651073142,formattedLastUpdatedAt:"Apr 27, 2022",frontMatter:{id:"dev-python-wrap",title:"Writing The Python Interface"},sidebar:"docs",previous:{title:"Overview of the Code",permalink:"/docs/next/dev-overview"},next:{title:"Debugging",permalink:"/docs/next/dev-debugging"}},c={},p=[{value:"The Fortran Side",id:"the-fortran-side",level:2},{value:"The Python Side",id:"the-python-side",level:2},{value:"Tips and Tricks",id:"tips-and-tricks",level:2}],d={toc:p};function h(e){var t=e.components,n=(0,a.Z)(e,i);return(0,o.kt)("wrapper",(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"The python interface is a relatively complex bit of code, a lot of work is put on the development side to make the user side a smooth experience. Writing the core of UCLCHEM in Fortran gives great performance benefits but compiling it to python with F2PY has its peculiarities. Here, we discuss the steps needed to adjust the code."),(0,o.kt)("h2",{id:"the-fortran-side"},"The Fortran Side"),(0,o.kt)("p",null,"The fortran side is the more difficult. We define a module in ",(0,o.kt)("inlineCode",{parentName:"p"},"src/fortran_src/wrap.f90")," which is a Fortran module that F2PY will turn into a python module. Any subroutine declared in ",(0,o.kt)("inlineCode",{parentName:"p"},"wrap.f90")," will become a function in the Python module."),(0,o.kt)("p",null,"The most likely change you'll want to make is to add a physics module so we'll look at cloud as an example. In ",(0,o.kt)("inlineCode",{parentName:"p"},"wrap.f90")," cloud is declared:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-fortran"}," SUBROUTINE cloud(dictionary, outSpeciesIn,abundance_out,successFlag)\n USE cloud_mod\n\n CHARACTER(LEN=*) :: dictionary, outSpeciesIn\n DOUBLE PRECISION :: abundance_out(500)\n INTEGER :: successFlag\n !f2py intent(in) dictionary,outSpeciesIn\n !f2py intent(out) abundance_out,successFlag\n ...\n END SUBROUTINE\n")),(0,o.kt)("p",null,"where we've dropped the bulk of the code since we only care about the declaration. Once compiled, you will be able to call this function using ",(0,o.kt)("inlineCode",{parentName:"p"},"uclchem.wrap.cloud(dictionary,outSpeciesIn)"),"."),(0,o.kt)("p",null,"This works because we've done two things. First, we've declared both the two inputs and the two outputs as arguments in Fortran in the normal way. Both inputs and outputs of a subroutine are declared as arguments in Fortran, usually with an ",(0,o.kt)("inlineCode",{parentName:"p"},"INTENT(IN)")," or ",(0,o.kt)("inlineCode",{parentName:"p"},"INTENT(OUT)")," statement, although that is unnecessary. We then declare the intent of those argument for F2PY using the comments that start ",(0,o.kt)("inlineCode",{parentName:"p"},"!f2py")," to tell F2PY which arguments should be arguments of the corresponding python function and which should be outputs."),(0,o.kt)("h2",{id:"the-python-side"},"The Python Side"),(0,o.kt)("p",null,"We could leave it at that. However, for ease of use, we write pure python functions in the uclchem module which call the underlying wrap functions rather than having users directly access the f2py functions. For example, in ",(0,o.kt)("inlineCode",{parentName:"p"},"uclchem.model"),", we define a cloud function which calls ",(0,o.kt)("inlineCode",{parentName:"p"},"wrap.cloud"),":"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-python"},'\ndef cloud(param_dict=None, out_species=None):\n """Run cloud model from UCLCHEM\n\n Args:\n param_dict (dict,optional): A dictionary of parameters where keys are any of the variables in defaultparameters.f90 and values are value for current run.\n out_species (list, optional): A list of species for which final abundance will be returned. If None, no abundances will be returned.. Defaults to None.\n\n Returns:\n int,list: A integer which is negative if the model failed to run, or a list of abundances of all species in `outSpecies`\n """\n n_out,param_dict,out_species=_reform_inputs(param_dict,out_species)\n abunds, success_flag = wrap.cloud(dictionary=param_dict, outspeciesin=out_species)\n if success_flag < 0 or n_out == 0:\n return success_flag\n else:\n return abunds[: n_out]\n')),(0,o.kt)("p",null,"This allows us to make some arguments optional using python's keyword arguments. It also lets us write docstrings from which we can generate documentation for the functions. Finally, it lets us tidy up the output! For example, arrays passed too and from the Fortran subroutines must be of fixed length so in this function, we cut the output abundance array down to just the elements the user actually wanted."),(0,o.kt)("h2",{id:"tips-and-tricks"},"Tips and Tricks"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Once imported, all values are initialized in UCLCHEM. Calling a subroutine multiple times does not reset variables. That is to say that if your Fortran modules declare variables with an initial value, those variables will not return to those initial values. Instead, you'll notice all our modules reset their variables manually in the initialize functions such as initializePhysics.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Debugging your fortran code can be greatly complicated by the F2PY interface. Consider compiling the fortran source to test any code changes before trying to compile the python version.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Python handles errors much more gracefully than Fortran. We have tried to use ",(0,o.kt)("inlineCode",{parentName:"p"},"successFlag")," as a return from most subroutines as a way to tell Python that the Fortran run failed. It can be a pain to set up the chain of successFlag returns from modules in Fortran but if you use something like Fortran's ",(0,o.kt)("inlineCode",{parentName:"p"},"STOP"),", you'll likely kill your python in a way that won't let you use ",(0,o.kt)("inlineCode",{parentName:"p"},"try:, except:")," statements to handle it."))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/607afc38.fc9e5146.js b/assets/js/607afc38.fc9e5146.js deleted file mode 100644 index 1dfd36f0..00000000 --- a/assets/js/607afc38.fc9e5146.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6275],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),d=u(n),h=a,m=d["".concat(l,".").concat(h)]||d[h]||p[h]||o;return n?r.createElement(m,i(i({ref:t},c),{},{components:n})):r.createElement(m,i({ref:t},c))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:a,i[1]=s;for(var u=2;u{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>s,metadata:()=>u,toc:()=>p});var r=n(7462),a=n(3366),o=(n(7294),n(3905)),i=["components"],s={id:"dev-python-wrap",title:"Writing The Python Interface"},l=void 0,u={unversionedId:"dev-python-wrap",id:"dev-python-wrap",title:"Writing The Python Interface",description:"The python interface is a relatively complex bit of code, a lot of work is put on the development side to make the user side a smooth experience. Writing the core of UCLCHEM in Fortran gives great performance benefits but compiling it to python with F2PY has its peculiarities. Here, we discuss the steps needed to adjust the code.",source:"@site/docs/dev-python-wrap.md",sourceDirName:".",slug:"/dev-python-wrap",permalink:"/docs/next/dev-python-wrap",tags:[],version:"current",lastUpdatedBy:"jonholdship",lastUpdatedAt:1651073142,formattedLastUpdatedAt:"4/27/2022",frontMatter:{id:"dev-python-wrap",title:"Writing The Python Interface"},sidebar:"docs",previous:{title:"Overview of the Code",permalink:"/docs/next/dev-overview"},next:{title:"Debugging",permalink:"/docs/next/dev-debugging"}},c={},p=[{value:"The Fortran Side",id:"the-fortran-side",level:2},{value:"The Python Side",id:"the-python-side",level:2},{value:"Tips and Tricks",id:"tips-and-tricks",level:2}],d={toc:p};function h(e){var t=e.components,n=(0,a.Z)(e,i);return(0,o.kt)("wrapper",(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"The python interface is a relatively complex bit of code, a lot of work is put on the development side to make the user side a smooth experience. Writing the core of UCLCHEM in Fortran gives great performance benefits but compiling it to python with F2PY has its peculiarities. Here, we discuss the steps needed to adjust the code."),(0,o.kt)("h2",{id:"the-fortran-side"},"The Fortran Side"),(0,o.kt)("p",null,"The fortran side is the more difficult. We define a module in ",(0,o.kt)("inlineCode",{parentName:"p"},"src/fortran_src/wrap.f90")," which is a Fortran module that F2PY will turn into a python module. Any subroutine declared in ",(0,o.kt)("inlineCode",{parentName:"p"},"wrap.f90")," will become a function in the Python module."),(0,o.kt)("p",null,"The most likely change you'll want to make is to add a physics module so we'll look at cloud as an example. In ",(0,o.kt)("inlineCode",{parentName:"p"},"wrap.f90")," cloud is declared:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-fortran"}," SUBROUTINE cloud(dictionary, outSpeciesIn,abundance_out,successFlag)\n USE cloud_mod\n\n CHARACTER(LEN=*) :: dictionary, outSpeciesIn\n DOUBLE PRECISION :: abundance_out(500)\n INTEGER :: successFlag\n !f2py intent(in) dictionary,outSpeciesIn\n !f2py intent(out) abundance_out,successFlag\n ...\n END SUBROUTINE\n")),(0,o.kt)("p",null,"where we've dropped the bulk of the code since we only care about the declaration. Once compiled, you will be able to call this function using ",(0,o.kt)("inlineCode",{parentName:"p"},"uclchem.wrap.cloud(dictionary,outSpeciesIn)"),"."),(0,o.kt)("p",null,"This works because we've done two things. First, we've declared both the two inputs and the two outputs as arguments in Fortran in the normal way. Both inputs and outputs of a subroutine are declared as arguments in Fortran, usually with an ",(0,o.kt)("inlineCode",{parentName:"p"},"INTENT(IN)")," or ",(0,o.kt)("inlineCode",{parentName:"p"},"INTENT(OUT)")," statement, although that is unnecessary. We then declare the intent of those argument for F2PY using the comments that start ",(0,o.kt)("inlineCode",{parentName:"p"},"!f2py")," to tell F2PY which arguments should be arguments of the corresponding python function and which should be outputs."),(0,o.kt)("h2",{id:"the-python-side"},"The Python Side"),(0,o.kt)("p",null,"We could leave it at that. However, for ease of use, we write pure python functions in the uclchem module which call the underlying wrap functions rather than having users directly access the f2py functions. For example, in ",(0,o.kt)("inlineCode",{parentName:"p"},"uclchem.model"),", we define a cloud function which calls ",(0,o.kt)("inlineCode",{parentName:"p"},"wrap.cloud"),":"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-python"},'\ndef cloud(param_dict=None, out_species=None):\n """Run cloud model from UCLCHEM\n\n Args:\n param_dict (dict,optional): A dictionary of parameters where keys are any of the variables in defaultparameters.f90 and values are value for current run.\n out_species (list, optional): A list of species for which final abundance will be returned. If None, no abundances will be returned.. Defaults to None.\n\n Returns:\n int,list: A integer which is negative if the model failed to run, or a list of abundances of all species in `outSpecies`\n """\n n_out,param_dict,out_species=_reform_inputs(param_dict,out_species)\n abunds, success_flag = wrap.cloud(dictionary=param_dict, outspeciesin=out_species)\n if success_flag < 0 or n_out == 0:\n return success_flag\n else:\n return abunds[: n_out]\n')),(0,o.kt)("p",null,"This allows us to make some arguments optional using python's keyword arguments. It also lets us write docstrings from which we can generate documentation for the functions. Finally, it lets us tidy up the output! For example, arrays passed too and from the Fortran subroutines must be of fixed length so in this function, we cut the output abundance array down to just the elements the user actually wanted."),(0,o.kt)("h2",{id:"tips-and-tricks"},"Tips and Tricks"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Once imported, all values are initialized in UCLCHEM. Calling a subroutine multiple times does not reset variables. That is to say that if your Fortran modules declare variables with an initial value, those variables will not return to those initial values. Instead, you'll notice all our modules reset their variables manually in the initialize functions such as initializePhysics.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Debugging your fortran code can be greatly complicated by the F2PY interface. Consider compiling the fortran source to test any code changes before trying to compile the python version.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Python handles errors much more gracefully than Fortran. We have tried to use ",(0,o.kt)("inlineCode",{parentName:"p"},"successFlag")," as a return from most subroutines as a way to tell Python that the Fortran run failed. It can be a pain to set up the chain of successFlag returns from modules in Fortran but if you use something like Fortran's ",(0,o.kt)("inlineCode",{parentName:"p"},"STOP"),", you'll likely kill your python in a way that won't let you use ",(0,o.kt)("inlineCode",{parentName:"p"},"try:, except:")," statements to handle it."))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6101527a.9886d0e4.js b/assets/js/6101527a.d4515041.js similarity index 50% rename from assets/js/6101527a.9886d0e4.js rename to assets/js/6101527a.d4515041.js index 798bb192..bafb6575 100644 --- a/assets/js/6101527a.9886d0e4.js +++ b/assets/js/6101527a.d4515041.js @@ -1 +1 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2471],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>h});var o=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=o.createContext({}),c=function(e){var t=o.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=c(e.components);return o.createElement(l.Provider,{value:t},e.children)},f={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},u=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=c(r),h=n,m=u["".concat(l,".").concat(h)]||u[h]||f[h]||a;return r?o.createElement(m,i(i({ref:t},p),{},{components:r})):o.createElement(m,i({ref:t},p))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:n,i[1]=s;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>h,frontMatter:()=>s,metadata:()=>c,toc:()=>f});var o=r(7462),n=r(3366),a=(r(7294),r(3905)),i=["components"],s={title:"First measurement of nitrogen fractionation in shocked clumps of the L1157 protostellar outflow. SOLIS XI",authors:"serena"},l=void 0,c={permalink:"/blog/2020/12/07/milena-nitrogen-solis",source:"@site/blog/2020-12-07-milena-nitrogen-solis.md",title:"First measurement of nitrogen fractionation in shocked clumps of the L1157 protostellar outflow. SOLIS XI",description:"As part of the SOLIS observational programme, various isotopologues of HCN were observed towards L1157 in order to study the nitrogen fractionation in a protostellar outflow. The modelling work for this study was done using UCLCHEM. You can find the paper here and the abstract below.",date:"2020-12-07T00:00:00.000Z",formattedDate:"December 7, 2020",tags:[],readingTime:1.89,truncated:!1,authors:[{name:"Serena Viti",title:"UCLCHEM PI",url:"https://home.strw.leidenuniv.nl/~viti/",imageURL:"/img/viti.jpg",key:"serena"}],frontMatter:{title:"First measurement of nitrogen fractionation in shocked clumps of the L1157 protostellar outflow. SOLIS XI",authors:"serena"},prevItem:{title:"HITs - History Independent Tracers",permalink:"/blog/2022/02/06/holdship-hits"},nextItem:{title:"New Website",permalink:"/blog/2020/02/14/New-Website"}},p={authorsImageUrls:[void 0]},f=[],u={toc:f};function h(e){var t=e.components,r=(0,n.Z)(e,i);return(0,a.kt)("wrapper",(0,o.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"As part of the SOLIS observational programme, various isotopologues of HCN were observed towards L1157 in order to study the nitrogen fractionation in a protostellar outflow. The modelling work for this study was done using UCLCHEM. You can find ",(0,a.kt)("a",{parentName:"p",href:"https://arxiv.org/pdf/2011.14882.pdf"},"the paper here")," and the abstract below."),(0,a.kt)("p",null,"The isotopic ratio of nitrogen presents a wide range of values in the Solar System and in star forming system whose origin is still unclear. Chemical reactions in the gas phase are one of the possible processes that could modify the 14 N/ 15 N ratio. We aim at investigating if and how the passage of a shock wave in the interstellar medium, can affect the relative fraction of nitrogen isotopes. The ideal place for such a study is the L1157 outflow, where several shocked clumps are present. We present the first measurement of the 14 N/ 15 N ratio in the two shocked clumps, B1 and B0, of the protostellar outflow L1157, derived from the interferomteric maps of the H 13 CN(1-0) and the HC 15 N(1-0) lines. In B1, we find that the H 13 CN(1-0) and HC 15 N(1-0) emission traces the front of the clump, with averaged column density of N (H 13 CN) \u223c 7 \xd7 10 12 cm \u22122 and N (HC 15 N) \u223c 2 \xd7 10 12 cm \u22122 . In this region the ratio H 13 CN(1-0)/HC 15 N(1-0) is quite uniform with an average value of \u223c 5 \xb1 1. The same average value is also measured in the smaller clump B0e. Assuming the standard 12 C/ 13 C = 68, we obtain 14 N/ 15 N = 340 \xb1 70, similar to those usually found in prestellar cores and protostars. We analysed the prediction of a chemical shock model for several shock conditions and we found that the nitrogen and carbon fractionations do not vary much for the first period after the shock. The observed H 13 CN/HC 15 N can be reproduced by a non-dissociative, C-type shock with parameters in agreement with previous modelling of L1157-B1. Both observations and chemical models indicate that the shock propagation does not affect the nitrogen isotopic ratio that remains similar to that measured in lower temperature gas in prestellar cores and in protostellar envelopes."))}h.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2471],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>h});var o=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=o.createContext({}),c=function(e){var t=o.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=c(e.components);return o.createElement(l.Provider,{value:t},e.children)},f={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},u=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=c(r),h=n,m=u["".concat(l,".").concat(h)]||u[h]||f[h]||a;return r?o.createElement(m,i(i({ref:t},p),{},{components:r})):o.createElement(m,i({ref:t},p))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:n,i[1]=s;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>h,frontMatter:()=>s,metadata:()=>c,toc:()=>f});var o=r(7462),n=r(3366),a=(r(7294),r(3905)),i=["components"],s={title:"First measurement of nitrogen fractionation in shocked clumps of the L1157 protostellar outflow. SOLIS XI",authors:"serena"},l=void 0,c={permalink:"/blog/2020/12/07/milena-nitrogen-solis",source:"@site/blog/2020-12-07-milena-nitrogen-solis.md",title:"First measurement of nitrogen fractionation in shocked clumps of the L1157 protostellar outflow. SOLIS XI",description:"As part of the SOLIS observational programme, various isotopologues of HCN were observed towards L1157 in order to study the nitrogen fractionation in a protostellar outflow. The modelling work for this study was done using UCLCHEM. You can find the paper here and the abstract below.",date:"2020-12-07T00:00:00.000Z",formattedDate:"December 7, 2020",tags:[],readingTime:1.89,hasTruncateMarker:!1,authors:[{name:"Serena Viti",title:"UCLCHEM PI",url:"https://home.strw.leidenuniv.nl/~viti/",imageURL:"/img/viti.jpg",key:"serena"}],frontMatter:{title:"First measurement of nitrogen fractionation in shocked clumps of the L1157 protostellar outflow. SOLIS XI",authors:"serena"},prevItem:{title:"HITs - History Independent Tracers",permalink:"/blog/2022/02/06/holdship-hits"},nextItem:{title:"New Website",permalink:"/blog/2020/02/14/New-Website"}},p={authorsImageUrls:[void 0]},f=[],u={toc:f};function h(e){var t=e.components,r=(0,n.Z)(e,i);return(0,a.kt)("wrapper",(0,o.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"As part of the SOLIS observational programme, various isotopologues of HCN were observed towards L1157 in order to study the nitrogen fractionation in a protostellar outflow. The modelling work for this study was done using UCLCHEM. You can find ",(0,a.kt)("a",{parentName:"p",href:"https://arxiv.org/pdf/2011.14882.pdf"},"the paper here")," and the abstract below."),(0,a.kt)("p",null,"The isotopic ratio of nitrogen presents a wide range of values in the Solar System and in star forming system whose origin is still unclear. Chemical reactions in the gas phase are one of the possible processes that could modify the 14 N/ 15 N ratio. We aim at investigating if and how the passage of a shock wave in the interstellar medium, can affect the relative fraction of nitrogen isotopes. The ideal place for such a study is the L1157 outflow, where several shocked clumps are present. We present the first measurement of the 14 N/ 15 N ratio in the two shocked clumps, B1 and B0, of the protostellar outflow L1157, derived from the interferomteric maps of the H 13 CN(1-0) and the HC 15 N(1-0) lines. In B1, we find that the H 13 CN(1-0) and HC 15 N(1-0) emission traces the front of the clump, with averaged column density of N (H 13 CN) \u223c 7 \xd7 10 12 cm \u22122 and N (HC 15 N) \u223c 2 \xd7 10 12 cm \u22122 . In this region the ratio H 13 CN(1-0)/HC 15 N(1-0) is quite uniform with an average value of \u223c 5 \xb1 1. The same average value is also measured in the smaller clump B0e. Assuming the standard 12 C/ 13 C = 68, we obtain 14 N/ 15 N = 340 \xb1 70, similar to those usually found in prestellar cores and protostars. We analysed the prediction of a chemical shock model for several shock conditions and we found that the nitrogen and carbon fractionations do not vary much for the first period after the shock. The observed H 13 CN/HC 15 N can be reproduced by a non-dissociative, C-type shock with parameters in agreement with previous modelling of L1157-B1. Both observations and chemical models indicate that the shock propagation does not affect the nitrogen isotopic ratio that remains similar to that measured in lower temperature gas in prestellar cores and in protostellar envelopes."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/61e2a305.c9c54fe3.js b/assets/js/61e2a305.c9c54fe3.js new file mode 100644 index 00000000..fbba0091 --- /dev/null +++ b/assets/js/61e2a305.c9c54fe3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[193],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>k});var l=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=l.createContext({}),u=function(e){var t=l.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},d=function(e){var t=u(e.components);return l.createElement(i.Provider,{value:t},e.children)},c={inlineCode:"code",wrapper:function(e){var t=e.children;return l.createElement(l.Fragment,{},t)}},p=l.forwardRef((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,i=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=u(n),k=a,h=p["".concat(i,".").concat(k)]||p[k]||c[k]||r;return n?l.createElement(h,o(o({ref:t},d),{},{components:n})):l.createElement(h,o({ref:t},d))}));function k(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,o=new Array(r);o[0]=p;var s={};for(var i in t)hasOwnProperty.call(t,i)&&(s[i]=t[i]);s.originalType=e,s.mdxType="string"==typeof e?e:a,o[1]=s;for(var u=2;u{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>k,frontMatter:()=>s,metadata:()=>u,toc:()=>c});var l=n(7462),a=n(3366),r=(n(7294),n(3905)),o=["components"],s={},i="Running Your First Models",u={unversionedId:"first_model",id:"version-v3.2.0/first_model",title:"Running Your First Models",description:"In this notebook, we demonstrate the basic use of UCLCHEM's python module by running a simple model and then using the analysis functions to examine the output.",source:"@site/versioned_docs/version-v3.2.0/first_model.md",sourceDirName:".",slug:"/first_model",permalink:"/docs/first_model",draft:!1,tags:[],version:"v3.2.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{},sidebar:"docs",previous:{title:"Tutorials",permalink:"/docs/category/tutorials"},next:{title:"Advanced Physical Modelling",permalink:"/docs/modelling_objects"}},d={},c=[{value:"A Simple Cloud",id:"a-simple-cloud",level:2},{value:"Checking the output",id:"checking-the-output",level:2},{value:"Plotting Results",id:"plotting-results",level:2}],p={toc:c};function k(e){var t=e.components,s=(0,a.Z)(e,o);return(0,r.kt)("wrapper",(0,l.Z)({},p,s,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"running-your-first-models"},"Running Your First Models"),(0,r.kt)("p",null,"In this notebook, we demonstrate the basic use of UCLCHEM's python module by running a simple model and then using the analysis functions to examine the output."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},"import uclchem\n")),(0,r.kt)("h2",{id:"a-simple-cloud"},"A Simple Cloud"),(0,r.kt)("p",null,"UCLCHEM's ",(0,r.kt)("inlineCode",{parentName:"p"},"cloud()")," model is a spherical cloud of isothermal gas. We can keep a constant density or have it increase over time following a freefall equation. This model is generally useful whenever you want to model a homogeneous cloud of gas under constant conditions. For example, in the inner parts of a molecular cloud where Av ",(0,r.kt)("span",{parentName:"p",className:"math math-inline"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("mo",{parentName:"mrow"},"\u2273")),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\gtrsim")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.95916em",verticalAlign:"-0.22958em"}}),(0,r.kt)("span",{parentName:"span",className:"mrel amsrm"},"\u2273")))))," 10 there are very few depth dependent processes. You may wish to model the whole of this UV shielded portion of the cloud with a single ",(0,r.kt)("inlineCode",{parentName:"p"},"cloud()")," model."),(0,r.kt)("p",null,"Due to the large number of parameters in a chemical model and the way fortran and python interaction, we find it is easiest to do parameter input through python dictionaries. In this block, we define param_dict which contains the parameters we wish to modify for this run. Every ",(0,r.kt)("inlineCode",{parentName:"p"},"uclchem.model")," function accepts a dictionary as an optional argument. Every parameter has a default value which is overriden if that parameter is specified in this dictionary. You can find a complete list of modifiable parameters and their default values in ",(0,r.kt)("a",{parentName:"p",href:"/docs/parameters"},"our parameter docs"),"."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},'# set a parameter dictionary for phase 1 collapse model\n\nout_species = ["SO","CO"]\nparam_dict = {\n "endAtFinalDensity": False,#stop at finalTime\n "freefall": False,#don\'t increase density in freefall\n "initialDens": 1e4, #starting density\n "initialTemp": 10.0,#temperature of gas\n "finalTime": 1.0e6, #final time\n "rout":0.1, #radius of cloud in pc\n "baseAv":1.0, #visual extinction at cloud edge.\n "outputFile": "../examples/test-output/static-full.dat",#full UCLCHEM output\n "abundSaveFile": "../examples/test-output/startstatic.dat",#save final abundances to file\n}\nresult = uclchem.model.cloud(param_dict=param_dict,out_species=out_species)\nprint(result)\n\n')),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"[1, 3.331065659699488e-11, 3.576305642378658e-05]\n")),(0,r.kt)("h2",{id:"checking-the-output"},"Checking the output"),(0,r.kt)("p",null,"At the end of the previous cell, we printed ",(0,r.kt)("inlineCode",{parentName:"p"},"result")," which is a list returned by every UCLCHEM model function. The first element is always an integer which will be positive if the code completed and negative otherwise. You can send negative values to ",(0,r.kt)("inlineCode",{parentName:"p"},"uclchem.utils.check_error()")," to get a more detailed error message."),(0,r.kt)("p",null,"The subsequent elements are the final abundances of any species listed in ",(0,r.kt)("inlineCode",{parentName:"p"},"out_species"),", in this case we have the abundance of SO and CO. This is useful when we want to use UCLCHEM as part of something like an MCMC procedure, obtaining abundances for given parameters. However, we also write the final abundances of all species to ",(0,r.kt)("inlineCode",{parentName:"p"},"abundSaveFile")," and the abundances of all species at every time step in ",(0,r.kt)("inlineCode",{parentName:"p"},"outputFile")," so it is not necessary to acquire abundances in this way."),(0,r.kt)("p",null,"The output file is just a simple csv with some header rows, UCLCHEM has a utility function to read that file into a pandas dataframe. Let's load it up and look at it."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},'result_df=uclchem.analysis.read_output_file("../examples/test-output/static-full.dat")\nresult_df.head()\n')),(0,r.kt)("div",null,(0,r.kt)("table",{border:"1",class:"dataframe"},(0,r.kt)("thead",null,(0,r.kt)("tr",null,(0,r.kt)("th",null),(0,r.kt)("th",null,"Time"),(0,r.kt)("th",null,"Density"),(0,r.kt)("th",null,"gasTemp"),(0,r.kt)("th",null,"av"),(0,r.kt)("th",null,"zeta"),(0,r.kt)("th",null,"point"),(0,r.kt)("th",null,"H"),(0,r.kt)("th",null,"#H"),(0,r.kt)("th",null,"H+"),(0,r.kt)("th",null,"@H"),(0,r.kt)("th",null,"..."),(0,r.kt)("th",null,"HS2+"),(0,r.kt)("th",null,"HSO2+"),(0,r.kt)("th",null,"H2S2+"),(0,r.kt)("th",null,"H2S2"),(0,r.kt)("th",null,"#H2S2"),(0,r.kt)("th",null,"@H2S2"),(0,r.kt)("th",null,"E-"),(0,r.kt)("th",null,"BULK"),(0,r.kt)("th",null,"SURFACE"),(0,r.kt)("th",null,"radfield"))),(0,r.kt)("tbody",null,(0,r.kt)("tr",null,(0,r.kt)("th",null,"0"),(0,r.kt)("td",null,"0.000000e+00"),(0,r.kt)("td",null,"10000.0"),(0,r.kt)("td",null,"10.0"),(0,r.kt)("td",null,"2.9287"),(0,r.kt)("td",null,"1.0"),(0,r.kt)("td",null,"1"),(0,r.kt)("td",null,"0.5"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"..."),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"0.000182"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.0")),(0,r.kt)("tr",null,(0,r.kt)("th",null,"1"),(0,r.kt)("td",null,"1.000000e-07"),(0,r.kt)("td",null,"10000.0"),(0,r.kt)("td",null,"10.0"),(0,r.kt)("td",null,"2.9287"),(0,r.kt)("td",null,"1.0"),(0,r.kt)("td",null,"1"),(0,r.kt)("td",null,"0.5"),(0,r.kt)("td",null,"5.680300e-13"),(0,r.kt)("td",null,"1.789040e-17"),(0,r.kt)("td",null,"4.269620e-20"),(0,r.kt)("td",null,"..."),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"0.000182"),(0,r.kt)("td",null,"5.629010e-20"),(0,r.kt)("td",null,"7.488850e-13"),(0,r.kt)("td",null,"1.0")),(0,r.kt)("tr",null,(0,r.kt)("th",null,"2"),(0,r.kt)("td",null,"1.000000e-06"),(0,r.kt)("td",null,"10000.0"),(0,r.kt)("td",null,"10.0"),(0,r.kt)("td",null,"2.9287"),(0,r.kt)("td",null,"1.0"),(0,r.kt)("td",null,"1"),(0,r.kt)("td",null,"0.5"),(0,r.kt)("td",null,"5.646510e-12"),(0,r.kt)("td",null,"1.789080e-16"),(0,r.kt)("td",null,"4.219000e-18"),(0,r.kt)("td",null,"..."),(0,r.kt)("td",null,"1.631720e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000020e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"0.000182"),(0,r.kt)("td",null,"5.562330e-18"),(0,r.kt)("td",null,"7.444370e-12"),(0,r.kt)("td",null,"1.0")),(0,r.kt)("tr",null,(0,r.kt)("th",null,"3"),(0,r.kt)("td",null,"1.000000e-05"),(0,r.kt)("td",null,"10000.0"),(0,r.kt)("td",null,"10.0"),(0,r.kt)("td",null,"2.9287"),(0,r.kt)("td",null,"1.0"),(0,r.kt)("td",null,"1"),(0,r.kt)("td",null,"0.5"),(0,r.kt)("td",null,"5.641430e-11"),(0,r.kt)("td",null,"1.789520e-15"),(0,r.kt)("td",null,"4.212520e-16"),(0,r.kt)("td",null,"..."),(0,r.kt)("td",null,"7.762720e-29"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000050e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000010e-30"),(0,r.kt)("td",null,"0.000182"),(0,r.kt)("td",null,"5.554260e-16"),(0,r.kt)("td",null,"7.438940e-11"),(0,r.kt)("td",null,"1.0")),(0,r.kt)("tr",null,(0,r.kt)("th",null,"4"),(0,r.kt)("td",null,"1.000000e-04"),(0,r.kt)("td",null,"10000.0"),(0,r.kt)("td",null,"10.0"),(0,r.kt)("td",null,"2.9287"),(0,r.kt)("td",null,"1.0"),(0,r.kt)("td",null,"1"),(0,r.kt)("td",null,"0.5"),(0,r.kt)("td",null,"5.480630e-10"),(0,r.kt)("td",null,"1.793810e-14"),(0,r.kt)("td",null,"4.079690e-14"),(0,r.kt)("td",null,"..."),(0,r.kt)("td",null,"7.864380e-27"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000070e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000150e-30"),(0,r.kt)("td",null,"0.000182"),(0,r.kt)("td",null,"5.425070e-14"),(0,r.kt)("td",null,"7.351600e-10"),(0,r.kt)("td",null,"1.0")))),(0,r.kt)("p",null,"5 rows \xd7 321 columns")),(0,r.kt)("p",null,"We can also test whether the model run went well by checking for element conservation. We do this because integrator errors often show up as a failure to conserve elemental abundances. "),(0,r.kt)("p",null,"We can use ",(0,r.kt)("inlineCode",{parentName:"p"},"check_element_conservation()")," to test whether we conserve elements in this run. This function returns a dictionary where each entry gives the change in the total abundance of an element as a percentage of the original abundance. In an ideal case, these values are 0\\% indicating the total abundance at the end of the model is exactly the same as the total at the start."),(0,r.kt)("p",null,"Changes of less than 1\\% are fine for many cases but if they are too high, you could consider changing the ",(0,r.kt)("inlineCode",{parentName:"p"},"reltol")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"abstol")," parameters that control the integrator accuracy. They are error tolerance so smaller values lead to smaller errors and (usually) longer integration times. The default values were chosen by running a large grid of models and choosing the tolerances with the lowest average run time from those that conserved elements well and rarely failed. Despite this, there are no one-size-fits-all perfect tolerances and you may run into issues with different networks or models."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},'conservation=uclchem.analysis.check_element_conservation(result_df,element_list=["H","N","C","O","S"])\nprint("Percentage change in total abundances:")\nprint(conservation)\n')),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"Percentage change in total abundances:\n{'H': '0.001%', 'N': '0.000%', 'C': '0.000%', 'O': '0.000%', 'S': '0.000%'}\n")),(0,r.kt)("h2",{id:"plotting-results"},"Plotting Results"),(0,r.kt)("p",null,"Finally, you will want to plot your results. This can be done with any plotting library but UCLCHEM does provide a few functions to make quick plots. Note the use of $ symbols in the species list below, this gets the total ice abundance of a species. For two phase models, this is just the surface abudance but for three phase it is the sum of surface and bulk."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},'species=["H","H2","$H","$H2","H2O","$H2O","CO","$CO","$CH3OH","CH3OH"]\nfig,ax=uclchem.analysis.create_abundance_plot(result_df,species,figsize=(10,7))\nax=ax.set(xscale="log",ylim=(1e-15,1),xlim=(1e3,1e6))\n')),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"png",src:n(3184).Z,width:"712",height:"496"})),(0,r.kt)("p",null,"and that's it! You've run your first UCLCHEM model, checked that the element conservation is correct, and plotted the abundances."))}k.isMDXComponent=!0},3184:(e,t,n)=>{n.d(t,{Z:()=>l});const l=n.p+"assets/images/first_model_9_0-fff8b0e800895dbb0e755cc2b9459720.png"}}]); \ No newline at end of file diff --git a/assets/js/640703ca.39c26f91.js b/assets/js/640703ca.3568f9de.js similarity index 59% rename from assets/js/640703ca.39c26f91.js rename to assets/js/640703ca.3568f9de.js index beaf4462..eaa61807 100644 --- a/assets/js/640703ca.39c26f91.js +++ b/assets/js/640703ca.3568f9de.js @@ -1 +1 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1231],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>d});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},f={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=l(n),d=a,h=u["".concat(s,".").concat(d)]||u[d]||f[d]||o;return n?r.createElement(h,i(i({ref:t},p),{},{components:n})):r.createElement(h,i({ref:t},p))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=u;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c.mdxType="string"==typeof e?e:a,i[1]=c;for(var l=2;l{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>d,frontMatter:()=>c,metadata:()=>l,toc:()=>f});var r=n(7462),a=n(3366),o=(n(7294),n(3905)),i=["components"],c={title:"A chemical study of carbon fractionation in external galaxies",authors:"serena"},s=void 0,l={permalink:"/blog/2019/08/13/serena-carbon-frac",source:"@site/blog/2019-08-13-serena-carbon-frac.md",title:"A chemical study of carbon fractionation in external galaxies",description:"UCLCHEM has recently been used to study carbon fractionation in external galaxies. You can find the paper here and the abstract below.",date:"2019-08-13T00:00:00.000Z",formattedDate:"August 13, 2019",tags:[],readingTime:.825,truncated:!1,authors:[{name:"Serena Viti",title:"UCLCHEM PI",url:"https://home.strw.leidenuniv.nl/~viti/",imageURL:"/img/viti.jpg",key:"serena"}],frontMatter:{title:"A chemical study of carbon fractionation in external galaxies",authors:"serena"},prevItem:{title:"Tracing shock type with chemical diagnostics - an application to L1157",permalink:"/blog/2019/12/10/tom-shock"},nextItem:{title:"Ambipolar diffusion and the molecular abundances inprestellar cores",permalink:"/blog/2019/07/08/felix-ambipolar"}},p={authorsImageUrls:[void 0]},f=[],u={toc:f};function d(e){var t=e.components,n=(0,a.Z)(e,i);return(0,o.kt)("wrapper",(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"UCLCHEM has recently been used to study carbon fractionation in external galaxies. You can find ",(0,o.kt)("a",{parentName:"p",href:"https://arxiv.org/pdf/2007.12405.pdf"},"the paper here")," and the abstract below."),(0,o.kt)("p",null,"In the interstellar medium carbon exists in the form of two stable isotopes 12C and 13C and their ratio is a good indicator of nucleosynthesis in galaxies. However, chemical fractionation can potentially significantly alter this ratio and in fact observations of carbon fractionation within the same galaxy has been found to vary from species to species. In this paper, we theoretically investigate the carbon fractionation for selected abundant carbon-bearing species in order to determine the conditions that may lead to a spread of the 12C/13C ratio in external galaxies. We find that carbon fractionation is sensitive to almost all the physical conditions we investigated, it strongly varies with time for all species but CO, and shows pronounced differences across species. Finally, we discuss our theoretical results in the context of the few observations of the 12C/13C in both local and higher redshift galaxies."))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1231],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>d});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},f={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=l(n),d=a,h=u["".concat(s,".").concat(d)]||u[d]||f[d]||o;return n?r.createElement(h,i(i({ref:t},p),{},{components:n})):r.createElement(h,i({ref:t},p))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=u;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c.mdxType="string"==typeof e?e:a,i[1]=c;for(var l=2;l{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>d,frontMatter:()=>c,metadata:()=>l,toc:()=>f});var r=n(7462),a=n(3366),o=(n(7294),n(3905)),i=["components"],c={title:"A chemical study of carbon fractionation in external galaxies",authors:"serena"},s=void 0,l={permalink:"/blog/2019/08/13/serena-carbon-frac",source:"@site/blog/2019-08-13-serena-carbon-frac.md",title:"A chemical study of carbon fractionation in external galaxies",description:"UCLCHEM has recently been used to study carbon fractionation in external galaxies. You can find the paper here and the abstract below.",date:"2019-08-13T00:00:00.000Z",formattedDate:"August 13, 2019",tags:[],readingTime:.825,hasTruncateMarker:!1,authors:[{name:"Serena Viti",title:"UCLCHEM PI",url:"https://home.strw.leidenuniv.nl/~viti/",imageURL:"/img/viti.jpg",key:"serena"}],frontMatter:{title:"A chemical study of carbon fractionation in external galaxies",authors:"serena"},prevItem:{title:"Tracing shock type with chemical diagnostics - an application to L1157",permalink:"/blog/2019/12/10/tom-shock"},nextItem:{title:"Ambipolar diffusion and the molecular abundances inprestellar cores",permalink:"/blog/2019/07/08/felix-ambipolar"}},p={authorsImageUrls:[void 0]},f=[],u={toc:f};function d(e){var t=e.components,n=(0,a.Z)(e,i);return(0,o.kt)("wrapper",(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"UCLCHEM has recently been used to study carbon fractionation in external galaxies. You can find ",(0,o.kt)("a",{parentName:"p",href:"https://arxiv.org/pdf/2007.12405.pdf"},"the paper here")," and the abstract below."),(0,o.kt)("p",null,"In the interstellar medium carbon exists in the form of two stable isotopes 12C and 13C and their ratio is a good indicator of nucleosynthesis in galaxies. However, chemical fractionation can potentially significantly alter this ratio and in fact observations of carbon fractionation within the same galaxy has been found to vary from species to species. In this paper, we theoretically investigate the carbon fractionation for selected abundant carbon-bearing species in order to determine the conditions that may lead to a spread of the 12C/13C ratio in external galaxies. We find that carbon fractionation is sensitive to almost all the physical conditions we investigated, it strongly varies with time for all species but CO, and shows pronounced differences across species. Finally, we discuss our theoretical results in the context of the few observations of the 12C/13C in both local and higher redshift galaxies."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/670f431a.cb46b8af.js b/assets/js/670f431a.cb46b8af.js new file mode 100644 index 00000000..6e78c8f8 --- /dev/null +++ b/assets/js/670f431a.cb46b8af.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4723],{3905:(e,t,o)=>{o.d(t,{Zo:()=>u,kt:()=>h});var n=o(7294);function a(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function r(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function i(e){for(var t=1;t=0||(a[o]=e[o]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(a[o]=e[o])}return a}var s=n.createContext({}),c=function(e){var t=n.useContext(s),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},u=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var o=e.components,a=e.mdxType,r=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=c(o),h=a,m=d["".concat(s,".").concat(h)]||d[h]||p[h]||r;return o?n.createElement(m,i(i({ref:t},u),{},{components:o})):n.createElement(m,i({ref:t},u))}));function h(e,t){var o=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=o.length,i=new Array(r);i[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:a,i[1]=l;for(var c=2;c{o.r(t),o.d(t,{assets:()=>u,contentTitle:()=>s,default:()=>h,frontMatter:()=>l,metadata:()=>c,toc:()=>p});var n=o(7462),a=o(3366),r=(o(7294),o(3905)),i=["components"],l={id:"trouble-compile",title:"Compilation Issues"},s=void 0,c={unversionedId:"trouble-compile",id:"trouble-compile",title:"Compilation Issues",description:"Given that UCLCHEM is supplied as source code, used across many machine types, and is a fairly complex model, things will occasionally go wrong. We've collected here some of the most common problems and hope they resolve most issues.",source:"@site/docs/trouble-compile.md",sourceDirName:".",slug:"/trouble-compile",permalink:"/docs/next/trouble-compile",draft:!1,tags:[],version:"current",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1670417506,formattedLastUpdatedAt:"Dec 7, 2022",frontMatter:{id:"trouble-compile",title:"Compilation Issues"},sidebar:"docs",previous:{title:"Chemical Analysis",permalink:"/docs/next/chemical_analysis"},next:{title:"Integration",permalink:"/docs/next/trouble-integration"}},u={},p=[{value:"Pip fails",id:"pip-fails",level:2},{value:"Windows Trouble",id:"windows-trouble",level:2},{value:"Mac Trouble",id:"mac-trouble",level:2},{value:"x86 Macs",id:"x86-macs",level:3},{value:"gfortran",id:"gfortran",level:4},{value:"conda-Xcode compatibility",id:"conda-xcode-compatibility",level:4},{value:"Apple silicon Macs",id:"apple-silicon-macs",level:3},{value:"Architectures",id:"architectures",level:2}],d={toc:p};function h(e){var t=e.components,o=(0,a.Z)(e,i);return(0,r.kt)("wrapper",(0,n.Z)({},d,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Given that UCLCHEM is supplied as source code, used across many machine types, and is a fairly complex model, things will occasionally go wrong. We've collected here some of the most common problems and hope they resolve most issues."),(0,r.kt)("h2",{id:"pip-fails"},"Pip fails"),(0,r.kt)("p",null,"Pip is a package manager for Python. It is used to install and manage Python packages but we're hijacking its set up process to ask it to compile UCLCHEM. If the compilation goes wrong, the error message is often a bit useless. Please go to ",(0,r.kt)("inlineCode",{parentName:"p"},"src/fortran_src")," in your terminal and type ",(0,r.kt)("inlineCode",{parentName:"p"},"make python"),". You will get a more useful error which you can then try to debug or send to the team."),(0,r.kt)("p",null,"Installing via pip may fail if your environment is not set up. Whilst pip will check that you have the necessary python libraries installed, it will not check that you have the necessary compilers. In order to compile you need gfortran which is packaged with the ",(0,r.kt)("a",{parentName:"p",href:"https://gcc.gnu.org/"},"gnu compiler")," suite. You also need make which is part of the GNU toolset. You can likely install these things through your operating system's package manager rather than from their websites."),(0,r.kt)("p",null,"Advanced users who do not wish to change compiler may want to check the Makefile. It can be found in ",(0,r.kt)("inlineCode",{parentName:"p"},"src/fortran_src/Makefile"),". There are variables to control the choice of compiler, compilation flags and the F2PY flags which tell numpy.f2py which fortran compiler was used. These can all be altered if you do not wish to use gfortran."),(0,r.kt)("h2",{id:"windows-trouble"},"Windows Trouble"),(0,r.kt)("p",null,"UCLCHEM was written on a GNU/Linux machine and therefore makes a lot of assumptions about how your environment is set up. Whilst these assumptions hold for basically all Linux (and most Mac) distributions, Windows users often run into trouble. You can attempt to install a GNU toolset through packages like MinGW but the most straightforward way we've found for Windows users is to use the Windows Subsystem for linux."),(0,r.kt)("p",null,"Open a powershell as an administrator and type ",(0,r.kt)("inlineCode",{parentName:"p"},"wsl --install")," to install the Windows Subsystem for Linux. It will then ask you to reboot. Once you've done this, you'll find Ubuntu in your Windows App Store. Installing this Ubuntu app will give you access to a terminal that is indistinguishable from one running on a Linux system but it will have access to all your Windows files. You can set up your linux environment with all necessary tools:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"sudo apt update\nsudo apt install make\nsudo apt install python3-pip\nsudo apt install gfortran\n")),(0,r.kt)("p",null,"and then you'll find your files in ",(0,r.kt)("inlineCode",{parentName:"p"},"/mnt"),". For example, your C: drive can be accessed via ",(0,r.kt)("inlineCode",{parentName:"p"},"cd /mnt/c"),". With the above tools installed, you'll be able to follow our basic install instructions and run UCLCHEM via your Ubuntu installation."),(0,r.kt)("h2",{id:"mac-trouble"},"Mac Trouble"),(0,r.kt)("p",null,"The troubleshooting for macbooks is divided into troubleshooting for macbooks using x86 architectures (Intel) and apple silicon ARM (M1/M2). You can see which type of chip you have via About This Mac."),(0,r.kt)("h3",{id:"x86-macs"},"x86 Macs"),(0,r.kt)("h4",{id:"gfortran"},"gfortran"),(0,r.kt)("p",null,"A problem Mac users commonly come across is that fortran codes compile but do not run because the gfortran libraries are not in the expected location. If you get an error like:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"Exception has occurred: ImportErrordlopen(/usr/local/lib/python3.9/site-packages/uclchemwrap.cpython-39-darwin.so, 2): Library not loaded: /usr/local/opt/gcc/lib/gcc/10/libgfortran.5.dylib Referenced from: /usr/local/lib/python3.9/site-packages/uclchemwrap.cpython-39-darwin.so Reason: image not found\n")),(0,r.kt)("p",null,"then this is likely what has happened to you. You can fix it by following the instructions in ",(0,r.kt)("a",{parentName:"p",href:"https://stackoverflow.com/questions/57207357/dyld-library-not-loaded-usr-local-gfortran-lib-libgfortran-3-dylib-reason-im"},"this Stackoverflow post"),". "),(0,r.kt)("p",null,"However, the underlying problem is that Apple would prefer you do not use GNU compilers. As Mac OS updates come in, the exact issue may change. You will usually find many stackoverflow posts about your problem if you search for people having similar errors with gfortran on Mac. Many members of the UCLCHEM group also use Mac so do get in touch if you cannot find a solution.xit"),(0,r.kt)("h4",{id:"conda-xcode-compatibility"},"conda-Xcode compatibility"),(0,r.kt)("p",null,"Sometimes the version of the Xcode SDK is not compatible with the conda packages that are generated with\nan older version. This means you will have to downgrade the SDK you are using as seen in ",(0,r.kt)("a",{parentName:"p",href:"https://stackoverflow.com/questions/69236331/conda-macos-big-sur-ld-unsupported-tapi-file-type-tapi-tbd-in-yaml-file"},"this Stackoverflow post")),(0,r.kt)("h3",{id:"apple-silicon-macs"},"Apple silicon Macs"),(0,r.kt)("p",null,"If you by accident install any package that was meant for x86 architectures (brew, pip, conda etc.) you will encounter problems as Rosetta 2 does not seem to work well with the gfortran.\nCurrently we recommend uninstalling all packages/software that might cause interference with uclchcem, such as gfortran installed via brew and reinstalling everything using conda as listed in the ","[docs/start-basicuse]"," document."),(0,r.kt)("h2",{id:"architectures"},"Architectures"),(0,r.kt)("p",null,"F2PY defaults to x86_64 architecture. This is fine for most users, but if you are using a different architecture, you may need to specify this in the Makefile. To do so, edit ",(0,r.kt)("inlineCode",{parentName:"p"},"src/fortran_src/Makfile")," so that the line that reads"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"python3 -m numpy.f2py -c --fcompiler=${f2pyFC}\n")),(0,r.kt)("p",null,"is replaced with"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"python3 -m numpy.f2py -c --fcompiler=${f2pyFC} --arch=my_arch\n")),(0,r.kt)("p",null,"where my_arch is the architecture you are using."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/670f431a.e1fb0a2d.js b/assets/js/670f431a.e1fb0a2d.js deleted file mode 100644 index b354cf6c..00000000 --- a/assets/js/670f431a.e1fb0a2d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4723],{3905:(e,t,o)=>{o.d(t,{Zo:()=>u,kt:()=>h});var n=o(7294);function a(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function r(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function i(e){for(var t=1;t=0||(a[o]=e[o]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(a[o]=e[o])}return a}var s=n.createContext({}),c=function(e){var t=n.useContext(s),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},u=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var o=e.components,a=e.mdxType,r=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=c(o),h=a,m=d["".concat(s,".").concat(h)]||d[h]||p[h]||r;return o?n.createElement(m,i(i({ref:t},u),{},{components:o})):n.createElement(m,i({ref:t},u))}));function h(e,t){var o=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=o.length,i=new Array(r);i[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:a,i[1]=l;for(var c=2;c{o.r(t),o.d(t,{assets:()=>u,contentTitle:()=>s,default:()=>h,frontMatter:()=>l,metadata:()=>c,toc:()=>p});var n=o(7462),a=o(3366),r=(o(7294),o(3905)),i=["components"],l={id:"trouble-compile",title:"Compilation Issues"},s=void 0,c={unversionedId:"trouble-compile",id:"trouble-compile",title:"Compilation Issues",description:"Given that UCLCHEM is supplied as source code, used across many machine types, and is a fairly complex model, things will occasionally go wrong. We've collected here some of the most common problems and hope they resolve most issues.",source:"@site/docs/trouble-compile.md",sourceDirName:".",slug:"/trouble-compile",permalink:"/docs/next/trouble-compile",tags:[],version:"current",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1670417506,formattedLastUpdatedAt:"12/7/2022",frontMatter:{id:"trouble-compile",title:"Compilation Issues"},sidebar:"docs",previous:{title:"Chemical Analysis",permalink:"/docs/next/chemical_analysis"},next:{title:"Integration",permalink:"/docs/next/trouble-integration"}},u={},p=[{value:"Pip fails",id:"pip-fails",level:2},{value:"Windows Trouble",id:"windows-trouble",level:2},{value:"Mac Trouble",id:"mac-trouble",level:2},{value:"x86 Macs",id:"x86-macs",level:3},{value:"gfortran",id:"gfortran",level:4},{value:"conda-Xcode compatibility",id:"conda-xcode-compatibility",level:4},{value:"Apple silicon Macs",id:"apple-silicon-macs",level:3},{value:"Architectures",id:"architectures",level:2}],d={toc:p};function h(e){var t=e.components,o=(0,a.Z)(e,i);return(0,r.kt)("wrapper",(0,n.Z)({},d,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Given that UCLCHEM is supplied as source code, used across many machine types, and is a fairly complex model, things will occasionally go wrong. We've collected here some of the most common problems and hope they resolve most issues."),(0,r.kt)("h2",{id:"pip-fails"},"Pip fails"),(0,r.kt)("p",null,"Pip is a package manager for Python. It is used to install and manage Python packages but we're hijacking its set up process to ask it to compile UCLCHEM. If the compilation goes wrong, the error message is often a bit useless. Please go to ",(0,r.kt)("inlineCode",{parentName:"p"},"src/fortran_src")," in your terminal and type ",(0,r.kt)("inlineCode",{parentName:"p"},"make python"),". You will get a more useful error which you can then try to debug or send to the team."),(0,r.kt)("p",null,"Installing via pip may fail if your environment is not set up. Whilst pip will check that you have the necessary python libraries installed, it will not check that you have the necessary compilers. In order to compile you need gfortran which is packaged with the ",(0,r.kt)("a",{parentName:"p",href:"https://gcc.gnu.org/"},"gnu compiler")," suite. You also need make which is part of the GNU toolset. You can likely install these things through your operating system's package manager rather than from their websites."),(0,r.kt)("p",null,"Advanced users who do not wish to change compiler may want to check the Makefile. It can be found in ",(0,r.kt)("inlineCode",{parentName:"p"},"src/fortran_src/Makefile"),". There are variables to control the choice of compiler, compilation flags and the F2PY flags which tell numpy.f2py which fortran compiler was used. These can all be altered if you do not wish to use gfortran."),(0,r.kt)("h2",{id:"windows-trouble"},"Windows Trouble"),(0,r.kt)("p",null,"UCLCHEM was written on a GNU/Linux machine and therefore makes a lot of assumptions about how your environment is set up. Whilst these assumptions hold for basically all Linux (and most Mac) distributions, Windows users often run into trouble. You can attempt to install a GNU toolset through packages like MinGW but the most straightforward way we've found for Windows users is to use the Windows Subsystem for linux."),(0,r.kt)("p",null,"Open a powershell as an administrator and type ",(0,r.kt)("inlineCode",{parentName:"p"},"wsl --install")," to install the Windows Subsystem for Linux. It will then ask you to reboot. Once you've done this, you'll find Ubuntu in your Windows App Store. Installing this Ubuntu app will give you access to a terminal that is indistinguishable from one running on a Linux system but it will have access to all your Windows files. You can set up your linux environment with all necessary tools:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"sudo apt update\nsudo apt install make\nsudo apt install python3-pip\nsudo apt install gfortran\n")),(0,r.kt)("p",null,"and then you'll find your files in ",(0,r.kt)("inlineCode",{parentName:"p"},"/mnt"),". For example, your C: drive can be accessed via ",(0,r.kt)("inlineCode",{parentName:"p"},"cd /mnt/c"),". With the above tools installed, you'll be able to follow our basic install instructions and run UCLCHEM via your Ubuntu installation."),(0,r.kt)("h2",{id:"mac-trouble"},"Mac Trouble"),(0,r.kt)("p",null,"The troubleshooting for macbooks is divided into troubleshooting for macbooks using x86 architectures (Intel) and apple silicon ARM (M1/M2). You can see which type of chip you have via About This Mac."),(0,r.kt)("h3",{id:"x86-macs"},"x86 Macs"),(0,r.kt)("h4",{id:"gfortran"},"gfortran"),(0,r.kt)("p",null,"A problem Mac users commonly come across is that fortran codes compile but do not run because the gfortran libraries are not in the expected location. If you get an error like:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"Exception has occurred: ImportErrordlopen(/usr/local/lib/python3.9/site-packages/uclchemwrap.cpython-39-darwin.so, 2): Library not loaded: /usr/local/opt/gcc/lib/gcc/10/libgfortran.5.dylib Referenced from: /usr/local/lib/python3.9/site-packages/uclchemwrap.cpython-39-darwin.so Reason: image not found\n")),(0,r.kt)("p",null,"then this is likely what has happened to you. You can fix it by following the instructions in ",(0,r.kt)("a",{parentName:"p",href:"https://stackoverflow.com/questions/57207357/dyld-library-not-loaded-usr-local-gfortran-lib-libgfortran-3-dylib-reason-im"},"this Stackoverflow post"),". "),(0,r.kt)("p",null,"However, the underlying problem is that Apple would prefer you do not use GNU compilers. As Mac OS updates come in, the exact issue may change. You will usually find many stackoverflow posts about your problem if you search for people having similar errors with gfortran on Mac. Many members of the UCLCHEM group also use Mac so do get in touch if you cannot find a solution.xit"),(0,r.kt)("h4",{id:"conda-xcode-compatibility"},"conda-Xcode compatibility"),(0,r.kt)("p",null,"Sometimes the version of the Xcode SDK is not compatible with the conda packages that are generated with\nan older version. This means you will have to downgrade the SDK you are using as seen in ",(0,r.kt)("a",{parentName:"p",href:"https://stackoverflow.com/questions/69236331/conda-macos-big-sur-ld-unsupported-tapi-file-type-tapi-tbd-in-yaml-file"},"this Stackoverflow post")),(0,r.kt)("h3",{id:"apple-silicon-macs"},"Apple silicon Macs"),(0,r.kt)("p",null,"If you by accident install any package that was meant for x86 architectures (brew, pip, conda etc.) you will encounter problems as Rosetta 2 does not seem to work well with the gfortran.\nCurrently we recommend uninstalling all packages/software that might cause interference with uclchcem, such as gfortran installed via brew and reinstalling everything using conda as listed in the ","[docs/start-basicuse]"," document."),(0,r.kt)("h2",{id:"architectures"},"Architectures"),(0,r.kt)("p",null,"F2PY defaults to x86_64 architecture. This is fine for most users, but if you are using a different architecture, you may need to specify this in the Makefile. To do so, edit ",(0,r.kt)("inlineCode",{parentName:"p"},"src/fortran_src/Makfile")," so that the line that reads"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"python3 -m numpy.f2py -c --fcompiler=${f2pyFC}\n")),(0,r.kt)("p",null,"is replaced with"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"python3 -m numpy.f2py -c --fcompiler=${f2pyFC} --arch=my_arch\n")),(0,r.kt)("p",null,"where my_arch is the architecture you are using."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/689d9eaa.317e9677.js b/assets/js/689d9eaa.3c6f76c0.js similarity index 97% rename from assets/js/689d9eaa.317e9677.js rename to assets/js/689d9eaa.3c6f76c0.js index ac52dd04..63de9af7 100644 --- a/assets/js/689d9eaa.317e9677.js +++ b/assets/js/689d9eaa.3c6f76c0.js @@ -1 +1 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7737],{1154:(e,t,a)=>{a.r(t),a.d(t,{default:()=>l});var n=a(7294),r=a(2600),s=(a(9960),a(2263));a(1207);function o(){return n.createElement("div",{className:"softwarecontainer"},n.createElement("div",{className:"softwarecontainer-div"},n.createElement("h2",null,n.createElement("a",{href:"https://spectralradex.readthedocs.io"},"SpectralRadex")),n.createElement("h4",null,"Radex Wrapped"),n.createElement("p",null,"SpectralRadex makes use of numpy's F2PY compiler to create a python module. Run RADEX from within your python scripts with no subprocesses, no input files, and no fuss. We've even updated the base code to modern fortran to remove COMMON blocks and prevent any multiprocessing concerns. Use Python dictionaries to set parameters and receive results as pandas dataframes. Check ",n.createElement("a",{href:"https://spectralradex.readthedocs.io"},"our readthedocs")," for an API guide to the functions we built around the core RADEX functionality."),n.createElement("h4",null,"Radex Extended"),n.createElement("p",null,"RADEX calculates the excitation temperature of every transition and the optical depth at line centre. SpectralRadex uses this output to generate model spectra by assuming the line profiles are Gaussian with a FWHM given by the linewidth parameter used by RADEX. By simply suppling the frequency values of your spectra, you can fit your data directly without assuming LTE.")))}function i(){return n.createElement("div",{className:"softwarecontainer"},n.createElement("div",{className:"softwarecontainer-div"},n.createElement("h2",null,n.createElement("a",{href:"https://uclchem.github.io/hits.html"},"HITs")),n.createElement("h4",null,"History Independent Tracers"),n.createElement("p",null,"A lot of UCLCHEM work revolves around interpreting molecular observations to understand the underlying physical conditions of some gas. In ",n.createElement("a",{href:"https://ui.adsabs.harvard.edu/abs/2022A%26A...658A.103H/abstract"},"our HITs paper"),", we describe a method for determining which observations will most constrain parameter of interest."),n.createElement("p",null,"As a result of this work, you can use ",n.createElement("a",{href:"https://uclchem.github.io/hits.html"},"our HITs website")," to plan your own observations. Simply specify the parameter you'd like to measure and it will suggest the molecular transitions that will most constrain that parameter when you try to model it with RADEX and UCLCHEM.")))}function l(){var e=(0,s.Z)().siteConfig;return n.createElement(r.Z,{title:""+e.title,description:"Description will go into a meta tag in "},n.createElement(o,null),n.createElement(i,null))}},1207:(e,t,a)=>{a.d(t,{Z:()=>n});const n={heroBanner:"heroBanner_qdFl",buttons:"buttons_AeoN"}}}]); \ No newline at end of file +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7737],{1154:(e,t,a)=>{a.r(t),a.d(t,{default:()=>l});var n=a(7294),r=a(7961),s=(a(9960),a(2263));a(1207);function o(){return n.createElement("div",{className:"softwarecontainer"},n.createElement("div",{className:"softwarecontainer-div"},n.createElement("h2",null,n.createElement("a",{href:"https://spectralradex.readthedocs.io"},"SpectralRadex")),n.createElement("h4",null,"Radex Wrapped"),n.createElement("p",null,"SpectralRadex makes use of numpy's F2PY compiler to create a python module. Run RADEX from within your python scripts with no subprocesses, no input files, and no fuss. We've even updated the base code to modern fortran to remove COMMON blocks and prevent any multiprocessing concerns. Use Python dictionaries to set parameters and receive results as pandas dataframes. Check ",n.createElement("a",{href:"https://spectralradex.readthedocs.io"},"our readthedocs")," for an API guide to the functions we built around the core RADEX functionality."),n.createElement("h4",null,"Radex Extended"),n.createElement("p",null,"RADEX calculates the excitation temperature of every transition and the optical depth at line centre. SpectralRadex uses this output to generate model spectra by assuming the line profiles are Gaussian with a FWHM given by the linewidth parameter used by RADEX. By simply suppling the frequency values of your spectra, you can fit your data directly without assuming LTE.")))}function i(){return n.createElement("div",{className:"softwarecontainer"},n.createElement("div",{className:"softwarecontainer-div"},n.createElement("h2",null,n.createElement("a",{href:"https://uclchem.github.io/hits.html"},"HITs")),n.createElement("h4",null,"History Independent Tracers"),n.createElement("p",null,"A lot of UCLCHEM work revolves around interpreting molecular observations to understand the underlying physical conditions of some gas. In ",n.createElement("a",{href:"https://ui.adsabs.harvard.edu/abs/2022A%26A...658A.103H/abstract"},"our HITs paper"),", we describe a method for determining which observations will most constrain parameter of interest."),n.createElement("p",null,"As a result of this work, you can use ",n.createElement("a",{href:"https://uclchem.github.io/hits.html"},"our HITs website")," to plan your own observations. Simply specify the parameter you'd like to measure and it will suggest the molecular transitions that will most constrain that parameter when you try to model it with RADEX and UCLCHEM.")))}function l(){var e=(0,s.Z)().siteConfig;return n.createElement(r.Z,{title:""+e.title,description:"Description will go into a meta tag in "},n.createElement(o,null),n.createElement(i,null))}},1207:(e,t,a)=>{a.d(t,{Z:()=>n});const n={heroBanner:"heroBanner_qdFl",buttons:"buttons_AeoN"}}}]); \ No newline at end of file diff --git a/assets/js/6992.c25a25c8.js b/assets/js/6992.c25a25c8.js deleted file mode 100644 index c84761b2..00000000 --- a/assets/js/6992.c25a25c8.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6992],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>d});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),s=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},u=function(e){var t=s(e.components);return r.createElement(i.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),m=s(n),d=a,y=m["".concat(i,".").concat(d)]||m[d]||p[d]||o;return n?r.createElement(y,l(l({ref:t},u),{},{components:n})):r.createElement(y,l({ref:t},u))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=m;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c.mdxType="string"==typeof e?e:a,l[1]=c;for(var s=2;s{n.d(t,{Z:()=>m});var r=n(7294),a=n(5999),o=n(7462),l=n(3366),c=n(6010);const i="iconEdit_dcUD";var s=["className"];function u(e){var t=e.className,n=(0,l.Z)(e,s);return r.createElement("svg",(0,o.Z)({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,c.Z)(i,t),"aria-hidden":"true"},n),r.createElement("g",null,r.createElement("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})))}var p=n(2662);function m(e){var t=e.editUrl;return r.createElement("a",{href:t,target:"_blank",rel:"noreferrer noopener",className:p.kM.common.editThisPage},r.createElement(u,null),r.createElement(a.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page"},"Edit this page"))}},9649:(e,t,n)=>{n.d(t,{Z:()=>y});var r=n(7462),a=n(3366),o=n(7294),l=n(6010),c=n(5999),i=n(2662);const s="anchorWithStickyNavbar_mojV",u="anchorWithHideOnScrollNavbar_R0VQ";var p=["as","id"],m=["as"];function d(e){var t=e.as,n=e.id,m=(0,a.Z)(e,p),d=(0,i.LU)().navbar.hideOnScroll;return n?o.createElement(t,(0,r.Z)({},m,{className:(0,l.Z)("anchor",d?u:s),id:n}),m.children,o.createElement("a",{className:"hash-link",href:"#"+n,title:(0,c.I)({id:"theme.common.headingLinkTitle",message:"Direct link to heading",description:"Title for link to heading"})},"\u200b")):o.createElement(t,m)}function y(e){var t=e.as,n=(0,a.Z)(e,m);return"h1"===t?o.createElement("h1",(0,r.Z)({},n,{id:void 0}),n.children):o.createElement(d,(0,r.Z)({as:t},n))}},2708:(e,t,n)=>{n.d(t,{Z:()=>M});var r=n(7294),a=n(3905),o=n(7462),l=n(3366),c=n(5742),i=["mdxType","originalType"];var s=n(6010);const u={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]};var p={Prism:n(7410).default,theme:u};function m(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function d(){return d=Object.assign||function(e){for(var t=1;t0&&e[n-1]===t?e:e.concat(t)},h=function(e,t){var n=e.plain,r=Object.create(null),a=e.styles.reduce((function(e,n){var r=n.languages,a=n.style;return r&&!r.includes(t)||n.types.forEach((function(t){var n=d({},e[t],a);e[t]=n})),e}),r);return a.root=n,a.plain=d({},n,{backgroundColor:null}),a};function v(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&-1===t.indexOf(r)&&(n[r]=e[r]);return n}const b=function(e){function t(){for(var t=this,n=[],r=arguments.length;r--;)n[r]=arguments[r];e.apply(this,n),m(this,"getThemeDict",(function(e){if(void 0!==t.themeDict&&e.theme===t.prevTheme&&e.language===t.prevLanguage)return t.themeDict;t.prevTheme=e.theme,t.prevLanguage=e.language;var n=e.theme?h(e.theme,e.language):void 0;return t.themeDict=n})),m(this,"getLineProps",(function(e){var n=e.key,r=e.className,a=e.style,o=d({},v(e,["key","className","style","line"]),{className:"token-line",style:void 0,key:void 0}),l=t.getThemeDict(t.props);return void 0!==l&&(o.style=l.plain),void 0!==a&&(o.style=void 0!==o.style?d({},o.style,a):a),void 0!==n&&(o.key=n),r&&(o.className+=" "+r),o})),m(this,"getStyleForToken",(function(e){var n=e.types,r=e.empty,a=n.length,o=t.getThemeDict(t.props);if(void 0!==o){if(1===a&&"plain"===n[0])return r?{display:"inline-block"}:void 0;if(1===a&&!r)return o[n[0]];var l=r?{display:"inline-block"}:{},c=n.map((function(e){return o[e]}));return Object.assign.apply(Object,[l].concat(c))}})),m(this,"getTokenProps",(function(e){var n=e.key,r=e.className,a=e.style,o=e.token,l=d({},v(e,["key","className","style","token"]),{className:"token "+o.types.join(" "),children:o.content,style:t.getStyleForToken(o),key:void 0});return void 0!==a&&(l.style=void 0!==l.style?d({},l.style,a):a),void 0!==n&&(l.key=n),r&&(l.className+=" "+r),l})),m(this,"tokenize",(function(e,t,n,r){var a={code:t,grammar:n,language:r,tokens:[]};e.hooks.run("before-tokenize",a);var o=a.tokens=e.tokenize(a.code,a.grammar,a.language);return e.hooks.run("after-tokenize",a),o}))}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.render=function(){var e=this.props,t=e.Prism,n=e.language,r=e.code,a=e.children,o=this.getThemeDict(this.props),l=t.languages[n];return a({tokens:function(e){for(var t=[[]],n=[e],r=[0],a=[e.length],o=0,l=0,c=[],i=[c];l>-1;){for(;(o=r[l]++)0?u:["plain"],s=p):(u=g(u,p.type),p.alias&&(u=g(u,p.alias)),s=p.content),"string"==typeof s){var m=s.split(y),d=m.length;c.push({types:u,content:m[0]});for(var h=1;h0&&(c=l.getRangeAt(0)),r.append(a),a.select(),a.selectionStart=0,a.selectionEnd=e.length;var i=!1;try{i=document.execCommand("copy")}catch(s){}a.remove(),c&&(l.removeAllRanges(),l.addRange(c)),o&&o.focus()}(t),o(!0),l.current=window.setTimeout((function(){o(!1)}),1e3)}),[t]);return(0,r.useEffect)((function(){return function(){return window.clearTimeout(l.current)}}),[]),r.createElement("button",{type:"button","aria-label":a?(0,k.I)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,k.I)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,k.I)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,s.Z)(N,"clean-btn",a&&Z),onClick:c},r.createElement("span",{className:T,"aria-hidden":"true"},r.createElement("svg",{className:O,viewBox:"0 0 24 24"},r.createElement("path",{d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})),r.createElement("svg",{className:_,viewBox:"0 0 24 24"},r.createElement("path",{d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"}))))}const w="codeBlockContainer_I0IT",C="codeBlockContent_wNvx",P="codeBlockTitle_BvAR",x="codeBlock_jd64",L="codeBlockStandalone_csWH",B="codeBlockLines_mRuA";function S(e){var t,n=e.children,a=e.className,l=void 0===a?"":a,c=e.metastring,i=e.title,u=e.language,m=(0,E.LU)().prism,d=(0,r.useState)(!1),y=d[0],f=d[1];(0,r.useEffect)((function(){f(!0)}),[]);var g=(0,E.bc)(c)||i,h=(0,E.pJ)();if(r.Children.toArray(n).some((function(e){return(0,r.isValidElement)(e)})))return r.createElement(b,(0,o.Z)({},p,{key:String(y),theme:h,code:"",language:"text"}),(function(e){var t=e.className,a=e.style;return r.createElement("pre",{tabIndex:0,className:(0,s.Z)(t,L,"thin-scrollbar",w,l,E.kM.common.codeBlock),style:a},r.createElement("code",{className:B},n))}));var v=Array.isArray(n)?n.join(""):n,k=null!=(t=null!=u?u:(0,E.Vo)(l))?t:m.defaultLanguage,N=(0,E.nZ)(v,c,k),Z=N.highlightLines,T=N.code;return r.createElement(b,(0,o.Z)({},p,{key:String(y),theme:h,code:T,language:null!=k?k:"text"}),(function(e){var t,n=e.className,a=e.style,c=e.tokens,i=e.getLineProps,u=e.getTokenProps;return r.createElement("div",{className:(0,s.Z)(w,l,(t={},t["language-"+k]=k&&!l.includes("language-"+k),t),E.kM.common.codeBlock)},g&&r.createElement("div",{style:a,className:P},g),r.createElement("div",{className:C,style:a},r.createElement("pre",{tabIndex:0,className:(0,s.Z)(n,x,"thin-scrollbar")},r.createElement("code",{className:B},c.map((function(e,t){1===e.length&&"\n"===e[0].content&&(e[0].content="");var n=i({line:e,key:t});return Z.includes(t)&&(n.className+=" docusaurus-highlight-code-line"),r.createElement("span",(0,o.Z)({key:t},n),e.map((function(e,t){return r.createElement("span",(0,o.Z)({key:t},u({token:e,key:t})))})),r.createElement("br",null))})))),r.createElement(j,{code:T})))}))}var A=n(9960);const D="details_BAp3";function I(e){var t=Object.assign({},(function(e){if(null==e)throw new TypeError("Cannot destructure "+e)}(e),e));return r.createElement(E.PO,(0,o.Z)({},t,{className:(0,s.Z)("alert alert--info",D,t.className)}))}var V=n(9649);function R(e){return r.createElement(V.Z,e)}const z="img_E7b_";const H={head:function(e){var t=r.Children.map(e.children,(function(e){return function(e){var t,n;if(null!=e&&null!=(t=e.props)&&t.mdxType&&null!=e&&null!=(n=e.props)&&n.originalType){var a=e.props,o=(a.mdxType,a.originalType,(0,l.Z)(a,i));return r.createElement(e.props.originalType,o)}return e}(e)}));return r.createElement(c.Z,e,t)},code:function(e){var t=["a","b","big","i","span","em","strong","sup","sub","small"];return r.Children.toArray(e.children).every((function(e){return"string"==typeof e&&!e.includes("\n")||(0,r.isValidElement)(e)&&t.includes(e.props.mdxType)}))?r.createElement("code",e):r.createElement(S,e)},a:function(e){return r.createElement(A.Z,e)},pre:function(e){var t;return r.createElement(S,(0,r.isValidElement)(e.children)&&"code"===e.children.props.originalType?null==(t=e.children)?void 0:t.props:Object.assign({},e))},details:function(e){var t=r.Children.toArray(e.children),n=t.find((function(e){var t;return"summary"===(null==e||null==(t=e.props)?void 0:t.mdxType)})),a=r.createElement(r.Fragment,null,t.filter((function(e){return e!==n})));return r.createElement(I,(0,o.Z)({},e,{summary:n}),a)},ul:function(e){return r.createElement("ul",(0,o.Z)({},e,{className:(t=e.className,(0,s.Z)(t,(null==t?void 0:t.includes("contains-task-list"))&&"contains-task-list_tsSF"))}));var t},img:function(e){return r.createElement("img",(0,o.Z)({loading:"lazy"},e,{className:(t=e.className,(0,s.Z)(t,z))}));var t},h1:function(e){return r.createElement(R,(0,o.Z)({as:"h1"},e))},h2:function(e){return r.createElement(R,(0,o.Z)({as:"h2"},e))},h3:function(e){return r.createElement(R,(0,o.Z)({as:"h3"},e))},h4:function(e){return r.createElement(R,(0,o.Z)({as:"h4"},e))},h5:function(e){return r.createElement(R,(0,o.Z)({as:"h5"},e))},h6:function(e){return r.createElement(R,(0,o.Z)({as:"h6"},e))}};function M(e){var t=e.children;return r.createElement(a.Zo,{components:H},t)}},1750:(e,t,n)=>{n.d(t,{Z:()=>o});var r=n(7294),a=n(9960);function o(e){var t=e.permalink,n=e.title,o=e.subLabel;return r.createElement(a.Z,{className:"pagination-nav__link",to:t},o&&r.createElement("div",{className:"pagination-nav__sublabel"},o),r.createElement("div",{className:"pagination-nav__label"},n))}},8727:(e,t,n)=>{n.d(t,{Z:()=>d});var r=n(7294),a=n(6010),o=n(5999),l=n(9960);const c="tag_hD8n",i="tagRegular_D6E_",s="tagWithCount_i0QQ";function u(e){var t=e.permalink,n=e.name,o=e.count;return r.createElement(l.Z,{href:t,className:(0,a.Z)(c,o?s:i)},n,o&&r.createElement("span",null,o))}const p="tags_XVD_",m="tag_JSN8";function d(e){var t=e.tags;return r.createElement(r.Fragment,null,r.createElement("b",null,r.createElement(o.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list"},"Tags:")),r.createElement("ul",{className:(0,a.Z)(p,"padding--none","margin-left--sm")},t.map((function(e){var t=e.label,n=e.permalink;return r.createElement("li",{key:n,className:m},r.createElement(u,{name:t,permalink:n}))}))))}}}]); \ No newline at end of file diff --git a/assets/js/6a488aa2.6701a694.js b/assets/js/6a488aa2.807d0f62.js similarity index 52% rename from assets/js/6a488aa2.6701a694.js rename to assets/js/6a488aa2.807d0f62.js index f2896ebd..ab8858ea 100644 --- a/assets/js/6a488aa2.6701a694.js +++ b/assets/js/6a488aa2.807d0f62.js @@ -1 +1 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4455],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>u});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),c=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),h=c(r),u=o,m=h["".concat(s,".").concat(u)]||h[u]||d[u]||a;return r?n.createElement(m,i(i({ref:t},p),{},{components:r})):n.createElement(m,i({ref:t},p))}));function u(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=h;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:o,i[1]=l;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>u,frontMatter:()=>l,metadata:()=>c,toc:()=>d});var n=r(7462),o=r(3366),a=(r(7294),r(3905)),i=["components"],l={title:"Chemical modelling of complex organic molecules with peptide-like bonds in star-forming regions",authors:"jonholdship"},s=void 0,c={permalink:"/blog/2018/02/05/david-grains",source:"@site/blog/2018-02-05-david-grains.md",title:"Chemical modelling of complex organic molecules with peptide-like bonds in star-forming regions",description:"David Quenard just published an update to the UCLCHEM with an application to COMs in prestellar cores you can find the paper here and the abstract below.",date:"2018-02-05T00:00:00.000Z",formattedDate:"February 5, 2018",tags:[],readingTime:1.425,truncated:!1,authors:[{name:"Jonathan Holdship",title:"UCLCHEM developer",url:"https://jonholdship.github.io",imageURL:"/img/jon.png",key:"jonholdship"}],frontMatter:{title:"Chemical modelling of complex organic molecules with peptide-like bonds in star-forming regions",authors:"jonholdship"},prevItem:{title:"Chemical modelling of glycolaldehyde and ethylene glycol in star-forming regions",permalink:"/blog/2018/03/27/audrey-coms"}},p={authorsImageUrls:[void 0]},d=[],h={toc:d};function u(e){var t=e.components,r=(0,o.Z)(e,i);return(0,a.kt)("wrapper",(0,n.Z)({},h,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"David Quenard just published an update to the UCLCHEM with an application to COMs in prestellar cores ",(0,a.kt)("a",{parentName:"p",href:"https://arxiv.org/abs/1711.05184"},"you can find the paper here")," and the abstract below."),(0,a.kt)("p",null,"Peptide bonds (N-C = O) play a key role in metabolic processes since they link amino acids into peptide chains or proteins. Recently, several molecules containing peptide-like bonds have been detected across multiple environments in the interstellar medium, growing the need to fully understand their chemistry and their role in forming larger pre-biotic molecules. We present a comprehensive study of the chemistry of three molecules containing peptide-like bonds: HNCO, NH2CHO, and CH3NCO. We also included other CHNO isomers (HCNO, HOCN) and C2H3NO isomers (CH3OCN, CH3CNO) to the study. We have used the UCLCHEM gas-grain chemical code and included in our chemical network all possible formation/destruction pathways of these peptide-like molecules recently investigated either by theoretical calculations or in laboratory experiments. Our predictions are compared to observations obtained towards the proto-star IRAS 16293-2422 and the L1544 pre-stellar core. Our results show that some key reactions involving the CHNO and C2H3NO isomers need to be modified to match the observations. Consistently with recent laboratory findings, hydrogenation is unlikely to produce NH2CHO on grain surfaces, while a combination of radical-radical surface reactions and gas-phase reactions is a better alternative. In addition, better results are obtained for NH2CHO when a slightly higher activation energy of 25 K is considered for the gas-phase reaction NH2 + H2CO \u2192 NH2CHO + H. Finally, our modelling shows that the observed correlation between NH2CHO and HNCO in star-forming regions may come from the fact that HNCO and NH2CHO react to temperature in the same manner rather than from a direct chemical link between the two species."))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4455],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>u});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),c=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),h=c(r),u=o,m=h["".concat(s,".").concat(u)]||h[u]||d[u]||a;return r?n.createElement(m,i(i({ref:t},p),{},{components:r})):n.createElement(m,i({ref:t},p))}));function u(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=h;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:o,i[1]=l;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>u,frontMatter:()=>l,metadata:()=>c,toc:()=>d});var n=r(7462),o=r(3366),a=(r(7294),r(3905)),i=["components"],l={title:"Chemical modelling of complex organic molecules with peptide-like bonds in star-forming regions",authors:"jonholdship"},s=void 0,c={permalink:"/blog/2018/02/05/david-grains",source:"@site/blog/2018-02-05-david-grains.md",title:"Chemical modelling of complex organic molecules with peptide-like bonds in star-forming regions",description:"David Quenard just published an update to the UCLCHEM with an application to COMs in prestellar cores you can find the paper here and the abstract below.",date:"2018-02-05T00:00:00.000Z",formattedDate:"February 5, 2018",tags:[],readingTime:1.425,hasTruncateMarker:!1,authors:[{name:"Jonathan Holdship",title:"UCLCHEM developer",url:"https://jonholdship.github.io",imageURL:"/img/jon.png",key:"jonholdship"}],frontMatter:{title:"Chemical modelling of complex organic molecules with peptide-like bonds in star-forming regions",authors:"jonholdship"},prevItem:{title:"Chemical modelling of glycolaldehyde and ethylene glycol in star-forming regions",permalink:"/blog/2018/03/27/audrey-coms"}},p={authorsImageUrls:[void 0]},d=[],h={toc:d};function u(e){var t=e.components,r=(0,o.Z)(e,i);return(0,a.kt)("wrapper",(0,n.Z)({},h,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"David Quenard just published an update to the UCLCHEM with an application to COMs in prestellar cores ",(0,a.kt)("a",{parentName:"p",href:"https://arxiv.org/abs/1711.05184"},"you can find the paper here")," and the abstract below."),(0,a.kt)("p",null,"Peptide bonds (N-C = O) play a key role in metabolic processes since they link amino acids into peptide chains or proteins. Recently, several molecules containing peptide-like bonds have been detected across multiple environments in the interstellar medium, growing the need to fully understand their chemistry and their role in forming larger pre-biotic molecules. We present a comprehensive study of the chemistry of three molecules containing peptide-like bonds: HNCO, NH2CHO, and CH3NCO. We also included other CHNO isomers (HCNO, HOCN) and C2H3NO isomers (CH3OCN, CH3CNO) to the study. We have used the UCLCHEM gas-grain chemical code and included in our chemical network all possible formation/destruction pathways of these peptide-like molecules recently investigated either by theoretical calculations or in laboratory experiments. Our predictions are compared to observations obtained towards the proto-star IRAS 16293-2422 and the L1544 pre-stellar core. Our results show that some key reactions involving the CHNO and C2H3NO isomers need to be modified to match the observations. Consistently with recent laboratory findings, hydrogenation is unlikely to produce NH2CHO on grain surfaces, while a combination of radical-radical surface reactions and gas-phase reactions is a better alternative. In addition, better results are obtained for NH2CHO when a slightly higher activation energy of 25 K is considered for the gas-phase reaction NH2 + H2CO \u2192 NH2CHO + H. Finally, our modelling shows that the observed correlation between NH2CHO and HNCO in star-forming regions may come from the fact that HNCO and NH2CHO react to temperature in the same manner rather than from a direct chemical link between the two species."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6a4b9492.c814cf92.js b/assets/js/6a4b9492.c814cf92.js new file mode 100644 index 00000000..6804e26c --- /dev/null +++ b/assets/js/6a4b9492.c814cf92.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3119],{3905:(a,e,t)=>{t.d(e,{Zo:()=>o,kt:()=>N});var s=t(7294);function n(a,e,t){return e in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function m(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.push.apply(t,s)}return t}function p(a){for(var e=1;e=0||(n[t]=a[t]);return n}(a,e);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(a);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(a,t)&&(n[t]=a[t])}return n}var l=s.createContext({}),i=function(a){var e=s.useContext(l),t=e;return a&&(t="function"==typeof a?a(e):p(p({},e),a)),t},o=function(a){var e=i(a.components);return s.createElement(l.Provider,{value:e},a.children)},c={inlineCode:"code",wrapper:function(a){var e=a.children;return s.createElement(s.Fragment,{},e)}},h=s.forwardRef((function(a,e){var t=a.components,n=a.mdxType,m=a.originalType,l=a.parentName,o=r(a,["components","mdxType","originalType","parentName"]),h=i(t),N=n,k=h["".concat(l,".").concat(N)]||h[N]||c[N]||m;return t?s.createElement(k,p(p({ref:e},o),{},{components:t})):s.createElement(k,p({ref:e},o))}));function N(a,e){var t=arguments,n=e&&e.mdxType;if("string"==typeof a||n){var m=t.length,p=new Array(m);p[0]=h;var r={};for(var l in e)hasOwnProperty.call(e,l)&&(r[l]=e[l]);r.originalType=a,r.mdxType="string"==typeof a?a:n,p[1]=r;for(var i=2;i{t.r(e),t.d(e,{assets:()=>o,contentTitle:()=>l,default:()=>N,frontMatter:()=>r,metadata:()=>i,toc:()=>c});var s=t(7462),n=t(3366),m=(t(7294),t(3905)),p=["components"],r={},l="Advanced Physical Modelling",i={unversionedId:"modelling_objects",id:"modelling_objects",title:"Advanced Physical Modelling",description:"In the previous tutorial, we simply modelled the chemistry of a static cloud for 1 Myr. This is unlikely to meet everybody's modelling needs and UCLCHEM is capable of modelling much more complex environments such as hot cores and shocks. In this tutorial, we model both a hot core and a shock to explore how these models work and to demonstrate the workflow that the UCLCHEM team normally follow.",source:"@site/docs/modelling_objects.md",sourceDirName:".",slug:"/modelling_objects",permalink:"/docs/next/modelling_objects",draft:!1,tags:[],version:"current",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1689876832,formattedLastUpdatedAt:"Jul 20, 2023",frontMatter:{},sidebar:"docs",previous:{title:"Running Your First Models",permalink:"/docs/next/first_model"},next:{title:"Running a Grid",permalink:"/docs/next/running_a_grid"}},o={},c=[{value:"The Hot Core",id:"the-hot-core",level:2},{value:"Initial Conditions (Stage 1)",id:"initial-conditions-stage-1",level:3},{value:"Running the Science Model (Stage 2)",id:"running-the-science-model-stage-2",level:3},{value:"Checking the Result",id:"checking-the-result",level:3},{value:"Shocks",id:"shocks",level:2},{value:"C-shock",id:"c-shock",level:3},{value:"J-shock",id:"j-shock",level:3}],h={toc:c};function N(a){var e=a.components,r=(0,n.Z)(a,p);return(0,m.kt)("wrapper",(0,s.Z)({},h,r,{components:e,mdxType:"MDXLayout"}),(0,m.kt)("h1",{id:"advanced-physical-modelling"},"Advanced Physical Modelling"),(0,m.kt)("p",null,"In the previous tutorial, we simply modelled the chemistry of a static cloud for 1 Myr. This is unlikely to meet everybody's modelling needs and UCLCHEM is capable of modelling much more complex environments such as hot cores and shocks. In this tutorial, we model both a hot core and a shock to explore how these models work and to demonstrate the workflow that the UCLCHEM team normally follow."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},"import uclchem\nimport matplotlib.pyplot as plt\n")),(0,m.kt)("h2",{id:"the-hot-core"},"The Hot Core"),(0,m.kt)("h3",{id:"initial-conditions-stage-1"},"Initial Conditions (Stage 1)"),(0,m.kt)("p",null,"UCLCHEM typically starts with the gas in atomic/ionic form with no molecules. However, this clearly is not appropriate when modelling an object such as a hot core. In these objects, the gas is already evolved and there should be molecules in the gas phase as well as ice mantles on the dust. To allow for this, one must provide some initial abundances to the model. There are many ways to do this but we typically chose to run a preliminary model to produce our abundances. In many UCLCHEM papers, we refer to the preliminary model as ",(0,m.kt)("em",{parentName:"p"},"Stage 1")," and the science model as ",(0,m.kt)("em",{parentName:"p"},"Stage 2"),". Stage 1 simply models a collapsing cloud and Stage 2 models the object in question."),(0,m.kt)("p",null,"To do this, we will use ",(0,m.kt)("inlineCode",{parentName:"p"},"uclchem.model.cloud()")," to run a model where a cloud of gas collapses from a density of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"2")),(0,m.kt)("mi",{parentName:"mrow"},"c"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"m"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"3")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"10^2 cm^{-3}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"c"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"m"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))))))))))))," to our hot core density of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"6")),(0,m.kt)("mi",{parentName:"mrow"},"c"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"m"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"3")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"10^6 cm^{-3}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"6")))))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"c"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"m"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3"))))))))))))),", keeping all other parameters constant. During this collapse, chemistry will occur and we can assume the final abundances of this model will be reasonable starting abundances for the hot core. "),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'# set a parameter dictionary for cloud collapse model\nparam_dict = {\n "endAtFinalDensity": False,#stop at finalTime\n "freefall": True,#increase density in freefall\n "initialDens": 1e2, #starting density\n "finalDens":1e6, #final density\n "initialTemp": 10.0,#temperature of gas\n "finalTime": 6.0e6, #final time\n "rout":0.1, #radius of cloud in pc\n "baseAv":1.0, #visual extinction at cloud edge.\n "abundSaveFile": "../examples/test-output/startcollapse.dat",#save final abundances to file\n "outputFile":"../examples/test-output/phase1-full.dat"\n\n}\nresult = uclchem.model.cloud(param_dict=param_dict)\nprint(result)\n')),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"[1]\n")),(0,m.kt)("p",null,"With that done, we now have a file containing the final abundances of a cloud of gas after this collapse: ",(0,m.kt)("inlineCode",{parentName:"p"},'param_dict["abundSaveFile"]')," we can pass this to our hot core model to use those abundances as our initial abundances."),(0,m.kt)("h3",{id:"running-the-science-model-stage-2"},"Running the Science Model (Stage 2)"),(0,m.kt)("p",null,"We need to change just a few things in ",(0,m.kt)("inlineCode",{parentName:"p"},"param_dict")," to set up the hot core model. The key one is that UCLCHEM saves final abundances to ",(0,m.kt)("inlineCode",{parentName:"p"},"abundSaveFile")," but loads them from ",(0,m.kt)("inlineCode",{parentName:"p"},"abundLoadFile")," so we need to swap that key over to make the abundances we just produced our initial abundances. "),(0,m.kt)("p",null,"We also want to turn off freefall and change how long the model runs for."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'#change other bits of input to set up Stage 2\nparam_dict["initialDens"]=1e6\nparam_dict["finalTime"]=1e6\nparam_dict["freefall"]=False\n\n#freeze out is completely overwhelmed by thermal desorption\n#so turning it off has no effect on abundances but speeds up integrator.\nparam_dict["freezeFactor"]=0.0\n\nparam_dict["abstol_factor"]=1e-18\nparam_dict["reltol"]=1e-12\n\n#pop is dangerous, it removes the original key so you can\'t rerun this cell.\nparam_dict["abundLoadFile"]=param_dict.pop("abundSaveFile") \nparam_dict["outputFile"]="../examples/test-output/phase2-full.dat"\n\nresult=uclchem.model.hot_core(temp_indx=3,max_temperature=300.0,param_dict=param_dict)\n')),(0,m.kt)("p",null,"Note that we've changed made two changes to the parameters here which aren't strictly necessary but can be helpful in certain situations."),(0,m.kt)("p",null,"Since the gas temperature increases throughout a hot core model, freeze out is much slower than thermal desorption for all but the first few time steps. Turning it off doesn't affect the abundances but will speed up the solution."),(0,m.kt)("p",null,"We also change abstol and reltol here, largely to demonstrate their use. They control the integrator accuracy and whilst making them smaller does slow down successful runs, it can make runs complete that stall completely otherwise or give correct solutions where lower tolerances allow issues like element conservation failure to sneak in. If your code does not complete or element conservation fails, you can change them."),(0,m.kt)("h3",{id:"checking-the-result"},"Checking the Result"),(0,m.kt)("p",null,"With a successful run, we can check the output. We first load the file and check the abundance conservation, then we can plot it up."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'phase2_df=uclchem.analysis.read_output_file("../examples/test-output/phase2-full.dat")\nuclchem.analysis.check_element_conservation(phase2_df)\n')),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"{'H': '0.002%', 'N': '0.000%', 'C': '0.000%', 'O': '0.000%'}\n")),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'species=["CO","H2O","CH3OH","#CO","#H2O","#CH3OH","@H2O","@CO","@CH3OH"]\n\nfig,[ax,ax2]=plt.subplots(1,2,figsize=(16,9))\nax=uclchem.analysis.plot_species(ax,phase2_df,species)\nsettings=ax.set(yscale="log",xlim=(1e2,1e6),ylim=(1e-10,1e-2),\n xlabel="Time / years", \n ylabel="Fractional Abundance",xscale="log")\n\nax2.plot(phase2_df["Time"],phase2_df["Density"],color="black")\nax2.set(xscale="log")\nax3=ax2.twinx()\nax3.plot(phase2_df["Time"],phase2_df["gasTemp"],color="red")\nax2.set(xlabel="Time / year",ylabel="Density")\nax3.set(ylabel="Temperature",facecolor="red",xlim=(1e2,1e6))\nax3.tick_params(axis=\'y\', colors=\'red\')\n')),(0,m.kt)("p",null,(0,m.kt)("img",{alt:"png",src:t(7739).Z,width:"997",height:"549"})),(0,m.kt)("p",null,"Here, we see the value of running a collapse phase before the science run. Having run a collapse, we start this model with well developed ices and having material in the surface and bulk allows us to properly model the effect of warm up in a hot core. For example, the @CO abundance is ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mo",{parentName:"mrow"},"\u223c"),(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"4")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\sim10^{-4}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.36687em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"\u223c"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"4")))))))))))))," and #CO is ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mo",{parentName:"mrow"},"\u223c"),(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"6")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\sim10^{-6}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.36687em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"\u223c"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"6"))))))))))))),". As the gas warms to around 30K, the #CO abundance drops drastically as CO's binding energy is such that it is efficiently desorbed from the surface at this temperature. However, the rest of the CO is trapped in the bulk, surrounded by more strongly bound H2O molecules. Thus, the @CO abundance stays high until the gas reaches around 130K, when the H2O molecules are released along with the entire bulk."),(0,m.kt)("h2",{id:"shocks"},"Shocks"),(0,m.kt)("p",null,"Essentially the same process should be followed for shocks. Let's run a C-type and J-type shock through a gas of density ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"4")),(0,m.kt)("mi",{parentName:"mrow"},"c"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"m"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"3")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"10^4 cm^{-3}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"4")))))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"c"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"m"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3"))))))))))))),". Again, we first run a simple cloud model to obtain some reasonable starting abundances, then we can run the shocks."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'# set a parameter dictionary for Stage 1 collapse model\n\nparam_dict = {\n "endAtFinalDensity": False,#stop at finalTime\n "freefall": True,#increase density in freefall\n "initialDens": 1e2, #starting density\n "finalDens":1e4, #final density\n "initialTemp": 10.0,#temperature of gas\n "finalTime": 6.0e6, #final time\n "rout":0.1, #radius of cloud in pc\n "baseAv":1.0, #visual extinction at cloud edge.\n "abundSaveFile": "../examples/test-output/shockstart.dat",\n}\nresult = uclchem.model.cloud(param_dict=param_dict)\n')),(0,m.kt)("h3",{id:"c-shock"},"C-shock"),(0,m.kt)("p",null,"We'll first run a c-shock. We'll run a 40 km s ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"1")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-1}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1")))))))))))))," shock through a gas of density ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"4"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"10^4")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"4"))))))))))))," cm ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"3")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-3}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3"))))))))))))),", using the abundances we just produced. Note that c-shock is the only model which returns an additional output in its result list. Not only is the first element the success flag indicating whether UCLCHEM completed, the second element is the dissipation time of the shock. We'll use that time to make our plots look nicer, cutting to a reasonable time. You can also obtain it from ",(0,m.kt)("inlineCode",{parentName:"p"},"uclchem.utils.cshock_dissipation_time()"),"."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'#change other bits of input to set up Stage 2\nparam_dict["initialDens"]=1e4\nparam_dict["finalTime"]=1e6\nif "abundSaveFile" in param_dict:\n param_dict.pop("abundSaveFile")\nparam_dict["abundLoadFile"]="../examples/test-output/shockstart.dat"\nparam_dict["outputFile"]="../examples/test-output/cshock.dat"\n\n\nresult=uclchem.model.cshock(shock_vel=40,param_dict=param_dict)\nresult,dissipation_time=result\n')),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"}," Cannot have freefall on during cshock\n setting freefall=0 and continuing\n")),(0,m.kt)("p",null,"The code completes fine. We do get a couple of warnings though. First, we're informed that ",(0,m.kt)("inlineCode",{parentName:"p"},"freefall")," must be set to False for the C-shock model. Then we get a few integrator warnings. These are not important and can be ignored as long as the element conservation looks ok. However, it is an indication that the integrator did struggle with these ODEs under these conditions."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'phase2_df=uclchem.analysis.read_output_file("../examples/test-output/cshock.dat")\nuclchem.analysis.check_element_conservation(phase2_df)\n')),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"{'H': '0.005%', 'N': '1.167%', 'C': '1.394%', 'O': '1.326%'}\n")),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'species=["CO","H2O","CH3OH","NH3","$CO","$H2O","$CH3OH","$NH3"]\n\nfig,[ax,ax2]=plt.subplots(1,2,figsize=(16,9))\nax=uclchem.analysis.plot_species(ax,phase2_df,species)\nsettings=ax.set(yscale="log",xlim=(1,20*dissipation_time),ylim=(1e-10,1e-2),\n xlabel="Time / years", \n ylabel="Fractional Abundance",xscale="log")\n\nax2.plot(phase2_df["Time"],phase2_df["Density"],color="black")\nax2.set(xscale="log")\nax3=ax2.twinx()\nax3.plot(phase2_df["Time"],phase2_df["gasTemp"],color="red")\nax2.set(xlabel="Time / year",ylabel="Density")\nax3.set(ylabel="Temperature",facecolor="red",xlim=(1,20*dissipation_time))\nax3.tick_params(axis=\'y\', colors=\'red\')\n')),(0,m.kt)("p",null,(0,m.kt)("img",{alt:"png",src:t(5168).Z,width:"1003",height:"544"})),(0,m.kt)("h3",{id:"j-shock"},"J-shock"),(0,m.kt)("p",null,"Running a j-shock is a simple case of changing function. We'll run a 10 km s ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"1")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-1}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1")))))))))))))," shock through a gas of density ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"3"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"10^3")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3"))))))))))))," cm ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"3")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-3}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))))))))))))," gas this time. Note that nothing stops us using the intial abundances we produced for the c-shock. UCLCHEM will not check that the initial density matches the density of the ",(0,m.kt)("inlineCode",{parentName:"p"},"abundLoadFile"),". It may not always be a good idea to do this but we should remember the intial abundances really are just a rough approximation."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'param_dict["initialDens"]=1e3\nparam_dict["freefall"]=False #lets remember to turn it off this time\nparam_dict["reltol"]=1e-12\n\nshock_vel=10.0\n\nif "abundSaveFile" in param_dict:\n param_dict.pop("abundSaveFile")\nparam_dict["abundLoadFile"]="../examples/test-output/shockstart.dat"\nparam_dict["outputFile"]="../examples/test-output/jshock.dat"\n\n\nresult=uclchem.model.jshock(shock_vel=shock_vel,param_dict=param_dict)\n')),(0,m.kt)("p",null,"This time, we've turned off the freefall option and made reltol a little more stringent. The j-shock ends up running a bit slower but we get no warnings on this run."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'phase2_df=uclchem.analysis.read_output_file(param_dict["outputFile"])\nuclchem.analysis.check_element_conservation(phase2_df)\n')),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"{'H': '0.003%', 'N': '0.000%', 'C': '0.000%', 'O': '0.000%'}\n")),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'species=["CO","H2O","CH3OH","NH3","$CO","$H2O","$CH3OH","$NH3"]\n\nfig,[ax,ax2]=plt.subplots(1,2,figsize=(16,9))\nax=uclchem.analysis.plot_species(ax,phase2_df,species)\nsettings=ax.set(yscale="log",xlim=(1e-7,1e6),ylim=(1e-10,1e-2),\n xlabel="Time / years", \n ylabel="Fractional Abundance",xscale="log")\n\nax2.plot(phase2_df["Time"],phase2_df["Density"],color="black")\nax2.set(xscale="log",yscale="log")\nax3=ax2.twinx()\nax3.plot(phase2_df["Time"],phase2_df["gasTemp"],color="red")\nax2.set(xlabel="Time / year",ylabel="Density")\nax3.set(ylabel="Temperature",facecolor="red",xlim=(1e-7,1e6))\nax3.tick_params(axis=\'y\', colors=\'red\')\n')),(0,m.kt)("p",null,(0,m.kt)("img",{alt:"png",src:t(5185).Z,width:"1003",height:"544"})),(0,m.kt)("p",null,"That's everything! We've run various science models using reasonable starting abundances that we produced by running a simple UCLCHEM model beforehand. One benefit of this method is that the abundances are consistent with the network. If we start with arbitrary, perhaps observationally motivated, abundances, it would be possible to initiate the model in a state our network could never produce. "),(0,m.kt)("p",null,"However, one should be aware of the limitations of this method. A freefall collapse from low density to high is not really how a molecular cloud forms and so the abundances are only approximately similar to values they'd truly have in a real cloud. Testing whether your results are sensitive to things like the time you run the preliminary for or the exact density is a good way to make sure these approximations are not problematic."),(0,m.kt)("p",null,"Bear in mind that you can use ",(0,m.kt)("inlineCode",{parentName:"p"},"abundSaveFile")," and ",(0,m.kt)("inlineCode",{parentName:"p"},"abundLoadFile")," in the same model run. This lets you chain model runs together. For example, you could run a c-shock from a cloud model as we did here and then a j-shock with the c-shock's abundances as the initial abundances."))}N.isMDXComponent=!0},5168:(a,e,t)=>{t.d(e,{Z:()=>s});const s=t.p+"assets/images/modelling_objects_16_0-9cbaa39ecfd8914850efea6f9894f3c9.png"},5185:(a,e,t)=>{t.d(e,{Z:()=>s});const s=t.p+"assets/images/modelling_objects_21_0-9d690606580c74f3f2490e2e8b1ce4b4.png"},7739:(a,e,t)=>{t.d(e,{Z:()=>s});const s=t.p+"assets/images/modelling_objects_8_0-cb8bd1ad21dbba5c26281d2a988b2cfa.png"}}]); \ No newline at end of file diff --git a/assets/js/6a4b9492.d088c4e9.js b/assets/js/6a4b9492.d088c4e9.js deleted file mode 100644 index 23ba048e..00000000 --- a/assets/js/6a4b9492.d088c4e9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3119],{3905:(a,e,t)=>{t.d(e,{Zo:()=>o,kt:()=>N});var s=t(7294);function n(a,e,t){return e in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function m(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.push.apply(t,s)}return t}function p(a){for(var e=1;e=0||(n[t]=a[t]);return n}(a,e);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(a);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(a,t)&&(n[t]=a[t])}return n}var l=s.createContext({}),i=function(a){var e=s.useContext(l),t=e;return a&&(t="function"==typeof a?a(e):p(p({},e),a)),t},o=function(a){var e=i(a.components);return s.createElement(l.Provider,{value:e},a.children)},c={inlineCode:"code",wrapper:function(a){var e=a.children;return s.createElement(s.Fragment,{},e)}},h=s.forwardRef((function(a,e){var t=a.components,n=a.mdxType,m=a.originalType,l=a.parentName,o=r(a,["components","mdxType","originalType","parentName"]),h=i(t),N=n,k=h["".concat(l,".").concat(N)]||h[N]||c[N]||m;return t?s.createElement(k,p(p({ref:e},o),{},{components:t})):s.createElement(k,p({ref:e},o))}));function N(a,e){var t=arguments,n=e&&e.mdxType;if("string"==typeof a||n){var m=t.length,p=new Array(m);p[0]=h;var r={};for(var l in e)hasOwnProperty.call(e,l)&&(r[l]=e[l]);r.originalType=a,r.mdxType="string"==typeof a?a:n,p[1]=r;for(var i=2;i{t.r(e),t.d(e,{assets:()=>o,contentTitle:()=>l,default:()=>N,frontMatter:()=>r,metadata:()=>i,toc:()=>c});var s=t(7462),n=t(3366),m=(t(7294),t(3905)),p=["components"],r={},l="Advanced Physical Modelling",i={unversionedId:"modelling_objects",id:"modelling_objects",title:"Advanced Physical Modelling",description:"In the previous tutorial, we simply modelled the chemistry of a static cloud for 1 Myr. This is unlikely to meet everybody's modelling needs and UCLCHEM is capable of modelling much more complex environments such as hot cores and shocks. In this tutorial, we model both a hot core and a shock to explore how these models work and to demonstrate the workflow that the UCLCHEM team normally follow.",source:"@site/docs/modelling_objects.md",sourceDirName:".",slug:"/modelling_objects",permalink:"/docs/next/modelling_objects",tags:[],version:"current",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1676489846,formattedLastUpdatedAt:"2/15/2023",frontMatter:{},sidebar:"docs",previous:{title:"Running Your First Models",permalink:"/docs/next/first_model"},next:{title:"Running a Grid",permalink:"/docs/next/running_a_grid"}},o={},c=[{value:"The Hot Core",id:"the-hot-core",level:2},{value:"Initial Conditions (Phase 1)",id:"initial-conditions-phase-1",level:3},{value:"Running the Science Model (Phase 2)",id:"running-the-science-model-phase-2",level:3},{value:"Checking the Result",id:"checking-the-result",level:3},{value:"Shocks",id:"shocks",level:2},{value:"C-shock",id:"c-shock",level:3},{value:"J-shock",id:"j-shock",level:3}],h={toc:c};function N(a){var e=a.components,r=(0,n.Z)(a,p);return(0,m.kt)("wrapper",(0,s.Z)({},h,r,{components:e,mdxType:"MDXLayout"}),(0,m.kt)("h1",{id:"advanced-physical-modelling"},"Advanced Physical Modelling"),(0,m.kt)("p",null,"In the previous tutorial, we simply modelled the chemistry of a static cloud for 1 Myr. This is unlikely to meet everybody's modelling needs and UCLCHEM is capable of modelling much more complex environments such as hot cores and shocks. In this tutorial, we model both a hot core and a shock to explore how these models work and to demonstrate the workflow that the UCLCHEM team normally follow."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},"import uclchem\nimport matplotlib.pyplot as plt\n")),(0,m.kt)("h2",{id:"the-hot-core"},"The Hot Core"),(0,m.kt)("h3",{id:"initial-conditions-phase-1"},"Initial Conditions (Phase 1)"),(0,m.kt)("p",null,"UCLCHEM typically starts with the gas in atomic/ionic form with no molecules. However, this clearly is not appropriate when modelling an object such as a hot core. In these objects, the gas is already evolved and there should be molecules in the gas phase as well as ice mantles on the dust. To allow for this, one must provide some initial abundances to the model. There are many ways to do this but we typically chose to run a preliminary model to produce our abundances. In many UCLCHEM papers, we refer to the preliminary model as ",(0,m.kt)("em",{parentName:"p"},"phase 1")," and the science model as ",(0,m.kt)("em",{parentName:"p"},"phase 2"),". Phase 1 simply models a collapsing cloud and phase 2 models the object in question."),(0,m.kt)("p",null,"To do this, we will use ",(0,m.kt)("inlineCode",{parentName:"p"},"uclchem.model.cloud()")," to run a model where a cloud of gas collapses from a density of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"2")),(0,m.kt)("mi",{parentName:"mrow"},"c"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"m"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"3")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"10^2 cm^{-3}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"c"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"m"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))))))))))))," to our hot core density of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"6")),(0,m.kt)("mi",{parentName:"mrow"},"c"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"m"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"3")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"10^6 cm^{-3}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"6")))))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"c"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"m"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3"))))))))))))),", keeping all other parameters constant. During this collapse, chemistry will occur and we can assume the final abundances of this model will be reasonable starting abundances for the hot core. "),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'# set a parameter dictionary for cloud collapse model\nparam_dict = {\n "endAtFinalDensity": False,#stop at finalTime\n "freefall": True,#increase density in freefall\n "initialDens": 1e2, #starting density\n "finalDens":1e6, #final density\n "initialTemp": 10.0,#temperature of gas\n "finalTime": 6.0e6, #final time\n "rout":0.1, #radius of cloud in pc\n "baseAv":1.0, #visual extinction at cloud edge.\n "abundSaveFile": "../examples/test-output/startcollapse.dat",#save final abundances to file\n "outputFile":"../examples/test-output/phase1-full.dat"\n\n}\nresult = uclchem.model.cloud(param_dict=param_dict)\nprint(result)\n')),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"[1]\n")),(0,m.kt)("p",null,"With that done, we now have a file containing the final abundances of a cloud of gas after this collapse: ",(0,m.kt)("inlineCode",{parentName:"p"},'param_dict["abundSaveFile"]')," we can pass this to our hot core model to use those abundances as our initial abundances."),(0,m.kt)("h3",{id:"running-the-science-model-phase-2"},"Running the Science Model (Phase 2)"),(0,m.kt)("p",null,"We need to change just a few things in ",(0,m.kt)("inlineCode",{parentName:"p"},"param_dict")," to set up the hot core model. The key one is that UCLCHEM saves final abundances to ",(0,m.kt)("inlineCode",{parentName:"p"},"abundSaveFile")," but loads them from ",(0,m.kt)("inlineCode",{parentName:"p"},"abundLoadFile")," so we need to swap that key over to make the abundances we just produced our initial abundances. "),(0,m.kt)("p",null,"We also want to turn off freefall and change how long the model runs for."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'#change other bits of input to set up phase 2\nparam_dict["initialDens"]=1e6\nparam_dict["finalTime"]=1e6\nparam_dict["freefall"]=False\n\n#freeze out is completely overwhelmed by thermal desorption\n#so turning it off has no effect on abundances but speeds up integrator.\nparam_dict["freezeFactor"]=0.0\n\nparam_dict["abstol_factor"]=1e-18\nparam_dict["reltol"]=1e-12\n\n#pop is dangerous, it removes the original key so you can\'t rerun this cell.\nparam_dict["abundLoadFile"]=param_dict.pop("abundSaveFile") \nparam_dict["outputFile"]="../examples/test-output/phase2-full.dat"\n\nresult=uclchem.model.hot_core(temp_indx=3,max_temperature=300.0,param_dict=param_dict)\n')),(0,m.kt)("p",null,"Note that we've changed made two changes to the parameters here which aren't strictly necessary but can be helpful in certain situations."),(0,m.kt)("p",null,"Since the gas temperature increases throughout a hot core model, freeze out is much slower than thermal desorption for all but the first few time steps. Turning it off doesn't affect the abundances but will speed up the solution."),(0,m.kt)("p",null,"We also change abstol and reltol here, largely to demonstrate their use. They control the integrator accuracy and whilst making them smaller does slow down successful runs, it can make runs complete that stall completely otherwise or give correct solutions where lower tolerances allow issues like element conservation failure to sneak in. If your code does not complete or element conservation fails, you can change them."),(0,m.kt)("h3",{id:"checking-the-result"},"Checking the Result"),(0,m.kt)("p",null,"With a successful run, we can check the output. We first load the file and check the abundance conservation, then we can plot it up."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'phase2_df=uclchem.analysis.read_output_file("../examples/test-output/phase2-full.dat")\nuclchem.analysis.check_element_conservation(phase2_df)\n')),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"{'H': '0.002%', 'N': '0.000%', 'C': '0.000%', 'O': '0.000%'}\n")),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'species=["CO","H2O","CH3OH","#CO","#H2O","#CH3OH","@H2O","@CO","@CH3OH"]\n\nfig,[ax,ax2]=plt.subplots(1,2,figsize=(16,9))\nax=uclchem.analysis.plot_species(ax,phase2_df,species)\nsettings=ax.set(yscale="log",xlim=(1e2,1e6),ylim=(1e-10,1e-2),\n xlabel="Time / years", \n ylabel="Fractional Abundance",xscale="log")\n\nax2.plot(phase2_df["Time"],phase2_df["Density"],color="black")\nax2.set(xscale="log")\nax3=ax2.twinx()\nax3.plot(phase2_df["Time"],phase2_df["gasTemp"],color="red")\nax2.set(xlabel="Time / year",ylabel="Density")\nax3.set(ylabel="Temperature",facecolor="red",xlim=(1e2,1e6))\nax3.tick_params(axis=\'y\', colors=\'red\')\n')),(0,m.kt)("p",null,(0,m.kt)("img",{alt:"png",src:t(7739).Z,width:"997",height:"549"})),(0,m.kt)("p",null,"Here, we see the value of running a collapse phase before the science run. Having run a collapse, we start this model with well developed ices and having material in the surface and bulk allows us to properly model the effect of warm up in a hot core. For example, the @CO abundance is ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mo",{parentName:"mrow"},"\u223c"),(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"4")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\sim10^{-4}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.36687em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"\u223c"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"4")))))))))))))," and #CO is ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mo",{parentName:"mrow"},"\u223c"),(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"6")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\sim10^{-6}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.36687em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"\u223c"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"6"))))))))))))),". As the gas warms to around 30K, the #CO abundance drops drastically as CO's binding energy is such that it is efficiently desorbed from the surface at this temperature. However, the rest of the CO is trapped in the bulk, surrounded by more strongly bound H2O molecules. Thus, the @CO abundance stays high until the gas reaches around 130K, when the H2O molecules are released along with the entire bulk."),(0,m.kt)("h2",{id:"shocks"},"Shocks"),(0,m.kt)("p",null,"Essentially the same process should be followed for shocks. Let's run a C-type and J-type shock through a gas of density ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"4")),(0,m.kt)("mi",{parentName:"mrow"},"c"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"m"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"3")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"10^4 cm^{-3}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"4")))))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"c"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"m"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3"))))))))))))),". Again, we first run a simple cloud model to obtain some reasonable starting abundances, then we can run the shocks."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'# set a parameter dictionary for phase 1 collapse model\n\nparam_dict = {\n "endAtFinalDensity": False,#stop at finalTime\n "freefall": True,#increase density in freefall\n "initialDens": 1e2, #starting density\n "finalDens":1e4, #final density\n "initialTemp": 10.0,#temperature of gas\n "finalTime": 6.0e6, #final time\n "rout":0.1, #radius of cloud in pc\n "baseAv":1.0, #visual extinction at cloud edge.\n "abundSaveFile": "../examples/test-output/shockstart.dat",\n}\nresult = uclchem.model.cloud(param_dict=param_dict)\n')),(0,m.kt)("h3",{id:"c-shock"},"C-shock"),(0,m.kt)("p",null,"We'll first run a c-shock. We'll run a 40 km s ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"1")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-1}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1")))))))))))))," shock through a gas of density ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"4"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"10^4")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"4"))))))))))))," cm ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"3")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-3}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3"))))))))))))),", using the abundances we just produced. Note that c-shock is the only model which returns an additional output in its result list. Not only is the first element the success flag indicating whether UCLCHEM completed, the second element is the dissipation time of the shock. We'll use that time to make our plots look nicer, cutting to a reasonable time. You can also obtain it from ",(0,m.kt)("inlineCode",{parentName:"p"},"uclchem.utils.cshock_dissipation_time()"),"."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'#change other bits of input to set up phase 2\nparam_dict["initialDens"]=1e4\nparam_dict["finalTime"]=1e6\nif "abundSaveFile" in param_dict:\n param_dict.pop("abundSaveFile")\nparam_dict["abundLoadFile"]="../examples/test-output/shockstart.dat"\nparam_dict["outputFile"]="../examples/test-output/cshock.dat"\n\n\nresult=uclchem.model.cshock(shock_vel=40,param_dict=param_dict)\nresult,dissipation_time=result\n')),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"}," Cannot have freefall on during cshock\n setting freefall=0 and continuing\n")),(0,m.kt)("p",null,"The code completes fine. We do get a couple of warnings though. First, we're informed that ",(0,m.kt)("inlineCode",{parentName:"p"},"freefall")," must be set to False for the C-shock model. Then we get a few integrator warnings. These are not important and can be ignored as long as the element conservation looks ok. However, it is an indication that the integrator did struggle with these ODEs under these conditions."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'phase2_df=uclchem.analysis.read_output_file("../examples/test-output/cshock.dat")\nuclchem.analysis.check_element_conservation(phase2_df)\n')),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"{'H': '0.005%', 'N': '1.167%', 'C': '1.394%', 'O': '1.326%'}\n")),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'species=["CO","H2O","CH3OH","NH3","$CO","$H2O","$CH3OH","$NH3"]\n\nfig,[ax,ax2]=plt.subplots(1,2,figsize=(16,9))\nax=uclchem.analysis.plot_species(ax,phase2_df,species)\nsettings=ax.set(yscale="log",xlim=(1,20*dissipation_time),ylim=(1e-10,1e-2),\n xlabel="Time / years", \n ylabel="Fractional Abundance",xscale="log")\n\nax2.plot(phase2_df["Time"],phase2_df["Density"],color="black")\nax2.set(xscale="log")\nax3=ax2.twinx()\nax3.plot(phase2_df["Time"],phase2_df["gasTemp"],color="red")\nax2.set(xlabel="Time / year",ylabel="Density")\nax3.set(ylabel="Temperature",facecolor="red",xlim=(1,20*dissipation_time))\nax3.tick_params(axis=\'y\', colors=\'red\')\n')),(0,m.kt)("p",null,(0,m.kt)("img",{alt:"png",src:t(5168).Z,width:"1003",height:"544"})),(0,m.kt)("h3",{id:"j-shock"},"J-shock"),(0,m.kt)("p",null,"Running a j-shock is a simple case of changing function. We'll run a 10 km s ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"1")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-1}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1")))))))))))))," shock through a gas of density ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"3"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"10^3")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3"))))))))))))," cm ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"3")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-3}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))))))))))))," gas this time. Note that nothing stops us using the intial abundances we produced for the c-shock. UCLCHEM will not check that the initial density matches the density of the ",(0,m.kt)("inlineCode",{parentName:"p"},"abundLoadFile"),". It may not always be a good idea to do this but we should remember the intial abundances really are just a rough approximation."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'param_dict["initialDens"]=1e3\nparam_dict["freefall"]=False #lets remember to turn it off this time\nparam_dict["reltol"]=1e-12\n\nshock_vel=10.0\n\nif "abundSaveFile" in param_dict:\n param_dict.pop("abundSaveFile")\nparam_dict["abundLoadFile"]="../examples/test-output/shockstart.dat"\nparam_dict["outputFile"]="../examples/test-output/jshock.dat"\n\n\nresult=uclchem.model.jshock(shock_vel=shock_vel,param_dict=param_dict)\n')),(0,m.kt)("p",null,"This time, we've turned off the freefall option and made reltol a little more stringent. The j-shock ends up running a bit slower but we get no warnings on this run."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'phase2_df=uclchem.analysis.read_output_file(param_dict["outputFile"])\nuclchem.analysis.check_element_conservation(phase2_df)\n')),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"{'H': '0.003%', 'N': '0.000%', 'C': '0.000%', 'O': '0.000%'}\n")),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'species=["CO","H2O","CH3OH","NH3","$CO","$H2O","$CH3OH","$NH3"]\n\nfig,[ax,ax2]=plt.subplots(1,2,figsize=(16,9))\nax=uclchem.analysis.plot_species(ax,phase2_df,species)\nsettings=ax.set(yscale="log",xlim=(1e-7,1e6),ylim=(1e-10,1e-2),\n xlabel="Time / years", \n ylabel="Fractional Abundance",xscale="log")\n\nax2.plot(phase2_df["Time"],phase2_df["Density"],color="black")\nax2.set(xscale="log",yscale="log")\nax3=ax2.twinx()\nax3.plot(phase2_df["Time"],phase2_df["gasTemp"],color="red")\nax2.set(xlabel="Time / year",ylabel="Density")\nax3.set(ylabel="Temperature",facecolor="red",xlim=(1e-7,1e6))\nax3.tick_params(axis=\'y\', colors=\'red\')\n')),(0,m.kt)("p",null,(0,m.kt)("img",{alt:"png",src:t(5185).Z,width:"1003",height:"544"})),(0,m.kt)("p",null,"That's everything! We've run various science models using reasonable starting abundances that we produced by running a simple UCLCHEM model beforehand. One benefit of this method is that the abundances are consistent with the network. If we start with arbitrary, perhaps observationally motivated, abundances, it would be possible to initiate the model in a state our network could never produce. "),(0,m.kt)("p",null,"However, one should be aware of the limitations of this method. A freefall collapse from low density to high is not really how a molecular cloud forms and so the abundances are only approximately similar to values they'd truly have in a real cloud. Testing whether your results are sensitive to things like the time you run the preliminary for or the exact density is a good way to make sure these approximations are not problematic."),(0,m.kt)("p",null,"Bear in mind that you can use ",(0,m.kt)("inlineCode",{parentName:"p"},"abundSaveFile")," and ",(0,m.kt)("inlineCode",{parentName:"p"},"abundLoadFile")," in the same model run. This lets you chain model runs together. For example, you could run a c-shock from a cloud model as we did here and then a j-shock with the c-shock's abundances as the initial abundances."))}N.isMDXComponent=!0},5168:(a,e,t)=>{t.d(e,{Z:()=>s});const s=t.p+"assets/images/modelling_objects_16_0-9cbaa39ecfd8914850efea6f9894f3c9.png"},5185:(a,e,t)=>{t.d(e,{Z:()=>s});const s=t.p+"assets/images/modelling_objects_21_0-9d690606580c74f3f2490e2e8b1ce4b4.png"},7739:(a,e,t)=>{t.d(e,{Z:()=>s});const s=t.p+"assets/images/modelling_objects_8_0-cb8bd1ad21dbba5c26281d2a988b2cfa.png"}}]); \ No newline at end of file diff --git a/assets/js/7f120b4d.c22e6f1e.js b/assets/js/6ba1b442.2903ce72.js similarity index 95% rename from assets/js/7f120b4d.c22e6f1e.js rename to assets/js/6ba1b442.2903ce72.js index 1c071bf1..1e078c2d 100644 --- a/assets/js/7f120b4d.c22e6f1e.js +++ b/assets/js/6ba1b442.2903ce72.js @@ -1 +1 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6764],{3905:(a,e,t)=>{t.d(e,{Zo:()=>o,kt:()=>h});var s=t(7294);function n(a,e,t){return e in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function m(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.push.apply(t,s)}return t}function p(a){for(var e=1;e=0||(n[t]=a[t]);return n}(a,e);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(a);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(a,t)&&(n[t]=a[t])}return n}var i=s.createContext({}),l=function(a){var e=s.useContext(i),t=e;return a&&(t="function"==typeof a?a(e):p(p({},e),a)),t},o=function(a){var e=l(a.components);return s.createElement(i.Provider,{value:e},a.children)},N={inlineCode:"code",wrapper:function(a){var e=a.children;return s.createElement(s.Fragment,{},e)}},c=s.forwardRef((function(a,e){var t=a.components,n=a.mdxType,m=a.originalType,i=a.parentName,o=r(a,["components","mdxType","originalType","parentName"]),c=l(t),h=n,k=c["".concat(i,".").concat(h)]||c[h]||N[h]||m;return t?s.createElement(k,p(p({ref:e},o),{},{components:t})):s.createElement(k,p({ref:e},o))}));function h(a,e){var t=arguments,n=e&&e.mdxType;if("string"==typeof a||n){var m=t.length,p=new Array(m);p[0]=c;var r={};for(var i in e)hasOwnProperty.call(e,i)&&(r[i]=e[i]);r.originalType=a,r.mdxType="string"==typeof a?a:n,p[1]=r;for(var l=2;l{t.r(e),t.d(e,{assets:()=>o,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>l,toc:()=>N});var s=t(7462),n=t(3366),m=(t(7294),t(3905)),p=["components"],r={id:"desorb",title:"Adsorption & Desorption Reactions"},i=void 0,l={unversionedId:"desorb",id:"desorb",title:"Adsorption & Desorption Reactions",description:"Coupling between the gas and the grain chemistry primarily comes from the freeze out of material from the gas phase onto the dust grains (adsorption) and the sublimation of material from the grains into the gas phase (desorption). The major processes considered by UCLCHEM are listed below. Note that we assume desorption and freeze out occur between the gas and the surface only, bulk material in three phase models does not directly desorb into the gas phase.",source:"@site/docs/chem-desorb.md",sourceDirName:".",slug:"/desorb",permalink:"/docs/next/desorb",tags:[],version:"current",lastUpdatedBy:"jonholdship",lastUpdatedAt:1652282273,formattedLastUpdatedAt:"5/11/2022",frontMatter:{id:"desorb",title:"Adsorption & Desorption Reactions"},sidebar:"docs",previous:{title:"Grain Surface Reactions",permalink:"/docs/next/grain"},next:{title:"Bulk Ice Processes",permalink:"/docs/next/bulk"}},o={},N=[{value:"Freeze out",id:"freeze-out",level:2},{value:"Thermal Desorption",id:"thermal-desorption",level:2},{value:"Non-thermal Desorption Methods",id:"non-thermal-desorption-methods",level:2},{value:"H2 Formation",id:"h2-formation",level:5},{value:"Cosmic Rays",id:"cosmic-rays",level:5},{value:"UV photons",id:"uv-photons",level:5},{value:"Chemical Desorption",id:"chemical-desorption",level:5}],c={toc:N};function h(a){var e=a.components,t=(0,n.Z)(a,p);return(0,m.kt)("wrapper",(0,s.Z)({},c,t,{components:e,mdxType:"MDXLayout"}),(0,m.kt)("p",null,"Coupling between the gas and the grain chemistry primarily comes from the freeze out of material from the gas phase onto the dust grains (adsorption) and the sublimation of material from the grains into the gas phase (desorption). The major processes considered by UCLCHEM are listed below. Note that we assume desorption and freeze out occur between the gas and the surface only, bulk material in three phase models does not directly desorb into the gas phase."),(0,m.kt)("h2",{id:"freeze-out"},"Freeze out"),(0,m.kt)("p",null,"We assume that molecules freeze out at a rate given by the rate of collision between a species and the dust grains:"),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"k"),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("mi",{parentName:"mrow"},"\u03b1"),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"v"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"t"),(0,m.kt)("mi",{parentName:"mrow"},"h"))),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"A"),(0,m.kt)("mi",{parentName:"msub"},"g")),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"C"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"i"),(0,m.kt)("mi",{parentName:"mrow"},"o"),(0,m.kt)("mi",{parentName:"mrow"},"n")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k=\\alpha v_{th} A_g C_{ion}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.969438em",verticalAlign:"-0.286108em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"v"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03588em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"h"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15139200000000003em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03588em"}},"g")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"C"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07153em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"n"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))),(0,m.kt)("p",null,"where ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"\u03b1")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\alpha")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.43056em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1")))))," is a branching ratio, ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"V"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"t"),(0,m.kt)("mi",{parentName:"mrow"},"h")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"V_{th}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"V"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.22222em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"h"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is the thermal velocity of the particle and ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"A"),(0,m.kt)("mi",{parentName:"msub"},"g"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"A_g")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.969438em",verticalAlign:"-0.286108em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15139200000000003em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03588em"}},"g")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is the dust grain cross sectional area per hydrogen nuclei. ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"C"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"i"),(0,m.kt)("mi",{parentName:"mrow"},"o"),(0,m.kt)("mi",{parentName:"mrow"},"n")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"C_{ion}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"C"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07153em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"n"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is a factor that increases the freeze out rate of ions due to electrostatic forces."),(0,m.kt)("p",null,"The branching ratio is an artefact of older versions of UCLCHEM which allows the user to include some grain processing of species without surface reactions. For a given species (eg C) we can determine several species that will rapidly form on the grain (CH,CH4) and freeze some portion of the original species (C) out to these products. This allows fast processes like hydrogenation to be treated without a network of surface reactions. ",(0,m.kt)("em",{parentName:"p"},"However, users should default to using a branching ratio of 1 and allowing surface reactions to take place"),"."),(0,m.kt)("p",null,"For efficiency, freeze out is turned off when the desorption rate is so high that ignoring freeze out would produce an error of around 10",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"20")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-20}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))))))))))))," on the abundances of the gas phase species. We also turn off freeze out when the temperature exceeds the binding energy of H",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msub"}),(0,m.kt)("mn",{parentName:"msub"},"2"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_2")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.45110799999999995em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))))))),"O."),(0,m.kt)("h2",{id:"thermal-desorption"},"Thermal Desorption"),(0,m.kt)("p",null,"We include thermal desorption of material from the grains based on the binding energy of each species to the ices. "),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"k"),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"\u03bd"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"d"),(0,m.kt)("mi",{parentName:"mrow"},"i"),(0,m.kt)("mi",{parentName:"mrow"},"f"),(0,m.kt)("mi",{parentName:"mrow"},"f"))),(0,m.kt)("mi",{parentName:"mrow"},"exp"),(0,m.kt)("mo",{parentName:"mrow"},"\u2061"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"mfrac"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"E"),(0,m.kt)("mi",{parentName:"msub"},"B"))),(0,m.kt)("mi",{parentName:"mfrac"},"T")),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k = \\nu_{diff} \\exp(\\frac{-E_B}{T})")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"2.04633em",verticalAlign:"-0.686em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.06366em"}},"\u03bd"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.06366em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,m.kt)("span",{parentName:"span",className:"mop"},"exp"),(0,m.kt)("span",{parentName:"span",className:"mopen"},"("),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T"))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05764em"}},"E"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.05764em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05017em"}},"B")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,m.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,m.kt)("p",null,"This can be simply multiplied by the surface abundance of a species to get its rate of change when using a three phase network. However, for two phases, we multiply by the fraction of the total ice particle which are a given species and by the number of surface sites per volume. This accounts for the fact a majority of the ice material cannot thermally desorb as it not on the surface."),(0,m.kt)("p",null,"Thermal desorption is most relevant to hot core models. As the temperature increases, sublimation can occur. However, TPD experiments (Collings et al. 2004) show that this happens in bursts rather than as a continuous process. These bursts happen naturally in the three phase model as the surface is removed and then the bulk. However, for a two phase network, such bursts need to be simulated. For this reason, the hot core model handles these bursts in the two phase case and the user should turn off thermal desorption."),(0,m.kt)("h2",{id:"non-thermal-desorption-methods"},"Non-thermal Desorption Methods"),(0,m.kt)("h5",{id:"h2-formation"},"H2 Formation"),(0,m.kt)("p",null,"H2 molecules form when H atoms meet briefly on grain surfaces. The reaction is sufficiently exothermic that not only is the product is released into the gas phase but the surrounding grain material is also heated. "),(0,m.kt)("h5",{id:"cosmic-rays"},"Cosmic Rays"),(0,m.kt)("p",null,"Cosmic rays which impact the grains can free molecules from the surface."),(0,m.kt)("h5",{id:"uv-photons"},"UV photons"),(0,m.kt)("p",null,"Surface molecules which absorb a UV photon may gain sufficient energy to escape the surface. We consider secondary photons created by cosmic rays as well as the interstellar radiation field."),(0,m.kt)("h5",{id:"chemical-desorption"},"Chemical Desorption"),(0,m.kt)("p",null,"Other than H2 formation, the desorption of species due to exothermic reactions happening nearby on the grain is not treated. However, as described in the grain surface reaction section, any exothermic grain surface reaction has a probability of releasing the products into the gas phase and this is accounted for."))}h.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3828],{3905:(a,e,t)=>{t.d(e,{Zo:()=>o,kt:()=>h});var s=t(7294);function n(a,e,t){return e in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function m(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.push.apply(t,s)}return t}function p(a){for(var e=1;e=0||(n[t]=a[t]);return n}(a,e);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(a);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(a,t)&&(n[t]=a[t])}return n}var i=s.createContext({}),l=function(a){var e=s.useContext(i),t=e;return a&&(t="function"==typeof a?a(e):p(p({},e),a)),t},o=function(a){var e=l(a.components);return s.createElement(i.Provider,{value:e},a.children)},N={inlineCode:"code",wrapper:function(a){var e=a.children;return s.createElement(s.Fragment,{},e)}},c=s.forwardRef((function(a,e){var t=a.components,n=a.mdxType,m=a.originalType,i=a.parentName,o=r(a,["components","mdxType","originalType","parentName"]),c=l(t),h=n,k=c["".concat(i,".").concat(h)]||c[h]||N[h]||m;return t?s.createElement(k,p(p({ref:e},o),{},{components:t})):s.createElement(k,p({ref:e},o))}));function h(a,e){var t=arguments,n=e&&e.mdxType;if("string"==typeof a||n){var m=t.length,p=new Array(m);p[0]=c;var r={};for(var i in e)hasOwnProperty.call(e,i)&&(r[i]=e[i]);r.originalType=a,r.mdxType="string"==typeof a?a:n,p[1]=r;for(var l=2;l{t.r(e),t.d(e,{assets:()=>o,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>l,toc:()=>N});var s=t(7462),n=t(3366),m=(t(7294),t(3905)),p=["components"],r={id:"desorb",title:"Adsorption & Desorption Reactions"},i=void 0,l={unversionedId:"desorb",id:"version-v3.1.0/desorb",title:"Adsorption & Desorption Reactions",description:"Coupling between the gas and the grain chemistry primarily comes from the freeze out of material from the gas phase onto the dust grains (adsorption) and the sublimation of material from the grains into the gas phase (desorption). The major processes considered by UCLCHEM are listed below. Note that we assume desorption and freeze out occur between the gas and the surface only, bulk material in three phase models does not directly desorb into the gas phase.",source:"@site/versioned_docs/version-v3.1.0/chem-desorb.md",sourceDirName:".",slug:"/desorb",permalink:"/docs/v3.1.0/desorb",draft:!1,tags:[],version:"v3.1.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"desorb",title:"Adsorption & Desorption Reactions"},sidebar:"docs",previous:{title:"Grain Surface Reactions",permalink:"/docs/v3.1.0/grain"},next:{title:"Bulk Ice Processes",permalink:"/docs/v3.1.0/bulk"}},o={},N=[{value:"Freeze out",id:"freeze-out",level:2},{value:"Thermal Desorption",id:"thermal-desorption",level:2},{value:"Non-thermal Desorption Methods",id:"non-thermal-desorption-methods",level:2},{value:"H2 Formation",id:"h2-formation",level:5},{value:"Cosmic Rays",id:"cosmic-rays",level:5},{value:"UV photons",id:"uv-photons",level:5},{value:"Chemical Desorption",id:"chemical-desorption",level:5}],c={toc:N};function h(a){var e=a.components,t=(0,n.Z)(a,p);return(0,m.kt)("wrapper",(0,s.Z)({},c,t,{components:e,mdxType:"MDXLayout"}),(0,m.kt)("p",null,"Coupling between the gas and the grain chemistry primarily comes from the freeze out of material from the gas phase onto the dust grains (adsorption) and the sublimation of material from the grains into the gas phase (desorption). The major processes considered by UCLCHEM are listed below. Note that we assume desorption and freeze out occur between the gas and the surface only, bulk material in three phase models does not directly desorb into the gas phase."),(0,m.kt)("h2",{id:"freeze-out"},"Freeze out"),(0,m.kt)("p",null,"We assume that molecules freeze out at a rate given by the rate of collision between a species and the dust grains:"),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"k"),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("mi",{parentName:"mrow"},"\u03b1"),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"v"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"t"),(0,m.kt)("mi",{parentName:"mrow"},"h"))),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"A"),(0,m.kt)("mi",{parentName:"msub"},"g")),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"C"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"i"),(0,m.kt)("mi",{parentName:"mrow"},"o"),(0,m.kt)("mi",{parentName:"mrow"},"n")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k=\\alpha v_{th} A_g C_{ion}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.969438em",verticalAlign:"-0.286108em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"v"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03588em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"h"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15139200000000003em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03588em"}},"g")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"C"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07153em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"n"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))),(0,m.kt)("p",null,"where ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"\u03b1")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\alpha")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.43056em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1")))))," is a branching ratio, ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"V"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"t"),(0,m.kt)("mi",{parentName:"mrow"},"h")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"V_{th}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"V"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.22222em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"h"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is the thermal velocity of the particle and ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"A"),(0,m.kt)("mi",{parentName:"msub"},"g"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"A_g")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.969438em",verticalAlign:"-0.286108em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15139200000000003em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03588em"}},"g")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is the dust grain cross sectional area per hydrogen nuclei. ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"C"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"i"),(0,m.kt)("mi",{parentName:"mrow"},"o"),(0,m.kt)("mi",{parentName:"mrow"},"n")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"C_{ion}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"C"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07153em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"n"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is a factor that increases the freeze out rate of ions due to electrostatic forces."),(0,m.kt)("p",null,"The branching ratio is an artefact of older versions of UCLCHEM which allows the user to include some grain processing of species without surface reactions. For a given species (eg C) we can determine several species that will rapidly form on the grain (CH,CH4) and freeze some portion of the original species (C) out to these products. This allows fast processes like hydrogenation to be treated without a network of surface reactions. ",(0,m.kt)("em",{parentName:"p"},"However, users should default to using a branching ratio of 1 and allowing surface reactions to take place"),"."),(0,m.kt)("p",null,"For efficiency, freeze out is turned off when the desorption rate is so high that ignoring freeze out would produce an error of around 10",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"20")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-20}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))))))))))))," on the abundances of the gas phase species. We also turn off freeze out when the temperature exceeds the binding energy of H",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msub"}),(0,m.kt)("mn",{parentName:"msub"},"2"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_2")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.45110799999999995em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))))))),"O."),(0,m.kt)("h2",{id:"thermal-desorption"},"Thermal Desorption"),(0,m.kt)("p",null,"We include thermal desorption of material from the grains based on the binding energy of each species to the ices. "),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"k"),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"\u03bd"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"d"),(0,m.kt)("mi",{parentName:"mrow"},"i"),(0,m.kt)("mi",{parentName:"mrow"},"f"),(0,m.kt)("mi",{parentName:"mrow"},"f"))),(0,m.kt)("mi",{parentName:"mrow"},"exp"),(0,m.kt)("mo",{parentName:"mrow"},"\u2061"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"mfrac"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"E"),(0,m.kt)("mi",{parentName:"msub"},"B"))),(0,m.kt)("mi",{parentName:"mfrac"},"T")),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k = \\nu_{diff} \\exp(\\frac{-E_B}{T})")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"2.04633em",verticalAlign:"-0.686em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.06366em"}},"\u03bd"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.06366em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,m.kt)("span",{parentName:"span",className:"mop"},"exp"),(0,m.kt)("span",{parentName:"span",className:"mopen"},"("),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T"))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05764em"}},"E"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.05764em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05017em"}},"B")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,m.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,m.kt)("p",null,"This can be simply multiplied by the surface abundance of a species to get its rate of change when using a three phase network. However, for two phases, we multiply by the fraction of the total ice particle which are a given species and by the number of surface sites per volume. This accounts for the fact a majority of the ice material cannot thermally desorb as it not on the surface."),(0,m.kt)("p",null,"Thermal desorption is most relevant to hot core models. As the temperature increases, sublimation can occur. However, TPD experiments (Collings et al. 2004) show that this happens in bursts rather than as a continuous process. These bursts happen naturally in the three phase model as the surface is removed and then the bulk. However, for a two phase network, such bursts need to be simulated. For this reason, the hot core model handles these bursts in the two phase case and the user should turn off thermal desorption."),(0,m.kt)("h2",{id:"non-thermal-desorption-methods"},"Non-thermal Desorption Methods"),(0,m.kt)("h5",{id:"h2-formation"},"H2 Formation"),(0,m.kt)("p",null,"H2 molecules form when H atoms meet briefly on grain surfaces. The reaction is sufficiently exothermic that not only is the product is released into the gas phase but the surrounding grain material is also heated. "),(0,m.kt)("h5",{id:"cosmic-rays"},"Cosmic Rays"),(0,m.kt)("p",null,"Cosmic rays which impact the grains can free molecules from the surface."),(0,m.kt)("h5",{id:"uv-photons"},"UV photons"),(0,m.kt)("p",null,"Surface molecules which absorb a UV photon may gain sufficient energy to escape the surface. We consider secondary photons created by cosmic rays as well as the interstellar radiation field."),(0,m.kt)("h5",{id:"chemical-desorption"},"Chemical Desorption"),(0,m.kt)("p",null,"Other than H2 formation, the desorption of species due to exothermic reactions happening nearby on the grain is not treated. However, as described in the grain surface reaction section, any exothermic grain surface reaction has a probability of releasing the products into the gas phase and this is accounted for."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6ba1b442.f1a43ab4.js b/assets/js/6ba1b442.f1a43ab4.js deleted file mode 100644 index e0ebba13..00000000 --- a/assets/js/6ba1b442.f1a43ab4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3828],{3905:(a,e,t)=>{t.d(e,{Zo:()=>o,kt:()=>h});var s=t(7294);function n(a,e,t){return e in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function m(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.push.apply(t,s)}return t}function p(a){for(var e=1;e=0||(n[t]=a[t]);return n}(a,e);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(a);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(a,t)&&(n[t]=a[t])}return n}var i=s.createContext({}),l=function(a){var e=s.useContext(i),t=e;return a&&(t="function"==typeof a?a(e):p(p({},e),a)),t},o=function(a){var e=l(a.components);return s.createElement(i.Provider,{value:e},a.children)},N={inlineCode:"code",wrapper:function(a){var e=a.children;return s.createElement(s.Fragment,{},e)}},c=s.forwardRef((function(a,e){var t=a.components,n=a.mdxType,m=a.originalType,i=a.parentName,o=r(a,["components","mdxType","originalType","parentName"]),c=l(t),h=n,k=c["".concat(i,".").concat(h)]||c[h]||N[h]||m;return t?s.createElement(k,p(p({ref:e},o),{},{components:t})):s.createElement(k,p({ref:e},o))}));function h(a,e){var t=arguments,n=e&&e.mdxType;if("string"==typeof a||n){var m=t.length,p=new Array(m);p[0]=c;var r={};for(var i in e)hasOwnProperty.call(e,i)&&(r[i]=e[i]);r.originalType=a,r.mdxType="string"==typeof a?a:n,p[1]=r;for(var l=2;l{t.r(e),t.d(e,{assets:()=>o,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>l,toc:()=>N});var s=t(7462),n=t(3366),m=(t(7294),t(3905)),p=["components"],r={id:"desorb",title:"Adsorption & Desorption Reactions"},i=void 0,l={unversionedId:"desorb",id:"version-v3.1.0/desorb",title:"Adsorption & Desorption Reactions",description:"Coupling between the gas and the grain chemistry primarily comes from the freeze out of material from the gas phase onto the dust grains (adsorption) and the sublimation of material from the grains into the gas phase (desorption). The major processes considered by UCLCHEM are listed below. Note that we assume desorption and freeze out occur between the gas and the surface only, bulk material in three phase models does not directly desorb into the gas phase.",source:"@site/versioned_docs/version-v3.1.0/chem-desorb.md",sourceDirName:".",slug:"/desorb",permalink:"/docs/v3.1.0/desorb",tags:[],version:"v3.1.0",frontMatter:{id:"desorb",title:"Adsorption & Desorption Reactions"},sidebar:"docs",previous:{title:"Grain Surface Reactions",permalink:"/docs/v3.1.0/grain"},next:{title:"Bulk Ice Processes",permalink:"/docs/v3.1.0/bulk"}},o={},N=[{value:"Freeze out",id:"freeze-out",level:2},{value:"Thermal Desorption",id:"thermal-desorption",level:2},{value:"Non-thermal Desorption Methods",id:"non-thermal-desorption-methods",level:2},{value:"H2 Formation",id:"h2-formation",level:5},{value:"Cosmic Rays",id:"cosmic-rays",level:5},{value:"UV photons",id:"uv-photons",level:5},{value:"Chemical Desorption",id:"chemical-desorption",level:5}],c={toc:N};function h(a){var e=a.components,t=(0,n.Z)(a,p);return(0,m.kt)("wrapper",(0,s.Z)({},c,t,{components:e,mdxType:"MDXLayout"}),(0,m.kt)("p",null,"Coupling between the gas and the grain chemistry primarily comes from the freeze out of material from the gas phase onto the dust grains (adsorption) and the sublimation of material from the grains into the gas phase (desorption). The major processes considered by UCLCHEM are listed below. Note that we assume desorption and freeze out occur between the gas and the surface only, bulk material in three phase models does not directly desorb into the gas phase."),(0,m.kt)("h2",{id:"freeze-out"},"Freeze out"),(0,m.kt)("p",null,"We assume that molecules freeze out at a rate given by the rate of collision between a species and the dust grains:"),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"k"),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("mi",{parentName:"mrow"},"\u03b1"),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"v"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"t"),(0,m.kt)("mi",{parentName:"mrow"},"h"))),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"A"),(0,m.kt)("mi",{parentName:"msub"},"g")),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"C"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"i"),(0,m.kt)("mi",{parentName:"mrow"},"o"),(0,m.kt)("mi",{parentName:"mrow"},"n")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k=\\alpha v_{th} A_g C_{ion}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.969438em",verticalAlign:"-0.286108em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"v"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03588em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"h"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15139200000000003em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03588em"}},"g")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"C"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07153em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"n"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))),(0,m.kt)("p",null,"where ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"\u03b1")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\alpha")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.43056em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1")))))," is a branching ratio, ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"V"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"t"),(0,m.kt)("mi",{parentName:"mrow"},"h")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"V_{th}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"V"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.22222em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"h"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is the thermal velocity of the particle and ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"A"),(0,m.kt)("mi",{parentName:"msub"},"g"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"A_g")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.969438em",verticalAlign:"-0.286108em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15139200000000003em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03588em"}},"g")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is the dust grain cross sectional area per hydrogen nuclei. ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"C"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"i"),(0,m.kt)("mi",{parentName:"mrow"},"o"),(0,m.kt)("mi",{parentName:"mrow"},"n")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"C_{ion}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"C"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07153em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"n"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is a factor that increases the freeze out rate of ions due to electrostatic forces."),(0,m.kt)("p",null,"The branching ratio is an artefact of older versions of UCLCHEM which allows the user to include some grain processing of species without surface reactions. For a given species (eg C) we can determine several species that will rapidly form on the grain (CH,CH4) and freeze some portion of the original species (C) out to these products. This allows fast processes like hydrogenation to be treated without a network of surface reactions. ",(0,m.kt)("em",{parentName:"p"},"However, users should default to using a branching ratio of 1 and allowing surface reactions to take place"),"."),(0,m.kt)("p",null,"For efficiency, freeze out is turned off when the desorption rate is so high that ignoring freeze out would produce an error of around 10",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"20")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-20}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))))))))))))," on the abundances of the gas phase species. We also turn off freeze out when the temperature exceeds the binding energy of H",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msub"}),(0,m.kt)("mn",{parentName:"msub"},"2"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_2")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.45110799999999995em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))))))),"O."),(0,m.kt)("h2",{id:"thermal-desorption"},"Thermal Desorption"),(0,m.kt)("p",null,"We include thermal desorption of material from the grains based on the binding energy of each species to the ices. "),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"k"),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"\u03bd"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"d"),(0,m.kt)("mi",{parentName:"mrow"},"i"),(0,m.kt)("mi",{parentName:"mrow"},"f"),(0,m.kt)("mi",{parentName:"mrow"},"f"))),(0,m.kt)("mi",{parentName:"mrow"},"exp"),(0,m.kt)("mo",{parentName:"mrow"},"\u2061"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"mfrac"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"E"),(0,m.kt)("mi",{parentName:"msub"},"B"))),(0,m.kt)("mi",{parentName:"mfrac"},"T")),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k = \\nu_{diff} \\exp(\\frac{-E_B}{T})")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"2.04633em",verticalAlign:"-0.686em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.06366em"}},"\u03bd"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.06366em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,m.kt)("span",{parentName:"span",className:"mop"},"exp"),(0,m.kt)("span",{parentName:"span",className:"mopen"},"("),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T"))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05764em"}},"E"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.05764em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05017em"}},"B")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,m.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,m.kt)("p",null,"This can be simply multiplied by the surface abundance of a species to get its rate of change when using a three phase network. However, for two phases, we multiply by the fraction of the total ice particle which are a given species and by the number of surface sites per volume. This accounts for the fact a majority of the ice material cannot thermally desorb as it not on the surface."),(0,m.kt)("p",null,"Thermal desorption is most relevant to hot core models. As the temperature increases, sublimation can occur. However, TPD experiments (Collings et al. 2004) show that this happens in bursts rather than as a continuous process. These bursts happen naturally in the three phase model as the surface is removed and then the bulk. However, for a two phase network, such bursts need to be simulated. For this reason, the hot core model handles these bursts in the two phase case and the user should turn off thermal desorption."),(0,m.kt)("h2",{id:"non-thermal-desorption-methods"},"Non-thermal Desorption Methods"),(0,m.kt)("h5",{id:"h2-formation"},"H2 Formation"),(0,m.kt)("p",null,"H2 molecules form when H atoms meet briefly on grain surfaces. The reaction is sufficiently exothermic that not only is the product is released into the gas phase but the surrounding grain material is also heated. "),(0,m.kt)("h5",{id:"cosmic-rays"},"Cosmic Rays"),(0,m.kt)("p",null,"Cosmic rays which impact the grains can free molecules from the surface."),(0,m.kt)("h5",{id:"uv-photons"},"UV photons"),(0,m.kt)("p",null,"Surface molecules which absorb a UV photon may gain sufficient energy to escape the surface. We consider secondary photons created by cosmic rays as well as the interstellar radiation field."),(0,m.kt)("h5",{id:"chemical-desorption"},"Chemical Desorption"),(0,m.kt)("p",null,"Other than H2 formation, the desorption of species due to exothermic reactions happening nearby on the grain is not treated. However, as described in the grain surface reaction section, any exothermic grain surface reaction has a probability of releasing the products into the gas phase and this is accounted for."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6bb3e248.1f5361bb.js b/assets/js/6bb3e248.f0d4ef3b.js similarity index 61% rename from assets/js/6bb3e248.1f5361bb.js rename to assets/js/6bb3e248.f0d4ef3b.js index 35dbcc4d..4dd741d1 100644 --- a/assets/js/6bb3e248.1f5361bb.js +++ b/assets/js/6bb3e248.f0d4ef3b.js @@ -1 +1 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7524],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),c=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=c(r),f=o,m=d["".concat(s,".").concat(f)]||d[f]||u[f]||a;return r?n.createElement(m,l(l({ref:t},p),{},{components:r})):n.createElement(m,l({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i.mdxType="string"==typeof e?e:o,l[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>f,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var n=r(7462),o=r(3366),a=(r(7294),r(3905)),l=["components"],i={id:"physics-collapse",title:"Collapse Models"},s=void 0,c={unversionedId:"physics-collapse",id:"physics-collapse",title:"Collapse Models",description:"Main Contributors: Felix Priestley",source:"@site/docs/physics-collapse.md",sourceDirName:".",slug:"/physics-collapse",permalink:"/docs/next/physics-collapse",tags:[],version:"current",lastUpdatedBy:"jonholdship",lastUpdatedAt:1651073142,formattedLastUpdatedAt:"4/27/2022",frontMatter:{id:"physics-collapse",title:"Collapse Models"},sidebar:"docs",previous:{title:"Shock Models",permalink:"/docs/next/physics-shocks"},next:{title:"Chemistry",permalink:"/docs/next/category/chemistry"}},p={},u=[],d={toc:u};function f(e){var t=e.components,r=(0,o.Z)(e,l);return(0,a.kt)("wrapper",(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Main Contributors"),": Felix Priestley"),(0,a.kt)("p",null,"The freefall collapse function used to control the density in most UCLCHEM models is fairly simplistic. ",(0,a.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.3847/1538-3881/aac957"},"Priestley et al. 2018")," created the collapse model which parameterizes the density profile of a collapsing core as a function of time and radius. The following collapse modes are possible:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},'"BE1.1": Bonnor-Ebert sphere, overdensity factor 1.1 (Aikawa+2005)'),(0,a.kt)("li",{parentName:"ul"},'"BE4": Bonnor-Ebert sphere, overdensity factor 4 (Aikawa+2005)'),(0,a.kt)("li",{parentName:"ul"},'"filament": magnetised filament, initially unstable to collapse (Nakamura+1995)'),(0,a.kt)("li",{parentName:"ul"},'"ambipolar": magnetised cloud, initially stable, collapse due to ambipolar diffusion (Fiedler+1993)')))}f.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7524],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),c=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=c(r),f=o,m=d["".concat(s,".").concat(f)]||d[f]||u[f]||a;return r?n.createElement(m,l(l({ref:t},p),{},{components:r})):n.createElement(m,l({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i.mdxType="string"==typeof e?e:o,l[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>f,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var n=r(7462),o=r(3366),a=(r(7294),r(3905)),l=["components"],i={id:"physics-collapse",title:"Collapse Models"},s=void 0,c={unversionedId:"physics-collapse",id:"physics-collapse",title:"Collapse Models",description:"Main Contributors: Felix Priestley",source:"@site/docs/physics-collapse.md",sourceDirName:".",slug:"/physics-collapse",permalink:"/docs/next/physics-collapse",draft:!1,tags:[],version:"current",lastUpdatedBy:"jonholdship",lastUpdatedAt:1651073142,formattedLastUpdatedAt:"Apr 27, 2022",frontMatter:{id:"physics-collapse",title:"Collapse Models"},sidebar:"docs",previous:{title:"Shock Models",permalink:"/docs/next/physics-shocks"},next:{title:"Chemistry",permalink:"/docs/next/category/chemistry"}},p={},u=[],d={toc:u};function f(e){var t=e.components,r=(0,o.Z)(e,l);return(0,a.kt)("wrapper",(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Main Contributors"),": Felix Priestley"),(0,a.kt)("p",null,"The freefall collapse function used to control the density in most UCLCHEM models is fairly simplistic. ",(0,a.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.3847/1538-3881/aac957"},"Priestley et al. 2018")," created the collapse model which parameterizes the density profile of a collapsing core as a function of time and radius. The following collapse modes are possible:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},'"BE1.1": Bonnor-Ebert sphere, overdensity factor 1.1 (Aikawa+2005)'),(0,a.kt)("li",{parentName:"ul"},'"BE4": Bonnor-Ebert sphere, overdensity factor 4 (Aikawa+2005)'),(0,a.kt)("li",{parentName:"ul"},'"filament": magnetised filament, initially unstable to collapse (Nakamura+1995)'),(0,a.kt)("li",{parentName:"ul"},'"ambipolar": magnetised cloud, initially stable, collapse due to ambipolar diffusion (Fiedler+1993)')))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6c2487b5.2323ad1a.js b/assets/js/6c2487b5.2323ad1a.js new file mode 100644 index 00000000..1870093a --- /dev/null +++ b/assets/js/6c2487b5.2323ad1a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2468],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=c(n),f=o,g=d["".concat(s,".").concat(f)]||d[f]||p[f]||a;return n?r.createElement(g,i(i({ref:t},u),{},{components:n})):r.createElement(g,i({ref:t},u))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:o,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>s,default:()=>f,frontMatter:()=>l,metadata:()=>c,toc:()=>p});var r=n(7462),o=n(3366),a=(n(7294),n(3905)),i=["components"],l={id:"trouble-integration",title:"Integration"},s=void 0,c={unversionedId:"trouble-integration",id:"version-v3.1.0/trouble-integration",title:"Integration",description:"My code just keeps running",source:"@site/versioned_docs/version-v3.1.0/trouble-integration.md",sourceDirName:".",slug:"/trouble-integration",permalink:"/docs/v3.1.0/trouble-integration",draft:!1,tags:[],version:"v3.1.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"trouble-integration",title:"Integration"},sidebar:"docs",previous:{title:"Compilation Issues",permalink:"/docs/v3.1.0/trouble-compile"},next:{title:"Core Physics",permalink:"/docs/v3.1.0/physics-core"}},u={},p=[{value:"My code just keeps running",id:"my-code-just-keeps-running",level:2},{value:"Crashing/Stalling Model Runs",id:"crashingstalling-model-runs",level:2}],d={toc:p};function f(e){var t=e.components,n=(0,o.Z)(e,i);return(0,a.kt)("wrapper",(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"my-code-just-keeps-running"},"My code just keeps running"),(0,a.kt)("p",null,"If you're working in jupyter notebooks, fortran output will often not be printed to the cell outputs until the cell finishes running. This can be a real problem if the integration is failing because UCLCHEM may be printing warnings to the screen but you won't see them. If your code is running for a few minutes in a notebook, you may want to export the code to a python script and run it. The uclchem output will print to the console and you will see the integration errors piling up."),(0,a.kt)("h2",{id:"crashingstalling-model-runs"},"Crashing/Stalling Model Runs"),(0,a.kt)("p",null,"Chemical ODEs are infamously stiff and, as such, difficult to solve. There's also no single solver configuration we can use that will guarantee an efficient and accurate solution to every single problem. In particular, if you have a very large network or one with very fast reactions, you may find the integrator stuggles. "),(0,a.kt)("p",null,'You\'ll know the integrator is struggling if you find you get a lot of printed messages stating "ISTATE = -n" (where n is some integer). If the model run completes and there is nothing obviously wrong (eg oscillations) then its likely the solution is fine and your network/parameter combination is at the edge of what the solver can handle. If it takes a very long time or never completes, there is an issue.'),(0,a.kt)("p",null,"One good method to check the validity of your solution is to use the element conservation functions in the ",(0,a.kt)("a",{parentName:"p",href:"/docs/pythonapi#uclchem.analysis.check_element_conservation"},"python module"),". The integrator typically fails to conserve elemental abundances when the integration has accumulated too large an error. Thus, checking for conservation can reassure you that the integration was successful even if the integrator struggled."),(0,a.kt)("p",null,"To fix this, your first port of call should be the ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol_factor"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol_min")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"reltol")," parameters. The comments in ",(0,a.kt)("inlineCode",{parentName:"p"},"src/fortran_src/dvode.f90")," give a fantastic overview of the integrator but in essence, DVODE takes two parameters: ",(0,a.kt)("inlineCode",{parentName:"p"},"reltol")," should set the decimal place accuracy of your abundances and ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol")," the overall error you'll accept. In UCLCHEM, reltol is just a number but we use DVODE's option of making ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol")," a vector with one value per species instead of a single value. This allows us to change the error tolerance depending on the species abundances. ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol")," will take the value of ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol_factor")," times the species abundance or ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol_min"),", whichever is larger."),(0,a.kt)("p",null,"Changing the tolerances is a dark art and it isn't necessarily the case that smaller values = more accuracy and larger values = faster integration. Trying a few values (particularly of ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol_factor"),") is always a good first step when you hit integrator problems."),(0,a.kt)("p",null,"If that doesn't work, you should investigate whether your network is reasonable. Duplicated reactions and bad rate coefficients can result in reactions going too quickly and breaking the integrator."))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6c2487b5.25bd3a2d.js b/assets/js/6c2487b5.25bd3a2d.js deleted file mode 100644 index 39caadfb..00000000 --- a/assets/js/6c2487b5.25bd3a2d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2468],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>g});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=c(n),g=o,f=d["".concat(s,".").concat(g)]||d[g]||p[g]||a;return n?r.createElement(f,i(i({ref:t},u),{},{components:n})):r.createElement(f,i({ref:t},u))}));function g(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:o,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>s,default:()=>g,frontMatter:()=>l,metadata:()=>c,toc:()=>p});var r=n(7462),o=n(3366),a=(n(7294),n(3905)),i=["components"],l={id:"trouble-integration",title:"Integration"},s=void 0,c={unversionedId:"trouble-integration",id:"version-v3.1.0/trouble-integration",title:"Integration",description:"My code just keeps running",source:"@site/versioned_docs/version-v3.1.0/trouble-integration.md",sourceDirName:".",slug:"/trouble-integration",permalink:"/docs/v3.1.0/trouble-integration",tags:[],version:"v3.1.0",frontMatter:{id:"trouble-integration",title:"Integration"},sidebar:"docs",previous:{title:"Compilation Issues",permalink:"/docs/v3.1.0/trouble-compile"},next:{title:"Core Physics",permalink:"/docs/v3.1.0/physics-core"}},u={},p=[{value:"My code just keeps running",id:"my-code-just-keeps-running",level:2},{value:"Crashing/Stalling Model Runs",id:"crashingstalling-model-runs",level:2}],d={toc:p};function g(e){var t=e.components,n=(0,o.Z)(e,i);return(0,a.kt)("wrapper",(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"my-code-just-keeps-running"},"My code just keeps running"),(0,a.kt)("p",null,"If you're working in jupyter notebooks, fortran output will often not be printed to the cell outputs until the cell finishes running. This can be a real problem if the integration is failing because UCLCHEM may be printing warnings to the screen but you won't see them. If your code is running for a few minutes in a notebook, you may want to export the code to a python script and run it. The uclchem output will print to the console and you will see the integration errors piling up."),(0,a.kt)("h2",{id:"crashingstalling-model-runs"},"Crashing/Stalling Model Runs"),(0,a.kt)("p",null,"Chemical ODEs are infamously stiff and, as such, difficult to solve. There's also no single solver configuration we can use that will guarantee an efficient and accurate solution to every single problem. In particular, if you have a very large network or one with very fast reactions, you may find the integrator stuggles. "),(0,a.kt)("p",null,'You\'ll know the integrator is struggling if you find you get a lot of printed messages stating "ISTATE = -n" (where n is some integer). If the model run completes and there is nothing obviously wrong (eg oscillations) then its likely the solution is fine and your network/parameter combination is at the edge of what the solver can handle. If it takes a very long time or never completes, there is an issue.'),(0,a.kt)("p",null,"One good method to check the validity of your solution is to use the element conservation functions in the ",(0,a.kt)("a",{parentName:"p",href:"/docs/pythonapi#uclchem.analysis.check_element_conservation"},"python module"),". The integrator typically fails to conserve elemental abundances when the integration has accumulated too large an error. Thus, checking for conservation can reassure you that the integration was successful even if the integrator struggled."),(0,a.kt)("p",null,"To fix this, your first port of call should be the ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol_factor"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol_min")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"reltol")," parameters. The comments in ",(0,a.kt)("inlineCode",{parentName:"p"},"src/fortran_src/dvode.f90")," give a fantastic overview of the integrator but in essence, DVODE takes two parameters: ",(0,a.kt)("inlineCode",{parentName:"p"},"reltol")," should set the decimal place accuracy of your abundances and ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol")," the overall error you'll accept. In UCLCHEM, reltol is just a number but we use DVODE's option of making ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol")," a vector with one value per species instead of a single value. This allows us to change the error tolerance depending on the species abundances. ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol")," will take the value of ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol_factor")," times the species abundance or ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol_min"),", whichever is larger."),(0,a.kt)("p",null,"Changing the tolerances is a dark art and it isn't necessarily the case that smaller values = more accuracy and larger values = faster integration. Trying a few values (particularly of ",(0,a.kt)("inlineCode",{parentName:"p"},"abstol_factor"),") is always a good first step when you hit integrator problems."),(0,a.kt)("p",null,"If that doesn't work, you should investigate whether your network is reasonable. Duplicated reactions and bad rate coefficients can result in reactions going too quickly and breaking the integrator."))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6c5fb57f.3343b13e.js b/assets/js/6c5fb57f.3343b13e.js deleted file mode 100644 index 8097ff19..00000000 --- a/assets/js/6c5fb57f.3343b13e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3817],{3905:(a,e,s)=>{s.d(e,{Zo:()=>i,kt:()=>k});var t=s(7294);function n(a,e,s){return e in a?Object.defineProperty(a,e,{value:s,enumerable:!0,configurable:!0,writable:!0}):a[e]=s,a}function m(a,e){var s=Object.keys(a);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(a);e&&(t=t.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),s.push.apply(s,t)}return s}function p(a){for(var e=1;e=0||(n[s]=a[s]);return n}(a,e);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(a);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(a,s)&&(n[s]=a[s])}return n}var l=t.createContext({}),N=function(a){var e=t.useContext(l),s=e;return a&&(s="function"==typeof a?a(e):p(p({},e),a)),s},i=function(a){var e=N(a.components);return t.createElement(l.Provider,{value:e},a.children)},c={inlineCode:"code",wrapper:function(a){var e=a.children;return t.createElement(t.Fragment,{},e)}},o=t.forwardRef((function(a,e){var s=a.components,n=a.mdxType,m=a.originalType,l=a.parentName,i=r(a,["components","mdxType","originalType","parentName"]),o=N(s),k=n,h=o["".concat(l,".").concat(k)]||o[k]||c[k]||m;return s?t.createElement(h,p(p({ref:e},i),{},{components:s})):t.createElement(h,p({ref:e},i))}));function k(a,e){var s=arguments,n=e&&e.mdxType;if("string"==typeof a||n){var m=s.length,p=new Array(m);p[0]=o;var r={};for(var l in e)hasOwnProperty.call(e,l)&&(r[l]=e[l]);r.originalType=a,r.mdxType="string"==typeof a?a:n,p[1]=r;for(var N=2;N{s.r(e),s.d(e,{assets:()=>i,contentTitle:()=>l,default:()=>k,frontMatter:()=>r,metadata:()=>N,toc:()=>c});var t=s(7462),n=s(3366),m=(s(7294),s(3905)),p=["components"],r={id:"physics-core",title:"Core Physics"},l=void 0,N={unversionedId:"physics-core",id:"version-v3.1.0/physics-core",title:"Core Physics",description:"Each of the other physics doc pages details the specifics of a particular physics model. This one gives a general overview of the physics in UCLCHEM, including the core physics routines that are called for all models.",source:"@site/versioned_docs/version-v3.1.0/physics-core.md",sourceDirName:".",slug:"/physics-core",permalink:"/docs/v3.1.0/physics-core",tags:[],version:"v3.1.0",frontMatter:{id:"physics-core",title:"Core Physics"},sidebar:"docs",previous:{title:"Integration",permalink:"/docs/v3.1.0/trouble-integration"},next:{title:"Core Physics",permalink:"/docs/v3.1.0/physics-core"}},i={},c=[{value:"Model dimensions",id:"model-dimensions",level:2},{value:"Core Physics Processes",id:"core-physics-processes",level:2},{value:"Freefall",id:"freefall",level:3},{value:"Column density",id:"column-density",level:3}],o={toc:c};function k(a){var e=a.components,s=(0,n.Z)(a,p);return(0,m.kt)("wrapper",(0,t.Z)({},o,s,{components:e,mdxType:"MDXLayout"}),(0,m.kt)("p",null,"Each of the other physics doc pages details the specifics of a particular physics model. This one gives a general overview of the physics in UCLCHEM, including the core physics routines that are called for all models."),(0,m.kt)("h2",{id:"model-dimensions"},"Model dimensions"),(0,m.kt)("p",null,"Whilst it is most often used to model a single point, UCLCHEM is a 1D model. For most models, you provide the size of some cloud of gas (",(0,m.kt)("inlineCode",{parentName:"p"},"rout"),") and the number of positions along a 1D cut through this cloud you'd like to model (",(0,m.kt)("inlineCode",{parentName:"p"},"points"),"). UCLCHEM then divides the cloud up into the required number of equally sized segments and then models a point at the inner edge of each segment. In the image below, the user has specified that they would like to model six points between some rin and rout. The cloud has been split into six segments and the dots indicate the exact position at which"),(0,m.kt)("img",{src:"/img/cloud_points.png",width:"600","margin-left":"40%"}),(0,m.kt)("p",null,'The reason we have to specify the exact position of the "point" at which UCLCHEM evaluates the abundances is that it affects the column densities. We start our calculation at the edge (hence point 1 is closest to rout) and use the width of a single segment to calculate the column densities of H2, CO, and C as well as the total column density. This affects the photo-chemistry through UV attenuation and self-shielding. However, it is unlikely a user will model enough points to properly follow the UV chemistry in the low A',(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msub"}),(0,m.kt)("mi",{parentName:"msub"},"V"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_V")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.47833099999999995em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.22222em"}},"V")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," parts of the cloud, especially since the time dependent nature of the code means it could take some time. If a full 1D calculation becomes really important to you, you may wish to consider a more purpose built PDR solver such as ",(0,m.kt)("a",{parentName:"p",href:"https://uclchem.github.io/3dpdr"},"3D-PDR"),"."),(0,m.kt)("p",null,"A a result, we typically use UCLCHEM to model the cloud as a single point. Once we are far enough into the cloud that the A",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msub"}),(0,m.kt)("mi",{parentName:"msub"},"V"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_V")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.47833099999999995em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.22222em"}},"V")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is very high, the entire cloud tends to become homogenous in 1D models. Effectively, you can model the entire cloud with Av greater than about 5 as a single point and assume those abundances hold for the entire UV shielded region of the cloud. However, our 1D set up is useful for things like hot cores where the temperature and chemistry is really dominated by the central heating source, for which we treat the radial dependence quite well. You can then get a radial view of the chemistry with just a few points."),(0,m.kt)("h2",{id:"core-physics-processes"},"Core Physics Processes"),(0,m.kt)("h3",{id:"freefall"},"Freefall"),(0,m.kt)("p",null,"Many, but not all, models allow you to allow the gas to increase in density as if the gas begins to collapse under freefall from being stationary at the intial density. You turn this on with the ",(0,m.kt)("inlineCode",{parentName:"p"},"freefall")," toggle and the analytical equation for this is"),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"mrow"},"d"),(0,m.kt)("mi",{parentName:"mrow"},"n")),(0,m.kt)("mrow",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"mrow"},"d"),(0,m.kt)("mi",{parentName:"mrow"},"t"))),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"b"),(0,m.kt)("mi",{parentName:"msub"},"c")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow",fence:"true"},"("),(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("msup",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"msup"},"n"),(0,m.kt)("mn",{parentName:"msup"},"4")),(0,m.kt)("msub",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"msub"},"n"),(0,m.kt)("mn",{parentName:"msub"},"0"))),(0,m.kt)("mo",{parentName:"mrow",fence:"true"},")")),(0,m.kt)("mfrac",{parentName:"msup"},(0,m.kt)("mn",{parentName:"mfrac"},"1"),(0,m.kt)("mn",{parentName:"mfrac"},"3"))),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow",fence:"true"},"["),(0,m.kt)("mn",{parentName:"mrow"},"24"),(0,m.kt)("mi",{parentName:"mrow"},"\u03c0"),(0,m.kt)("mi",{parentName:"mrow"},"G"),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"m"),(0,m.kt)("mi",{parentName:"msub"},"H")),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"n"),(0,m.kt)("mn",{parentName:"msub"},"0")),(0,m.kt)("mrow",{parentName:"mrow"},(0,m.kt)("mo",{parentName:"mrow",fence:"true"},"("),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow",fence:"true"},"("),(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"mfrac"},"n"),(0,m.kt)("msub",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"msub"},"n"),(0,m.kt)("mn",{parentName:"msub"},"0"))),(0,m.kt)("mo",{parentName:"mrow",fence:"true"},")")),(0,m.kt)("mfrac",{parentName:"msup"},(0,m.kt)("mn",{parentName:"mfrac"},"1"),(0,m.kt)("mn",{parentName:"mfrac"},"3"))),(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("mo",{parentName:"mrow",fence:"true"},")")),(0,m.kt)("mo",{parentName:"mrow",fence:"true"},"]")),(0,m.kt)("mfrac",{parentName:"msup"},(0,m.kt)("mn",{parentName:"mfrac"},"1"),(0,m.kt)("mn",{parentName:"mfrac"},"2")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dn}{dt} = b_c \\left(\\frac{n^4}{n_0}\\right)^{\\frac{1}{3}}\\left[24\\pi Gm_Hn_0\\left(\\left(\\frac{n}{n_0}\\right)^{\\frac{1}{3}}-1\\right)\\right]^{\\frac{1}{2}}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"2.05744em",verticalAlign:"-0.686em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"3.3878700000000004em",verticalAlign:"-1.25003em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"b"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"mopen delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size3"},"(")),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.491108em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"4"))))))))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,m.kt)("span",{parentName:"span",className:"mclose delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size3"},")"))),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.8350280000000003em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-4.244008000000001em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter sizing reset-size3 size6"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8443142857142858em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.656em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.2255000000000003em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line mtight",style:{borderBottomWidth:"0.049em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.384em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.344em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter sizing reset-size3 size6"})))))))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"mopen delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size4"},"[")),(0,m.kt)("span",{parentName:"span",className:"mord"},"2"),(0,m.kt)("span",{parentName:"span",className:"mord"},"4"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"\u03c0"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"G"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"m"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"mopen delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size4"},"(")),(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"mopen delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size3"},"(")),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.10756em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,m.kt)("span",{parentName:"span",className:"mclose delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size3"},")"))),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.7939200000000002em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-4.2029000000000005em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter sizing reset-size3 size6"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8443142857142858em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.656em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.2255000000000003em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line mtight",style:{borderBottomWidth:"0.049em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.384em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.344em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter sizing reset-size3 size6"})))))))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mbin"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mclose delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size4"},")"))),(0,m.kt)("span",{parentName:"span",className:"mclose delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size4"},"]"))),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"2.1378400000000006em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-4.54682em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter sizing reset-size3 size6"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8443142857142858em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.656em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.2255000000000003em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line mtight",style:{borderBottomWidth:"0.049em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.384em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.344em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter sizing reset-size3 size6"}))))))))))))))),(0,m.kt)("p",null,"this is the rate of change of the number density of H nuclei (that is our density unit) which is passed to the integrator to be intregrated over time along with the abundances. ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"b"),(0,m.kt)("mi",{parentName:"msub"},"c"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"b_c")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.84444em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"b"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is ",(0,m.kt)("inlineCode",{parentName:"p"},"freefallFactor")," in the parameters, a factor used to slow the collapse. ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"n"),(0,m.kt)("mn",{parentName:"msub"},"0"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_0")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is the code's ",(0,m.kt)("inlineCode",{parentName:"p"},"initialDens")," parameter. We stop this collapse at ",(0,m.kt)("inlineCode",{parentName:"p"},"finalDens")," even if the model continues."),(0,m.kt)("h3",{id:"column-density"},"Column density"),(0,m.kt)("p",null,"We calculate the column density for a single point model or for the position closest to the cloud edge in 1D models, by dividing the total size of the cloud by the number of points and multiplying by density."),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"N"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"T"),(0,m.kt)("mi",{parentName:"mrow"},"o"),(0,m.kt)("mi",{parentName:"mrow"},"t"))),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("msub",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"msub"},"r"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"c"),(0,m.kt)("mi",{parentName:"mrow"},"l"),(0,m.kt)("mi",{parentName:"mrow"},"o"),(0,m.kt)("mi",{parentName:"mrow"},"u"),(0,m.kt)("mi",{parentName:"mrow"},"d"))),(0,m.kt)("msub",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"msub"},"N"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"p"),(0,m.kt)("mi",{parentName:"mrow"},"o"),(0,m.kt)("mi",{parentName:"mrow"},"i"),(0,m.kt)("mi",{parentName:"mrow"},"n"),(0,m.kt)("mi",{parentName:"mrow"},"t"),(0,m.kt)("mi",{parentName:"mrow"},"s")))),(0,m.kt)("mi",{parentName:"mrow"},"n"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,m.kt)("mi",{parentName:"mrow"},"r"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"N_{Tot} = \\frac{r_{cloud}}{N_{points}} n(r)")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.13889em"}},"T"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"2.079668em",verticalAlign:"-0.972108em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.1075599999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"p"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"n"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,m.kt)("span",{parentName:"span"})))))))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"r"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.02778em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.01968em"}},"l"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"u"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.972108em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"mopen"},"("),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"r"),(0,m.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,m.kt)("p",null,"For points further in, we simply do the same calculation but then add the column density of the previous point. If we work in from the edge (point 1) to the centre (point N), then we get the cumulative column density. A similar process is followed for the column densities of CO, H2 and C."),(0,m.kt)("p",null,"We can then calculate the Av,"),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"A"),(0,m.kt)("mi",{parentName:"mrow"},"v"),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("mi",{parentName:"mrow"},"A"),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"v"),(0,m.kt)("mn",{parentName:"msub"},"0")),(0,m.kt)("mo",{parentName:"mrow"},"+"),(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("msub",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"msub"},"N"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"T"),(0,m.kt)("mi",{parentName:"mrow"},"o"),(0,m.kt)("mi",{parentName:"mrow"},"t"))),(0,m.kt)("mrow",{parentName:"mfrac"},(0,m.kt)("mn",{parentName:"mrow"},"1.6"),(0,m.kt)("mo",{parentName:"mrow"},"\xd7"),(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"21")),(0,m.kt)("mi",{parentName:"mrow"},"c"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"m"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"2")))))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"Av = Av_0 + \\frac{N_{Tot}}{1.6 \\times 10^{21} cm^{-2}}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.68333em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"v"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"v"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03588em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mbin"},"+"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"2.1296600000000003em",verticalAlign:"-0.7693300000000001em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},"."),(0,m.kt)("span",{parentName:"span",className:"mord"},"6"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mbin"},"\xd7"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.740108em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.9890000000000003em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"c"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"m"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.740108em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.989em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2"))))))))))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.13889em"}},"T"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.7693300000000001em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"}))))))),(0,m.kt)("p",null,"where ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"A"),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"v"),(0,m.kt)("mn",{parentName:"msub"},"0"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"Av_0")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"v"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03588em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is the code's ",(0,m.kt)("inlineCode",{parentName:"p"},"baseAv")," parameter."))}k.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6c5fb57f.74294f30.js b/assets/js/6c5fb57f.74294f30.js new file mode 100644 index 00000000..a644ffec --- /dev/null +++ b/assets/js/6c5fb57f.74294f30.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3817],{3905:(a,e,s)=>{s.d(e,{Zo:()=>i,kt:()=>k});var t=s(7294);function n(a,e,s){return e in a?Object.defineProperty(a,e,{value:s,enumerable:!0,configurable:!0,writable:!0}):a[e]=s,a}function m(a,e){var s=Object.keys(a);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(a);e&&(t=t.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),s.push.apply(s,t)}return s}function p(a){for(var e=1;e=0||(n[s]=a[s]);return n}(a,e);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(a);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(a,s)&&(n[s]=a[s])}return n}var l=t.createContext({}),N=function(a){var e=t.useContext(l),s=e;return a&&(s="function"==typeof a?a(e):p(p({},e),a)),s},i=function(a){var e=N(a.components);return t.createElement(l.Provider,{value:e},a.children)},c={inlineCode:"code",wrapper:function(a){var e=a.children;return t.createElement(t.Fragment,{},e)}},o=t.forwardRef((function(a,e){var s=a.components,n=a.mdxType,m=a.originalType,l=a.parentName,i=r(a,["components","mdxType","originalType","parentName"]),o=N(s),k=n,h=o["".concat(l,".").concat(k)]||o[k]||c[k]||m;return s?t.createElement(h,p(p({ref:e},i),{},{components:s})):t.createElement(h,p({ref:e},i))}));function k(a,e){var s=arguments,n=e&&e.mdxType;if("string"==typeof a||n){var m=s.length,p=new Array(m);p[0]=o;var r={};for(var l in e)hasOwnProperty.call(e,l)&&(r[l]=e[l]);r.originalType=a,r.mdxType="string"==typeof a?a:n,p[1]=r;for(var N=2;N{s.r(e),s.d(e,{assets:()=>i,contentTitle:()=>l,default:()=>k,frontMatter:()=>r,metadata:()=>N,toc:()=>c});var t=s(7462),n=s(3366),m=(s(7294),s(3905)),p=["components"],r={id:"physics-core",title:"Core Physics"},l=void 0,N={unversionedId:"physics-core",id:"version-v3.1.0/physics-core",title:"Core Physics",description:"Each of the other physics doc pages details the specifics of a particular physics model. This one gives a general overview of the physics in UCLCHEM, including the core physics routines that are called for all models.",source:"@site/versioned_docs/version-v3.1.0/physics-core.md",sourceDirName:".",slug:"/physics-core",permalink:"/docs/v3.1.0/physics-core",draft:!1,tags:[],version:"v3.1.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"physics-core",title:"Core Physics"},sidebar:"docs",previous:{title:"Integration",permalink:"/docs/v3.1.0/trouble-integration"},next:{title:"Core Physics",permalink:"/docs/v3.1.0/physics-core"}},i={},c=[{value:"Model dimensions",id:"model-dimensions",level:2},{value:"Core Physics Processes",id:"core-physics-processes",level:2},{value:"Freefall",id:"freefall",level:3},{value:"Column density",id:"column-density",level:3}],o={toc:c};function k(a){var e=a.components,s=(0,n.Z)(a,p);return(0,m.kt)("wrapper",(0,t.Z)({},o,s,{components:e,mdxType:"MDXLayout"}),(0,m.kt)("p",null,"Each of the other physics doc pages details the specifics of a particular physics model. This one gives a general overview of the physics in UCLCHEM, including the core physics routines that are called for all models."),(0,m.kt)("h2",{id:"model-dimensions"},"Model dimensions"),(0,m.kt)("p",null,"Whilst it is most often used to model a single point, UCLCHEM is a 1D model. For most models, you provide the size of some cloud of gas (",(0,m.kt)("inlineCode",{parentName:"p"},"rout"),") and the number of positions along a 1D cut through this cloud you'd like to model (",(0,m.kt)("inlineCode",{parentName:"p"},"points"),"). UCLCHEM then divides the cloud up into the required number of equally sized segments and then models a point at the inner edge of each segment. In the image below, the user has specified that they would like to model six points between some rin and rout. The cloud has been split into six segments and the dots indicate the exact position at which"),(0,m.kt)("img",{src:"/img/cloud_points.png",width:"600","margin-left":"40%"}),(0,m.kt)("p",null,'The reason we have to specify the exact position of the "point" at which UCLCHEM evaluates the abundances is that it affects the column densities. We start our calculation at the edge (hence point 1 is closest to rout) and use the width of a single segment to calculate the column densities of H2, CO, and C as well as the total column density. This affects the photo-chemistry through UV attenuation and self-shielding. However, it is unlikely a user will model enough points to properly follow the UV chemistry in the low A',(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msub"}),(0,m.kt)("mi",{parentName:"msub"},"V"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_V")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.47833099999999995em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.22222em"}},"V")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," parts of the cloud, especially since the time dependent nature of the code means it could take some time. If a full 1D calculation becomes really important to you, you may wish to consider a more purpose built PDR solver such as ",(0,m.kt)("a",{parentName:"p",href:"https://uclchem.github.io/3dpdr"},"3D-PDR"),"."),(0,m.kt)("p",null,"A a result, we typically use UCLCHEM to model the cloud as a single point. Once we are far enough into the cloud that the A",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msub"}),(0,m.kt)("mi",{parentName:"msub"},"V"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_V")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.47833099999999995em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.22222em"}},"V")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is very high, the entire cloud tends to become homogenous in 1D models. Effectively, you can model the entire cloud with Av greater than about 5 as a single point and assume those abundances hold for the entire UV shielded region of the cloud. However, our 1D set up is useful for things like hot cores where the temperature and chemistry is really dominated by the central heating source, for which we treat the radial dependence quite well. You can then get a radial view of the chemistry with just a few points."),(0,m.kt)("h2",{id:"core-physics-processes"},"Core Physics Processes"),(0,m.kt)("h3",{id:"freefall"},"Freefall"),(0,m.kt)("p",null,"Many, but not all, models allow you to allow the gas to increase in density as if the gas begins to collapse under freefall from being stationary at the intial density. You turn this on with the ",(0,m.kt)("inlineCode",{parentName:"p"},"freefall")," toggle and the analytical equation for this is"),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"mrow"},"d"),(0,m.kt)("mi",{parentName:"mrow"},"n")),(0,m.kt)("mrow",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"mrow"},"d"),(0,m.kt)("mi",{parentName:"mrow"},"t"))),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"b"),(0,m.kt)("mi",{parentName:"msub"},"c")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow",fence:"true"},"("),(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("msup",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"msup"},"n"),(0,m.kt)("mn",{parentName:"msup"},"4")),(0,m.kt)("msub",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"msub"},"n"),(0,m.kt)("mn",{parentName:"msub"},"0"))),(0,m.kt)("mo",{parentName:"mrow",fence:"true"},")")),(0,m.kt)("mfrac",{parentName:"msup"},(0,m.kt)("mn",{parentName:"mfrac"},"1"),(0,m.kt)("mn",{parentName:"mfrac"},"3"))),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow",fence:"true"},"["),(0,m.kt)("mn",{parentName:"mrow"},"24"),(0,m.kt)("mi",{parentName:"mrow"},"\u03c0"),(0,m.kt)("mi",{parentName:"mrow"},"G"),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"m"),(0,m.kt)("mi",{parentName:"msub"},"H")),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"n"),(0,m.kt)("mn",{parentName:"msub"},"0")),(0,m.kt)("mrow",{parentName:"mrow"},(0,m.kt)("mo",{parentName:"mrow",fence:"true"},"("),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow",fence:"true"},"("),(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"mfrac"},"n"),(0,m.kt)("msub",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"msub"},"n"),(0,m.kt)("mn",{parentName:"msub"},"0"))),(0,m.kt)("mo",{parentName:"mrow",fence:"true"},")")),(0,m.kt)("mfrac",{parentName:"msup"},(0,m.kt)("mn",{parentName:"mfrac"},"1"),(0,m.kt)("mn",{parentName:"mfrac"},"3"))),(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("mo",{parentName:"mrow",fence:"true"},")")),(0,m.kt)("mo",{parentName:"mrow",fence:"true"},"]")),(0,m.kt)("mfrac",{parentName:"msup"},(0,m.kt)("mn",{parentName:"mfrac"},"1"),(0,m.kt)("mn",{parentName:"mfrac"},"2")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dn}{dt} = b_c \\left(\\frac{n^4}{n_0}\\right)^{\\frac{1}{3}}\\left[24\\pi Gm_Hn_0\\left(\\left(\\frac{n}{n_0}\\right)^{\\frac{1}{3}}-1\\right)\\right]^{\\frac{1}{2}}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"2.05744em",verticalAlign:"-0.686em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"3.3878700000000004em",verticalAlign:"-1.25003em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"b"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"mopen delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size3"},"(")),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.491108em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"4"))))))))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,m.kt)("span",{parentName:"span",className:"mclose delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size3"},")"))),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.8350280000000003em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-4.244008000000001em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter sizing reset-size3 size6"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8443142857142858em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.656em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.2255000000000003em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line mtight",style:{borderBottomWidth:"0.049em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.384em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.344em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter sizing reset-size3 size6"})))))))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"mopen delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size4"},"[")),(0,m.kt)("span",{parentName:"span",className:"mord"},"2"),(0,m.kt)("span",{parentName:"span",className:"mord"},"4"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"\u03c0"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"G"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"m"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"mopen delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size4"},"(")),(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"mopen delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size3"},"(")),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.10756em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,m.kt)("span",{parentName:"span",className:"mclose delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size3"},")"))),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.7939200000000002em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-4.2029000000000005em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter sizing reset-size3 size6"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8443142857142858em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.656em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.2255000000000003em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line mtight",style:{borderBottomWidth:"0.049em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.384em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.344em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter sizing reset-size3 size6"})))))))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mbin"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mclose delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size4"},")"))),(0,m.kt)("span",{parentName:"span",className:"mclose delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size4"},"]"))),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"2.1378400000000006em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-4.54682em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter sizing reset-size3 size6"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8443142857142858em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.656em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.2255000000000003em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line mtight",style:{borderBottomWidth:"0.049em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.384em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.344em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter sizing reset-size3 size6"}))))))))))))))),(0,m.kt)("p",null,"this is the rate of change of the number density of H nuclei (that is our density unit) which is passed to the integrator to be intregrated over time along with the abundances. ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"b"),(0,m.kt)("mi",{parentName:"msub"},"c"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"b_c")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.84444em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"b"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is ",(0,m.kt)("inlineCode",{parentName:"p"},"freefallFactor")," in the parameters, a factor used to slow the collapse. ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"n"),(0,m.kt)("mn",{parentName:"msub"},"0"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_0")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is the code's ",(0,m.kt)("inlineCode",{parentName:"p"},"initialDens")," parameter. We stop this collapse at ",(0,m.kt)("inlineCode",{parentName:"p"},"finalDens")," even if the model continues."),(0,m.kt)("h3",{id:"column-density"},"Column density"),(0,m.kt)("p",null,"We calculate the column density for a single point model or for the position closest to the cloud edge in 1D models, by dividing the total size of the cloud by the number of points and multiplying by density."),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"N"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"T"),(0,m.kt)("mi",{parentName:"mrow"},"o"),(0,m.kt)("mi",{parentName:"mrow"},"t"))),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("msub",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"msub"},"r"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"c"),(0,m.kt)("mi",{parentName:"mrow"},"l"),(0,m.kt)("mi",{parentName:"mrow"},"o"),(0,m.kt)("mi",{parentName:"mrow"},"u"),(0,m.kt)("mi",{parentName:"mrow"},"d"))),(0,m.kt)("msub",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"msub"},"N"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"p"),(0,m.kt)("mi",{parentName:"mrow"},"o"),(0,m.kt)("mi",{parentName:"mrow"},"i"),(0,m.kt)("mi",{parentName:"mrow"},"n"),(0,m.kt)("mi",{parentName:"mrow"},"t"),(0,m.kt)("mi",{parentName:"mrow"},"s")))),(0,m.kt)("mi",{parentName:"mrow"},"n"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,m.kt)("mi",{parentName:"mrow"},"r"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"N_{Tot} = \\frac{r_{cloud}}{N_{points}} n(r)")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.13889em"}},"T"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"2.079668em",verticalAlign:"-0.972108em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.1075599999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"p"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"n"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,m.kt)("span",{parentName:"span"})))))))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"r"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.02778em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.01968em"}},"l"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"u"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.972108em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"mopen"},"("),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"r"),(0,m.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,m.kt)("p",null,"For points further in, we simply do the same calculation but then add the column density of the previous point. If we work in from the edge (point 1) to the centre (point N), then we get the cumulative column density. A similar process is followed for the column densities of CO, H2 and C."),(0,m.kt)("p",null,"We can then calculate the Av,"),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"A"),(0,m.kt)("mi",{parentName:"mrow"},"v"),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("mi",{parentName:"mrow"},"A"),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"v"),(0,m.kt)("mn",{parentName:"msub"},"0")),(0,m.kt)("mo",{parentName:"mrow"},"+"),(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("msub",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"msub"},"N"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"T"),(0,m.kt)("mi",{parentName:"mrow"},"o"),(0,m.kt)("mi",{parentName:"mrow"},"t"))),(0,m.kt)("mrow",{parentName:"mfrac"},(0,m.kt)("mn",{parentName:"mrow"},"1.6"),(0,m.kt)("mo",{parentName:"mrow"},"\xd7"),(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"21")),(0,m.kt)("mi",{parentName:"mrow"},"c"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"m"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"2")))))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"Av = Av_0 + \\frac{N_{Tot}}{1.6 \\times 10^{21} cm^{-2}}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.68333em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"v"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"v"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03588em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mbin"},"+"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"2.1296600000000003em",verticalAlign:"-0.7693300000000001em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},"."),(0,m.kt)("span",{parentName:"span",className:"mord"},"6"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mbin"},"\xd7"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.740108em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.9890000000000003em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"c"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"m"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.740108em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.989em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2"))))))))))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.13889em"}},"T"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.7693300000000001em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"}))))))),(0,m.kt)("p",null,"where ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"A"),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"v"),(0,m.kt)("mn",{parentName:"msub"},"0"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"Av_0")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"v"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03588em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is the code's ",(0,m.kt)("inlineCode",{parentName:"p"},"baseAv")," parameter."))}k.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7080.f1a0bfcf.js b/assets/js/7080.f1a0bfcf.js new file mode 100644 index 00000000..e9798ae9 --- /dev/null +++ b/assets/js/7080.f1a0bfcf.js @@ -0,0 +1 @@ +(self.webpackChunk=self.webpackChunk||[]).push([[7080],{3905:(e,t,n)=>{"use strict";n.d(t,{Zo:()=>u,kt:()=>p});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),s=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},u=function(e){var t=s(e.components);return r.createElement(c.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),d=s(n),p=a,f=d["".concat(c,".").concat(p)]||d[p]||m[p]||o;return n?r.createElement(f,l(l({ref:t},u),{},{components:n})):r.createElement(f,l({ref:t},u))}));function p(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:a,l[1]=i;for(var s=2;s{"use strict";n.d(t,{Z:()=>d});var r=n(7294),a=n(5999),o=n(5281),l=n(7462),i=n(3366),c=n(6010);const s="iconEdit_Z9Sw";var u=["className"];function m(e){var t=e.className,n=(0,i.Z)(e,u);return r.createElement("svg",(0,l.Z)({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,c.Z)(s,t),"aria-hidden":"true"},n),r.createElement("g",null,r.createElement("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})))}function d(e){var t=e.editUrl;return r.createElement("a",{href:t,target:"_blank",rel:"noreferrer noopener",className:o.k.common.editThisPage},r.createElement(m,null),r.createElement(a.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page"},"Edit this page"))}},2503:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7462),a=n(3366),o=n(7294),l=n(6010),i=n(5999),c=n(6668),s=n(9960);const u="anchorWithStickyNavbar_LWe7",m="anchorWithHideOnScrollNavbar_WYt5";var d=["as","id"];function p(e){var t=e.as,n=e.id,p=(0,a.Z)(e,d),f=(0,c.L)().navbar.hideOnScroll;if("h1"===t||!n)return o.createElement(t,(0,r.Z)({},p,{id:void 0}));var v=(0,i.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof p.children?p.children:n});return o.createElement(t,(0,r.Z)({},p,{className:(0,l.Z)("anchor",f?m:u,p.className),id:n}),p.children,o.createElement(s.Z,{className:"hash-link",to:"#"+n,"aria-label":v,title:v},"\u200b"))}},7525:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Te});var r=n(7294),a=n(3905),o=n(7462),l=n(3366),i=n(5742),c=["mdxType","originalType"];var s=n(2389),u=n(6010),m=n(2949),d=n(6668);function p(){var e=(0,d.L)().prism,t=(0,m.I)().colorMode,n=e.theme,r=e.darkTheme||n;return"dark"===t?r:n}var f=n(5281),v=n(6528),h=n(7594),g=n.n(h),y=(0,v.Z)(/title=(["'])(.*?)\1/,{quote:1,title:2}),b=(0,v.Z)(/\{([\d,-]+)\}/,{range:1}),E={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}};function k(e,t){var n=e.map((function(e){var n=E[e],r=n.start,a=n.end;return"(?:"+r+"\\s*("+t.flatMap((function(e){var t,n;return[e.line,null==(t=e.block)?void 0:t.start,null==(n=e.block)?void 0:n.end].filter(Boolean)})).join("|")+")\\s*"+a+")"})).join("|");return new RegExp("^\\s*(?:"+n+")\\s*$")}function N(e,t){var n=e.replace(/\n$/,""),r=t.language,a=t.magicComments,o=t.metastring;if(o&&b.test(o)){var l=o.match(b).groups.range;if(0===a.length)throw new Error("A highlight range has been given in code block's metastring (``` "+o+"), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.");var i=a[0].className,c=g()(l).filter((function(e){return e>0})).map((function(e){return[e-1,[i]]}));return{lineClassNames:Object.fromEntries(c),code:n}}if(void 0===r)return{lineClassNames:{},code:n};for(var s=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return k(["js","jsBlock"],t);case"jsx":case"tsx":return k(["js","jsBlock","jsx"],t);case"html":return k(["js","jsBlock","html"],t);case"python":case"py":case"bash":return k(["bash"],t);case"markdown":case"md":return k(["html","jsx","bash"],t);default:return k(Object.keys(E),t)}}(r,a),u=n.split("\n"),m=Object.fromEntries(a.map((function(e){return[e.className,{start:0,range:""}]}))),d=Object.fromEntries(a.filter((function(e){return e.line})).map((function(e){var t=e.className;return[e.line,t]}))),p=Object.fromEntries(a.filter((function(e){return e.block})).map((function(e){var t=e.className;return[e.block.start,t]}))),f=Object.fromEntries(a.filter((function(e){return e.block})).map((function(e){var t=e.className;return[e.block.end,t]}))),v=0;v0&&e[n-1]===t?e:e.concat(t)},M=function(e,t){var n=e.plain,r=Object.create(null),a=e.styles.reduce((function(e,n){var r=n.languages,a=n.style;return r&&!r.includes(t)||n.types.forEach((function(t){var n=P({},e[t],a);e[t]=n})),e}),r);return a.root=n,a.plain=P({},n,{backgroundColor:null}),a};function D(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&-1===t.indexOf(r)&&(n[r]=e[r]);return n}const H=function(e){function t(){for(var t=this,n=[],r=arguments.length;r--;)n[r]=arguments[r];e.apply(this,n),S(this,"getThemeDict",(function(e){if(void 0!==t.themeDict&&e.theme===t.prevTheme&&e.language===t.prevLanguage)return t.themeDict;t.prevTheme=e.theme,t.prevLanguage=e.language;var n=e.theme?M(e.theme,e.language):void 0;return t.themeDict=n})),S(this,"getLineProps",(function(e){var n=e.key,r=e.className,a=e.style,o=P({},D(e,["key","className","style","line"]),{className:"token-line",style:void 0,key:void 0}),l=t.getThemeDict(t.props);return void 0!==l&&(o.style=l.plain),void 0!==a&&(o.style=void 0!==o.style?P({},o.style,a):a),void 0!==n&&(o.key=n),r&&(o.className+=" "+r),o})),S(this,"getStyleForToken",(function(e){var n=e.types,r=e.empty,a=n.length,o=t.getThemeDict(t.props);if(void 0!==o){if(1===a&&"plain"===n[0])return r?{display:"inline-block"}:void 0;if(1===a&&!r)return o[n[0]];var l=r?{display:"inline-block"}:{},i=n.map((function(e){return o[e]}));return Object.assign.apply(Object,[l].concat(i))}})),S(this,"getTokenProps",(function(e){var n=e.key,r=e.className,a=e.style,o=e.token,l=P({},D(e,["key","className","style","token"]),{className:"token "+o.types.join(" "),children:o.content,style:t.getStyleForToken(o),key:void 0});return void 0!==a&&(l.style=void 0!==l.style?P({},l.style,a):a),void 0!==n&&(l.key=n),r&&(l.className+=" "+r),l})),S(this,"tokenize",(function(e,t,n,r){var a={code:t,grammar:n,language:r,tokens:[]};e.hooks.run("before-tokenize",a);var o=a.tokens=e.tokenize(a.code,a.grammar,a.language);return e.hooks.run("after-tokenize",a),o}))}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.render=function(){var e=this.props,t=e.Prism,n=e.language,r=e.code,a=e.children,o=this.getThemeDict(this.props),l=t.languages[n];return a({tokens:function(e){for(var t=[[]],n=[e],r=[0],a=[e.length],o=0,l=0,i=[],c=[i];l>-1;){for(;(o=r[l]++)0?u:["plain"],s=m):(u=I(u,m.type),m.alias&&(u=I(u,m.alias)),s=m.content),"string"==typeof s){var d=s.split(z),p=d.length;i.push({types:u,content:d[0]});for(var f=1;f0&&(i=l.getRangeAt(0)),r.append(a),a.select(),a.selectionStart=0,a.selectionEnd=e.length;var c=!1;try{c=document.execCommand("copy")}catch(s){}a.remove(),i&&(l.removeAllRanges(),l.addRange(i)),o&&o.focus()}(t),l(!0),i.current=window.setTimeout((function(){l(!1)}),1e3)}),[t]);return(0,r.useEffect)((function(){return function(){return window.clearTimeout(i.current)}}),[]),r.createElement("button",{type:"button","aria-label":o?(0,q.I)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,q.I)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,q.I)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,u.Z)("clean-btn",n,$.copyButton,o&&$.copyButtonCopied),onClick:c},r.createElement("span",{className:$.copyButtonIcons,"aria-hidden":"true"},r.createElement(G,{className:$.copyButtonIcon}),r.createElement(U,{className:$.copyButtonSuccessIcon})))}function X(e){return r.createElement("svg",(0,o.Z)({viewBox:"0 0 24 24"},e),r.createElement("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"}))}const Y="wordWrapButtonIcon_Bwma",J="wordWrapButtonEnabled_EoeP";function K(e){var t=e.className,n=e.onClick,a=e.isEnabled,o=(0,q.I)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return r.createElement("button",{type:"button",onClick:n,className:(0,u.Z)("clean-btn",t,a&&J),"aria-label":o,title:o},r.createElement(X,{className:Y,"aria-hidden":"true"}))}function ee(e){var t,n,a,l,i,c,s,m,f,v,h,g=e.children,b=e.className,E=void 0===b?"":b,k=e.metastring,C=e.title,Z=e.showLineNumbers,B=e.language,j=(0,d.L)().prism,_=j.defaultLanguage,O=j.magicComments,S=null!=(t=null!=B?B:null==(n=E.split(" ").find((function(e){return e.startsWith("language-")})))?void 0:n.replace(/language-/,""))?t:_,P=p(),z=(a=(0,r.useState)(!1),l=a[0],i=a[1],c=(0,r.useState)(!1),s=c[0],m=c[1],f=(0,r.useRef)(null),v=(0,r.useCallback)((function(){var e=f.current.querySelector("code");l?e.removeAttribute("style"):(e.style.whiteSpace="pre-wrap",e.style.overflowWrap="anywhere"),i((function(e){return!e}))}),[f,l]),h=(0,r.useCallback)((function(){var e=f.current,t=e.scrollWidth>e.clientWidth||f.current.querySelector("code").hasAttribute("style");m(t)}),[f]),L(f,h),(0,r.useEffect)((function(){h()}),[l,h]),(0,r.useEffect)((function(){return window.addEventListener("resize",h,{passive:!0}),function(){window.removeEventListener("resize",h)}}),[h]),{codeBlockRef:f,isEnabled:l,isCodeScrollable:s,toggle:v}),A=function(e){var t,n;return null!=(t=null==e||null==(n=e.match(y))?void 0:n.groups.title)?t:""}(k)||C,I=N(g,{metastring:k,language:S,magicComments:O}),M=I.lineClassNames,D=I.code,V=null!=Z?Z:function(e){return Boolean(null==e?void 0:e.includes("showLineNumbers"))}(k);return r.createElement(w,{as:"div",className:(0,u.Z)(E,S&&!E.includes("language-"+S)&&"language-"+S)},A&&r.createElement("div",{className:T.codeBlockTitle},A),r.createElement("div",{className:T.codeBlockContent},r.createElement(H,(0,o.Z)({},x,{theme:P,code:D,language:null!=S?S:"text"}),(function(e){var t=e.className,n=e.tokens,a=e.getLineProps,o=e.getTokenProps;return r.createElement("pre",{tabIndex:0,ref:z.codeBlockRef,className:(0,u.Z)(t,T.codeBlock,"thin-scrollbar")},r.createElement("code",{className:(0,u.Z)(T.codeBlockLines,V&&T.codeBlockLinesWithNumbering)},n.map((function(e,t){return r.createElement(F,{key:t,line:e,getLineProps:a,getTokenProps:o,classNames:M[t],showLineNumbers:V})}))))})),r.createElement("div",{className:T.buttonGroup},(z.isEnabled||z.isCodeScrollable)&&r.createElement(K,{className:T.codeButton,onClick:function(){return z.toggle()},isEnabled:z.isEnabled}),r.createElement(Q,{className:T.codeButton,code:D}))))}var te=["children"];function ne(e){var t=e.children,n=(0,l.Z)(e,te),a=(0,s.Z)(),i=function(e){return r.Children.toArray(e).some((function(e){return(0,r.isValidElement)(e)}))?e:Array.isArray(e)?e.join(""):e}(t),c="string"==typeof i?ee:B;return r.createElement(c,(0,o.Z)({key:String(a)},n),i)}var re=n(9960);var ae=n(6043);const oe="details_lb9f",le="isBrowser_bmU9",ie="collapsibleContent_i85q";var ce=["summary","children"];function se(e){return!!e&&("SUMMARY"===e.tagName||se(e.parentElement))}function ue(e,t){return!!e&&(e===t||ue(e.parentElement,t))}function me(e){var t=e.summary,n=e.children,a=(0,l.Z)(e,ce),i=(0,s.Z)(),c=(0,r.useRef)(null),m=(0,ae.u)({initialState:!a.open}),d=m.collapsed,p=m.setCollapsed,f=(0,r.useState)(a.open),v=f[0],h=f[1],g=r.isValidElement(t)?t:r.createElement("summary",null,null!=t?t:"Details");return r.createElement("details",(0,o.Z)({},a,{ref:c,open:v,"data-collapsed":d,className:(0,u.Z)(oe,i&&le,a.className),onMouseDown:function(e){se(e.target)&&e.detail>1&&e.preventDefault()},onClick:function(e){e.stopPropagation();var t=e.target;se(t)&&ue(t,c.current)&&(e.preventDefault(),d?(p(!1),h(!0)):p(!0))}}),g,r.createElement(ae.z,{lazy:!1,collapsed:d,disableSSRStyle:!0,onCollapseTransitionEnd:function(e){p(e),h(!e)}},r.createElement("div",{className:ie},n)))}const de="details_b_Ee";function pe(e){var t=Object.assign({},(function(e){if(null==e)throw new TypeError("Cannot destructure "+e)}(e),e));return r.createElement(me,(0,o.Z)({},t,{className:(0,u.Z)("alert alert--info",de,t.className)}))}var fe=n(2503);function ve(e){return r.createElement(fe.Z,e)}const he="containsTaskList_mC6p";const ge="img_ev3q";const ye="admonition_LlT9",be="admonitionHeading_tbUL",Ee="admonitionIcon_kALy",ke="admonitionContent_S0QG";var Ne={note:{infimaClassName:"secondary",iconComponent:function(){return r.createElement("svg",{viewBox:"0 0 14 16"},r.createElement("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"}))},label:r.createElement(q.Z,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)"},"note")},tip:{infimaClassName:"success",iconComponent:function(){return r.createElement("svg",{viewBox:"0 0 12 16"},r.createElement("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))},label:r.createElement(q.Z,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)"},"tip")},danger:{infimaClassName:"danger",iconComponent:function(){return r.createElement("svg",{viewBox:"0 0 12 16"},r.createElement("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"}))},label:r.createElement(q.Z,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)"},"danger")},info:{infimaClassName:"info",iconComponent:function(){return r.createElement("svg",{viewBox:"0 0 14 16"},r.createElement("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))},label:r.createElement(q.Z,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)"},"info")},caution:{infimaClassName:"warning",iconComponent:function(){return r.createElement("svg",{viewBox:"0 0 16 16"},r.createElement("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"}))},label:r.createElement(q.Z,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)"},"caution")}},Ce={secondary:"note",important:"info",success:"tip",warning:"danger"};function Ze(e){var t,n=function(e){var t=r.Children.toArray(e),n=t.find((function(e){var t;return r.isValidElement(e)&&"mdxAdmonitionTitle"===(null==(t=e.props)?void 0:t.mdxType)})),a=r.createElement(r.Fragment,null,t.filter((function(e){return e!==n})));return{mdxAdmonitionTitle:n,rest:a}}(e.children),a=n.mdxAdmonitionTitle,o=n.rest;return Object.assign({},e,{title:null!=(t=e.title)?t:a,children:o})}const we={head:function(e){var t=r.Children.map(e.children,(function(e){return r.isValidElement(e)?function(e){var t;if(null!=(t=e.props)&&t.mdxType&&e.props.originalType){var n=e.props,a=(n.mdxType,n.originalType,(0,l.Z)(n,c));return r.createElement(e.props.originalType,a)}return e}(e):e}));return r.createElement(i.Z,e,t)},code:function(e){var t=["a","abbr","b","br","button","cite","code","del","dfn","em","i","img","input","ins","kbd","label","object","output","q","ruby","s","small","span","strong","sub","sup","time","u","var","wbr"];return r.Children.toArray(e.children).every((function(e){var n;return"string"==typeof e&&!e.includes("\n")||(0,r.isValidElement)(e)&&t.includes(null==(n=e.props)?void 0:n.mdxType)}))?r.createElement("code",e):r.createElement(ne,e)},a:function(e){return r.createElement(re.Z,e)},pre:function(e){var t;return r.createElement(ne,(0,r.isValidElement)(e.children)&&"code"===(null==(t=e.children.props)?void 0:t.originalType)?e.children.props:Object.assign({},e))},details:function(e){var t=r.Children.toArray(e.children),n=t.find((function(e){var t;return r.isValidElement(e)&&"summary"===(null==(t=e.props)?void 0:t.mdxType)})),a=r.createElement(r.Fragment,null,t.filter((function(e){return e!==n})));return r.createElement(pe,(0,o.Z)({},e,{summary:n}),a)},ul:function(e){return r.createElement("ul",(0,o.Z)({},e,{className:(t=e.className,(0,u.Z)(t,(null==t?void 0:t.includes("contains-task-list"))&&he))}));var t},img:function(e){return r.createElement("img",(0,o.Z)({loading:"lazy"},e,{className:(t=e.className,(0,u.Z)(t,ge))}));var t},h1:function(e){return r.createElement(ve,(0,o.Z)({as:"h1"},e))},h2:function(e){return r.createElement(ve,(0,o.Z)({as:"h2"},e))},h3:function(e){return r.createElement(ve,(0,o.Z)({as:"h3"},e))},h4:function(e){return r.createElement(ve,(0,o.Z)({as:"h4"},e))},h5:function(e){return r.createElement(ve,(0,o.Z)({as:"h5"},e))},h6:function(e){return r.createElement(ve,(0,o.Z)({as:"h6"},e))},admonition:function(e){var t=Ze(e),n=t.children,a=t.type,o=t.title,l=t.icon,i=function(e){var t,n=null!=(t=Ce[e])?t:e;return Ne[n]||(console.warn('No admonition config found for admonition type "'+n+'". Using Info as fallback.'),Ne.info)}(a),c=null!=o?o:i.label,s=i.iconComponent,m=null!=l?l:r.createElement(s,null);return r.createElement("div",{className:(0,u.Z)(f.k.common.admonition,f.k.common.admonitionType(e.type),"alert","alert--"+i.infimaClassName,ye)},r.createElement("div",{className:be},r.createElement("span",{className:Ee},m),c),r.createElement("div",{className:ke},n))},mermaid:n(1875).Z};function Te(e){var t=e.children;return r.createElement(a.Zo,{components:we},t)}},2244:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l});var r=n(7294),a=n(6010),o=n(9960);function l(e){var t=e.permalink,n=e.title,l=e.subLabel,i=e.isNext;return r.createElement(o.Z,{className:(0,a.Z)("pagination-nav__link",i?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},l&&r.createElement("div",{className:"pagination-nav__sublabel"},l),r.createElement("div",{className:"pagination-nav__label"},n))}},6233:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7294),a=n(6010),o=n(5999),l=n(9960);const i="tag_zVej",c="tagRegular_sFm0",s="tagWithCount_h2kH";function u(e){var t=e.permalink,n=e.label,o=e.count;return r.createElement(l.Z,{href:t,className:(0,a.Z)(i,o?s:c)},n,o&&r.createElement("span",null,o))}const m="tags_jXut",d="tag_QGVx";function p(e){var t=e.tags;return r.createElement(r.Fragment,null,r.createElement("b",null,r.createElement(o.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list"},"Tags:")),r.createElement("ul",{className:(0,a.Z)(m,"padding--none","margin-left--sm")},t.map((function(e){var t=e.label,n=e.permalink;return r.createElement("li",{key:n,className:d},r.createElement(u,{label:t,permalink:n}))}))))}},7594:(e,t)=>{function n(e){let t,n=[];for(let r of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(r))n.push(parseInt(r,10));else if(t=r.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,r,a,o]=t;if(r&&o){r=parseInt(r),o=parseInt(o);const e=r{r.d(t,{Zo:()=>p,kt:()=>u});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),c=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=c(r),u=o,f=d["".concat(l,".").concat(u)]||d[u]||h[u]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function u(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:o,i[1]=s;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>u,frontMatter:()=>s,metadata:()=>c,toc:()=>h});var n=r(7462),o=r(3366),a=(r(7294),r(3905)),i=["components"],s={title:"Collapsing Prestellar Cores - a new physics module",author:"jonholdship"},l=void 0,c={permalink:"/blog/2018/07/12/felix-collapse",source:"@site/blog/2018-07-12-felix-collapse.md",title:"Collapsing Prestellar Cores - a new physics module",description:"Felix Priestley has used UCLCHEM to study the collapse of prestellar cores. In the process, he's created a new physics module collapse.f90 which follows a sphere of gas collapsing in different ways. The paper can be found here and the abstract is below.",date:"2018-07-12T00:00:00.000Z",formattedDate:"July 12, 2018",tags:[],readingTime:1.505,truncated:!1,authors:[{name:"jonholdship"}],frontMatter:{title:"Collapsing Prestellar Cores - a new physics module",author:"jonholdship"},prevItem:{title:"Nitrogen fractionation in external galaxies",permalink:"/blog/2019/04/19/serena-nitrogen-frac"},nextItem:{title:"The Chemistry of Phosphorus-bearing Molecules under Energetic Phenomena",permalink:"/blog/2018/06/20/izaskun-phosphorus"}},p={authorsImageUrls:[void 0]},h=[],d={toc:h};function u(e){var t=e.components,r=(0,o.Z)(e,i);return(0,a.kt)("wrapper",(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"https://fpriestley.github.io/"},"Felix Priestley")," has used UCLCHEM to study the collapse of prestellar cores. In the process, he's created a new physics module ",(0,a.kt)("inlineCode",{parentName:"p"},"collapse.f90")," which follows a sphere of gas collapsing in different ways. The ",(0,a.kt)("a",{parentName:"p",href:"https://arxiv.org/pdf/1806.01699.pdf"},"paper can be found here")," and the abstract is below."),(0,a.kt)("p",null,"Peptide bonds (N-C = O) play a key role in metabolic processes since they link amino acids into peptide chains or proteins. Recently, several molecules containing peptide-like bonds have been detected across multiple environments in the interstellar medium, growing the need to fully understand their chemistry and their role in forming larger pre-biotic molecules. We present a comprehensive study of the chemistry of three molecules containing peptide-like bonds: HNCO, NH2CHO, and CH3NCO. We also included other CHNO isomers (HCNO, HOCN) and C2H3NO isomers (CH3OCN, CH3CNO) to the study. We have used the UCLCHEM gas-grain chemical code and included in our chemical network all possible formation/destruction pathways of these peptide-like molecules recently investigated either by theoretical calculations or in laboratory experiments. Our predictions are compared to observations obtained towards the proto-star IRAS 16293-2422 and the L1544 pre-stellar core. Our results show that some key reactions involving the CHNO and C2H3NO isomers need to be modified to match the observations. Consistently with recent laboratory findings, hydrogenation is unlikely to produce NH2CHO on grain surfaces, while a combination of radical-radical surface reactions and gas-phase reactions is a better alternative. In addition, better results are obtained for NH2CHO when a slightly higher activation energy of 25 K is considered for the gas-phase reaction NH2 + H2CO \u2192 NH2CHO + H. Finally, our modelling shows that the observed correlation between NH2CHO and HNCO in star-forming regions may come from the fact that HNCO and NH2CHO react to temperature in the same manner rather than from a direct chemical link between the two species."))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2433],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>u});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),c=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=c(r),u=o,f=d["".concat(l,".").concat(u)]||d[u]||h[u]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function u(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:o,i[1]=s;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>u,frontMatter:()=>s,metadata:()=>c,toc:()=>h});var n=r(7462),o=r(3366),a=(r(7294),r(3905)),i=["components"],s={title:"Collapsing Prestellar Cores - a new physics module",author:"jonholdship"},l=void 0,c={permalink:"/blog/2018/07/12/felix-collapse",source:"@site/blog/2018-07-12-felix-collapse.md",title:"Collapsing Prestellar Cores - a new physics module",description:"Felix Priestley has used UCLCHEM to study the collapse of prestellar cores. In the process, he's created a new physics module collapse.f90 which follows a sphere of gas collapsing in different ways. The paper can be found here and the abstract is below.",date:"2018-07-12T00:00:00.000Z",formattedDate:"July 12, 2018",tags:[],readingTime:1.505,hasTruncateMarker:!1,authors:[{name:"jonholdship"}],frontMatter:{title:"Collapsing Prestellar Cores - a new physics module",author:"jonholdship"},prevItem:{title:"Nitrogen fractionation in external galaxies",permalink:"/blog/2019/04/19/serena-nitrogen-frac"},nextItem:{title:"The Chemistry of Phosphorus-bearing Molecules under Energetic Phenomena",permalink:"/blog/2018/06/20/izaskun-phosphorus"}},p={authorsImageUrls:[void 0]},h=[],d={toc:h};function u(e){var t=e.components,r=(0,o.Z)(e,i);return(0,a.kt)("wrapper",(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"https://fpriestley.github.io/"},"Felix Priestley")," has used UCLCHEM to study the collapse of prestellar cores. In the process, he's created a new physics module ",(0,a.kt)("inlineCode",{parentName:"p"},"collapse.f90")," which follows a sphere of gas collapsing in different ways. The ",(0,a.kt)("a",{parentName:"p",href:"https://arxiv.org/pdf/1806.01699.pdf"},"paper can be found here")," and the abstract is below."),(0,a.kt)("p",null,"Peptide bonds (N-C = O) play a key role in metabolic processes since they link amino acids into peptide chains or proteins. Recently, several molecules containing peptide-like bonds have been detected across multiple environments in the interstellar medium, growing the need to fully understand their chemistry and their role in forming larger pre-biotic molecules. We present a comprehensive study of the chemistry of three molecules containing peptide-like bonds: HNCO, NH2CHO, and CH3NCO. We also included other CHNO isomers (HCNO, HOCN) and C2H3NO isomers (CH3OCN, CH3CNO) to the study. We have used the UCLCHEM gas-grain chemical code and included in our chemical network all possible formation/destruction pathways of these peptide-like molecules recently investigated either by theoretical calculations or in laboratory experiments. Our predictions are compared to observations obtained towards the proto-star IRAS 16293-2422 and the L1544 pre-stellar core. Our results show that some key reactions involving the CHNO and C2H3NO isomers need to be modified to match the observations. Consistently with recent laboratory findings, hydrogenation is unlikely to produce NH2CHO on grain surfaces, while a combination of radical-radical surface reactions and gas-phase reactions is a better alternative. In addition, better results are obtained for NH2CHO when a slightly higher activation energy of 25 K is considered for the gas-phase reaction NH2 + H2CO \u2192 NH2CHO + H. Finally, our modelling shows that the observed correlation between NH2CHO and HNCO in star-forming regions may come from the fact that HNCO and NH2CHO react to temperature in the same manner rather than from a direct chemical link between the two species."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7aa4d0e1.8869f2b3.js b/assets/js/7aa4d0e1.8869f2b3.js deleted file mode 100644 index 0e3d3383..00000000 --- a/assets/js/7aa4d0e1.8869f2b3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9002],{3905:(t,a,e)=>{e.d(a,{Zo:()=>s,kt:()=>N});var n=e(7294);function r(t,a,e){return a in t?Object.defineProperty(t,a,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[a]=e,t}function l(t,a){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);a&&(n=n.filter((function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable}))),e.push.apply(e,n)}return e}function i(t){for(var a=1;a=0||(r[e]=t[e]);return r}(t,a);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,e)&&(r[e]=t[e])}return r}var p=n.createContext({}),o=function(t){var a=n.useContext(p),e=a;return t&&(e="function"==typeof t?t(a):i(i({},a),t)),e},s=function(t){var a=o(t.components);return n.createElement(p.Provider,{value:a},t.children)},d={inlineCode:"code",wrapper:function(t){var a=t.children;return n.createElement(n.Fragment,{},a)}},u=n.forwardRef((function(t,a){var e=t.components,r=t.mdxType,l=t.originalType,p=t.parentName,s=m(t,["components","mdxType","originalType","parentName"]),u=o(e),N=r,k=u["".concat(p,".").concat(N)]||u[N]||d[N]||l;return e?n.createElement(k,i(i({ref:a},s),{},{components:e})):n.createElement(k,i({ref:a},s))}));function N(t,a){var e=arguments,r=a&&a.mdxType;if("string"==typeof t||r){var l=e.length,i=new Array(l);i[0]=u;var m={};for(var p in a)hasOwnProperty.call(a,p)&&(m[p]=a[p]);m.originalType=t,m.mdxType="string"==typeof t?t:r,i[1]=m;for(var o=2;o{e.r(a),e.d(a,{assets:()=>s,contentTitle:()=>p,default:()=>N,frontMatter:()=>m,metadata:()=>o,toc:()=>d});var n=e(7462),r=e(3366),l=(e(7294),e(3905)),i=["components"],m={id:"parameters",title:"Model Parameters"},p=void 0,o={unversionedId:"parameters",id:"parameters",title:"Model Parameters",description:"UCLCHEM will default to these values unless they are overridden by user. Users can override these by adding the variable name as written here in the paramdict argument of any UCLCHEM model function. paramdict is not case sensitive.",source:"@site/docs/start-parameters.md",sourceDirName:".",slug:"/parameters",permalink:"/docs/next/parameters",tags:[],version:"current",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1676489846,formattedLastUpdatedAt:"2/15/2023",frontMatter:{id:"parameters",title:"Model Parameters"},sidebar:"docs",previous:{title:"Creating a Network",permalink:"/docs/next/network"},next:{title:"Python Reference",permalink:"/docs/next/pythonapi"}},s={},d=[{value:"Physical Variables",id:"physical-variables",level:2},{value:"Behavioural Controls",id:"behavioural-controls",level:2},{value:"Input and Output",id:"input-and-output",level:2},{value:"Initial Abundances",id:"initial-abundances",level:2},{value:"Integration Controls",id:"integration-controls",level:2},{value:"Here be Dragons",id:"here-be-dragons",level:2}],u={toc:d};function N(t){var a=t.components,e=(0,r.Z)(t,i);return(0,l.kt)("wrapper",(0,n.Z)({},u,e,{components:a,mdxType:"MDXLayout"}),(0,l.kt)("p",null,"UCLCHEM will default to these values unless they are overridden by user. Users can override these by adding the variable name as written here in the param_dict argument of any UCLCHEM model function. param_dict is not case sensitive."),(0,l.kt)("h2",{id:"physical-variables"},"Physical Variables"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Parameter"),(0,l.kt)("th",{parentName:"tr",align:null},"Default Value"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"initialTemp"),(0,l.kt)("td",{parentName:"tr",align:null},"10.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Initial gas temperature in Kelvin for all gas parcels in model.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"initialDens"),(0,l.kt)("td",{parentName:"tr",align:null},"1.00d2"),(0,l.kt)("td",{parentName:"tr",align:null},"Initial gas density in H nuclei per cm",(0,l.kt)("span",{parentName:"td",className:"math math-inline"},(0,l.kt)("span",{parentName:"span",className:"katex"},(0,l.kt)("span",{parentName:"span",className:"katex-mathml"},(0,l.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,l.kt)("semantics",{parentName:"math"},(0,l.kt)("mrow",{parentName:"semantics"},(0,l.kt)("msup",{parentName:"mrow"},(0,l.kt)("mrow",{parentName:"msup"}),(0,l.kt)("mrow",{parentName:"msup"},(0,l.kt)("mo",{parentName:"mrow"},"\u2212"),(0,l.kt)("mn",{parentName:"mrow"},"3")))),(0,l.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-3}")))),(0,l.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,l.kt)("span",{parentName:"span",className:"base"},(0,l.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,l.kt)("span",{parentName:"span",className:"mord"},(0,l.kt)("span",{parentName:"span"}),(0,l.kt)("span",{parentName:"span",className:"msupsub"},(0,l.kt)("span",{parentName:"span",className:"vlist-t"},(0,l.kt)("span",{parentName:"span",className:"vlist-r"},(0,l.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,l.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,l.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,l.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,l.kt)("span",{parentName:"span",className:"mord mtight"},(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"3")))))))))))))," for all gas parcels in model.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"finalDens"),(0,l.kt)("td",{parentName:"tr",align:null},"1.00d5"),(0,l.kt)("td",{parentName:"tr",align:null},"Final gas density achieved via freefall.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"currentTime"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Time at start of model in years.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"finalTime"),(0,l.kt)("td",{parentName:"tr",align:null},"5.0d6"),(0,l.kt)("td",{parentName:"tr",align:null},"Time to stop model in years, if not using ",(0,l.kt)("inlineCode",{parentName:"td"},"endAtFinalDensity")," below.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"radfield"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Interstellar radiation field in Habing")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"zeta"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Cosmic ray ionisation rate as multiple of ",(0,l.kt)("span",{parentName:"td",className:"math math-inline"},(0,l.kt)("span",{parentName:"span",className:"katex"},(0,l.kt)("span",{parentName:"span",className:"katex-mathml"},(0,l.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,l.kt)("semantics",{parentName:"math"},(0,l.kt)("mrow",{parentName:"semantics"},(0,l.kt)("mn",{parentName:"mrow"},"1.31"),(0,l.kt)("msup",{parentName:"mrow"},(0,l.kt)("mn",{parentName:"msup"},"0"),(0,l.kt)("mrow",{parentName:"msup"},(0,l.kt)("mo",{parentName:"mrow"},"\u2212"),(0,l.kt)("mn",{parentName:"mrow"},"17"))),(0,l.kt)("msup",{parentName:"mrow"},(0,l.kt)("mi",{parentName:"msup"},"s"),(0,l.kt)("mrow",{parentName:"msup"},(0,l.kt)("mo",{parentName:"mrow"},"\u2212"),(0,l.kt)("mn",{parentName:"mrow"},"1")))),(0,l.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"1.3 10^{-17} s^{-1}")))),(0,l.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,l.kt)("span",{parentName:"span",className:"base"},(0,l.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,l.kt)("span",{parentName:"span",className:"mord"},"1"),(0,l.kt)("span",{parentName:"span",className:"mord"},"."),(0,l.kt)("span",{parentName:"span",className:"mord"},"3"),(0,l.kt)("span",{parentName:"span",className:"mord"},"1"),(0,l.kt)("span",{parentName:"span",className:"mord"},(0,l.kt)("span",{parentName:"span",className:"mord"},"0"),(0,l.kt)("span",{parentName:"span",className:"msupsub"},(0,l.kt)("span",{parentName:"span",className:"vlist-t"},(0,l.kt)("span",{parentName:"span",className:"vlist-r"},(0,l.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,l.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,l.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,l.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,l.kt)("span",{parentName:"span",className:"mord mtight"},(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"1"),(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"7"))))))))),(0,l.kt)("span",{parentName:"span",className:"mord"},(0,l.kt)("span",{parentName:"span",className:"mord mathnormal"},"s"),(0,l.kt)("span",{parentName:"span",className:"msupsub"},(0,l.kt)("span",{parentName:"span",className:"vlist-t"},(0,l.kt)("span",{parentName:"span",className:"vlist-r"},(0,l.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,l.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,l.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,l.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,l.kt)("span",{parentName:"span",className:"mord mtight"},(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))))))))))))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"rout"),(0,l.kt)("td",{parentName:"tr",align:null},"0.05"),(0,l.kt)("td",{parentName:"tr",align:null},"Outer radius of cloud being modelled in pc.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"rin"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Minimum radial distance from cloud centre to consider.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"baseAv"),(0,l.kt)("td",{parentName:"tr",align:null},"2.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Extinction at cloud edge, Av of a parcel at rout.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"points"),(0,l.kt)("td",{parentName:"tr",align:null},"1"),(0,l.kt)("td",{parentName:"tr",align:null},"Number of gas parcels equally spaced between rin to rout to consider")))),(0,l.kt)("h2",{id:"behavioural-controls"},"Behavioural Controls"),(0,l.kt)("p",null,(0,l.kt)("em",{parentName:"p"},"The following parameters generally turn on or off features of the model. If a parameter is set to ",(0,l.kt)("inlineCode",{parentName:"em"},"True"),", then it is turned on. If it is set to ",(0,l.kt)("inlineCode",{parentName:"em"},"False"),", then it is turned off.")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Parameter"),(0,l.kt)("th",{parentName:"tr",align:null},"Default Value"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"freezeFactor"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Modify freeze out rate of gas parcels by this factor.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"endAtFinalDensity"),(0,l.kt)("td",{parentName:"tr",align:null},".False."),(0,l.kt)("td",{parentName:"tr",align:null},"Choose to end model at final density, otherwise end at final time.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"freefall"),(0,l.kt)("td",{parentName:"tr",align:null},".False."),(0,l.kt)("td",{parentName:"tr",align:null},"Controls whether models density increaes following freefall equation.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"freefallFactor"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Modify freefall rate by factor, usually to slow it.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"desorb"),(0,l.kt)("td",{parentName:"tr",align:null},".True."),(0,l.kt)("td",{parentName:"tr",align:null},"Toggles all non-thermal desoprtion processes on or off.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"h2desorb"),(0,l.kt)("td",{parentName:"tr",align:null},".True."),(0,l.kt)("td",{parentName:"tr",align:null},"Individually toggle non-thermal desorption due to H2 formation.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"crdesorb"),(0,l.kt)("td",{parentName:"tr",align:null},".True."),(0,l.kt)("td",{parentName:"tr",align:null},"Individually toggle non-thermal desorption due to cosmic rays.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"uvdesorb"),(0,l.kt)("td",{parentName:"tr",align:null},".True."),(0,l.kt)("td",{parentName:"tr",align:null},"Individually toggle non-thermal desorption due to uv photons.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"thermdesorb"),(0,l.kt)("td",{parentName:"tr",align:null},".True."),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle continuous thermal desorption.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"instantSublimation"),(0,l.kt)("td",{parentName:"tr",align:null},".False."),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle instantaneous sublimation of the ices at t")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"cosmicRayAttenuation"),(0,l.kt)("td",{parentName:"tr",align:null},".False."),(0,l.kt)("td",{parentName:"tr",align:null},"Use column density to attenuate cosmic ray ionisation rate following ",(0,l.kt)("a",{parentName:"td",href:"https://arxiv.org/abs/1803.09348"},"Padovani et al. 2018"),".")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ionModel"),(0,l.kt)("td",{parentName:"tr",align:null},"'L'"),(0,l.kt)("td",{parentName:"tr",align:null},"L/H model for cosmic ray attenuation ",(0,l.kt)("a",{parentName:"td",href:"https://arxiv.org/abs/1803.09348"},"Padovani et al. 2018"),".")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"improvedH2CRPDissociation"),(0,l.kt)("td",{parentName:"tr",align:null},".False."),(0,l.kt)("td",{parentName:"tr",align:null},"Use H2 CRP dissociation rate from ",(0,l.kt)("a",{parentName:"td",href:"https://arxiv.org/abs/1809.04168"},"Padovani et al. 2018b"),".")))),(0,l.kt)("h2",{id:"input-and-output"},"Input and Output"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Parameter"),(0,l.kt)("th",{parentName:"tr",align:null},"Default Value"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"outputFile"),(0,l.kt)("td",{parentName:"tr",align:null},'"output/full.dat"'),(0,l.kt)("td",{parentName:"tr",align:null},"File to write full output of UCLCHEM. This includes physical parameter values and all abundances at every time step.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"columnFile"),(0,l.kt)("td",{parentName:"tr",align:null},'"output/column.dat"'),(0,l.kt)("td",{parentName:"tr",align:null},"File to write specific species abundances, see outSpecies.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"writeStep"),(0,l.kt)("td",{parentName:"tr",align:null},"1"),(0,l.kt)("td",{parentName:"tr",align:null},"Writing to columnFile only happens every writeStep timesteps.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"abundSaveFile"),(0,l.kt)("td",{parentName:"tr",align:null},"None"),(0,l.kt)("td",{parentName:"tr",align:null},"File to store final abundances at the end of the model so future models can use them as the initial abundances. If not provided, no file will be produced.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"abundLoadFile"),(0,l.kt)("td",{parentName:"tr",align:null},"None"),(0,l.kt)("td",{parentName:"tr",align:null},"File from which to load initial abundances for the model, created through ",(0,l.kt)("inlineCode",{parentName:"td"},"abundSaveFile"),". If not provided, the model starts from elemental gas.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"outSpecies"),(0,l.kt)("td",{parentName:"tr",align:null},"None"),(0,l.kt)("td",{parentName:"tr",align:null},"A space separated list of species to output to columnFile. Supplied as a separate list argument to most python functions, see python API docs.")))),(0,l.kt)("h2",{id:"initial-abundances"},"Initial Abundances"),(0,l.kt)("p",null,(0,l.kt)("em",{parentName:"p"},"Unless otherwise specified, we take all abundances from Jenkins et al. 2009, using the heavily depleted case from Table 4.")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Parameter"),(0,l.kt)("th",{parentName:"tr",align:null},"Default Value"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"metallicity"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Scale the abundances of all elements heavier than He by this factor.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ion"),(0,l.kt)("td",{parentName:"tr",align:null},"2"),(0,l.kt)("td",{parentName:"tr",align:null},"Sets how much elemental C is initially atomic (0")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fh"),(0,l.kt)("td",{parentName:"tr",align:null},"0.5"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of H is always 1 by definition because abundances are relative to number of H nuclei. Use fh to set how much to initially put in atomic H, the rest goes to H2.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fhe"),(0,l.kt)("td",{parentName:"tr",align:null},"0.1"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of He.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fc"),(0,l.kt)("td",{parentName:"tr",align:null},"1.77d-04"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of C.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fo"),(0,l.kt)("td",{parentName:"tr",align:null},"3.34d-04"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of O.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fn"),(0,l.kt)("td",{parentName:"tr",align:null},"6.18d-05"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of N.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fs"),(0,l.kt)("td",{parentName:"tr",align:null},"3.51d-6"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of S.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fmg"),(0,l.kt)("td",{parentName:"tr",align:null},"2.256d-06"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of Mg.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fsi"),(0,l.kt)("td",{parentName:"tr",align:null},"1.78d-06"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of Si.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fcl"),(0,l.kt)("td",{parentName:"tr",align:null},"3.39d-08"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of Cl.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fp"),(0,l.kt)("td",{parentName:"tr",align:null},"7.78d-08"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of P.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ffe"),(0,l.kt)("td",{parentName:"tr",align:null},"2.01d-7"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of Fe.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ff"),(0,l.kt)("td",{parentName:"tr",align:null},"3.6d-08"),(0,l.kt)("td",{parentName:"tr",align:null},"fp depleted 1/100 of solar from Asplund 2009.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fd"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"The following elements are not typically used. We do not recommend any particular value.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fli"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of Li.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fna"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of Na.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fpah"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Total initial abundance of PAHs.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"f15n"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Total initial abundance of 15N.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"f13c"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Total initial abundance of 13C.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"f18O"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Total initial abundance of 18O.")))),(0,l.kt)("h2",{id:"integration-controls"},"Integration Controls"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Parameter"),(0,l.kt)("th",{parentName:"tr",align:null},"Default Value"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"reltol"),(0,l.kt)("td",{parentName:"tr",align:null},"1d-8"),(0,l.kt)("td",{parentName:"tr",align:null},"Relative tolerance for integration, see ",(0,l.kt)("a",{parentName:"td",href:"/docs/trouble-integration"},"integration docs")," for advice.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"abstol_factor"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0d-14"),(0,l.kt)("td",{parentName:"tr",align:null},"Absolute tolerance for integration is calculated by multiplying species abundance by this factor.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"abstol_min"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0d-25"),(0,l.kt)("td",{parentName:"tr",align:null},"Minimum value absolute tolerances can take.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"MXSTEP"),(0,l.kt)("td",{parentName:"tr",align:null},"10000"),(0,l.kt)("td",{parentName:"tr",align:null},"Maximum steps allowed in integration before warning is thrown.")))),(0,l.kt)("h2",{id:"here-be-dragons"},"Here be Dragons"),(0,l.kt)("p",null,(0,l.kt)("em",{parentName:"p"},"These are not recommended to be changed unless you know what you are doing")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Parameter"),(0,l.kt)("th",{parentName:"tr",align:null},"Default Value"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ebmaxh2"),(0,l.kt)("td",{parentName:"tr",align:null},"1.21d3"),(0,l.kt)("td",{parentName:"tr",align:null},"Maximum binding energy of species desorbed by H2 formation.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ebmaxcr"),(0,l.kt)("td",{parentName:"tr",align:null},"1.21d3"),(0,l.kt)("td",{parentName:"tr",align:null},"Maximum binding energy of species desorbed by cosmic ray ionisation.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ebmaxuvcr"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0d4"),(0,l.kt)("td",{parentName:"tr",align:null},"Maximum binding energy of species desorbed by UV photons.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"epsilon"),(0,l.kt)("td",{parentName:"tr",align:null},"0.01"),(0,l.kt)("td",{parentName:"tr",align:null},"Number of molecules desorbed per H2 formation.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"uv_yield"),(0,l.kt)("td",{parentName:"tr",align:null},"0.1"),(0,l.kt)("td",{parentName:"tr",align:null},"Number of molecules desorbed per UV photon.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"phi"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0d5"),(0,l.kt)("td",{parentName:"tr",align:null},"Number of molecules desorbed per cosmic ray ionisation.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"uvcreff"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0d-3"),(0,l.kt)("td",{parentName:"tr",align:null},"Ratio of CR induced UV photons to ISRF UV photons.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"omega"),(0,l.kt)("td",{parentName:"tr",align:null},"0.5"),(0,l.kt)("td",{parentName:"tr",align:null},"Dust grain albedo.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"alpha"),(0,l.kt)("td",{parentName:"tr",align:null},"{1:0.0,2:0.0}"),(0,l.kt)("td",{parentName:"tr",align:null},"Set alpha coeffecients of reactions using a python dictionary where keys are reaction numbers and values are the coefficients. Once you do this, you cannot return to the default value in the same python script or without restarting the kernel in iPython. See the chemistry docs for how alpha is used for each reaction type.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"beta"),(0,l.kt)("td",{parentName:"tr",align:null},"{1:0.0,2:0.0}"),(0,l.kt)("td",{parentName:"tr",align:null},"Set beta coeffecients of reactions using a python dictionary where keys are reaction numbers and values are the coefficients. Once you do this, you cannot return to the default value in the same python script or without restarting the kernel in iPython. See the chemistry docs for how beta is used for each reaction type.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"gama"),(0,l.kt)("td",{parentName:"tr",align:null},"{1:0.0,2:0.0}"),(0,l.kt)("td",{parentName:"tr",align:null},"Set gama coeffecients of reactions using a python dictionary where keys are reaction numbers and values are the coefficients. Once you do this, you cannot return to the default value in the same python script or without restarting the kernel in iPython. See the chemistry docs for how gama is used for each reaction type.")))))}N.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7aa4d0e1.fe856eee.js b/assets/js/7aa4d0e1.fe856eee.js new file mode 100644 index 00000000..c1c3f2f1 --- /dev/null +++ b/assets/js/7aa4d0e1.fe856eee.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9002],{3905:(t,a,e)=>{e.d(a,{Zo:()=>o,kt:()=>u});var n=e(7294);function r(t,a,e){return a in t?Object.defineProperty(t,a,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[a]=e,t}function l(t,a){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);a&&(n=n.filter((function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable}))),e.push.apply(e,n)}return e}function m(t){for(var a=1;a=0||(r[e]=t[e]);return r}(t,a);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,e)&&(r[e]=t[e])}return r}var p=n.createContext({}),i=function(t){var a=n.useContext(p),e=a;return t&&(e="function"==typeof t?t(a):m(m({},a),t)),e},o=function(t){var a=i(t.components);return n.createElement(p.Provider,{value:a},t.children)},d={inlineCode:"code",wrapper:function(t){var a=t.children;return n.createElement(n.Fragment,{},a)}},N=n.forwardRef((function(t,a){var e=t.components,r=t.mdxType,l=t.originalType,p=t.parentName,o=s(t,["components","mdxType","originalType","parentName"]),N=i(e),u=r,k=N["".concat(p,".").concat(u)]||N[u]||d[u]||l;return e?n.createElement(k,m(m({ref:a},o),{},{components:e})):n.createElement(k,m({ref:a},o))}));function u(t,a){var e=arguments,r=a&&a.mdxType;if("string"==typeof t||r){var l=e.length,m=new Array(l);m[0]=N;var s={};for(var p in a)hasOwnProperty.call(a,p)&&(s[p]=a[p]);s.originalType=t,s.mdxType="string"==typeof t?t:r,m[1]=s;for(var i=2;i{e.r(a),e.d(a,{assets:()=>o,contentTitle:()=>p,default:()=>u,frontMatter:()=>s,metadata:()=>i,toc:()=>d});var n=e(7462),r=e(3366),l=(e(7294),e(3905)),m=["components"],s={id:"parameters",title:"Model Parameters"},p=void 0,i={unversionedId:"parameters",id:"parameters",title:"Model Parameters",description:"UCLCHEM will default to these values unless they are overridden by user. Users can override these by adding the variable name as written here in the paramdict argument of any UCLCHEM model function. paramdict is not case sensitive.",source:"@site/docs/start-parameters.md",sourceDirName:".",slug:"/parameters",permalink:"/docs/next/parameters",draft:!1,tags:[],version:"current",lastUpdatedBy:"katarzynadutkowska",lastUpdatedAt:1689867307,formattedLastUpdatedAt:"Jul 20, 2023",frontMatter:{id:"parameters",title:"Model Parameters"},sidebar:"docs",previous:{title:"Creating a Network",permalink:"/docs/next/network"},next:{title:"Python Reference",permalink:"/docs/next/pythonapi"}},o={},d=[{value:"Physical Variables",id:"physical-variables",level:2},{value:"Behavioural Controls",id:"behavioural-controls",level:2},{value:"Input and Output",id:"input-and-output",level:2},{value:"Initial Abundances",id:"initial-abundances",level:2},{value:"Integration Controls",id:"integration-controls",level:2},{value:"Here be Dragons",id:"here-be-dragons",level:2}],N={toc:d};function u(t){var a=t.components,e=(0,r.Z)(t,m);return(0,l.kt)("wrapper",(0,n.Z)({},N,e,{components:a,mdxType:"MDXLayout"}),(0,l.kt)("p",null,"UCLCHEM will default to these values unless they are overridden by user. Users can override these by adding the variable name as written here in the param_dict argument of any UCLCHEM model function. param_dict is not case sensitive."),(0,l.kt)("h2",{id:"physical-variables"},"Physical Variables"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Parameter"),(0,l.kt)("th",{parentName:"tr",align:null},"Default Value"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"initialTemp"),(0,l.kt)("td",{parentName:"tr",align:null},"10.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Initial gas temperature in Kelvin for all gas parcels in model.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"initialDens"),(0,l.kt)("td",{parentName:"tr",align:null},"1.00d2"),(0,l.kt)("td",{parentName:"tr",align:null},"Initial gas density in H nuclei per cm",(0,l.kt)("span",{parentName:"td",className:"math math-inline"},(0,l.kt)("span",{parentName:"span",className:"katex"},(0,l.kt)("span",{parentName:"span",className:"katex-mathml"},(0,l.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,l.kt)("semantics",{parentName:"math"},(0,l.kt)("mrow",{parentName:"semantics"},(0,l.kt)("msup",{parentName:"mrow"},(0,l.kt)("mrow",{parentName:"msup"}),(0,l.kt)("mrow",{parentName:"msup"},(0,l.kt)("mo",{parentName:"mrow"},"\u2212"),(0,l.kt)("mn",{parentName:"mrow"},"3")))),(0,l.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-3}")))),(0,l.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,l.kt)("span",{parentName:"span",className:"base"},(0,l.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,l.kt)("span",{parentName:"span",className:"mord"},(0,l.kt)("span",{parentName:"span"}),(0,l.kt)("span",{parentName:"span",className:"msupsub"},(0,l.kt)("span",{parentName:"span",className:"vlist-t"},(0,l.kt)("span",{parentName:"span",className:"vlist-r"},(0,l.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,l.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,l.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,l.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,l.kt)("span",{parentName:"span",className:"mord mtight"},(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"3")))))))))))))," ",(0,l.kt)("span",{parentName:"td",className:"math math-inline"},(0,l.kt)("span",{parentName:"span",className:"katex"},(0,l.kt)("span",{parentName:"span",className:"katex-mathml"},(0,l.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,l.kt)("semantics",{parentName:"math"},(0,l.kt)("mrow",{parentName:"semantics"},(0,l.kt)("mo",{parentName:"mrow",fence:"true"},"("),(0,l.kt)("msub",{parentName:"mrow"},(0,l.kt)("mi",{parentName:"msub"},"n"),(0,l.kt)("mi",{parentName:"msub"},"H")),(0,l.kt)("mo",{parentName:"mrow"},"="),(0,l.kt)("mi",{parentName:"mrow"},"n"),(0,l.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,l.kt)("mi",{parentName:"mrow"},"H"),(0,l.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,l.kt)("mo",{parentName:"mrow"},"+"),(0,l.kt)("mn",{parentName:"mrow"},"2"),(0,l.kt)("mi",{parentName:"mrow"},"n"),(0,l.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,l.kt)("msub",{parentName:"mrow"},(0,l.kt)("mi",{parentName:"msub"},"H"),(0,l.kt)("mn",{parentName:"msub"},"2")),(0,l.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,l.kt)("mo",{parentName:"mrow"},"+"),(0,l.kt)("mi",{parentName:"mrow"},"n"),(0,l.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,l.kt)("msup",{parentName:"mrow"},(0,l.kt)("mi",{parentName:"msup"},"H"),(0,l.kt)("mo",{parentName:"msup"},"+")),(0,l.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,l.kt)("mo",{parentName:"mrow",fence:"true"},")")),(0,l.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\left(n_H=n(H) + 2n(H_2) + n(H^+)\\right)")))),(0,l.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,l.kt)("span",{parentName:"span",className:"base"},(0,l.kt)("span",{parentName:"span",className:"strut",style:{height:"1.021331em",verticalAlign:"-0.25em"}}),(0,l.kt)("span",{parentName:"span",className:"minner"},(0,l.kt)("span",{parentName:"span",className:"mopen delimcenter",style:{top:"0em"}},"("),(0,l.kt)("span",{parentName:"span",className:"mord"},(0,l.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,l.kt)("span",{parentName:"span",className:"msupsub"},(0,l.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,l.kt)("span",{parentName:"span",className:"vlist-r"},(0,l.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,l.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,l.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,l.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,l.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,l.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,l.kt)("span",{parentName:"span",className:"vlist-r"},(0,l.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,l.kt)("span",{parentName:"span"})))))),(0,l.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,l.kt)("span",{parentName:"span",className:"mrel"},"="),(0,l.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,l.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,l.kt)("span",{parentName:"span",className:"mopen"},"("),(0,l.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,l.kt)("span",{parentName:"span",className:"mclose"},")"),(0,l.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,l.kt)("span",{parentName:"span",className:"mbin"},"+"),(0,l.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,l.kt)("span",{parentName:"span",className:"mord"},"2"),(0,l.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,l.kt)("span",{parentName:"span",className:"mopen"},"("),(0,l.kt)("span",{parentName:"span",className:"mord"},(0,l.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,l.kt)("span",{parentName:"span",className:"msupsub"},(0,l.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,l.kt)("span",{parentName:"span",className:"vlist-r"},(0,l.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,l.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,l.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,l.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,l.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,l.kt)("span",{parentName:"span",className:"vlist-r"},(0,l.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,l.kt)("span",{parentName:"span"})))))),(0,l.kt)("span",{parentName:"span",className:"mclose"},")"),(0,l.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,l.kt)("span",{parentName:"span",className:"mbin"},"+"),(0,l.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,l.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,l.kt)("span",{parentName:"span",className:"mopen"},"("),(0,l.kt)("span",{parentName:"span",className:"mord"},(0,l.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,l.kt)("span",{parentName:"span",className:"msupsub"},(0,l.kt)("span",{parentName:"span",className:"vlist-t"},(0,l.kt)("span",{parentName:"span",className:"vlist-r"},(0,l.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,l.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,l.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,l.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,l.kt)("span",{parentName:"span",className:"mbin mtight"},"+")))))))),(0,l.kt)("span",{parentName:"span",className:"mclose"},")"),(0,l.kt)("span",{parentName:"span",className:"mclose delimcenter",style:{top:"0em"}},")"))))))," for all gas parcels in model.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"finalDens"),(0,l.kt)("td",{parentName:"tr",align:null},"1.00d5"),(0,l.kt)("td",{parentName:"tr",align:null},"Final gas density achieved via freefall.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"currentTime"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Time at start of model in years.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"finalTime"),(0,l.kt)("td",{parentName:"tr",align:null},"5.0d6"),(0,l.kt)("td",{parentName:"tr",align:null},"Time to stop model in years, if not using ",(0,l.kt)("inlineCode",{parentName:"td"},"endAtFinalDensity")," below.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"radfield"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Interstellar radiation field in Habing")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"zeta"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Cosmic ray ionisation rate as multiple of ",(0,l.kt)("span",{parentName:"td",className:"math math-inline"},(0,l.kt)("span",{parentName:"span",className:"katex"},(0,l.kt)("span",{parentName:"span",className:"katex-mathml"},(0,l.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,l.kt)("semantics",{parentName:"math"},(0,l.kt)("mrow",{parentName:"semantics"},(0,l.kt)("mn",{parentName:"mrow"},"1.31"),(0,l.kt)("msup",{parentName:"mrow"},(0,l.kt)("mn",{parentName:"msup"},"0"),(0,l.kt)("mrow",{parentName:"msup"},(0,l.kt)("mo",{parentName:"mrow"},"\u2212"),(0,l.kt)("mn",{parentName:"mrow"},"17"))),(0,l.kt)("msup",{parentName:"mrow"},(0,l.kt)("mi",{parentName:"msup"},"s"),(0,l.kt)("mrow",{parentName:"msup"},(0,l.kt)("mo",{parentName:"mrow"},"\u2212"),(0,l.kt)("mn",{parentName:"mrow"},"1")))),(0,l.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"1.3 10^{-17} s^{-1}")))),(0,l.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,l.kt)("span",{parentName:"span",className:"base"},(0,l.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,l.kt)("span",{parentName:"span",className:"mord"},"1"),(0,l.kt)("span",{parentName:"span",className:"mord"},"."),(0,l.kt)("span",{parentName:"span",className:"mord"},"3"),(0,l.kt)("span",{parentName:"span",className:"mord"},"1"),(0,l.kt)("span",{parentName:"span",className:"mord"},(0,l.kt)("span",{parentName:"span",className:"mord"},"0"),(0,l.kt)("span",{parentName:"span",className:"msupsub"},(0,l.kt)("span",{parentName:"span",className:"vlist-t"},(0,l.kt)("span",{parentName:"span",className:"vlist-r"},(0,l.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,l.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,l.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,l.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,l.kt)("span",{parentName:"span",className:"mord mtight"},(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"1"),(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"7"))))))))),(0,l.kt)("span",{parentName:"span",className:"mord"},(0,l.kt)("span",{parentName:"span",className:"mord mathnormal"},"s"),(0,l.kt)("span",{parentName:"span",className:"msupsub"},(0,l.kt)("span",{parentName:"span",className:"vlist-t"},(0,l.kt)("span",{parentName:"span",className:"vlist-r"},(0,l.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,l.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,l.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,l.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,l.kt)("span",{parentName:"span",className:"mord mtight"},(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))))))))))))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"rout"),(0,l.kt)("td",{parentName:"tr",align:null},"0.05"),(0,l.kt)("td",{parentName:"tr",align:null},"Outer radius of cloud being modelled in pc.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"rin"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Minimum radial distance from cloud centre to consider.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"baseAv"),(0,l.kt)("td",{parentName:"tr",align:null},"2.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Extinction at cloud edge, Av of a parcel at rout.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"points"),(0,l.kt)("td",{parentName:"tr",align:null},"1"),(0,l.kt)("td",{parentName:"tr",align:null},"Number of gas parcels equally spaced between rin to rout to consider")))),(0,l.kt)("h2",{id:"behavioural-controls"},"Behavioural Controls"),(0,l.kt)("p",null,(0,l.kt)("em",{parentName:"p"},"The following parameters generally turn on or off features of the model. If a parameter is set to ",(0,l.kt)("inlineCode",{parentName:"em"},"True"),", then it is turned on. If it is set to ",(0,l.kt)("inlineCode",{parentName:"em"},"False"),", then it is turned off.")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Parameter"),(0,l.kt)("th",{parentName:"tr",align:null},"Default Value"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"freezeFactor"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Modify freeze out rate of gas parcels by this factor.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"endAtFinalDensity"),(0,l.kt)("td",{parentName:"tr",align:null},".False."),(0,l.kt)("td",{parentName:"tr",align:null},"Choose to end model at final density, otherwise end at final time.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"freefall"),(0,l.kt)("td",{parentName:"tr",align:null},".False."),(0,l.kt)("td",{parentName:"tr",align:null},"Controls whether models density increaes following freefall equation.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"freefallFactor"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Modify freefall rate by factor, usually to slow it.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"desorb"),(0,l.kt)("td",{parentName:"tr",align:null},".True."),(0,l.kt)("td",{parentName:"tr",align:null},"Toggles all non-thermal desoprtion processes on or off.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"h2desorb"),(0,l.kt)("td",{parentName:"tr",align:null},".True."),(0,l.kt)("td",{parentName:"tr",align:null},"Individually toggle non-thermal desorption due to H2 formation.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"crdesorb"),(0,l.kt)("td",{parentName:"tr",align:null},".True."),(0,l.kt)("td",{parentName:"tr",align:null},"Individually toggle non-thermal desorption due to cosmic rays.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"uvdesorb"),(0,l.kt)("td",{parentName:"tr",align:null},".True."),(0,l.kt)("td",{parentName:"tr",align:null},"Individually toggle non-thermal desorption due to uv photons.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"thermdesorb"),(0,l.kt)("td",{parentName:"tr",align:null},".True."),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle continuous thermal desorption.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"instantSublimation"),(0,l.kt)("td",{parentName:"tr",align:null},".False."),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle instantaneous sublimation of the ices at t")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"cosmicRayAttenuation"),(0,l.kt)("td",{parentName:"tr",align:null},".False."),(0,l.kt)("td",{parentName:"tr",align:null},"Use column density to attenuate cosmic ray ionisation rate following ",(0,l.kt)("a",{parentName:"td",href:"https://arxiv.org/abs/1803.09348"},"Padovani et al. 2018"),".")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ionModel"),(0,l.kt)("td",{parentName:"tr",align:null},"'L'"),(0,l.kt)("td",{parentName:"tr",align:null},"L/H model for cosmic ray attenuation ",(0,l.kt)("a",{parentName:"td",href:"https://arxiv.org/abs/1803.09348"},"Padovani et al. 2018"),".")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"improvedH2CRPDissociation"),(0,l.kt)("td",{parentName:"tr",align:null},".False."),(0,l.kt)("td",{parentName:"tr",align:null},"Use H2 CRP dissociation rate from ",(0,l.kt)("a",{parentName:"td",href:"https://arxiv.org/abs/1809.04168"},"Padovani et al. 2018b"),".")))),(0,l.kt)("h2",{id:"input-and-output"},"Input and Output"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Parameter"),(0,l.kt)("th",{parentName:"tr",align:null},"Default Value"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"outputFile"),(0,l.kt)("td",{parentName:"tr",align:null},'"output/full.dat"'),(0,l.kt)("td",{parentName:"tr",align:null},"File to write full output of UCLCHEM. This includes physical parameter values and all abundances at every time step.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"columnFile"),(0,l.kt)("td",{parentName:"tr",align:null},'"output/column.dat"'),(0,l.kt)("td",{parentName:"tr",align:null},"File to write specific species abundances, see outSpecies.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"writeStep"),(0,l.kt)("td",{parentName:"tr",align:null},"1"),(0,l.kt)("td",{parentName:"tr",align:null},"Writing to columnFile only happens every writeStep timesteps.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"abundSaveFile"),(0,l.kt)("td",{parentName:"tr",align:null},"None"),(0,l.kt)("td",{parentName:"tr",align:null},"File to store final abundances at the end of the model so future models can use them as the initial abundances. If not provided, no file will be produced.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"abundLoadFile"),(0,l.kt)("td",{parentName:"tr",align:null},"None"),(0,l.kt)("td",{parentName:"tr",align:null},"File from which to load initial abundances for the model, created through ",(0,l.kt)("inlineCode",{parentName:"td"},"abundSaveFile"),". If not provided, the model starts from elemental gas.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"outSpecies"),(0,l.kt)("td",{parentName:"tr",align:null},"None"),(0,l.kt)("td",{parentName:"tr",align:null},"A space separated list of species to output to columnFile. Supplied as a separate list argument to most python functions, see python API docs.")))),(0,l.kt)("h2",{id:"initial-abundances"},"Initial Abundances"),(0,l.kt)("p",null,(0,l.kt)("em",{parentName:"p"},"Unless otherwise specified, we take all abundances from Jenkins et al. 2009, using the heavily depleted case from Table 4.")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Parameter"),(0,l.kt)("th",{parentName:"tr",align:null},"Default Value"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"metallicity"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Scale the abundances of all elements heavier than He by this factor.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ion"),(0,l.kt)("td",{parentName:"tr",align:null},"2"),(0,l.kt)("td",{parentName:"tr",align:null},"Sets how much elemental C is initially atomic (0")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fh"),(0,l.kt)("td",{parentName:"tr",align:null},"0.5"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of H is always 1 by definition because abundances are relative to number of H nuclei. Use fh to set how much to initially put in atomic H, the rest goes to H2.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fhe"),(0,l.kt)("td",{parentName:"tr",align:null},"0.1"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of He.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fc"),(0,l.kt)("td",{parentName:"tr",align:null},"1.77d-04"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of C.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fo"),(0,l.kt)("td",{parentName:"tr",align:null},"3.34d-04"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of O.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fn"),(0,l.kt)("td",{parentName:"tr",align:null},"6.18d-05"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of N.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fs"),(0,l.kt)("td",{parentName:"tr",align:null},"3.51d-6"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of S.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fmg"),(0,l.kt)("td",{parentName:"tr",align:null},"2.256d-06"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of Mg.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fsi"),(0,l.kt)("td",{parentName:"tr",align:null},"1.78d-06"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of Si.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fcl"),(0,l.kt)("td",{parentName:"tr",align:null},"3.39d-08"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of Cl.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fp"),(0,l.kt)("td",{parentName:"tr",align:null},"7.78d-08"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of P.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ffe"),(0,l.kt)("td",{parentName:"tr",align:null},"2.01d-7"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of Fe.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ff"),(0,l.kt)("td",{parentName:"tr",align:null},"3.6d-08"),(0,l.kt)("td",{parentName:"tr",align:null},"fp depleted 1/100 of solar from Asplund 2009.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fd"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"The following elements are not typically used. We do not recommend any particular value.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fli"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of Li.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fna"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of Na.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fpah"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Total initial abundance of PAHs.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"f15n"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Total initial abundance of 15N.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"f13c"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Total initial abundance of 13C.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"f18O"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Total initial abundance of 18O.")))),(0,l.kt)("h2",{id:"integration-controls"},"Integration Controls"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Parameter"),(0,l.kt)("th",{parentName:"tr",align:null},"Default Value"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"reltol"),(0,l.kt)("td",{parentName:"tr",align:null},"1d-8"),(0,l.kt)("td",{parentName:"tr",align:null},"Relative tolerance for integration, see ",(0,l.kt)("a",{parentName:"td",href:"/docs/trouble-integration"},"integration docs")," for advice.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"abstol_factor"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0d-14"),(0,l.kt)("td",{parentName:"tr",align:null},"Absolute tolerance for integration is calculated by multiplying species abundance by this factor.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"abstol_min"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0d-25"),(0,l.kt)("td",{parentName:"tr",align:null},"Minimum value absolute tolerances can take.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"MXSTEP"),(0,l.kt)("td",{parentName:"tr",align:null},"10000"),(0,l.kt)("td",{parentName:"tr",align:null},"Maximum steps allowed in integration before warning is thrown.")))),(0,l.kt)("h2",{id:"here-be-dragons"},"Here be Dragons"),(0,l.kt)("p",null,(0,l.kt)("em",{parentName:"p"},"These are not recommended to be changed unless you know what you are doing")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Parameter"),(0,l.kt)("th",{parentName:"tr",align:null},"Default Value"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ebmaxh2"),(0,l.kt)("td",{parentName:"tr",align:null},"1.21d3"),(0,l.kt)("td",{parentName:"tr",align:null},"Maximum binding energy of species desorbed by H2 formation.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ebmaxcr"),(0,l.kt)("td",{parentName:"tr",align:null},"1.21d3"),(0,l.kt)("td",{parentName:"tr",align:null},"Maximum binding energy of species desorbed by cosmic ray ionisation.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ebmaxuvcr"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0d4"),(0,l.kt)("td",{parentName:"tr",align:null},"Maximum binding energy of species desorbed by UV photons.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"epsilon"),(0,l.kt)("td",{parentName:"tr",align:null},"0.01"),(0,l.kt)("td",{parentName:"tr",align:null},"Number of molecules desorbed per H2 formation.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"uv_yield"),(0,l.kt)("td",{parentName:"tr",align:null},"0.1"),(0,l.kt)("td",{parentName:"tr",align:null},"Number of molecules desorbed per UV photon.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"phi"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0d5"),(0,l.kt)("td",{parentName:"tr",align:null},"Number of molecules desorbed per cosmic ray ionisation.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"uvcreff"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0d-3"),(0,l.kt)("td",{parentName:"tr",align:null},"Ratio of CR induced UV photons to ISRF UV photons.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"omega"),(0,l.kt)("td",{parentName:"tr",align:null},"0.5"),(0,l.kt)("td",{parentName:"tr",align:null},"Dust grain albedo.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"alpha"),(0,l.kt)("td",{parentName:"tr",align:null},"{1:0.0,2:0.0}"),(0,l.kt)("td",{parentName:"tr",align:null},"Set alpha coeffecients of reactions using a python dictionary where keys are reaction numbers and values are the coefficients. Once you do this, you cannot return to the default value in the same python script or without restarting the kernel in iPython. See the chemistry docs for how alpha is used for each reaction type.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"beta"),(0,l.kt)("td",{parentName:"tr",align:null},"{1:0.0,2:0.0}"),(0,l.kt)("td",{parentName:"tr",align:null},"Set beta coeffecients of reactions using a python dictionary where keys are reaction numbers and values are the coefficients. Once you do this, you cannot return to the default value in the same python script or without restarting the kernel in iPython. See the chemistry docs for how beta is used for each reaction type.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"gama"),(0,l.kt)("td",{parentName:"tr",align:null},"{1:0.0,2:0.0}"),(0,l.kt)("td",{parentName:"tr",align:null},"Set gama coeffecients of reactions using a python dictionary where keys are reaction numbers and values are the coefficients. Once you do this, you cannot return to the default value in the same python script or without restarting the kernel in iPython. See the chemistry docs for how gama is used for each reaction type.")))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7b253f47.7175ec20.js b/assets/js/7b253f47.7175ec20.js new file mode 100644 index 00000000..fb54e781 --- /dev/null +++ b/assets/js/7b253f47.7175ec20.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9260],{3905:(a,e,t)=>{t.d(e,{Zo:()=>o,kt:()=>h});var s=t(7294);function n(a,e,t){return e in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function m(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.push.apply(t,s)}return t}function p(a){for(var e=1;e=0||(n[t]=a[t]);return n}(a,e);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(a);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(a,t)&&(n[t]=a[t])}return n}var i=s.createContext({}),l=function(a){var e=s.useContext(i),t=e;return a&&(t="function"==typeof a?a(e):p(p({},e),a)),t},o=function(a){var e=l(a.components);return s.createElement(i.Provider,{value:e},a.children)},c={inlineCode:"code",wrapper:function(a){var e=a.children;return s.createElement(s.Fragment,{},e)}},N=s.forwardRef((function(a,e){var t=a.components,n=a.mdxType,m=a.originalType,i=a.parentName,o=r(a,["components","mdxType","originalType","parentName"]),N=l(t),h=n,k=N["".concat(i,".").concat(h)]||N[h]||c[h]||m;return t?s.createElement(k,p(p({ref:e},o),{},{components:t})):s.createElement(k,p({ref:e},o))}));function h(a,e){var t=arguments,n=e&&e.mdxType;if("string"==typeof a||n){var m=t.length,p=new Array(m);p[0]=N;var r={};for(var i in e)hasOwnProperty.call(e,i)&&(r[i]=e[i]);r.originalType=a,r.mdxType="string"==typeof a?a:n,p[1]=r;for(var l=2;l{t.r(e),t.d(e,{assets:()=>o,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var s=t(7462),n=t(3366),m=(t(7294),t(3905)),p=["components"],r={id:"physics-hotcore",title:"Hot Core",author:"Jon Holdship"},i=void 0,l={unversionedId:"physics-hotcore",id:"version-v3.1.0/physics-hotcore",title:"Hot Core",description:"Main Contributors: Serena Viti, Jon Holdship",source:"@site/versioned_docs/version-v3.1.0/physics-hotcore.md",sourceDirName:".",slug:"/physics-hotcore",permalink:"/docs/v3.1.0/physics-hotcore",draft:!1,tags:[],version:"v3.1.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"physics-hotcore",title:"Hot Core",author:"Jon Holdship"},sidebar:"docs",previous:{title:"Cloud Model",permalink:"/docs/v3.1.0/physics-cloud"},next:{title:"Shock Models",permalink:"/docs/v3.1.0/physics-shocks"}},o={},c=[],N={toc:c};function h(a){var e=a.components,t=(0,n.Z)(a,p);return(0,m.kt)("wrapper",(0,s.Z)({},N,t,{components:e,mdxType:"MDXLayout"}),(0,m.kt)("p",null,(0,m.kt)("strong",{parentName:"p"},"Main Contributors"),": Serena Viti, Jon Holdship"),(0,m.kt)("p",null,(0,m.kt)("strong",{parentName:"p"},"Source"),": src/fortran_src/hotcore.f90"),(0,m.kt)("p",null,"The hot core model can be used to model the envelopes around hot cores as a single point or a 1D line of gas parels. The temperature in this model increases following the temperature profiles given in ",(0,m.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1111/j.1365-2966.2004.08273.x"},"Viti et al. 2004")," with modifications by ",(0,m.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1111/j.1365-2966.2010.17077.x"},"Awad et al. 2010"),". These are time and radially dependent temperature profiles intended to match the heat up of the gas around a hot core."),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"T"),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("mn",{parentName:"mrow"},"10"),(0,m.kt)("mo",{parentName:"mrow"},"+"),(0,m.kt)("mi",{parentName:"mrow"},"A"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"t"),(0,m.kt)("mi",{parentName:"msup"},"B")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow",fence:"true"},"("),(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"mfrac"},"r"),(0,m.kt)("mi",{parentName:"mfrac"},"R")),(0,m.kt)("mo",{parentName:"mrow",fence:"true"},")")),(0,m.kt)("mfrac",{parentName:"msup"},(0,m.kt)("mn",{parentName:"mfrac"},"1"),(0,m.kt)("mn",{parentName:"mfrac"},"2"))),(0,m.kt)("mi",{parentName:"mrow"},"K")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"T = 10 + A t^B \\left(\\frac{r}{R}\\right)^{\\frac{1}{2}} K")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.68333em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.72777em",verticalAlign:"-0.08333em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mbin"},"+"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"2.17992em",verticalAlign:"-0.686em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8913309999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.113em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05017em"}},"B")))))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"mopen delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size2"},"(")),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.10756em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.00773em"}},"R"))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"r")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,m.kt)("span",{parentName:"span",className:"mclose delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size2"},")"))),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.49392em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.9029em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter sizing reset-size3 size6"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8443142857142858em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.656em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.2255000000000003em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line mtight",style:{borderBottomWidth:"0.049em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.384em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.344em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter sizing reset-size3 size6"})))))))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K")))))),(0,m.kt)("p",null,"Where ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"r")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"r")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.43056em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"r")))))," is the distance from the centre of the core to the current point, ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"R")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"R")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.68333em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.00773em"}},"R")))))," is the radius of the core (",(0,m.kt)("inlineCode",{parentName:"p"},"rout"),") and ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"A")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"A")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.68333em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A")))))," and ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"B")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"B")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.68333em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05017em"}},"B")))))," are empirically derived constants. These constants have been determined for specific protostellar masses and the user can choose from 1, 5, 10, 15, 25, and 60 solar masses using the ",(0,m.kt)("inlineCode",{parentName:"p"},"tempIndx")," variable when calling ",(0,m.kt)("a",{parentName:"p",href:"/docs/pythonapi#uclchem.model.hot_core"},"uclchem.model.hot_core")),(0,m.kt)("p",null,"A key aspect of hot cores is the sublimation of ices as the gas heats. TPD experiments have shown that this happens in multiple desorptions events per species rather than a single desorption once the temperature is enough to overcome the binding energy of a given species. In three phase models, this is achieved by the fact the binding energy of species in the bulk is assumed to be equal to the water binding energy, meaning a species will usually desorb from the surface earlier than from the bulk. In two phase networks, the hot core model uses the fixed desorption events of ",(0,m.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1111/j.1365-2966.2004.08273.x"},"Viti et al. 2004")," to mimic this."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7b253f47.f45630a7.js b/assets/js/7b253f47.f45630a7.js deleted file mode 100644 index 34365154..00000000 --- a/assets/js/7b253f47.f45630a7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9260],{3905:(a,e,t)=>{t.d(e,{Zo:()=>o,kt:()=>h});var s=t(7294);function n(a,e,t){return e in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function m(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.push.apply(t,s)}return t}function p(a){for(var e=1;e=0||(n[t]=a[t]);return n}(a,e);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(a);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(a,t)&&(n[t]=a[t])}return n}var i=s.createContext({}),l=function(a){var e=s.useContext(i),t=e;return a&&(t="function"==typeof a?a(e):p(p({},e),a)),t},o=function(a){var e=l(a.components);return s.createElement(i.Provider,{value:e},a.children)},c={inlineCode:"code",wrapper:function(a){var e=a.children;return s.createElement(s.Fragment,{},e)}},N=s.forwardRef((function(a,e){var t=a.components,n=a.mdxType,m=a.originalType,i=a.parentName,o=r(a,["components","mdxType","originalType","parentName"]),N=l(t),h=n,k=N["".concat(i,".").concat(h)]||N[h]||c[h]||m;return t?s.createElement(k,p(p({ref:e},o),{},{components:t})):s.createElement(k,p({ref:e},o))}));function h(a,e){var t=arguments,n=e&&e.mdxType;if("string"==typeof a||n){var m=t.length,p=new Array(m);p[0]=N;var r={};for(var i in e)hasOwnProperty.call(e,i)&&(r[i]=e[i]);r.originalType=a,r.mdxType="string"==typeof a?a:n,p[1]=r;for(var l=2;l{t.r(e),t.d(e,{assets:()=>o,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var s=t(7462),n=t(3366),m=(t(7294),t(3905)),p=["components"],r={id:"physics-hotcore",title:"Hot Core",author:"Jon Holdship"},i=void 0,l={unversionedId:"physics-hotcore",id:"version-v3.1.0/physics-hotcore",title:"Hot Core",description:"Main Contributors: Serena Viti, Jon Holdship",source:"@site/versioned_docs/version-v3.1.0/physics-hotcore.md",sourceDirName:".",slug:"/physics-hotcore",permalink:"/docs/v3.1.0/physics-hotcore",tags:[],version:"v3.1.0",frontMatter:{id:"physics-hotcore",title:"Hot Core",author:"Jon Holdship"},sidebar:"docs",previous:{title:"Cloud Model",permalink:"/docs/v3.1.0/physics-cloud"},next:{title:"Shock Models",permalink:"/docs/v3.1.0/physics-shocks"}},o={},c=[],N={toc:c};function h(a){var e=a.components,t=(0,n.Z)(a,p);return(0,m.kt)("wrapper",(0,s.Z)({},N,t,{components:e,mdxType:"MDXLayout"}),(0,m.kt)("p",null,(0,m.kt)("strong",{parentName:"p"},"Main Contributors"),": Serena Viti, Jon Holdship"),(0,m.kt)("p",null,(0,m.kt)("strong",{parentName:"p"},"Source"),": src/fortran_src/hotcore.f90"),(0,m.kt)("p",null,"The hot core model can be used to model the envelopes around hot cores as a single point or a 1D line of gas parels. The temperature in this model increases following the temperature profiles given in ",(0,m.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1111/j.1365-2966.2004.08273.x"},"Viti et al. 2004")," with modifications by ",(0,m.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1111/j.1365-2966.2010.17077.x"},"Awad et al. 2010"),". These are time and radially dependent temperature profiles intended to match the heat up of the gas around a hot core."),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"T"),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("mn",{parentName:"mrow"},"10"),(0,m.kt)("mo",{parentName:"mrow"},"+"),(0,m.kt)("mi",{parentName:"mrow"},"A"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"t"),(0,m.kt)("mi",{parentName:"msup"},"B")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow",fence:"true"},"("),(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"mfrac"},"r"),(0,m.kt)("mi",{parentName:"mfrac"},"R")),(0,m.kt)("mo",{parentName:"mrow",fence:"true"},")")),(0,m.kt)("mfrac",{parentName:"msup"},(0,m.kt)("mn",{parentName:"mfrac"},"1"),(0,m.kt)("mn",{parentName:"mfrac"},"2"))),(0,m.kt)("mi",{parentName:"mrow"},"K")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"T = 10 + A t^B \\left(\\frac{r}{R}\\right)^{\\frac{1}{2}} K")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.68333em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.72777em",verticalAlign:"-0.08333em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mbin"},"+"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"2.17992em",verticalAlign:"-0.686em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8913309999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.113em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05017em"}},"B")))))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"mopen delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size2"},"(")),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.10756em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.00773em"}},"R"))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"r")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,m.kt)("span",{parentName:"span",className:"mclose delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size2"},")"))),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.49392em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.9029em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter sizing reset-size3 size6"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8443142857142858em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.656em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.2255000000000003em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line mtight",style:{borderBottomWidth:"0.049em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.384em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.344em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter sizing reset-size3 size6"})))))))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K")))))),(0,m.kt)("p",null,"Where ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"r")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"r")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.43056em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"r")))))," is the distance from the centre of the core to the current point, ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"R")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"R")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.68333em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.00773em"}},"R")))))," is the radius of the core (",(0,m.kt)("inlineCode",{parentName:"p"},"rout"),") and ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"A")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"A")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.68333em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A")))))," and ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"B")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"B")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.68333em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05017em"}},"B")))))," are empirically derived constants. These constants have been determined for specific protostellar masses and the user can choose from 1, 5, 10, 15, 25, and 60 solar masses using the ",(0,m.kt)("inlineCode",{parentName:"p"},"tempIndx")," variable when calling ",(0,m.kt)("a",{parentName:"p",href:"/docs/pythonapi#uclchem.model.hot_core"},"uclchem.model.hot_core")),(0,m.kt)("p",null,"A key aspect of hot cores is the sublimation of ices as the gas heats. TPD experiments have shown that this happens in multiple desorptions events per species rather than a single desorption once the temperature is enough to overcome the binding energy of a given species. In three phase models, this is achieved by the fact the binding energy of species in the bulk is assumed to be equal to the water binding energy, meaning a species will usually desorb from the surface earlier than from the bulk. In two phase networks, the hot core model uses the fixed desorption events of ",(0,m.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1111/j.1365-2966.2004.08273.x"},"Viti et al. 2004")," to mimic this."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7bc80f3c.28567b28.js b/assets/js/7bc80f3c.0cd0b177.js similarity index 60% rename from assets/js/7bc80f3c.28567b28.js rename to assets/js/7bc80f3c.0cd0b177.js index df576c1a..aa5e6029 100644 --- a/assets/js/7bc80f3c.28567b28.js +++ b/assets/js/7bc80f3c.0cd0b177.js @@ -1 +1 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1757],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>m});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},f={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(n),m=a,d=u["".concat(s,".").concat(m)]||u[m]||f[m]||o;return n?r.createElement(d,i(i({ref:t},p),{},{components:n})):r.createElement(d,i({ref:t},p))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:a,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>m,frontMatter:()=>l,metadata:()=>c,toc:()=>f});var r=n(7462),a=n(3366),o=(n(7294),n(3905)),i=["components"],l={title:"Nitrogen fractionation in external galaxies",authors:"serena"},s=void 0,c={permalink:"/blog/2019/04/19/serena-nitrogen-frac",source:"@site/blog/2019-04-19-serena-nitrogen-frac.md",title:"Nitrogen fractionation in external galaxies",description:"UCLCHEM has recently been used to study nitrogen fractionation in external galaxies. You can find the paper here and the abstract below.",date:"2019-04-19T00:00:00.000Z",formattedDate:"April 19, 2019",tags:[],readingTime:.81,truncated:!1,authors:[{name:"Serena Viti",title:"UCLCHEM PI",url:"https://home.strw.leidenuniv.nl/~viti/",imageURL:"/img/viti.jpg",key:"serena"}],frontMatter:{title:"Nitrogen fractionation in external galaxies",authors:"serena"},prevItem:{title:"Ambipolar diffusion and the molecular abundances inprestellar cores",permalink:"/blog/2019/07/08/felix-ambipolar"},nextItem:{title:"Collapsing Prestellar Cores - a new physics module",permalink:"/blog/2018/07/12/felix-collapse"}},p={authorsImageUrls:[void 0]},f=[],u={toc:f};function m(e){var t=e.components,n=(0,a.Z)(e,i);return(0,o.kt)("wrapper",(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"UCLCHEM has recently been used to study nitrogen fractionation in external galaxies. You can find ",(0,o.kt)("a",{parentName:"p",href:"https://arxiv.org/pdf/1904.11725.pdf"},"the paper here")," and the abstract below."),(0,o.kt)("p",null,"In star-forming regions in our own Galaxy, the 14N/15N ratio is found to vary from \u223c100 in meteorites, comets, and protoplanetary discs up to \u223c1000 in pre-stellar and star-forming cores, while in external galaxies the very few single-dish large-scale measurements of this ratio lead to values of 100-450. The extent of the contribution of isotopic fractionation to these variations is, to date, unknown. In this paper, we present a theoretical chemical study of nitrogen fractionation in external galaxies in order to determine the physical conditions that may lead to a spread of the 14N/15N ratio from the solar value of \u223c440 and hence evaluate the contribution of chemical reactions in the interstellar medium (ISM) to nitrogen fractionation. We find that the main cause of ISM enrichment of nitrogen fractionation is high gas densities, aided by high fluxes of cosmic rays."))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1757],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>m});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},f={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(n),m=a,d=u["".concat(s,".").concat(m)]||u[m]||f[m]||o;return n?r.createElement(d,i(i({ref:t},p),{},{components:n})):r.createElement(d,i({ref:t},p))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:a,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>m,frontMatter:()=>l,metadata:()=>c,toc:()=>f});var r=n(7462),a=n(3366),o=(n(7294),n(3905)),i=["components"],l={title:"Nitrogen fractionation in external galaxies",authors:"serena"},s=void 0,c={permalink:"/blog/2019/04/19/serena-nitrogen-frac",source:"@site/blog/2019-04-19-serena-nitrogen-frac.md",title:"Nitrogen fractionation in external galaxies",description:"UCLCHEM has recently been used to study nitrogen fractionation in external galaxies. You can find the paper here and the abstract below.",date:"2019-04-19T00:00:00.000Z",formattedDate:"April 19, 2019",tags:[],readingTime:.81,hasTruncateMarker:!1,authors:[{name:"Serena Viti",title:"UCLCHEM PI",url:"https://home.strw.leidenuniv.nl/~viti/",imageURL:"/img/viti.jpg",key:"serena"}],frontMatter:{title:"Nitrogen fractionation in external galaxies",authors:"serena"},prevItem:{title:"Ambipolar diffusion and the molecular abundances inprestellar cores",permalink:"/blog/2019/07/08/felix-ambipolar"},nextItem:{title:"Collapsing Prestellar Cores - a new physics module",permalink:"/blog/2018/07/12/felix-collapse"}},p={authorsImageUrls:[void 0]},f=[],u={toc:f};function m(e){var t=e.components,n=(0,a.Z)(e,i);return(0,o.kt)("wrapper",(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"UCLCHEM has recently been used to study nitrogen fractionation in external galaxies. You can find ",(0,o.kt)("a",{parentName:"p",href:"https://arxiv.org/pdf/1904.11725.pdf"},"the paper here")," and the abstract below."),(0,o.kt)("p",null,"In star-forming regions in our own Galaxy, the 14N/15N ratio is found to vary from \u223c100 in meteorites, comets, and protoplanetary discs up to \u223c1000 in pre-stellar and star-forming cores, while in external galaxies the very few single-dish large-scale measurements of this ratio lead to values of 100-450. The extent of the contribution of isotopic fractionation to these variations is, to date, unknown. In this paper, we present a theoretical chemical study of nitrogen fractionation in external galaxies in order to determine the physical conditions that may lead to a spread of the 14N/15N ratio from the solar value of \u223c440 and hence evaluate the contribution of chemical reactions in the interstellar medium (ISM) to nitrogen fractionation. We find that the main cause of ISM enrichment of nitrogen fractionation is high gas densities, aided by high fluxes of cosmic rays."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7c193f36.13f7c323.js b/assets/js/7c193f36.13f7c323.js deleted file mode 100644 index 65d564b5..00000000 --- a/assets/js/7c193f36.13f7c323.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7474],{3905:(a,e,t)=>{t.d(e,{Zo:()=>o,kt:()=>h});var s=t(7294);function n(a,e,t){return e in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function m(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.push.apply(t,s)}return t}function p(a){for(var e=1;e=0||(n[t]=a[t]);return n}(a,e);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(a);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(a,t)&&(n[t]=a[t])}return n}var i=s.createContext({}),l=function(a){var e=s.useContext(i),t=e;return a&&(t="function"==typeof a?a(e):p(p({},e),a)),t},o=function(a){var e=l(a.components);return s.createElement(i.Provider,{value:e},a.children)},c={inlineCode:"code",wrapper:function(a){var e=a.children;return s.createElement(s.Fragment,{},e)}},N=s.forwardRef((function(a,e){var t=a.components,n=a.mdxType,m=a.originalType,i=a.parentName,o=r(a,["components","mdxType","originalType","parentName"]),N=l(t),h=n,k=N["".concat(i,".").concat(h)]||N[h]||c[h]||m;return t?s.createElement(k,p(p({ref:e},o),{},{components:t})):s.createElement(k,p({ref:e},o))}));function h(a,e){var t=arguments,n=e&&e.mdxType;if("string"==typeof a||n){var m=t.length,p=new Array(m);p[0]=N;var r={};for(var i in e)hasOwnProperty.call(e,i)&&(r[i]=e[i]);r.originalType=a,r.mdxType="string"==typeof a?a:n,p[1]=r;for(var l=2;l{t.r(e),t.d(e,{assets:()=>o,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var s=t(7462),n=t(3366),m=(t(7294),t(3905)),p=["components"],r={id:"physics-hotcore",title:"Hot Core",author:"Jon Holdship"},i=void 0,l={unversionedId:"physics-hotcore",id:"physics-hotcore",title:"Hot Core",description:"Main Contributors: Serena Viti, Jon Holdship",source:"@site/docs/physics-hotcore.md",sourceDirName:".",slug:"/physics-hotcore",permalink:"/docs/next/physics-hotcore",tags:[],version:"current",lastUpdatedBy:"jonholdship",lastUpdatedAt:1651073142,formattedLastUpdatedAt:"4/27/2022",frontMatter:{id:"physics-hotcore",title:"Hot Core",author:"Jon Holdship"},sidebar:"docs",previous:{title:"Cloud Model",permalink:"/docs/next/physics-cloud"},next:{title:"Shock Models",permalink:"/docs/next/physics-shocks"}},o={},c=[],N={toc:c};function h(a){var e=a.components,t=(0,n.Z)(a,p);return(0,m.kt)("wrapper",(0,s.Z)({},N,t,{components:e,mdxType:"MDXLayout"}),(0,m.kt)("p",null,(0,m.kt)("strong",{parentName:"p"},"Main Contributors"),": Serena Viti, Jon Holdship"),(0,m.kt)("p",null,(0,m.kt)("strong",{parentName:"p"},"Source"),": src/fortran_src/hotcore.f90"),(0,m.kt)("p",null,"The hot core model can be used to model the envelopes around hot cores as a single point or a 1D line of gas parels. The temperature in this model increases following the temperature profiles given in ",(0,m.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1111/j.1365-2966.2004.08273.x"},"Viti et al. 2004")," with modifications by ",(0,m.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1111/j.1365-2966.2010.17077.x"},"Awad et al. 2010"),". These are time and radially dependent temperature profiles intended to match the heat up of the gas around a hot core."),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"T"),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("mn",{parentName:"mrow"},"10"),(0,m.kt)("mo",{parentName:"mrow"},"+"),(0,m.kt)("mi",{parentName:"mrow"},"A"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"t"),(0,m.kt)("mi",{parentName:"msup"},"B")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow",fence:"true"},"("),(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"mfrac"},"r"),(0,m.kt)("mi",{parentName:"mfrac"},"R")),(0,m.kt)("mo",{parentName:"mrow",fence:"true"},")")),(0,m.kt)("mfrac",{parentName:"msup"},(0,m.kt)("mn",{parentName:"mfrac"},"1"),(0,m.kt)("mn",{parentName:"mfrac"},"2"))),(0,m.kt)("mi",{parentName:"mrow"},"K")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"T = 10 + A t^B \\left(\\frac{r}{R}\\right)^{\\frac{1}{2}} K")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.68333em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.72777em",verticalAlign:"-0.08333em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mbin"},"+"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"2.17992em",verticalAlign:"-0.686em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8913309999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.113em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05017em"}},"B")))))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"mopen delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size2"},"(")),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.10756em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.00773em"}},"R"))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"r")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,m.kt)("span",{parentName:"span",className:"mclose delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size2"},")"))),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.49392em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.9029em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter sizing reset-size3 size6"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8443142857142858em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.656em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.2255000000000003em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line mtight",style:{borderBottomWidth:"0.049em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.384em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.344em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter sizing reset-size3 size6"})))))))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K")))))),(0,m.kt)("p",null,"Where ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"r")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"r")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.43056em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"r")))))," is the distance from the centre of the core to the current point, ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"R")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"R")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.68333em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.00773em"}},"R")))))," is the radius of the core (",(0,m.kt)("inlineCode",{parentName:"p"},"rout"),") and ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"A")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"A")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.68333em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A")))))," and ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"B")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"B")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.68333em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05017em"}},"B")))))," are empirically derived constants. These constants have been determined for specific protostellar masses and the user can choose from 1, 5, 10, 15, 25, and 60 solar masses using the ",(0,m.kt)("inlineCode",{parentName:"p"},"tempIndx")," variable when calling ",(0,m.kt)("a",{parentName:"p",href:"/docs/pythonapi#uclchem.model.hot_core"},"uclchem.model.hot_core")),(0,m.kt)("p",null,"A key aspect of hot cores is the sublimation of ices as the gas heats. TPD experiments have shown that this happens in multiple desorptions events per species rather than a single desorption once the temperature is enough to overcome the binding energy of a given species. In three phase models, this is achieved by the fact the binding energy of species in the bulk is assumed to be equal to the water binding energy, meaning a species will usually desorb from the surface earlier than from the bulk. In two phase networks, the hot core model uses the fixed desorption events of ",(0,m.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1111/j.1365-2966.2004.08273.x"},"Viti et al. 2004")," to mimic this."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7c193f36.d27c8357.js b/assets/js/7c193f36.d27c8357.js new file mode 100644 index 00000000..27529d38 --- /dev/null +++ b/assets/js/7c193f36.d27c8357.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7474],{3905:(a,e,t)=>{t.d(e,{Zo:()=>o,kt:()=>h});var s=t(7294);function n(a,e,t){return e in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function m(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.push.apply(t,s)}return t}function p(a){for(var e=1;e=0||(n[t]=a[t]);return n}(a,e);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(a);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(a,t)&&(n[t]=a[t])}return n}var i=s.createContext({}),l=function(a){var e=s.useContext(i),t=e;return a&&(t="function"==typeof a?a(e):p(p({},e),a)),t},o=function(a){var e=l(a.components);return s.createElement(i.Provider,{value:e},a.children)},c={inlineCode:"code",wrapper:function(a){var e=a.children;return s.createElement(s.Fragment,{},e)}},N=s.forwardRef((function(a,e){var t=a.components,n=a.mdxType,m=a.originalType,i=a.parentName,o=r(a,["components","mdxType","originalType","parentName"]),N=l(t),h=n,k=N["".concat(i,".").concat(h)]||N[h]||c[h]||m;return t?s.createElement(k,p(p({ref:e},o),{},{components:t})):s.createElement(k,p({ref:e},o))}));function h(a,e){var t=arguments,n=e&&e.mdxType;if("string"==typeof a||n){var m=t.length,p=new Array(m);p[0]=N;var r={};for(var i in e)hasOwnProperty.call(e,i)&&(r[i]=e[i]);r.originalType=a,r.mdxType="string"==typeof a?a:n,p[1]=r;for(var l=2;l{t.r(e),t.d(e,{assets:()=>o,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var s=t(7462),n=t(3366),m=(t(7294),t(3905)),p=["components"],r={id:"physics-hotcore",title:"Hot Core",author:"Jon Holdship"},i=void 0,l={unversionedId:"physics-hotcore",id:"physics-hotcore",title:"Hot Core",description:"Main Contributors: Serena Viti, Jon Holdship",source:"@site/docs/physics-hotcore.md",sourceDirName:".",slug:"/physics-hotcore",permalink:"/docs/next/physics-hotcore",draft:!1,tags:[],version:"current",lastUpdatedBy:"jonholdship",lastUpdatedAt:1651073142,formattedLastUpdatedAt:"Apr 27, 2022",frontMatter:{id:"physics-hotcore",title:"Hot Core",author:"Jon Holdship"},sidebar:"docs",previous:{title:"Cloud Model",permalink:"/docs/next/physics-cloud"},next:{title:"Shock Models",permalink:"/docs/next/physics-shocks"}},o={},c=[],N={toc:c};function h(a){var e=a.components,t=(0,n.Z)(a,p);return(0,m.kt)("wrapper",(0,s.Z)({},N,t,{components:e,mdxType:"MDXLayout"}),(0,m.kt)("p",null,(0,m.kt)("strong",{parentName:"p"},"Main Contributors"),": Serena Viti, Jon Holdship"),(0,m.kt)("p",null,(0,m.kt)("strong",{parentName:"p"},"Source"),": src/fortran_src/hotcore.f90"),(0,m.kt)("p",null,"The hot core model can be used to model the envelopes around hot cores as a single point or a 1D line of gas parels. The temperature in this model increases following the temperature profiles given in ",(0,m.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1111/j.1365-2966.2004.08273.x"},"Viti et al. 2004")," with modifications by ",(0,m.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1111/j.1365-2966.2010.17077.x"},"Awad et al. 2010"),". These are time and radially dependent temperature profiles intended to match the heat up of the gas around a hot core."),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"T"),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("mn",{parentName:"mrow"},"10"),(0,m.kt)("mo",{parentName:"mrow"},"+"),(0,m.kt)("mi",{parentName:"mrow"},"A"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"t"),(0,m.kt)("mi",{parentName:"msup"},"B")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow",fence:"true"},"("),(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"mfrac"},"r"),(0,m.kt)("mi",{parentName:"mfrac"},"R")),(0,m.kt)("mo",{parentName:"mrow",fence:"true"},")")),(0,m.kt)("mfrac",{parentName:"msup"},(0,m.kt)("mn",{parentName:"mfrac"},"1"),(0,m.kt)("mn",{parentName:"mfrac"},"2"))),(0,m.kt)("mi",{parentName:"mrow"},"K")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"T = 10 + A t^B \\left(\\frac{r}{R}\\right)^{\\frac{1}{2}} K")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.68333em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.72777em",verticalAlign:"-0.08333em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mbin"},"+"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"2.17992em",verticalAlign:"-0.686em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8913309999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.113em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05017em"}},"B")))))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"mopen delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size2"},"(")),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.10756em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.00773em"}},"R"))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"r")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,m.kt)("span",{parentName:"span",className:"mclose delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size2"},")"))),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.49392em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.9029em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter sizing reset-size3 size6"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8443142857142858em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.656em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.2255000000000003em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line mtight",style:{borderBottomWidth:"0.049em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.384em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.344em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter sizing reset-size3 size6"})))))))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K")))))),(0,m.kt)("p",null,"Where ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"r")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"r")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.43056em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"r")))))," is the distance from the centre of the core to the current point, ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"R")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"R")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.68333em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.00773em"}},"R")))))," is the radius of the core (",(0,m.kt)("inlineCode",{parentName:"p"},"rout"),") and ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"A")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"A")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.68333em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A")))))," and ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"B")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"B")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.68333em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05017em"}},"B")))))," are empirically derived constants. These constants have been determined for specific protostellar masses and the user can choose from 1, 5, 10, 15, 25, and 60 solar masses using the ",(0,m.kt)("inlineCode",{parentName:"p"},"tempIndx")," variable when calling ",(0,m.kt)("a",{parentName:"p",href:"/docs/pythonapi#uclchem.model.hot_core"},"uclchem.model.hot_core")),(0,m.kt)("p",null,"A key aspect of hot cores is the sublimation of ices as the gas heats. TPD experiments have shown that this happens in multiple desorptions events per species rather than a single desorption once the temperature is enough to overcome the binding energy of a given species. In three phase models, this is achieved by the fact the binding energy of species in the bulk is assumed to be equal to the water binding energy, meaning a species will usually desorb from the surface earlier than from the bulk. In two phase networks, the hot core model uses the fixed desorption events of ",(0,m.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1111/j.1365-2966.2004.08273.x"},"Viti et al. 2004")," to mimic this."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/61e2a305.b2331146.js b/assets/js/7cbbac6d.1137c1b2.js similarity index 79% rename from assets/js/61e2a305.b2331146.js rename to assets/js/7cbbac6d.1137c1b2.js index a2851d21..224c8fd3 100644 --- a/assets/js/61e2a305.b2331146.js +++ b/assets/js/7cbbac6d.1137c1b2.js @@ -1 +1 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[193],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>k});var l=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=l.createContext({}),u=function(e){var t=l.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},d=function(e){var t=u(e.components);return l.createElement(i.Provider,{value:t},e.children)},c={inlineCode:"code",wrapper:function(e){var t=e.children;return l.createElement(l.Fragment,{},t)}},p=l.forwardRef((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,i=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=u(n),k=a,h=p["".concat(i,".").concat(k)]||p[k]||c[k]||r;return n?l.createElement(h,o(o({ref:t},d),{},{components:n})):l.createElement(h,o({ref:t},d))}));function k(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,o=new Array(r);o[0]=p;var s={};for(var i in t)hasOwnProperty.call(t,i)&&(s[i]=t[i]);s.originalType=e,s.mdxType="string"==typeof e?e:a,o[1]=s;for(var u=2;u{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>k,frontMatter:()=>s,metadata:()=>u,toc:()=>c});var l=n(7462),a=n(3366),r=(n(7294),n(3905)),o=["components"],s={},i="Running Your First Models",u={unversionedId:"first_model",id:"version-v3.2.0/first_model",title:"Running Your First Models",description:"In this notebook, we demonstrate the basic use of UCLCHEM's python module by running a simple model and then using the analysis functions to examine the output.",source:"@site/versioned_docs/version-v3.2.0/first_model.md",sourceDirName:".",slug:"/first_model",permalink:"/docs/first_model",tags:[],version:"v3.2.0",frontMatter:{},sidebar:"docs",previous:{title:"Tutorials",permalink:"/docs/category/tutorials"},next:{title:"Advanced Physical Modelling",permalink:"/docs/modelling_objects"}},d={},c=[{value:"A Simple Cloud",id:"a-simple-cloud",level:2},{value:"Checking the output",id:"checking-the-output",level:2},{value:"Plotting Results",id:"plotting-results",level:2}],p={toc:c};function k(e){var t=e.components,s=(0,a.Z)(e,o);return(0,r.kt)("wrapper",(0,l.Z)({},p,s,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"running-your-first-models"},"Running Your First Models"),(0,r.kt)("p",null,"In this notebook, we demonstrate the basic use of UCLCHEM's python module by running a simple model and then using the analysis functions to examine the output."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},"import uclchem\n")),(0,r.kt)("h2",{id:"a-simple-cloud"},"A Simple Cloud"),(0,r.kt)("p",null,"UCLCHEM's ",(0,r.kt)("inlineCode",{parentName:"p"},"cloud()")," model is a spherical cloud of isothermal gas. We can keep a constant density or have it increase over time following a freefall equation. This model is generally useful whenever you want to model a homogeneous cloud of gas under constant conditions. For example, in the inner parts of a molecular cloud where Av ",(0,r.kt)("span",{parentName:"p",className:"math math-inline"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("mo",{parentName:"mrow"},"\u2273")),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\gtrsim")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.95916em",verticalAlign:"-0.22958em"}}),(0,r.kt)("span",{parentName:"span",className:"mrel amsrm"},"\u2273")))))," 10 there are very few depth dependent processes. You may wish to model the whole of this UV shielded portion of the cloud with a single ",(0,r.kt)("inlineCode",{parentName:"p"},"cloud()")," model."),(0,r.kt)("p",null,"Due to the large number of parameters in a chemical model and the way fortran and python interaction, we find it is easiest to do parameter input through python dictionaries. In this block, we define param_dict which contains the parameters we wish to modify for this run. Every ",(0,r.kt)("inlineCode",{parentName:"p"},"uclchem.model")," function accepts a dictionary as an optional argument. Every parameter has a default value which is overriden if that parameter is specified in this dictionary. You can find a complete list of modifiable parameters and their default values in ",(0,r.kt)("a",{parentName:"p",href:"/docs/parameters"},"our parameter docs"),"."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},'# set a parameter dictionary for phase 1 collapse model\n\nout_species = ["SO","CO"]\nparam_dict = {\n "endAtFinalDensity": False,#stop at finalTime\n "freefall": False,#don\'t increase density in freefall\n "initialDens": 1e4, #starting density\n "initialTemp": 10.0,#temperature of gas\n "finalTime": 1.0e6, #final time\n "rout":0.1, #radius of cloud in pc\n "baseAv":1.0, #visual extinction at cloud edge.\n "outputFile": "../examples/test-output/static-full.dat",#full UCLCHEM output\n "abundSaveFile": "../examples/test-output/startstatic.dat",#save final abundances to file\n}\nresult = uclchem.model.cloud(param_dict=param_dict,out_species=out_species)\nprint(result)\n\n')),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"[1, 3.331065659699488e-11, 3.576305642378658e-05]\n")),(0,r.kt)("h2",{id:"checking-the-output"},"Checking the output"),(0,r.kt)("p",null,"At the end of the previous cell, we printed ",(0,r.kt)("inlineCode",{parentName:"p"},"result")," which is a list returned by every UCLCHEM model function. The first element is always an integer which will be positive if the code completed and negative otherwise. You can send negative values to ",(0,r.kt)("inlineCode",{parentName:"p"},"uclchem.utils.check_error()")," to get a more detailed error message."),(0,r.kt)("p",null,"The subsequent elements are the final abundances of any species listed in ",(0,r.kt)("inlineCode",{parentName:"p"},"out_species"),", in this case we have the abundance of SO and CO. This is useful when we want to use UCLCHEM as part of something like an MCMC procedure, obtaining abundances for given parameters. However, we also write the final abundances of all species to ",(0,r.kt)("inlineCode",{parentName:"p"},"abundSaveFile")," and the abundances of all species at every time step in ",(0,r.kt)("inlineCode",{parentName:"p"},"outputFile")," so it is not necessary to acquire abundances in this way."),(0,r.kt)("p",null,"The output file is just a simple csv with some header rows, UCLCHEM has a utility function to read that file into a pandas dataframe. Let's load it up and look at it."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},'result_df=uclchem.analysis.read_output_file("../examples/test-output/static-full.dat")\nresult_df.head()\n')),(0,r.kt)("div",null,(0,r.kt)("table",{border:"1",class:"dataframe"},(0,r.kt)("thead",null,(0,r.kt)("tr",null,(0,r.kt)("th",null),(0,r.kt)("th",null,"Time"),(0,r.kt)("th",null,"Density"),(0,r.kt)("th",null,"gasTemp"),(0,r.kt)("th",null,"av"),(0,r.kt)("th",null,"zeta"),(0,r.kt)("th",null,"point"),(0,r.kt)("th",null,"H"),(0,r.kt)("th",null,"#H"),(0,r.kt)("th",null,"H+"),(0,r.kt)("th",null,"@H"),(0,r.kt)("th",null,"..."),(0,r.kt)("th",null,"HS2+"),(0,r.kt)("th",null,"HSO2+"),(0,r.kt)("th",null,"H2S2+"),(0,r.kt)("th",null,"H2S2"),(0,r.kt)("th",null,"#H2S2"),(0,r.kt)("th",null,"@H2S2"),(0,r.kt)("th",null,"E-"),(0,r.kt)("th",null,"BULK"),(0,r.kt)("th",null,"SURFACE"),(0,r.kt)("th",null,"radfield"))),(0,r.kt)("tbody",null,(0,r.kt)("tr",null,(0,r.kt)("th",null,"0"),(0,r.kt)("td",null,"0.000000e+00"),(0,r.kt)("td",null,"10000.0"),(0,r.kt)("td",null,"10.0"),(0,r.kt)("td",null,"2.9287"),(0,r.kt)("td",null,"1.0"),(0,r.kt)("td",null,"1"),(0,r.kt)("td",null,"0.5"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"..."),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"0.000182"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.0")),(0,r.kt)("tr",null,(0,r.kt)("th",null,"1"),(0,r.kt)("td",null,"1.000000e-07"),(0,r.kt)("td",null,"10000.0"),(0,r.kt)("td",null,"10.0"),(0,r.kt)("td",null,"2.9287"),(0,r.kt)("td",null,"1.0"),(0,r.kt)("td",null,"1"),(0,r.kt)("td",null,"0.5"),(0,r.kt)("td",null,"5.680300e-13"),(0,r.kt)("td",null,"1.789040e-17"),(0,r.kt)("td",null,"4.269620e-20"),(0,r.kt)("td",null,"..."),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"0.000182"),(0,r.kt)("td",null,"5.629010e-20"),(0,r.kt)("td",null,"7.488850e-13"),(0,r.kt)("td",null,"1.0")),(0,r.kt)("tr",null,(0,r.kt)("th",null,"2"),(0,r.kt)("td",null,"1.000000e-06"),(0,r.kt)("td",null,"10000.0"),(0,r.kt)("td",null,"10.0"),(0,r.kt)("td",null,"2.9287"),(0,r.kt)("td",null,"1.0"),(0,r.kt)("td",null,"1"),(0,r.kt)("td",null,"0.5"),(0,r.kt)("td",null,"5.646510e-12"),(0,r.kt)("td",null,"1.789080e-16"),(0,r.kt)("td",null,"4.219000e-18"),(0,r.kt)("td",null,"..."),(0,r.kt)("td",null,"1.631720e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000020e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"0.000182"),(0,r.kt)("td",null,"5.562330e-18"),(0,r.kt)("td",null,"7.444370e-12"),(0,r.kt)("td",null,"1.0")),(0,r.kt)("tr",null,(0,r.kt)("th",null,"3"),(0,r.kt)("td",null,"1.000000e-05"),(0,r.kt)("td",null,"10000.0"),(0,r.kt)("td",null,"10.0"),(0,r.kt)("td",null,"2.9287"),(0,r.kt)("td",null,"1.0"),(0,r.kt)("td",null,"1"),(0,r.kt)("td",null,"0.5"),(0,r.kt)("td",null,"5.641430e-11"),(0,r.kt)("td",null,"1.789520e-15"),(0,r.kt)("td",null,"4.212520e-16"),(0,r.kt)("td",null,"..."),(0,r.kt)("td",null,"7.762720e-29"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000050e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000010e-30"),(0,r.kt)("td",null,"0.000182"),(0,r.kt)("td",null,"5.554260e-16"),(0,r.kt)("td",null,"7.438940e-11"),(0,r.kt)("td",null,"1.0")),(0,r.kt)("tr",null,(0,r.kt)("th",null,"4"),(0,r.kt)("td",null,"1.000000e-04"),(0,r.kt)("td",null,"10000.0"),(0,r.kt)("td",null,"10.0"),(0,r.kt)("td",null,"2.9287"),(0,r.kt)("td",null,"1.0"),(0,r.kt)("td",null,"1"),(0,r.kt)("td",null,"0.5"),(0,r.kt)("td",null,"5.480630e-10"),(0,r.kt)("td",null,"1.793810e-14"),(0,r.kt)("td",null,"4.079690e-14"),(0,r.kt)("td",null,"..."),(0,r.kt)("td",null,"7.864380e-27"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000070e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000150e-30"),(0,r.kt)("td",null,"0.000182"),(0,r.kt)("td",null,"5.425070e-14"),(0,r.kt)("td",null,"7.351600e-10"),(0,r.kt)("td",null,"1.0")))),(0,r.kt)("p",null,"5 rows \xd7 321 columns")),(0,r.kt)("p",null,"We can also test whether the model run went well by checking for element conservation. We do this because integrator errors often show up as a failure to conserve elemental abundances. "),(0,r.kt)("p",null,"We can use ",(0,r.kt)("inlineCode",{parentName:"p"},"check_element_conservation()")," to test whether we conserve elements in this run. This function returns a dictionary where each entry gives the change in the total abundance of an element as a percentage of the original abundance. In an ideal case, these values are 0\\% indicating the total abundance at the end of the model is exactly the same as the total at the start."),(0,r.kt)("p",null,"Changes of less than 1\\% are fine for many cases but if they are too high, you could consider changing the ",(0,r.kt)("inlineCode",{parentName:"p"},"reltol")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"abstol")," parameters that control the integrator accuracy. They are error tolerance so smaller values lead to smaller errors and (usually) longer integration times. The default values were chosen by running a large grid of models and choosing the tolerances with the lowest average run time from those that conserved elements well and rarely failed. Despite this, there are no one-size-fits-all perfect tolerances and you may run into issues with different networks or models."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},'conservation=uclchem.analysis.check_element_conservation(result_df,element_list=["H","N","C","O","S"])\nprint("Percentage change in total abundances:")\nprint(conservation)\n')),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"Percentage change in total abundances:\n{'H': '0.001%', 'N': '0.000%', 'C': '0.000%', 'O': '0.000%', 'S': '0.000%'}\n")),(0,r.kt)("h2",{id:"plotting-results"},"Plotting Results"),(0,r.kt)("p",null,"Finally, you will want to plot your results. This can be done with any plotting library but UCLCHEM does provide a few functions to make quick plots. Note the use of $ symbols in the species list below, this gets the total ice abundance of a species. For two phase models, this is just the surface abudance but for three phase it is the sum of surface and bulk."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},'species=["H","H2","$H","$H2","H2O","$H2O","CO","$CO","$CH3OH","CH3OH"]\nfig,ax=uclchem.analysis.create_abundance_plot(result_df,species,figsize=(10,7))\nax=ax.set(xscale="log",ylim=(1e-15,1),xlim=(1e3,1e6))\n')),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"png",src:n(3184).Z,width:"712",height:"496"})),(0,r.kt)("p",null,"and that's it! You've run your first UCLCHEM model, checked that the element conservation is correct, and plotted the abundances."))}k.isMDXComponent=!0},3184:(e,t,n)=>{n.d(t,{Z:()=>l});const l=n.p+"assets/images/first_model_9_0-fff8b0e800895dbb0e755cc2b9459720.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9206],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>k});var l=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=l.createContext({}),u=function(e){var t=l.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},d=function(e){var t=u(e.components);return l.createElement(i.Provider,{value:t},e.children)},c={inlineCode:"code",wrapper:function(e){var t=e.children;return l.createElement(l.Fragment,{},t)}},p=l.forwardRef((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,i=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=u(n),k=a,h=p["".concat(i,".").concat(k)]||p[k]||c[k]||r;return n?l.createElement(h,o(o({ref:t},d),{},{components:n})):l.createElement(h,o({ref:t},d))}));function k(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,o=new Array(r);o[0]=p;var s={};for(var i in t)hasOwnProperty.call(t,i)&&(s[i]=t[i]);s.originalType=e,s.mdxType="string"==typeof e?e:a,o[1]=s;for(var u=2;u{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>k,frontMatter:()=>s,metadata:()=>u,toc:()=>c});var l=n(7462),a=n(3366),r=(n(7294),n(3905)),o=["components"],s={},i="Running Your First Models",u={unversionedId:"first_model",id:"version-v3.1.0/first_model",title:"Running Your First Models",description:"In this notebook, we demonstrate the basic use of UCLCHEM's python module by running a simple model and then using the analysis functions to examine the output.",source:"@site/versioned_docs/version-v3.1.0/first_model.md",sourceDirName:".",slug:"/first_model",permalink:"/docs/v3.1.0/first_model",draft:!1,tags:[],version:"v3.1.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{},sidebar:"docs",previous:{title:"Tutorials",permalink:"/docs/v3.1.0/category/tutorials"},next:{title:"Advanced Physical Modelling",permalink:"/docs/v3.1.0/modelling_objects"}},d={},c=[{value:"A Simple Cloud",id:"a-simple-cloud",level:2},{value:"Checking the output",id:"checking-the-output",level:2},{value:"Plotting Results",id:"plotting-results",level:2}],p={toc:c};function k(e){var t=e.components,s=(0,a.Z)(e,o);return(0,r.kt)("wrapper",(0,l.Z)({},p,s,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"running-your-first-models"},"Running Your First Models"),(0,r.kt)("p",null,"In this notebook, we demonstrate the basic use of UCLCHEM's python module by running a simple model and then using the analysis functions to examine the output."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},"import uclchem\n")),(0,r.kt)("h2",{id:"a-simple-cloud"},"A Simple Cloud"),(0,r.kt)("p",null,"UCLCHEM's ",(0,r.kt)("inlineCode",{parentName:"p"},"cloud()")," model is a spherical cloud of isothermal gas. We can keep a constant density or have it increase over time following a freefall equation. This model is generally useful whenever you want to model a homogeneous cloud of gas under constant conditions. For example, in the inner parts of a molecular cloud where Av ",(0,r.kt)("span",{parentName:"p",className:"math math-inline"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("mo",{parentName:"mrow"},"\u2273")),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\gtrsim")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.95916em",verticalAlign:"-0.22958em"}}),(0,r.kt)("span",{parentName:"span",className:"mrel amsrm"},"\u2273")))))," 10 there are very few depth dependent processes. You may wish to model the whole of this UV shielded portion of the cloud with a single ",(0,r.kt)("inlineCode",{parentName:"p"},"cloud()")," model."),(0,r.kt)("p",null,"Due to the large number of parameters in a chemical model and the way fortran and python interaction, we find it is easiest to do parameter input through python dictionaries. In this block, we define param_dict which contains the parameters we wish to modify for this run. Every ",(0,r.kt)("inlineCode",{parentName:"p"},"uclchem.model")," function accepts a dictionary as an optional argument. Every parameter has a default value which is overriden if that parameter is specified in this dictionary. You can find a complete list of modifiable parameters and their default values in ",(0,r.kt)("a",{parentName:"p",href:"/docs/parameters"},"our parameter docs"),"."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},'# set a parameter dictionary for phase 1 collapse model\n\nout_species = ["SO","CO"]\nparam_dict = {\n "endAtFinalDensity": False,#stop at finalTime\n "freefall": False,#don\'t increase density in freefall\n "initialDens": 1e4, #starting density\n "initialTemp": 10.0,#temperature of gas\n "finalTime": 1.0e6, #final time\n "rout":0.1, #radius of cloud in pc\n "baseAv":1.0, #visual extinction at cloud edge.\n "outputFile": "../examples/test-output/static-full.dat",#full UCLCHEM output\n "abundSaveFile": "../examples/test-output/startstatic.dat",#save final abundances to file\n}\nresult = uclchem.model.cloud(param_dict=param_dict,out_species=out_species)\nprint(result)\n\n')),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"[1, 3.331065659699488e-11, 3.576305642378658e-05]\n")),(0,r.kt)("h2",{id:"checking-the-output"},"Checking the output"),(0,r.kt)("p",null,"At the end of the previous cell, we printed ",(0,r.kt)("inlineCode",{parentName:"p"},"result")," which is a list returned by every UCLCHEM model function. The first element is always an integer which will be positive if the code completed and negative otherwise. You can send negative values to ",(0,r.kt)("inlineCode",{parentName:"p"},"uclchem.utils.check_error()")," to get a more detailed error message."),(0,r.kt)("p",null,"The subsequent elements are the final abundances of any species listed in ",(0,r.kt)("inlineCode",{parentName:"p"},"out_species"),", in this case we have the abundance of SO and CO. This is useful when we want to use UCLCHEM as part of something like an MCMC procedure, obtaining abundances for given parameters. However, we also write the final abundances of all species to ",(0,r.kt)("inlineCode",{parentName:"p"},"abundSaveFile")," and the abundances of all species at every time step in ",(0,r.kt)("inlineCode",{parentName:"p"},"outputFile")," so it is not necessary to acquire abundances in this way."),(0,r.kt)("p",null,"The output file is just a simple csv with some header rows, UCLCHEM has a utility function to read that file into a pandas dataframe. Let's load it up and look at it."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},'result_df=uclchem.analysis.read_output_file("../examples/test-output/static-full.dat")\nresult_df.head()\n')),(0,r.kt)("div",null,(0,r.kt)("table",{border:"1",class:"dataframe"},(0,r.kt)("thead",null,(0,r.kt)("tr",null,(0,r.kt)("th",null),(0,r.kt)("th",null,"Time"),(0,r.kt)("th",null,"Density"),(0,r.kt)("th",null,"gasTemp"),(0,r.kt)("th",null,"av"),(0,r.kt)("th",null,"zeta"),(0,r.kt)("th",null,"point"),(0,r.kt)("th",null,"H"),(0,r.kt)("th",null,"#H"),(0,r.kt)("th",null,"H+"),(0,r.kt)("th",null,"@H"),(0,r.kt)("th",null,"..."),(0,r.kt)("th",null,"HS2+"),(0,r.kt)("th",null,"HSO2+"),(0,r.kt)("th",null,"H2S2+"),(0,r.kt)("th",null,"H2S2"),(0,r.kt)("th",null,"#H2S2"),(0,r.kt)("th",null,"@H2S2"),(0,r.kt)("th",null,"E-"),(0,r.kt)("th",null,"BULK"),(0,r.kt)("th",null,"SURFACE"),(0,r.kt)("th",null,"radfield"))),(0,r.kt)("tbody",null,(0,r.kt)("tr",null,(0,r.kt)("th",null,"0"),(0,r.kt)("td",null,"0.000000e+00"),(0,r.kt)("td",null,"10000.0"),(0,r.kt)("td",null,"10.0"),(0,r.kt)("td",null,"2.9287"),(0,r.kt)("td",null,"1.0"),(0,r.kt)("td",null,"1"),(0,r.kt)("td",null,"0.5"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"..."),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"0.000182"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.0")),(0,r.kt)("tr",null,(0,r.kt)("th",null,"1"),(0,r.kt)("td",null,"1.000000e-07"),(0,r.kt)("td",null,"10000.0"),(0,r.kt)("td",null,"10.0"),(0,r.kt)("td",null,"2.9287"),(0,r.kt)("td",null,"1.0"),(0,r.kt)("td",null,"1"),(0,r.kt)("td",null,"0.5"),(0,r.kt)("td",null,"5.680300e-13"),(0,r.kt)("td",null,"1.789040e-17"),(0,r.kt)("td",null,"4.269620e-20"),(0,r.kt)("td",null,"..."),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"0.000182"),(0,r.kt)("td",null,"5.629010e-20"),(0,r.kt)("td",null,"7.488850e-13"),(0,r.kt)("td",null,"1.0")),(0,r.kt)("tr",null,(0,r.kt)("th",null,"2"),(0,r.kt)("td",null,"1.000000e-06"),(0,r.kt)("td",null,"10000.0"),(0,r.kt)("td",null,"10.0"),(0,r.kt)("td",null,"2.9287"),(0,r.kt)("td",null,"1.0"),(0,r.kt)("td",null,"1"),(0,r.kt)("td",null,"0.5"),(0,r.kt)("td",null,"5.646510e-12"),(0,r.kt)("td",null,"1.789080e-16"),(0,r.kt)("td",null,"4.219000e-18"),(0,r.kt)("td",null,"..."),(0,r.kt)("td",null,"1.631720e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000020e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"0.000182"),(0,r.kt)("td",null,"5.562330e-18"),(0,r.kt)("td",null,"7.444370e-12"),(0,r.kt)("td",null,"1.0")),(0,r.kt)("tr",null,(0,r.kt)("th",null,"3"),(0,r.kt)("td",null,"1.000000e-05"),(0,r.kt)("td",null,"10000.0"),(0,r.kt)("td",null,"10.0"),(0,r.kt)("td",null,"2.9287"),(0,r.kt)("td",null,"1.0"),(0,r.kt)("td",null,"1"),(0,r.kt)("td",null,"0.5"),(0,r.kt)("td",null,"5.641430e-11"),(0,r.kt)("td",null,"1.789520e-15"),(0,r.kt)("td",null,"4.212520e-16"),(0,r.kt)("td",null,"..."),(0,r.kt)("td",null,"7.762720e-29"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000050e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000010e-30"),(0,r.kt)("td",null,"0.000182"),(0,r.kt)("td",null,"5.554260e-16"),(0,r.kt)("td",null,"7.438940e-11"),(0,r.kt)("td",null,"1.0")),(0,r.kt)("tr",null,(0,r.kt)("th",null,"4"),(0,r.kt)("td",null,"1.000000e-04"),(0,r.kt)("td",null,"10000.0"),(0,r.kt)("td",null,"10.0"),(0,r.kt)("td",null,"2.9287"),(0,r.kt)("td",null,"1.0"),(0,r.kt)("td",null,"1"),(0,r.kt)("td",null,"0.5"),(0,r.kt)("td",null,"5.480630e-10"),(0,r.kt)("td",null,"1.793810e-14"),(0,r.kt)("td",null,"4.079690e-14"),(0,r.kt)("td",null,"..."),(0,r.kt)("td",null,"7.864380e-27"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000070e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000150e-30"),(0,r.kt)("td",null,"0.000182"),(0,r.kt)("td",null,"5.425070e-14"),(0,r.kt)("td",null,"7.351600e-10"),(0,r.kt)("td",null,"1.0")))),(0,r.kt)("p",null,"5 rows \xd7 321 columns")),(0,r.kt)("p",null,"We can also test whether the model run went well by checking for element conservation. We do this because integrator errors often show up as a failure to conserve elemental abundances. "),(0,r.kt)("p",null,"We can use ",(0,r.kt)("inlineCode",{parentName:"p"},"check_element_conservation()")," to test whether we conserve elements in this run. This function returns a dictionary where each entry gives the change in the total abundance of an element as a percentage of the original abundance. In an ideal case, these values are 0\\% indicating the total abundance at the end of the model is exactly the same as the total at the start."),(0,r.kt)("p",null,"Changes of less than 1\\% are fine for many cases but if they are too high, you could consider changing the ",(0,r.kt)("inlineCode",{parentName:"p"},"reltol")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"abstol")," parameters that control the integrator accuracy. They are error tolerance so smaller values lead to smaller errors and (usually) longer integration times. The default values were chosen by running a large grid of models and choosing the tolerances with the lowest average run time from those that conserved elements well and rarely failed. Despite this, there are no one-size-fits-all perfect tolerances and you may run into issues with different networks or models."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},'conservation=uclchem.analysis.check_element_conservation(result_df,element_list=["H","N","C","O","S"])\nprint("Percentage change in total abundances:")\nprint(conservation)\n')),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"Percentage change in total abundances:\n{'H': '0.001%', 'N': '0.000%', 'C': '0.000%', 'O': '0.000%', 'S': '0.000%'}\n")),(0,r.kt)("h2",{id:"plotting-results"},"Plotting Results"),(0,r.kt)("p",null,"Finally, you will want to plot your results. This can be done with any plotting library but UCLCHEM does provide a few functions to make quick plots. Note the use of $ symbols in the species list below, this gets the total ice abundance of a species. For two phase models, this is just the surface abudance but for three phase it is the sum of surface and bulk."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},'species=["H","H2","$H","$H2","H2O","$H2O","CO","$CO","$CH3OH","CH3OH"]\nfig,ax=uclchem.analysis.create_abundance_plot(result_df,species,figsize=(10,7))\nax=ax.set(xscale="log",ylim=(1e-15,1),xlim=(1e3,1e6))\n')),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"png",src:n(5162).Z,width:"712",height:"496"})),(0,r.kt)("p",null,"and that's it! You've run your first UCLCHEM model, checked that the element conservation is correct, and plotted the abundances."))}k.isMDXComponent=!0},5162:(e,t,n)=>{n.d(t,{Z:()=>l});const l=n.p+"assets/images/first_model_9_0-fff8b0e800895dbb0e755cc2b9459720.png"}}]); \ No newline at end of file diff --git a/assets/js/7cbbac6d.d5dc751b.js b/assets/js/7cbbac6d.d5dc751b.js deleted file mode 100644 index 2c58b671..00000000 --- a/assets/js/7cbbac6d.d5dc751b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9206],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>k});var l=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=l.createContext({}),u=function(e){var t=l.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},d=function(e){var t=u(e.components);return l.createElement(i.Provider,{value:t},e.children)},c={inlineCode:"code",wrapper:function(e){var t=e.children;return l.createElement(l.Fragment,{},t)}},p=l.forwardRef((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,i=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=u(n),k=a,h=p["".concat(i,".").concat(k)]||p[k]||c[k]||r;return n?l.createElement(h,o(o({ref:t},d),{},{components:n})):l.createElement(h,o({ref:t},d))}));function k(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,o=new Array(r);o[0]=p;var s={};for(var i in t)hasOwnProperty.call(t,i)&&(s[i]=t[i]);s.originalType=e,s.mdxType="string"==typeof e?e:a,o[1]=s;for(var u=2;u{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>k,frontMatter:()=>s,metadata:()=>u,toc:()=>c});var l=n(7462),a=n(3366),r=(n(7294),n(3905)),o=["components"],s={},i="Running Your First Models",u={unversionedId:"first_model",id:"version-v3.1.0/first_model",title:"Running Your First Models",description:"In this notebook, we demonstrate the basic use of UCLCHEM's python module by running a simple model and then using the analysis functions to examine the output.",source:"@site/versioned_docs/version-v3.1.0/first_model.md",sourceDirName:".",slug:"/first_model",permalink:"/docs/v3.1.0/first_model",tags:[],version:"v3.1.0",frontMatter:{},sidebar:"docs",previous:{title:"Tutorials",permalink:"/docs/v3.1.0/category/tutorials"},next:{title:"Advanced Physical Modelling",permalink:"/docs/v3.1.0/modelling_objects"}},d={},c=[{value:"A Simple Cloud",id:"a-simple-cloud",level:2},{value:"Checking the output",id:"checking-the-output",level:2},{value:"Plotting Results",id:"plotting-results",level:2}],p={toc:c};function k(e){var t=e.components,s=(0,a.Z)(e,o);return(0,r.kt)("wrapper",(0,l.Z)({},p,s,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"running-your-first-models"},"Running Your First Models"),(0,r.kt)("p",null,"In this notebook, we demonstrate the basic use of UCLCHEM's python module by running a simple model and then using the analysis functions to examine the output."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},"import uclchem\n")),(0,r.kt)("h2",{id:"a-simple-cloud"},"A Simple Cloud"),(0,r.kt)("p",null,"UCLCHEM's ",(0,r.kt)("inlineCode",{parentName:"p"},"cloud()")," model is a spherical cloud of isothermal gas. We can keep a constant density or have it increase over time following a freefall equation. This model is generally useful whenever you want to model a homogeneous cloud of gas under constant conditions. For example, in the inner parts of a molecular cloud where Av ",(0,r.kt)("span",{parentName:"p",className:"math math-inline"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("mo",{parentName:"mrow"},"\u2273")),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\gtrsim")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.95916em",verticalAlign:"-0.22958em"}}),(0,r.kt)("span",{parentName:"span",className:"mrel amsrm"},"\u2273")))))," 10 there are very few depth dependent processes. You may wish to model the whole of this UV shielded portion of the cloud with a single ",(0,r.kt)("inlineCode",{parentName:"p"},"cloud()")," model."),(0,r.kt)("p",null,"Due to the large number of parameters in a chemical model and the way fortran and python interaction, we find it is easiest to do parameter input through python dictionaries. In this block, we define param_dict which contains the parameters we wish to modify for this run. Every ",(0,r.kt)("inlineCode",{parentName:"p"},"uclchem.model")," function accepts a dictionary as an optional argument. Every parameter has a default value which is overriden if that parameter is specified in this dictionary. You can find a complete list of modifiable parameters and their default values in ",(0,r.kt)("a",{parentName:"p",href:"/docs/parameters"},"our parameter docs"),"."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},'# set a parameter dictionary for phase 1 collapse model\n\nout_species = ["SO","CO"]\nparam_dict = {\n "endAtFinalDensity": False,#stop at finalTime\n "freefall": False,#don\'t increase density in freefall\n "initialDens": 1e4, #starting density\n "initialTemp": 10.0,#temperature of gas\n "finalTime": 1.0e6, #final time\n "rout":0.1, #radius of cloud in pc\n "baseAv":1.0, #visual extinction at cloud edge.\n "outputFile": "../examples/test-output/static-full.dat",#full UCLCHEM output\n "abundSaveFile": "../examples/test-output/startstatic.dat",#save final abundances to file\n}\nresult = uclchem.model.cloud(param_dict=param_dict,out_species=out_species)\nprint(result)\n\n')),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"[1, 3.331065659699488e-11, 3.576305642378658e-05]\n")),(0,r.kt)("h2",{id:"checking-the-output"},"Checking the output"),(0,r.kt)("p",null,"At the end of the previous cell, we printed ",(0,r.kt)("inlineCode",{parentName:"p"},"result")," which is a list returned by every UCLCHEM model function. The first element is always an integer which will be positive if the code completed and negative otherwise. You can send negative values to ",(0,r.kt)("inlineCode",{parentName:"p"},"uclchem.utils.check_error()")," to get a more detailed error message."),(0,r.kt)("p",null,"The subsequent elements are the final abundances of any species listed in ",(0,r.kt)("inlineCode",{parentName:"p"},"out_species"),", in this case we have the abundance of SO and CO. This is useful when we want to use UCLCHEM as part of something like an MCMC procedure, obtaining abundances for given parameters. However, we also write the final abundances of all species to ",(0,r.kt)("inlineCode",{parentName:"p"},"abundSaveFile")," and the abundances of all species at every time step in ",(0,r.kt)("inlineCode",{parentName:"p"},"outputFile")," so it is not necessary to acquire abundances in this way."),(0,r.kt)("p",null,"The output file is just a simple csv with some header rows, UCLCHEM has a utility function to read that file into a pandas dataframe. Let's load it up and look at it."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},'result_df=uclchem.analysis.read_output_file("../examples/test-output/static-full.dat")\nresult_df.head()\n')),(0,r.kt)("div",null,(0,r.kt)("table",{border:"1",class:"dataframe"},(0,r.kt)("thead",null,(0,r.kt)("tr",null,(0,r.kt)("th",null),(0,r.kt)("th",null,"Time"),(0,r.kt)("th",null,"Density"),(0,r.kt)("th",null,"gasTemp"),(0,r.kt)("th",null,"av"),(0,r.kt)("th",null,"zeta"),(0,r.kt)("th",null,"point"),(0,r.kt)("th",null,"H"),(0,r.kt)("th",null,"#H"),(0,r.kt)("th",null,"H+"),(0,r.kt)("th",null,"@H"),(0,r.kt)("th",null,"..."),(0,r.kt)("th",null,"HS2+"),(0,r.kt)("th",null,"HSO2+"),(0,r.kt)("th",null,"H2S2+"),(0,r.kt)("th",null,"H2S2"),(0,r.kt)("th",null,"#H2S2"),(0,r.kt)("th",null,"@H2S2"),(0,r.kt)("th",null,"E-"),(0,r.kt)("th",null,"BULK"),(0,r.kt)("th",null,"SURFACE"),(0,r.kt)("th",null,"radfield"))),(0,r.kt)("tbody",null,(0,r.kt)("tr",null,(0,r.kt)("th",null,"0"),(0,r.kt)("td",null,"0.000000e+00"),(0,r.kt)("td",null,"10000.0"),(0,r.kt)("td",null,"10.0"),(0,r.kt)("td",null,"2.9287"),(0,r.kt)("td",null,"1.0"),(0,r.kt)("td",null,"1"),(0,r.kt)("td",null,"0.5"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"..."),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"0.000182"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.0")),(0,r.kt)("tr",null,(0,r.kt)("th",null,"1"),(0,r.kt)("td",null,"1.000000e-07"),(0,r.kt)("td",null,"10000.0"),(0,r.kt)("td",null,"10.0"),(0,r.kt)("td",null,"2.9287"),(0,r.kt)("td",null,"1.0"),(0,r.kt)("td",null,"1"),(0,r.kt)("td",null,"0.5"),(0,r.kt)("td",null,"5.680300e-13"),(0,r.kt)("td",null,"1.789040e-17"),(0,r.kt)("td",null,"4.269620e-20"),(0,r.kt)("td",null,"..."),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"0.000182"),(0,r.kt)("td",null,"5.629010e-20"),(0,r.kt)("td",null,"7.488850e-13"),(0,r.kt)("td",null,"1.0")),(0,r.kt)("tr",null,(0,r.kt)("th",null,"2"),(0,r.kt)("td",null,"1.000000e-06"),(0,r.kt)("td",null,"10000.0"),(0,r.kt)("td",null,"10.0"),(0,r.kt)("td",null,"2.9287"),(0,r.kt)("td",null,"1.0"),(0,r.kt)("td",null,"1"),(0,r.kt)("td",null,"0.5"),(0,r.kt)("td",null,"5.646510e-12"),(0,r.kt)("td",null,"1.789080e-16"),(0,r.kt)("td",null,"4.219000e-18"),(0,r.kt)("td",null,"..."),(0,r.kt)("td",null,"1.631720e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000020e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"0.000182"),(0,r.kt)("td",null,"5.562330e-18"),(0,r.kt)("td",null,"7.444370e-12"),(0,r.kt)("td",null,"1.0")),(0,r.kt)("tr",null,(0,r.kt)("th",null,"3"),(0,r.kt)("td",null,"1.000000e-05"),(0,r.kt)("td",null,"10000.0"),(0,r.kt)("td",null,"10.0"),(0,r.kt)("td",null,"2.9287"),(0,r.kt)("td",null,"1.0"),(0,r.kt)("td",null,"1"),(0,r.kt)("td",null,"0.5"),(0,r.kt)("td",null,"5.641430e-11"),(0,r.kt)("td",null,"1.789520e-15"),(0,r.kt)("td",null,"4.212520e-16"),(0,r.kt)("td",null,"..."),(0,r.kt)("td",null,"7.762720e-29"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000050e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000010e-30"),(0,r.kt)("td",null,"0.000182"),(0,r.kt)("td",null,"5.554260e-16"),(0,r.kt)("td",null,"7.438940e-11"),(0,r.kt)("td",null,"1.0")),(0,r.kt)("tr",null,(0,r.kt)("th",null,"4"),(0,r.kt)("td",null,"1.000000e-04"),(0,r.kt)("td",null,"10000.0"),(0,r.kt)("td",null,"10.0"),(0,r.kt)("td",null,"2.9287"),(0,r.kt)("td",null,"1.0"),(0,r.kt)("td",null,"1"),(0,r.kt)("td",null,"0.5"),(0,r.kt)("td",null,"5.480630e-10"),(0,r.kt)("td",null,"1.793810e-14"),(0,r.kt)("td",null,"4.079690e-14"),(0,r.kt)("td",null,"..."),(0,r.kt)("td",null,"7.864380e-27"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000070e-30"),(0,r.kt)("td",null,"1.000000e-30"),(0,r.kt)("td",null,"1.000150e-30"),(0,r.kt)("td",null,"0.000182"),(0,r.kt)("td",null,"5.425070e-14"),(0,r.kt)("td",null,"7.351600e-10"),(0,r.kt)("td",null,"1.0")))),(0,r.kt)("p",null,"5 rows \xd7 321 columns")),(0,r.kt)("p",null,"We can also test whether the model run went well by checking for element conservation. We do this because integrator errors often show up as a failure to conserve elemental abundances. "),(0,r.kt)("p",null,"We can use ",(0,r.kt)("inlineCode",{parentName:"p"},"check_element_conservation()")," to test whether we conserve elements in this run. This function returns a dictionary where each entry gives the change in the total abundance of an element as a percentage of the original abundance. In an ideal case, these values are 0\\% indicating the total abundance at the end of the model is exactly the same as the total at the start."),(0,r.kt)("p",null,"Changes of less than 1\\% are fine for many cases but if they are too high, you could consider changing the ",(0,r.kt)("inlineCode",{parentName:"p"},"reltol")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"abstol")," parameters that control the integrator accuracy. They are error tolerance so smaller values lead to smaller errors and (usually) longer integration times. The default values were chosen by running a large grid of models and choosing the tolerances with the lowest average run time from those that conserved elements well and rarely failed. Despite this, there are no one-size-fits-all perfect tolerances and you may run into issues with different networks or models."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},'conservation=uclchem.analysis.check_element_conservation(result_df,element_list=["H","N","C","O","S"])\nprint("Percentage change in total abundances:")\nprint(conservation)\n')),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"Percentage change in total abundances:\n{'H': '0.001%', 'N': '0.000%', 'C': '0.000%', 'O': '0.000%', 'S': '0.000%'}\n")),(0,r.kt)("h2",{id:"plotting-results"},"Plotting Results"),(0,r.kt)("p",null,"Finally, you will want to plot your results. This can be done with any plotting library but UCLCHEM does provide a few functions to make quick plots. Note the use of $ symbols in the species list below, this gets the total ice abundance of a species. For two phase models, this is just the surface abudance but for three phase it is the sum of surface and bulk."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-python"},'species=["H","H2","$H","$H2","H2O","$H2O","CO","$CO","$CH3OH","CH3OH"]\nfig,ax=uclchem.analysis.create_abundance_plot(result_df,species,figsize=(10,7))\nax=ax.set(xscale="log",ylim=(1e-15,1),xlim=(1e3,1e6))\n')),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"png",src:n(5162).Z,width:"712",height:"496"})),(0,r.kt)("p",null,"and that's it! You've run your first UCLCHEM model, checked that the element conservation is correct, and plotted the abundances."))}k.isMDXComponent=!0},5162:(e,t,n)=>{n.d(t,{Z:()=>l});const l=n.p+"assets/images/first_model_9_0-fff8b0e800895dbb0e755cc2b9459720.png"}}]); \ No newline at end of file diff --git a/assets/js/7e37206e.f3c030cf.js b/assets/js/7e37206e.749aa7e1.js similarity index 94% rename from assets/js/7e37206e.f3c030cf.js rename to assets/js/7e37206e.749aa7e1.js index 8194d97e..e465037f 100644 --- a/assets/js/7e37206e.f3c030cf.js +++ b/assets/js/7e37206e.749aa7e1.js @@ -1 +1 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2740],{5401:(e,t,n)=>{n.r(t),n.d(t,{default:()=>l});var a=n(2600),o=n(7294),r=function(e){return o.createElement("div",e)},c=function(e){return o.createElement("div",e)};function i(e){var t,n=e.config,a=e.language,i=void 0===a?"":a,l=n.baseUrl,s=n.docsUrl,u=[{content:"Learn more using the [documentation on this site.]("+(t="doc1.html",""+l+(s?s+"/":"")+(i?i+"/":"")+t+")"),title:"Browse Docs"},{content:"Ask questions about the documentation and project",title:"Join the community"},{content:"Find out what's new with this project",title:"Stay up to date"}];return o.createElement("div",{className:"docMainWrapper wrapper"},o.createElement(r,{className:"mainContainer documentContainer postContainer"},o.createElement("div",{className:"post"},o.createElement("header",{className:"postHeader"},o.createElement("h1",null,"Need help?")),o.createElement("p",null,"This project is maintained by a dedicated group of people."),o.createElement(c,{contents:u,layout:"threeColumn"}))))}const l=function(e){return o.createElement(a.Z,null,o.createElement(i,e))}}}]); \ No newline at end of file +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2740],{5401:(e,t,n)=>{n.r(t),n.d(t,{default:()=>l});var a=n(7961),o=n(7294),r=function(e){return o.createElement("div",e)},c=function(e){return o.createElement("div",e)};function i(e){var t,n=e.config,a=e.language,i=void 0===a?"":a,l=n.baseUrl,s=n.docsUrl,u=[{content:"Learn more using the [documentation on this site.]("+(t="doc1.html",""+l+(s?s+"/":"")+(i?i+"/":"")+t+")"),title:"Browse Docs"},{content:"Ask questions about the documentation and project",title:"Join the community"},{content:"Find out what's new with this project",title:"Stay up to date"}];return o.createElement("div",{className:"docMainWrapper wrapper"},o.createElement(r,{className:"mainContainer documentContainer postContainer"},o.createElement("div",{className:"post"},o.createElement("header",{className:"postHeader"},o.createElement("h1",null,"Need help?")),o.createElement("p",null,"This project is maintained by a dedicated group of people."),o.createElement(c,{contents:u,layout:"threeColumn"}))))}const l=function(e){return o.createElement(a.Z,null,o.createElement(i,e))}}}]); \ No newline at end of file diff --git a/assets/js/7f120b4d.7126897d.js b/assets/js/7f120b4d.7126897d.js new file mode 100644 index 00000000..77361ede --- /dev/null +++ b/assets/js/7f120b4d.7126897d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6764],{3905:(a,e,t)=>{t.d(e,{Zo:()=>o,kt:()=>h});var s=t(7294);function n(a,e,t){return e in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function m(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.push.apply(t,s)}return t}function p(a){for(var e=1;e=0||(n[t]=a[t]);return n}(a,e);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(a);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(a,t)&&(n[t]=a[t])}return n}var i=s.createContext({}),l=function(a){var e=s.useContext(i),t=e;return a&&(t="function"==typeof a?a(e):p(p({},e),a)),t},o=function(a){var e=l(a.components);return s.createElement(i.Provider,{value:e},a.children)},N={inlineCode:"code",wrapper:function(a){var e=a.children;return s.createElement(s.Fragment,{},e)}},c=s.forwardRef((function(a,e){var t=a.components,n=a.mdxType,m=a.originalType,i=a.parentName,o=r(a,["components","mdxType","originalType","parentName"]),c=l(t),h=n,k=c["".concat(i,".").concat(h)]||c[h]||N[h]||m;return t?s.createElement(k,p(p({ref:e},o),{},{components:t})):s.createElement(k,p({ref:e},o))}));function h(a,e){var t=arguments,n=e&&e.mdxType;if("string"==typeof a||n){var m=t.length,p=new Array(m);p[0]=c;var r={};for(var i in e)hasOwnProperty.call(e,i)&&(r[i]=e[i]);r.originalType=a,r.mdxType="string"==typeof a?a:n,p[1]=r;for(var l=2;l{t.r(e),t.d(e,{assets:()=>o,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>l,toc:()=>N});var s=t(7462),n=t(3366),m=(t(7294),t(3905)),p=["components"],r={id:"desorb",title:"Adsorption & Desorption Reactions"},i=void 0,l={unversionedId:"desorb",id:"desorb",title:"Adsorption & Desorption Reactions",description:"Coupling between the gas and the grain chemistry primarily comes from the freeze out of material from the gas phase onto the dust grains (adsorption) and the sublimation of material from the grains into the gas phase (desorption). The major processes considered by UCLCHEM are listed below. Note that we assume desorption and freeze out occur between the gas and the surface only, bulk material in three phase models does not directly desorb into the gas phase.",source:"@site/docs/chem-desorb.md",sourceDirName:".",slug:"/desorb",permalink:"/docs/next/desorb",draft:!1,tags:[],version:"current",lastUpdatedBy:"jonholdship",lastUpdatedAt:1652282273,formattedLastUpdatedAt:"May 11, 2022",frontMatter:{id:"desorb",title:"Adsorption & Desorption Reactions"},sidebar:"docs",previous:{title:"Grain Surface Reactions",permalink:"/docs/next/grain"},next:{title:"Bulk Ice Processes",permalink:"/docs/next/bulk"}},o={},N=[{value:"Freeze out",id:"freeze-out",level:2},{value:"Thermal Desorption",id:"thermal-desorption",level:2},{value:"Non-thermal Desorption Methods",id:"non-thermal-desorption-methods",level:2},{value:"H2 Formation",id:"h2-formation",level:5},{value:"Cosmic Rays",id:"cosmic-rays",level:5},{value:"UV photons",id:"uv-photons",level:5},{value:"Chemical Desorption",id:"chemical-desorption",level:5}],c={toc:N};function h(a){var e=a.components,t=(0,n.Z)(a,p);return(0,m.kt)("wrapper",(0,s.Z)({},c,t,{components:e,mdxType:"MDXLayout"}),(0,m.kt)("p",null,"Coupling between the gas and the grain chemistry primarily comes from the freeze out of material from the gas phase onto the dust grains (adsorption) and the sublimation of material from the grains into the gas phase (desorption). The major processes considered by UCLCHEM are listed below. Note that we assume desorption and freeze out occur between the gas and the surface only, bulk material in three phase models does not directly desorb into the gas phase."),(0,m.kt)("h2",{id:"freeze-out"},"Freeze out"),(0,m.kt)("p",null,"We assume that molecules freeze out at a rate given by the rate of collision between a species and the dust grains:"),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"k"),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("mi",{parentName:"mrow"},"\u03b1"),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"v"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"t"),(0,m.kt)("mi",{parentName:"mrow"},"h"))),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"A"),(0,m.kt)("mi",{parentName:"msub"},"g")),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"C"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"i"),(0,m.kt)("mi",{parentName:"mrow"},"o"),(0,m.kt)("mi",{parentName:"mrow"},"n")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k=\\alpha v_{th} A_g C_{ion}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.969438em",verticalAlign:"-0.286108em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"v"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03588em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"h"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15139200000000003em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03588em"}},"g")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"C"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07153em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"n"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))),(0,m.kt)("p",null,"where ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"\u03b1")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\alpha")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.43056em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1")))))," is a branching ratio, ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"V"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"t"),(0,m.kt)("mi",{parentName:"mrow"},"h")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"V_{th}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"V"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.22222em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"h"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is the thermal velocity of the particle and ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"A"),(0,m.kt)("mi",{parentName:"msub"},"g"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"A_g")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.969438em",verticalAlign:"-0.286108em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15139200000000003em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03588em"}},"g")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is the dust grain cross sectional area per hydrogen nuclei. ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"C"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"i"),(0,m.kt)("mi",{parentName:"mrow"},"o"),(0,m.kt)("mi",{parentName:"mrow"},"n")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"C_{ion}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"C"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07153em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"n"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is a factor that increases the freeze out rate of ions due to electrostatic forces."),(0,m.kt)("p",null,"The branching ratio is an artefact of older versions of UCLCHEM which allows the user to include some grain processing of species without surface reactions. For a given species (eg C) we can determine several species that will rapidly form on the grain (CH,CH4) and freeze some portion of the original species (C) out to these products. This allows fast processes like hydrogenation to be treated without a network of surface reactions. ",(0,m.kt)("em",{parentName:"p"},"However, users should default to using a branching ratio of 1 and allowing surface reactions to take place"),"."),(0,m.kt)("p",null,"For efficiency, freeze out is turned off when the desorption rate is so high that ignoring freeze out would produce an error of around 10",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"20")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-20}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))))))))))))," on the abundances of the gas phase species. We also turn off freeze out when the temperature exceeds the binding energy of H",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msub"}),(0,m.kt)("mn",{parentName:"msub"},"2"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_2")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.45110799999999995em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))))))),"O."),(0,m.kt)("h2",{id:"thermal-desorption"},"Thermal Desorption"),(0,m.kt)("p",null,"We include thermal desorption of material from the grains based on the binding energy of each species to the ices. "),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"k"),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"\u03bd"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"d"),(0,m.kt)("mi",{parentName:"mrow"},"i"),(0,m.kt)("mi",{parentName:"mrow"},"f"),(0,m.kt)("mi",{parentName:"mrow"},"f"))),(0,m.kt)("mi",{parentName:"mrow"},"exp"),(0,m.kt)("mo",{parentName:"mrow"},"\u2061"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"mfrac"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"E"),(0,m.kt)("mi",{parentName:"msub"},"B"))),(0,m.kt)("mi",{parentName:"mfrac"},"T")),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k = \\nu_{diff} \\exp(\\frac{-E_B}{T})")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"2.04633em",verticalAlign:"-0.686em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.06366em"}},"\u03bd"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.06366em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,m.kt)("span",{parentName:"span",className:"mop"},"exp"),(0,m.kt)("span",{parentName:"span",className:"mopen"},"("),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T"))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05764em"}},"E"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.05764em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05017em"}},"B")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,m.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,m.kt)("p",null,"This can be simply multiplied by the surface abundance of a species to get its rate of change when using a three phase network. However, for two phases, we multiply by the fraction of the total ice particle which are a given species and by the number of surface sites per volume. This accounts for the fact a majority of the ice material cannot thermally desorb as it not on the surface."),(0,m.kt)("p",null,"Thermal desorption is most relevant to hot core models. As the temperature increases, sublimation can occur. However, TPD experiments (Collings et al. 2004) show that this happens in bursts rather than as a continuous process. These bursts happen naturally in the three phase model as the surface is removed and then the bulk. However, for a two phase network, such bursts need to be simulated. For this reason, the hot core model handles these bursts in the two phase case and the user should turn off thermal desorption."),(0,m.kt)("h2",{id:"non-thermal-desorption-methods"},"Non-thermal Desorption Methods"),(0,m.kt)("h5",{id:"h2-formation"},"H2 Formation"),(0,m.kt)("p",null,"H2 molecules form when H atoms meet briefly on grain surfaces. The reaction is sufficiently exothermic that not only is the product is released into the gas phase but the surrounding grain material is also heated. "),(0,m.kt)("h5",{id:"cosmic-rays"},"Cosmic Rays"),(0,m.kt)("p",null,"Cosmic rays which impact the grains can free molecules from the surface."),(0,m.kt)("h5",{id:"uv-photons"},"UV photons"),(0,m.kt)("p",null,"Surface molecules which absorb a UV photon may gain sufficient energy to escape the surface. We consider secondary photons created by cosmic rays as well as the interstellar radiation field."),(0,m.kt)("h5",{id:"chemical-desorption"},"Chemical Desorption"),(0,m.kt)("p",null,"Other than H2 formation, the desorption of species due to exothermic reactions happening nearby on the grain is not treated. However, as described in the grain surface reaction section, any exothermic grain surface reaction has a probability of releasing the products into the gas phase and this is accounted for."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/812cb1a9.748c1178.js b/assets/js/812cb1a9.748c1178.js deleted file mode 100644 index b1b391af..00000000 --- a/assets/js/812cb1a9.748c1178.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[968],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>d});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),c=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),h=c(r),d=o,m=h["".concat(l,".").concat(d)]||h[d]||u[d]||a;return r?n.createElement(m,i(i({ref:t},p),{},{components:r})):n.createElement(m,i({ref:t},p))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:o,i[1]=s;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>d,frontMatter:()=>s,metadata:()=>c,toc:()=>u});var n=r(7462),o=r(3366),a=(r(7294),r(3905)),i=["components"],s={title:"HITs - History Independent Tracers",authors:"jonholdship"},l=void 0,c={permalink:"/blog/2022/02/06/holdship-hits",source:"@site/blog/2022-02-06-holdship-hits.md",title:"HITs - History Independent Tracers",description:"Interpreting molecular observations through chemical and radiative transfer models is a common but complex practice. Whilst many uncertainties affect chemical models, one in particular is addressed in this work: the issue of time dependence. When modelling a molecular cloud or protostellar disk, how do we initialize the abundances? When is an appropriate time to compare our model to the observed object? Our paper on History Independent Tracers (HITs) side steps this issue by producing a list of molecules which are insensitive to the chemical history of the gas, essentially reaching steady state very quickly across a very wide range of gas conditions.",date:"2022-02-06T00:00:00.000Z",formattedDate:"February 6, 2022",tags:[],readingTime:1.285,truncated:!1,authors:[{name:"Jonathan Holdship",title:"UCLCHEM developer",url:"https://jonholdship.github.io",imageURL:"/img/jon.png",key:"jonholdship"}],frontMatter:{title:"HITs - History Independent Tracers",authors:"jonholdship"},prevItem:{title:"The Cosmic-ray Ionization Rate in NGC 253",permalink:"/blog/2022/04/14/crir-ngc253"},nextItem:{title:"First measurement of nitrogen fractionation in shocked clumps of the L1157 protostellar outflow. SOLIS XI",permalink:"/blog/2020/12/07/milena-nitrogen-solis"}},p={authorsImageUrls:[void 0]},u=[],h={toc:u};function d(e){var t=e.components,r=(0,o.Z)(e,i);return(0,a.kt)("wrapper",(0,n.Z)({},h,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Interpreting molecular observations through chemical and radiative transfer models is a common but complex practice. Whilst many uncertainties affect chemical models, one in particular is addressed in this work: the issue of time dependence. When modelling a molecular cloud or protostellar disk, how do we initialize the abundances? When is an appropriate time to compare our model to the observed object? Our paper on ",(0,a.kt)("a",{parentName:"p",href:"https://ui.adsabs.harvard.edu/abs/2022A%26A...658A.103H/abstract"},"History Independent Tracers (HITs)")," side steps this issue by producing a list of molecules which are insensitive to the chemical history of the gas, essentially reaching steady state very quickly across a very wide range of gas conditions."),(0,a.kt)("p",null,"However, having a list of molecules that are easy to model is only first step towards making useful inferences. We then use our HITs to determine which observables are the most informative about various physical parameters. We do this by producing a large dataset of synthetic observations using UCLCHEM and RADEX to produce line intensities for every transition of every HIT under a wide range of physical conditions. We then calculate the ",(0,a.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Mutual_information"},"mutual information")," between each molecular transition and each physical parameter and use these to rank the transitions. The information scores are all available on the ",(0,a.kt)("a",{parentName:"p",href:"https://hits.strw.leidenuniv.nl"},"HITs website")," which can be used to plan observations."),(0,a.kt)("p",null,"By choosing transitions of a HIT that have a high mutual information with your physical parameter of interest, you can obtain the best possible constraint on that parameter. Moreover, as a HIT, the chemical modelling of this species will not be subject to much uncertainty from the gas history."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/812cb1a9.b360c0f5.js b/assets/js/812cb1a9.b360c0f5.js new file mode 100644 index 00000000..c65719d1 --- /dev/null +++ b/assets/js/812cb1a9.b360c0f5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[968],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>d});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),c=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=c(r),d=o,m=u["".concat(l,".").concat(d)]||u[d]||h[d]||a;return r?n.createElement(m,i(i({ref:t},p),{},{components:r})):n.createElement(m,i({ref:t},p))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:o,i[1]=s;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>d,frontMatter:()=>s,metadata:()=>c,toc:()=>h});var n=r(7462),o=r(3366),a=(r(7294),r(3905)),i=["components"],s={title:"HITs - History Independent Tracers",authors:"jonholdship"},l=void 0,c={permalink:"/blog/2022/02/06/holdship-hits",source:"@site/blog/2022-02-06-holdship-hits.md",title:"HITs - History Independent Tracers",description:"Interpreting molecular observations through chemical and radiative transfer models is a common but complex practice. Whilst many uncertainties affect chemical models, one in particular is addressed in this work: the issue of time dependence. When modelling a molecular cloud or protostellar disk, how do we initialize the abundances? When is an appropriate time to compare our model to the observed object? Our paper on History Independent Tracers (HITs) side steps this issue by producing a list of molecules which are insensitive to the chemical history of the gas, essentially reaching steady state very quickly across a very wide range of gas conditions.",date:"2022-02-06T00:00:00.000Z",formattedDate:"February 6, 2022",tags:[],readingTime:1.285,hasTruncateMarker:!1,authors:[{name:"Jonathan Holdship",title:"UCLCHEM developer",url:"https://jonholdship.github.io",imageURL:"/img/jon.png",key:"jonholdship"}],frontMatter:{title:"HITs - History Independent Tracers",authors:"jonholdship"},prevItem:{title:"The Cosmic-ray Ionization Rate in NGC 253",permalink:"/blog/2022/04/14/crir-ngc253"},nextItem:{title:"First measurement of nitrogen fractionation in shocked clumps of the L1157 protostellar outflow. SOLIS XI",permalink:"/blog/2020/12/07/milena-nitrogen-solis"}},p={authorsImageUrls:[void 0]},h=[],u={toc:h};function d(e){var t=e.components,r=(0,o.Z)(e,i);return(0,a.kt)("wrapper",(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Interpreting molecular observations through chemical and radiative transfer models is a common but complex practice. Whilst many uncertainties affect chemical models, one in particular is addressed in this work: the issue of time dependence. When modelling a molecular cloud or protostellar disk, how do we initialize the abundances? When is an appropriate time to compare our model to the observed object? Our paper on ",(0,a.kt)("a",{parentName:"p",href:"https://ui.adsabs.harvard.edu/abs/2022A%26A...658A.103H/abstract"},"History Independent Tracers (HITs)")," side steps this issue by producing a list of molecules which are insensitive to the chemical history of the gas, essentially reaching steady state very quickly across a very wide range of gas conditions."),(0,a.kt)("p",null,"However, having a list of molecules that are easy to model is only first step towards making useful inferences. We then use our HITs to determine which observables are the most informative about various physical parameters. We do this by producing a large dataset of synthetic observations using UCLCHEM and RADEX to produce line intensities for every transition of every HIT under a wide range of physical conditions. We then calculate the ",(0,a.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Mutual_information"},"mutual information")," between each molecular transition and each physical parameter and use these to rank the transitions. The information scores are all available on the ",(0,a.kt)("a",{parentName:"p",href:"https://hits.strw.leidenuniv.nl"},"HITs website")," which can be used to plan observations."),(0,a.kt)("p",null,"By choosing transitions of a HIT that have a high mutual information with your physical parameter of interest, you can obtain the best possible constraint on that parameter. Moreover, as a HIT, the chemical modelling of this species will not be subject to much uncertainty from the gas history."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8218.007806d9.js b/assets/js/8218.007806d9.js new file mode 100644 index 00000000..c1260053 --- /dev/null +++ b/assets/js/8218.007806d9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8218],{9058:(e,t,a)=>{a.d(t,{Z:()=>_});var r=a(3366),l=a(7294),n=a(6010),o=a(7961),i=a(7524),s=a(9960),m=a(5999);const c="sidebar_re4s",u="sidebarItemTitle_pO2u",d="sidebarItemList_Yudw",g="sidebarItem__DBe",p="sidebarItemLink_mo7H",v="sidebarItemLinkActive_I1ZP";function f(e){var t=e.sidebar;return l.createElement("aside",{className:"col col--3"},l.createElement("nav",{className:(0,n.Z)(c,"thin-scrollbar"),"aria-label":(0,m.I)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"})},l.createElement("div",{className:(0,n.Z)(u,"margin-bottom--md")},t.title),l.createElement("ul",{className:(0,n.Z)(d,"clean-list")},t.items.map((function(e){return l.createElement("li",{key:e.permalink,className:g},l.createElement(s.Z,{isNavLink:!0,to:e.permalink,className:p,activeClassName:v},e.title))})))))}var h=a(3102);function E(e){var t=e.sidebar;return l.createElement("ul",{className:"menu__list"},t.items.map((function(e){return l.createElement("li",{key:e.permalink,className:"menu__list-item"},l.createElement(s.Z,{isNavLink:!0,to:e.permalink,className:"menu__link",activeClassName:"menu__link--active"},e.title))})))}function b(e){return l.createElement(h.Zo,{component:E,props:e})}function P(e){var t=e.sidebar,a=(0,i.i)();return null!=t&&t.items.length?"mobile"===a?l.createElement(b,{sidebar:t}):l.createElement(f,{sidebar:t}):null}var N=["sidebar","toc","children"];function _(e){var t=e.sidebar,a=e.toc,i=e.children,s=(0,r.Z)(e,N),m=t&&t.items.length>0;return l.createElement(o.Z,s,l.createElement("div",{className:"container margin-vert--lg"},l.createElement("div",{className:"row"},l.createElement(P,{sidebar:t}),l.createElement("main",{className:(0,n.Z)("col",{"col--7":m,"col--9 col--offset-1":!m}),itemScope:!0,itemType:"http://schema.org/Blog"},i),a&&l.createElement("div",{className:"col col--2"},a))))}},756:(e,t,a)=>{a.d(t,{Z:()=>j});var r=a(7294),l=a(6010),n=a(9460),o=a(4996);function i(e){var t,a=e.children,l=e.className,i=(0,n.C)(),s=i.frontMatter,m=i.assets,c=(0,o.C)().withBaseUrl,u=null!=(t=m.image)?t:s.image;return r.createElement("article",{className:l,itemProp:"blogPost",itemScope:!0,itemType:"http://schema.org/BlogPosting"},u&&r.createElement("meta",{itemProp:"image",content:c(u,{absolute:!0})}),a)}var s=a(9960);const m="title_f1Hy";function c(e){var t=e.className,a=(0,n.C)(),o=a.metadata,i=a.isBlogPostPage,c=o.permalink,u=o.title,d=i?"h1":"h2";return r.createElement(d,{className:(0,l.Z)(m,t),itemProp:"headline"},i?u:r.createElement(s.Z,{itemProp:"url",to:c},u))}var u=a(5999),d=a(2263),g=["zero","one","two","few","many","other"];function p(e){return g.filter((function(t){return e.includes(t)}))}var v={locale:"en",pluralForms:p(["one","other"]),select:function(e){return 1===e?"one":"other"}};function f(){var e=(0,d.Z)().i18n.currentLocale;return(0,r.useMemo)((function(){try{return t=e,a=new Intl.PluralRules(t),{locale:t,pluralForms:p(a.resolvedOptions().pluralCategories),select:function(e){return a.select(e)}}}catch(r){return console.error('Failed to use Intl.PluralRules for locale "'+e+'".\nDocusaurus will fallback to the default (English) implementation.\nError: '+r.message+"\n"),v}var t,a}),[e])}function h(){var e=f();return{selectMessage:function(t,a){return function(e,t,a){var r=e.split("|");if(1===r.length)return r[0];r.length>a.pluralForms.length&&console.error("For locale="+a.locale+", a maximum of "+a.pluralForms.length+" plural forms are expected ("+a.pluralForms.join(",")+"), but the message contains "+r.length+": "+e);var l=a.select(t),n=a.pluralForms.indexOf(l);return r[Math.min(n,r.length-1)]}(a,t,e)}}}const E="container_mt6G";function b(e){var t,a=e.readingTime,l=(t=h().selectMessage,function(e){var a=Math.ceil(e);return t(a,(0,u.I)({id:"theme.blog.post.readingTime.plurals",description:'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One min read|{readingTime} min read"},{readingTime:a}))});return r.createElement(r.Fragment,null,l(a))}function P(e){var t=e.date,a=e.formattedDate;return r.createElement("time",{dateTime:t,itemProp:"datePublished"},a)}function N(){return r.createElement(r.Fragment,null," \xb7 ")}function _(e){var t=e.className,a=(0,n.C)().metadata,o=a.date,i=a.formattedDate,s=a.readingTime;return r.createElement("div",{className:(0,l.Z)(E,"margin-vert--md",t)},r.createElement(P,{date:o,formattedDate:i}),void 0!==s&&r.createElement(r.Fragment,null,r.createElement(N,null),r.createElement(b,{readingTime:s})))}function Z(e){return e.href?r.createElement(s.Z,e):r.createElement(r.Fragment,null,e.children)}function k(e){var t=e.author,a=e.className,n=t.name,o=t.title,i=t.url,s=t.imageURL,m=t.email,c=i||m&&"mailto:"+m||void 0;return r.createElement("div",{className:(0,l.Z)("avatar margin-bottom--sm",a)},s&&r.createElement(Z,{href:c,className:"avatar__photo-link"},r.createElement("img",{className:"avatar__photo",src:s,alt:n})),n&&r.createElement("div",{className:"avatar__intro",itemProp:"author",itemScope:!0,itemType:"https://schema.org/Person"},r.createElement("div",{className:"avatar__name"},r.createElement(Z,{href:c,itemProp:"url"},r.createElement("span",{itemProp:"name"},n))),o&&r.createElement("small",{className:"avatar__subtitle",itemProp:"description"},o)))}const C="authorCol_Hf19",T="imageOnlyAuthorRow_pa_O",w="imageOnlyAuthorCol_G86a";function y(e){var t=e.className,a=(0,n.C)(),o=a.metadata.authors,i=a.assets;if(0===o.length)return null;var s=o.every((function(e){return!e.name}));return r.createElement("div",{className:(0,l.Z)("margin-top--md margin-bottom--sm",s?T:"row",t)},o.map((function(e,t){var a;return r.createElement("div",{className:(0,l.Z)(!s&&"col col--6",s?w:C),key:t},r.createElement(k,{author:Object.assign({},e,{imageURL:null!=(a=i.authorsImageUrls[t])?a:e.imageURL})}))})))}function B(){return r.createElement("header",null,r.createElement(c,null),r.createElement(_,null),r.createElement(y,null))}var I=a(8780),F=a(7525);function M(e){var t=e.children,a=e.className,o=(0,n.C)().isBlogPostPage;return r.createElement("div",{id:o?I.blogPostContainerID:void 0,className:(0,l.Z)("markdown",a),itemProp:"articleBody"},r.createElement(F.Z,null,t))}var L=a(4881),R=a(6233),x=a(7462),A=a(3366),O=["blogPostTitle"];function U(){return r.createElement("b",null,r.createElement(u.Z,{id:"theme.blog.post.readMore",description:"The label used in blog post item excerpts to link to full blog posts"},"Read More"))}function D(e){var t=e.blogPostTitle,a=(0,A.Z)(e,O);return r.createElement(s.Z,(0,x.Z)({"aria-label":(0,u.I)({message:"Read more about {title}",id:"theme.blog.post.readMoreLabel",description:"The ARIA label for the link to full blog posts from excerpts"},{title:t})},a),r.createElement(U,null))}const H="blogPostFooterDetailsFull_mRVl";function S(){var e=(0,n.C)(),t=e.metadata,a=e.isBlogPostPage,o=t.tags,i=t.title,s=t.editUrl,m=t.hasTruncateMarker,c=!a&&m,u=o.length>0;return u||c||s?r.createElement("footer",{className:(0,l.Z)("row docusaurus-mt-lg",a&&H)},u&&r.createElement("div",{className:(0,l.Z)("col",{"col--9":c})},r.createElement(R.Z,{tags:o})),a&&s&&r.createElement("div",{className:"col margin-top--sm"},r.createElement(L.Z,{editUrl:s})),c&&r.createElement("div",{className:(0,l.Z)("col text--right",{"col--3":u})},r.createElement(D,{blogPostTitle:i,to:t.permalink}))):null}function j(e){var t=e.children,a=e.className,o=(0,n.C)().isBlogPostPage?void 0:"margin-bottom--xl";return r.createElement(i,{className:(0,l.Z)(o,a)},r.createElement(B,null),r.createElement(M,null,t),r.createElement(S,null))}},9460:(e,t,a)=>{a.d(t,{C:()=>i,n:()=>o});var r=a(7294),l=a(9688),n=r.createContext(null);function o(e){var t=e.children,a=e.content,l=e.isBlogPostPage,o=function(e){var t=e.content,a=e.isBlogPostPage;return(0,r.useMemo)((function(){return{metadata:t.metadata,frontMatter:t.frontMatter,assets:t.assets,toc:t.toc,isBlogPostPage:a}}),[t,a])}({content:a,isBlogPostPage:void 0!==l&&l});return r.createElement(n.Provider,{value:o},t)}function i(){var e=(0,r.useContext)(n);if(null===e)throw new l.i6("BlogPostProvider");return e}}}]); \ No newline at end of file diff --git a/assets/js/82de2e50.2ea6e15f.js b/assets/js/82de2e50.2ea6e15f.js new file mode 100644 index 00000000..90aecedc --- /dev/null +++ b/assets/js/82de2e50.2ea6e15f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7928],{3905:(a,e,s)=>{s.d(e,{Zo:()=>i,kt:()=>o});var t=s(7294);function m(a,e,s){return e in a?Object.defineProperty(a,e,{value:s,enumerable:!0,configurable:!0,writable:!0}):a[e]=s,a}function n(a,e){var s=Object.keys(a);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(a);e&&(t=t.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),s.push.apply(s,t)}return s}function p(a){for(var e=1;e=0||(m[s]=a[s]);return m}(a,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(a);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(a,s)&&(m[s]=a[s])}return m}var N=t.createContext({}),l=function(a){var e=t.useContext(N),s=e;return a&&(s="function"==typeof a?a(e):p(p({},e),a)),s},i=function(a){var e=l(a.components);return t.createElement(N.Provider,{value:e},a.children)},k={inlineCode:"code",wrapper:function(a){var e=a.children;return t.createElement(t.Fragment,{},e)}},c=t.forwardRef((function(a,e){var s=a.components,m=a.mdxType,n=a.originalType,N=a.parentName,i=r(a,["components","mdxType","originalType","parentName"]),c=l(s),o=m,h=c["".concat(N,".").concat(o)]||c[o]||k[o]||n;return s?t.createElement(h,p(p({ref:e},i),{},{components:s})):t.createElement(h,p({ref:e},i))}));function o(a,e){var s=arguments,m=e&&e.mdxType;if("string"==typeof a||m){var n=s.length,p=new Array(n);p[0]=c;var r={};for(var N in e)hasOwnProperty.call(e,N)&&(r[N]=e[N]);r.originalType=a,r.mdxType="string"==typeof a?a:m,p[1]=r;for(var l=2;l{s.r(e),s.d(e,{assets:()=>i,contentTitle:()=>N,default:()=>o,frontMatter:()=>r,metadata:()=>l,toc:()=>k});var t=s(7462),m=s(3366),n=(s(7294),s(3905)),p=["components"],r={id:"grain",title:"Grain Surface Reactions"},N=void 0,l={unversionedId:"grain",id:"grain",title:"Grain Surface Reactions",description:"Whilst the basic treatment of gas phase chemistry is well established, grain surface chemistry is more complex. There are three possible ways to treat grain surface chemistry in UCLCHEM. In general we assume that:",source:"@site/docs/chem-grain.md",sourceDirName:".",slug:"/grain",permalink:"/docs/next/grain",draft:!1,tags:[],version:"current",lastUpdatedBy:"jonholdship",lastUpdatedAt:1652282273,formattedLastUpdatedAt:"May 11, 2022",frontMatter:{id:"grain",title:"Grain Surface Reactions"},sidebar:"docs",previous:{title:"Gas Phase Reactions",permalink:"/docs/next/gas"},next:{title:"Adsorption & Desorption Reactions",permalink:"/docs/next/desorb"}},i={},k=[{value:"Langmuir-Hinshelwood Mechanism",id:"langmuir-hinshelwood-mechanism",level:3},{value:"Eley-Rideal Mechanism",id:"eley-rideal-mechanism",level:3}],c={toc:k};function o(a){var e=a.components,s=(0,m.Z)(a,p);return(0,n.kt)("wrapper",(0,t.Z)({},c,s,{components:e,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"Whilst the basic treatment of gas phase chemistry is well established, grain surface chemistry is more complex. There are three possible ways to treat grain surface chemistry in UCLCHEM. In general we assume that:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"All dust grains are well covered by the species in question so we can take a rate equation approach based on fractional abundance rather than tracking if molecule A is on the same dust grain as molecule B."),(0,n.kt)("li",{parentName:"ul"},"Grains are spherical objects of a uniform size."),(0,n.kt)("li",{parentName:"ul"},"All species are thermalized on the grains.")),(0,n.kt)("p",null,"This allows a fairly straight forward treatment of the grain chemistry. Below we list several processes that are important in UCLCHEM's treatment of the grain chemistry."),(0,n.kt)("h3",{id:"langmuir-hinshelwood-mechanism"},"Langmuir-Hinshelwood Mechanism"),(0,n.kt)("p",null,"Reactions via diffusion of reactants across the grain surface was added to UCLCHEM by ",(0,n.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1093/mnras/stx2960"},"Quenard et al. 2018"),", drawing their formalism from ",(0,n.kt)("a",{parentName:"p",href:"http://adsabs.harvard.edu/doi/10.1086/191713"},"Hasegawa et al. 1992"),", ",(0,n.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1088/0004-637X/735/1/15"},"Garrod & Pauly 2011"),", and ",(0,n.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1093/mnras/stw887"},"Ruaud et al. 2016"),". These reactions can be included in your grain file in the form,"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre"},"#H,#CO,LH,#HCO,,,,alpha,0.0,gamma,,,\n")),(0,n.kt)("p",null,"where alpha is a branching ratio if you include multiple versions of the same reaction and gamma is the energy barrier to the reaction. Including this reaction in your MakeRates input will result in two reactions being created in the actual network: one with gas phase products and one with grain surface products. This is to account for the desorption of products of exothermic reactions and the branching ratio is determined within UCLCHEM using the binding energy of the products and energy released by the reaction following ",(0,n.kt)("a",{parentName:"p",href:"https://www.aanda.org/10.1051/0004-6361/201525981"},"Minissale et al. 2016"),". The equivalent reactions will also be generated for the ice bulk if you are using a three phase network so you only need to list LH reactions with surface reactants and products."),(0,n.kt)("p",null,"If we follow the rate of change of the absolute number of a species on the surface of a grain (",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mi",{parentName:"msub"},"S"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"N_S")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05764em"}},"S")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))))),"), we get"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"j"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"f")))),(0,n.kt)("msub",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"t"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"s")))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dN_s(i)}{dt} = -\\frac{k_{ij} k_{diff}}{N_{sites}} N_s(i)N_s(j)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.20744em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,"where ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"j")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k_{ij}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the reaction rate when species i and j are in adjacent sites, ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"f")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k_{diff}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the rate at which these species diffuse between sites and ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"t"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"s")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"N_{sites}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the number of binding sites on the surface. For reactions in the bulk ice, we multiply the number of sites per layer by the number of mantle layers. If we multiply both sides by the dust concentration, we get the LHS in the standard form of rate of change of concentration and convert one N on the RHS to a concentration. We can also multiply the RHS by ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"d"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_d")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))))),"/",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"d"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_d")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," to convert the other N."),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"j"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"f")))),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"t"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"s"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"d")))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dn_s(i)}{dt} = -\\frac{k_{ij} k_{diff}}{N_{sites} n_d} n_s(i)n_s(j)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.20744em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,"Finally, we want a rate of change of fractional abundance so we can divide through by ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"H"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_H")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))))),". Since ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"d")),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"d")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"H"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_d = X_d n_H")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))))),", we can also cancel a factor of ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"H"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_H")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," in the RHS."),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"j"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"f")))),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"t"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"s"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"d")))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dX_s(i)}{dt} = -\\frac{k_{ij} k_{diff}}{N_{sites} X_d} X_s(i)X_s(j)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.20744em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,"This is the final rate of change which is sent to the ODE solver. See ",(0,n.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1093/mnras/stx2960"},"Quenard et al. 2018")," for a discussion of ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"j")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k_{ij}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," and ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"K"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"f")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"K_{diff}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.969438em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07153em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))))))),"."),(0,n.kt)("p",null,"Note, these reactions can become ",(0,n.kt)("em",{parentName:"p"},"very")," fast at high temperatures and will eventually break the integrator with a careful, network depedent choice of tolerances. To avoid this, we stop all grain chemistry at MAX_GRAIN_TEMP in UCLCHEM which is set by default to 150 K. By this temperature, the ice will have almost entirely sublimated and so stopping the chemistry will have a negligible effect on abundances."),(0,n.kt)("h3",{id:"eley-rideal-mechanism"},"Eley-Rideal Mechanism"),(0,n.kt)("p",null,"Reactions that occur when a species colliding with a dust grain lands on a binding site occupied by another reactant are also included in UCLCHEM. They can be included in your grain file in the form,"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre"},"H,#CO,ER,#HCO,,,,alpha,0.0,gamma,,,\n")),(0,n.kt)("p",null,"and produce gas and grain surface products in the same way as the Langmuir-Hinshelwood reactions. These reactions have an ODE of the form"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"r"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"z"),(0,n.kt)("mi",{parentName:"mrow"},"e"))),(0,n.kt)("mi",{parentName:"mrow"},"exp"),(0,n.kt)("mo",{parentName:"mrow"},"\u2061"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"E")),(0,n.kt)("mi",{parentName:"mfrac"},"T")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("msub",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dn_s(i)}{dt} = -k_{i,freeze} \\exp(\\frac{-E}{T}) \\frac{n_s(j)}{n_{s}} n_s(i)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.263em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mpunct mtight"},","),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.02778em"}},"r"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.04398em"}},"z"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,n.kt)("span",{parentName:"span",className:"mop"},"exp"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05764em"}},"E")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,"where ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"r"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"z"),(0,n.kt)("mi",{parentName:"mrow"},"e")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k_{i,freeze}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mpunct mtight"},","),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.02778em"}},"r"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.04398em"}},"z"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the freeze out rate of the gas phase reactant (ie the rate at which it collides with the grains), ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"exp"),(0,n.kt)("mo",{parentName:"mrow"},"\u2061"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"E")),(0,n.kt)("mi",{parentName:"mfrac"},"T")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\exp(\\frac{-E}{T})")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"1.217331em",verticalAlign:"-0.345em"}}),(0,n.kt)("span",{parentName:"span",className:"mop"},"exp"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.872331em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.6550000000000002em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.13889em"}},"T")))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.394em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05764em"}},"E"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.345em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))," is the probability of a reaction occuring given the energy barrier, ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_s")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the total concentration of ice species, and therefore ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("msub",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"t"),(0,n.kt)("mi",{parentName:"mrow"},"o"),(0,n.kt)("mi",{parentName:"mrow"},"t"),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"l"))))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{n_s(j)}{n_{s,total}}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"1.55808em",verticalAlign:"-0.5480799999999999em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.01em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.6550000000000002em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3448em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3487714285714287em",marginLeft:"0em",marginRight:"0.07142857142857144em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.5em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mpunct mtight"},","),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.01968em"}},"l"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.29011428571428566em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.485em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.16454285714285719em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.357em",marginLeft:"0em",marginRight:"0.07142857142857144em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.5em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.143em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen mtight"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose mtight"},")"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.5480799999999999em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"}))))))," is the fraction of surface sites occupied by the surface reactant. This reduces to"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"r"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"z"),(0,n.kt)("mi",{parentName:"mrow"},"e"))),(0,n.kt)("mi",{parentName:"mrow"},"exp"),(0,n.kt)("mo",{parentName:"mrow"},"\u2061"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"E")),(0,n.kt)("mi",{parentName:"mfrac"},"T")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("msub",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dX_s(i)}{dt} = -k_{i,freeze} \\exp(\\frac{-E}{T}) \\frac{X_s(j)}{X_{s}} X_s(i)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.263em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mpunct mtight"},","),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.02778em"}},"r"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.04398em"}},"z"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,n.kt)("span",{parentName:"span",className:"mop"},"exp"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05764em"}},"E")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))))}o.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/82de2e50.86f4bd01.js b/assets/js/82de2e50.86f4bd01.js deleted file mode 100644 index 6b8b9161..00000000 --- a/assets/js/82de2e50.86f4bd01.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7928],{3905:(a,e,s)=>{s.d(e,{Zo:()=>i,kt:()=>o});var t=s(7294);function m(a,e,s){return e in a?Object.defineProperty(a,e,{value:s,enumerable:!0,configurable:!0,writable:!0}):a[e]=s,a}function n(a,e){var s=Object.keys(a);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(a);e&&(t=t.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),s.push.apply(s,t)}return s}function p(a){for(var e=1;e=0||(m[s]=a[s]);return m}(a,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(a);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(a,s)&&(m[s]=a[s])}return m}var N=t.createContext({}),l=function(a){var e=t.useContext(N),s=e;return a&&(s="function"==typeof a?a(e):p(p({},e),a)),s},i=function(a){var e=l(a.components);return t.createElement(N.Provider,{value:e},a.children)},k={inlineCode:"code",wrapper:function(a){var e=a.children;return t.createElement(t.Fragment,{},e)}},c=t.forwardRef((function(a,e){var s=a.components,m=a.mdxType,n=a.originalType,N=a.parentName,i=r(a,["components","mdxType","originalType","parentName"]),c=l(s),o=m,h=c["".concat(N,".").concat(o)]||c[o]||k[o]||n;return s?t.createElement(h,p(p({ref:e},i),{},{components:s})):t.createElement(h,p({ref:e},i))}));function o(a,e){var s=arguments,m=e&&e.mdxType;if("string"==typeof a||m){var n=s.length,p=new Array(n);p[0]=c;var r={};for(var N in e)hasOwnProperty.call(e,N)&&(r[N]=e[N]);r.originalType=a,r.mdxType="string"==typeof a?a:m,p[1]=r;for(var l=2;l{s.r(e),s.d(e,{assets:()=>i,contentTitle:()=>N,default:()=>o,frontMatter:()=>r,metadata:()=>l,toc:()=>k});var t=s(7462),m=s(3366),n=(s(7294),s(3905)),p=["components"],r={id:"grain",title:"Grain Surface Reactions"},N=void 0,l={unversionedId:"grain",id:"grain",title:"Grain Surface Reactions",description:"Whilst the basic treatment of gas phase chemistry is well established, grain surface chemistry is more complex. There are three possible ways to treat grain surface chemistry in UCLCHEM. In general we assume that:",source:"@site/docs/chem-grain.md",sourceDirName:".",slug:"/grain",permalink:"/docs/next/grain",tags:[],version:"current",lastUpdatedBy:"jonholdship",lastUpdatedAt:1652282273,formattedLastUpdatedAt:"5/11/2022",frontMatter:{id:"grain",title:"Grain Surface Reactions"},sidebar:"docs",previous:{title:"Gas Phase Reactions",permalink:"/docs/next/gas"},next:{title:"Adsorption & Desorption Reactions",permalink:"/docs/next/desorb"}},i={},k=[{value:"Langmuir-Hinshelwood Mechanism",id:"langmuir-hinshelwood-mechanism",level:3},{value:"Eley-Rideal Mechanism",id:"eley-rideal-mechanism",level:3}],c={toc:k};function o(a){var e=a.components,s=(0,m.Z)(a,p);return(0,n.kt)("wrapper",(0,t.Z)({},c,s,{components:e,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"Whilst the basic treatment of gas phase chemistry is well established, grain surface chemistry is more complex. There are three possible ways to treat grain surface chemistry in UCLCHEM. In general we assume that:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"All dust grains are well covered by the species in question so we can take a rate equation approach based on fractional abundance rather than tracking if molecule A is on the same dust grain as molecule B."),(0,n.kt)("li",{parentName:"ul"},"Grains are spherical objects of a uniform size."),(0,n.kt)("li",{parentName:"ul"},"All species are thermalized on the grains.")),(0,n.kt)("p",null,"This allows a fairly straight forward treatment of the grain chemistry. Below we list several processes that are important in UCLCHEM's treatment of the grain chemistry."),(0,n.kt)("h3",{id:"langmuir-hinshelwood-mechanism"},"Langmuir-Hinshelwood Mechanism"),(0,n.kt)("p",null,"Reactions via diffusion of reactants across the grain surface was added to UCLCHEM by ",(0,n.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1093/mnras/stx2960"},"Quenard et al. 2018"),", drawing their formalism from ",(0,n.kt)("a",{parentName:"p",href:"http://adsabs.harvard.edu/doi/10.1086/191713"},"Hasegawa et al. 1992"),", ",(0,n.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1088/0004-637X/735/1/15"},"Garrod & Pauly 2011"),", and ",(0,n.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1093/mnras/stw887"},"Ruaud et al. 2016"),". These reactions can be included in your grain file in the form,"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre"},"#H,#CO,LH,#HCO,,,,alpha,0.0,gamma,,,\n")),(0,n.kt)("p",null,"where alpha is a branching ratio if you include multiple versions of the same reaction and gamma is the energy barrier to the reaction. Including this reaction in your MakeRates input will result in two reactions being created in the actual network: one with gas phase products and one with grain surface products. This is to account for the desorption of products of exothermic reactions and the branching ratio is determined within UCLCHEM using the binding energy of the products and energy released by the reaction following ",(0,n.kt)("a",{parentName:"p",href:"https://www.aanda.org/10.1051/0004-6361/201525981"},"Minissale et al. 2016"),". The equivalent reactions will also be generated for the ice bulk if you are using a three phase network so you only need to list LH reactions with surface reactants and products."),(0,n.kt)("p",null,"If we follow the rate of change of the absolute number of a species on the surface of a grain (",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mi",{parentName:"msub"},"S"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"N_S")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05764em"}},"S")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))))),"), we get"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"j"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"f")))),(0,n.kt)("msub",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"t"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"s")))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dN_s(i)}{dt} = -\\frac{k_{ij} k_{diff}}{N_{sites}} N_s(i)N_s(j)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.20744em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,"where ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"j")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k_{ij}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the reaction rate when species i and j are in adjacent sites, ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"f")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k_{diff}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the rate at which these species diffuse between sites and ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"t"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"s")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"N_{sites}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the number of binding sites on the surface. For reactions in the bulk ice, we multiply the number of sites per layer by the number of mantle layers. If we multiply both sides by the dust concentration, we get the LHS in the standard form of rate of change of concentration and convert one N on the RHS to a concentration. We can also multiply the RHS by ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"d"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_d")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))))),"/",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"d"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_d")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," to convert the other N."),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"j"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"f")))),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"t"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"s"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"d")))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dn_s(i)}{dt} = -\\frac{k_{ij} k_{diff}}{N_{sites} n_d} n_s(i)n_s(j)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.20744em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,"Finally, we want a rate of change of fractional abundance so we can divide through by ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"H"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_H")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))))),". Since ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"d")),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"d")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"H"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_d = X_d n_H")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))))),", we can also cancel a factor of ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"H"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_H")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," in the RHS."),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"j"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"f")))),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"t"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"s"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"d")))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dX_s(i)}{dt} = -\\frac{k_{ij} k_{diff}}{N_{sites} X_d} X_s(i)X_s(j)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.20744em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,"This is the final rate of change which is sent to the ODE solver. See ",(0,n.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1093/mnras/stx2960"},"Quenard et al. 2018")," for a discussion of ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"j")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k_{ij}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," and ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"K"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"f")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"K_{diff}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.969438em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07153em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))))))),"."),(0,n.kt)("p",null,"Note, these reactions can become ",(0,n.kt)("em",{parentName:"p"},"very")," fast at high temperatures and will eventually break the integrator with a careful, network depedent choice of tolerances. To avoid this, we stop all grain chemistry at MAX_GRAIN_TEMP in UCLCHEM which is set by default to 150 K. By this temperature, the ice will have almost entirely sublimated and so stopping the chemistry will have a negligible effect on abundances."),(0,n.kt)("h3",{id:"eley-rideal-mechanism"},"Eley-Rideal Mechanism"),(0,n.kt)("p",null,"Reactions that occur when a species colliding with a dust grain lands on a binding site occupied by another reactant are also included in UCLCHEM. They can be included in your grain file in the form,"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre"},"H,#CO,ER,#HCO,,,,alpha,0.0,gamma,,,\n")),(0,n.kt)("p",null,"and produce gas and grain surface products in the same way as the Langmuir-Hinshelwood reactions. These reactions have an ODE of the form"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"r"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"z"),(0,n.kt)("mi",{parentName:"mrow"},"e"))),(0,n.kt)("mi",{parentName:"mrow"},"exp"),(0,n.kt)("mo",{parentName:"mrow"},"\u2061"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"E")),(0,n.kt)("mi",{parentName:"mfrac"},"T")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("msub",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dn_s(i)}{dt} = -k_{i,freeze} \\exp(\\frac{-E}{T}) \\frac{n_s(j)}{n_{s}} n_s(i)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.263em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mpunct mtight"},","),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.02778em"}},"r"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.04398em"}},"z"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,n.kt)("span",{parentName:"span",className:"mop"},"exp"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05764em"}},"E")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,"where ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"r"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"z"),(0,n.kt)("mi",{parentName:"mrow"},"e")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k_{i,freeze}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mpunct mtight"},","),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.02778em"}},"r"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.04398em"}},"z"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the freeze out rate of the gas phase reactant (ie the rate at which it collides with the grains), ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"exp"),(0,n.kt)("mo",{parentName:"mrow"},"\u2061"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"E")),(0,n.kt)("mi",{parentName:"mfrac"},"T")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\exp(\\frac{-E}{T})")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"1.217331em",verticalAlign:"-0.345em"}}),(0,n.kt)("span",{parentName:"span",className:"mop"},"exp"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.872331em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.6550000000000002em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.13889em"}},"T")))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.394em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05764em"}},"E"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.345em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))," is the probability of a reaction occuring given the energy barrier, ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_s")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the total concentration of ice species, and therefore ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("msub",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"t"),(0,n.kt)("mi",{parentName:"mrow"},"o"),(0,n.kt)("mi",{parentName:"mrow"},"t"),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"l"))))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{n_s(j)}{n_{s,total}}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"1.55808em",verticalAlign:"-0.5480799999999999em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.01em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.6550000000000002em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3448em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3487714285714287em",marginLeft:"0em",marginRight:"0.07142857142857144em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.5em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mpunct mtight"},","),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.01968em"}},"l"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.29011428571428566em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.485em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.16454285714285719em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.357em",marginLeft:"0em",marginRight:"0.07142857142857144em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.5em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.143em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen mtight"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose mtight"},")"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.5480799999999999em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"}))))))," is the fraction of surface sites occupied by the surface reactant. This reduces to"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"r"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"z"),(0,n.kt)("mi",{parentName:"mrow"},"e"))),(0,n.kt)("mi",{parentName:"mrow"},"exp"),(0,n.kt)("mo",{parentName:"mrow"},"\u2061"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"E")),(0,n.kt)("mi",{parentName:"mfrac"},"T")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("msub",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dX_s(i)}{dt} = -k_{i,freeze} \\exp(\\frac{-E}{T}) \\frac{X_s(j)}{X_{s}} X_s(i)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.263em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mpunct mtight"},","),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.02778em"}},"r"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.04398em"}},"z"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,n.kt)("span",{parentName:"span",className:"mop"},"exp"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05764em"}},"E")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))))}o.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/82e83611.0d5f4063.js b/assets/js/82e83611.0d5f4063.js new file mode 100644 index 00000000..d94e4d3f --- /dev/null +++ b/assets/js/82e83611.0d5f4063.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7732],{3905:(a,e,t)=>{t.d(e,{Zo:()=>i,kt:()=>o});var s=t(7294);function m(a,e,t){return e in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function n(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.push.apply(t,s)}return t}function p(a){for(var e=1;e=0||(m[t]=a[t]);return m}(a,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(a);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(a,t)&&(m[t]=a[t])}return m}var N=s.createContext({}),l=function(a){var e=s.useContext(N),t=e;return a&&(t="function"==typeof a?a(e):p(p({},e),a)),t},i=function(a){var e=l(a.components);return s.createElement(N.Provider,{value:e},a.children)},k={inlineCode:"code",wrapper:function(a){var e=a.children;return s.createElement(s.Fragment,{},e)}},c=s.forwardRef((function(a,e){var t=a.components,m=a.mdxType,n=a.originalType,N=a.parentName,i=r(a,["components","mdxType","originalType","parentName"]),c=l(t),o=m,h=c["".concat(N,".").concat(o)]||c[o]||k[o]||n;return t?s.createElement(h,p(p({ref:e},i),{},{components:t})):s.createElement(h,p({ref:e},i))}));function o(a,e){var t=arguments,m=e&&e.mdxType;if("string"==typeof a||m){var n=t.length,p=new Array(n);p[0]=c;var r={};for(var N in e)hasOwnProperty.call(e,N)&&(r[N]=e[N]);r.originalType=a,r.mdxType="string"==typeof a?a:m,p[1]=r;for(var l=2;l{t.r(e),t.d(e,{assets:()=>i,contentTitle:()=>N,default:()=>o,frontMatter:()=>r,metadata:()=>l,toc:()=>k});var s=t(7462),m=t(3366),n=(t(7294),t(3905)),p=["components"],r={id:"gas",title:"Gas Phase Reactions"},N=void 0,l={unversionedId:"gas",id:"version-v3.1.0/gas",title:"Gas Phase Reactions",description:"Gas phase ODEs",source:"@site/versioned_docs/version-v3.1.0/chem-gas.md",sourceDirName:".",slug:"/gas",permalink:"/docs/v3.1.0/gas",draft:!1,tags:[],version:"v3.1.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"gas",title:"Gas Phase Reactions"},sidebar:"docs",previous:{title:"Chemistry",permalink:"/docs/v3.1.0/category/chemistry"},next:{title:"Grain Surface Reactions",permalink:"/docs/v3.1.0/grain"}},i={},k=[{value:"Gas phase ODEs",id:"gas-phase-odes",level:2},{value:"Reaction Rates",id:"reaction-rates",level:2}],c={toc:k};function o(a){var e=a.components,t=(0,m.Z)(a,p);return(0,n.kt)("wrapper",(0,s.Z)({},c,t,{components:e,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"gas-phase-odes"},"Gas phase ODEs"),(0,n.kt)("p",null,"The rate of change of the concentration of a gas phase species due to a single two body reaction is"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"i"))),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mi",{parentName:"mrow"},"k"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"j")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"k"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dn_i}{dt} = k_{jk} n_j n_k")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.05744em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03148em"}},"k"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03148em"}},"k")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))),(0,n.kt)("p",null,"where ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mi",{parentName:"mrow"},"k")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k_{jk}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03148em"}},"k"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the rate of that reaction in units of ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"c"),(0,n.kt)("msup",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msup"},"m"),(0,n.kt)("mn",{parentName:"msup"},"3")),(0,n.kt)("msup",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msup"},"s"),(0,n.kt)("mrow",{parentName:"msup"},(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mn",{parentName:"mrow"},"1")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"cm^{3} s^{-1}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"c"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"m"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},"3"))))))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"s"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))))))))))),". Since we work in fractional abundances rather than concentrations, we can remove factors of ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"H"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_H")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," since ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"j")),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"j")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"H"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_j=X_jn_H")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.716668em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.969438em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"i"))),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mi",{parentName:"mrow"},"k"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"j")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"k")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"H"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dX_i}{dt} = k_{jk} X_j X_k n_H")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.05744em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03148em"}},"k"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03148em"}},"k")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))),(0,n.kt)("p",null,"For reactions between involving only a single body such as ionization by a cosmic ray, we have"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"i"))),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mi",{parentName:"msub"},"i")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"i"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dX_i}{dt} = k_{i} X_i")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.05744em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.84444em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))),(0,n.kt)("p",null,"The total rate of change of the fractional abundance of a species due to gas phase reactions is then just the sum of these terms for all reactions where it is a product minus the sum of all reactions where it is a reactant."),(0,n.kt)("p",null,"As a rule, any part of a reaction ODE which does not depend on abundance (eg the rate itself) is calculated between timesteps by the subroutine ",(0,n.kt)("inlineCode",{parentName:"p"},"calculateReactionRates")," in ",(0,n.kt)("inlineCode",{parentName:"p"},"rates.f90"),". The abundances are include in the ODE calculation itself so they can be updated between steps by the solver."),(0,n.kt)("h2",{id:"reaction-rates"},"Reaction Rates"),(0,n.kt)("p",null,"Gas phase chemistry in UCLCHEM uses the UMIST12 database. This is a database listing reactants and products with up to three rate constants which we label ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"\u03b1"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"\u03b2"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"n"),(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"\u03b3")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\alpha, \\beta, and \\gamma")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8888799999999999em",verticalAlign:"-0.19444em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,n.kt)("span",{parentName:"span",className:"mpunct"},","),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05278em"}},"\u03b2"),(0,n.kt)("span",{parentName:"span",className:"mpunct"},","),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05556em"}},"\u03b3")))))," for thousands of gas phase reactions. We briefly list here the way in which the rates in the above equations are calculated for each reaction type and more information can be found in ",(0,n.kt)("a",{parentName:"p",href:"https://ui.adsabs.harvard.edu/abs/2013A&A...550A..36M/abstract"},"McElroy et al. 2013")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Two Body Reactions")," use the Kooji-Arrhenius equation."),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"k"),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mi",{parentName:"mrow"},"\u03b1"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"mfrac"},"T"),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mn",{parentName:"mrow"},"300"),(0,n.kt)("mi",{parentName:"mrow"},"K"))),(0,n.kt)("msup",{parentName:"mrow"},(0,n.kt)("mo",{parentName:"msup",stretchy:"false"},")"),(0,n.kt)("mi",{parentName:"msup"},"\u03b2")),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"x"),(0,n.kt)("mi",{parentName:"mrow"},"p"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"\u03b3"),(0,n.kt)("mi",{parentName:"mrow",mathvariant:"normal"},"/"),(0,n.kt)("mi",{parentName:"mrow"},"T"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k = \\alpha (\\frac{T}{300K})^\\beta exp(-\\gamma/T)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.04633em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"3"),(0,n.kt)("span",{parentName:"span",className:"mord"},"0"),(0,n.kt)("span",{parentName:"span",className:"mord"},"0"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8991079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-3.1130000000000004em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05278em"}},"\u03b2")))))))),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"x"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"p"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05556em"}},"\u03b3"),(0,n.kt)("span",{parentName:"span",className:"mord"},"/"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Cosmic Ray Protons")),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"k"),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mi",{parentName:"mrow"},"\u03b1"),(0,n.kt)("mi",{parentName:"mrow"},"\u03b6")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k = \\alpha \\zeta")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8888799999999999em",verticalAlign:"-0.19444em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07378em"}},"\u03b6")))))),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Cosmic Ray induced photons")),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"k"),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mi",{parentName:"mrow"},"\u03b1"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"mfrac"},"T"),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mn",{parentName:"mrow"},"300"),(0,n.kt)("mi",{parentName:"mrow"},"K"))),(0,n.kt)("msup",{parentName:"mrow"},(0,n.kt)("mo",{parentName:"msup",stretchy:"false"},")"),(0,n.kt)("mi",{parentName:"msup"},"\u03b2")),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"mfrac"},"E"),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mn",{parentName:"mrow"},"1"),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"\u03c9"))),(0,n.kt)("mi",{parentName:"mrow"},"\u03b6")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k = \\alpha (\\frac{T}{300K})^\\beta \\frac{E}{1-\\omega} \\zeta")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.1296600000000003em",verticalAlign:"-0.7693300000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"3"),(0,n.kt)("span",{parentName:"span",className:"mord"},"0"),(0,n.kt)("span",{parentName:"span",className:"mord"},"0"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8991079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-3.1130000000000004em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05278em"}},"\u03b2")))))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"1"),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,n.kt)("span",{parentName:"span",className:"mbin"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"\u03c9"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05764em"}},"E")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.7693300000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07378em"}},"\u03b6")))))),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"UV Photons")),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"k"),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mi",{parentName:"mrow"},"\u03b1"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"F"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"U"),(0,n.kt)("mi",{parentName:"mrow"},"V"))),(0,n.kt)("mi",{parentName:"mrow"},"exp"),(0,n.kt)("mo",{parentName:"mrow"},"\u2061"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"k"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"A"),(0,n.kt)("mi",{parentName:"msub"},"v")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k = \\alpha F_{UV}\\exp(-kA_v)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"F"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.13889em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10903em"}},"U"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.22222em"}},"V"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,n.kt)("span",{parentName:"span",className:"mop"},"exp"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03588em"}},"v")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,"where ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"\u03b6")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\zeta")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8888799999999999em",verticalAlign:"-0.19444em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07378em"}},"\u03b6")))))," is the cosmic ray ionization rate in units of 1.3 10",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msup",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"msup"}),(0,n.kt)("mo",{parentName:"msup"},"\u2212")),(0,n.kt)("mn",{parentName:"mrow"},"17")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^-17")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span"}),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mbin mtight"},"\u2212")))))))),(0,n.kt)("span",{parentName:"span",className:"mord"},"1"),(0,n.kt)("span",{parentName:"span",className:"mord"},"7")))))," s",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msup",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"msup"}),(0,n.kt)("mrow",{parentName:"msup"},(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mn",{parentName:"mrow"},"1")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-1}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span"}),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))))))))))),", E is the efficiency with which cosmic rays cause ionization, ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"\u03c9")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\omega")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.43056em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"\u03c9")))))," is the dust grain albedo, ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"F"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"U"),(0,n.kt)("mi",{parentName:"mrow"},"V"))),(0,n.kt)("mi",{parentName:"mrow"},"exp"),(0,n.kt)("mo",{parentName:"mrow"},"\u2061"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"k"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"A"),(0,n.kt)("mi",{parentName:"msub"},"v")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"F_{UV} \\exp(-kA_v)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"F"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.13889em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10903em"}},"U"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.22222em"}},"V"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,n.kt)("span",{parentName:"span",className:"mop"},"exp"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03588em"}},"v")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))," is the attenuated UV field."))}o.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/82e83611.6dc15c0d.js b/assets/js/82e83611.6dc15c0d.js deleted file mode 100644 index a31f1780..00000000 --- a/assets/js/82e83611.6dc15c0d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7732],{3905:(a,e,t)=>{t.d(e,{Zo:()=>i,kt:()=>o});var s=t(7294);function m(a,e,t){return e in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function n(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.push.apply(t,s)}return t}function p(a){for(var e=1;e=0||(m[t]=a[t]);return m}(a,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(a);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(a,t)&&(m[t]=a[t])}return m}var N=s.createContext({}),l=function(a){var e=s.useContext(N),t=e;return a&&(t="function"==typeof a?a(e):p(p({},e),a)),t},i=function(a){var e=l(a.components);return s.createElement(N.Provider,{value:e},a.children)},k={inlineCode:"code",wrapper:function(a){var e=a.children;return s.createElement(s.Fragment,{},e)}},c=s.forwardRef((function(a,e){var t=a.components,m=a.mdxType,n=a.originalType,N=a.parentName,i=r(a,["components","mdxType","originalType","parentName"]),c=l(t),o=m,h=c["".concat(N,".").concat(o)]||c[o]||k[o]||n;return t?s.createElement(h,p(p({ref:e},i),{},{components:t})):s.createElement(h,p({ref:e},i))}));function o(a,e){var t=arguments,m=e&&e.mdxType;if("string"==typeof a||m){var n=t.length,p=new Array(n);p[0]=c;var r={};for(var N in e)hasOwnProperty.call(e,N)&&(r[N]=e[N]);r.originalType=a,r.mdxType="string"==typeof a?a:m,p[1]=r;for(var l=2;l{t.r(e),t.d(e,{assets:()=>i,contentTitle:()=>N,default:()=>o,frontMatter:()=>r,metadata:()=>l,toc:()=>k});var s=t(7462),m=t(3366),n=(t(7294),t(3905)),p=["components"],r={id:"gas",title:"Gas Phase Reactions"},N=void 0,l={unversionedId:"gas",id:"version-v3.1.0/gas",title:"Gas Phase Reactions",description:"Gas phase ODEs",source:"@site/versioned_docs/version-v3.1.0/chem-gas.md",sourceDirName:".",slug:"/gas",permalink:"/docs/v3.1.0/gas",tags:[],version:"v3.1.0",frontMatter:{id:"gas",title:"Gas Phase Reactions"},sidebar:"docs",previous:{title:"Chemistry",permalink:"/docs/v3.1.0/category/chemistry"},next:{title:"Grain Surface Reactions",permalink:"/docs/v3.1.0/grain"}},i={},k=[{value:"Gas phase ODEs",id:"gas-phase-odes",level:2},{value:"Reaction Rates",id:"reaction-rates",level:2}],c={toc:k};function o(a){var e=a.components,t=(0,m.Z)(a,p);return(0,n.kt)("wrapper",(0,s.Z)({},c,t,{components:e,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"gas-phase-odes"},"Gas phase ODEs"),(0,n.kt)("p",null,"The rate of change of the concentration of a gas phase species due to a single two body reaction is"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"i"))),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mi",{parentName:"mrow"},"k"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"j")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"k"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dn_i}{dt} = k_{jk} n_j n_k")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.05744em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03148em"}},"k"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03148em"}},"k")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))),(0,n.kt)("p",null,"where ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mi",{parentName:"mrow"},"k")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k_{jk}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03148em"}},"k"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the rate of that reaction in units of ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"c"),(0,n.kt)("msup",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msup"},"m"),(0,n.kt)("mn",{parentName:"msup"},"3")),(0,n.kt)("msup",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msup"},"s"),(0,n.kt)("mrow",{parentName:"msup"},(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mn",{parentName:"mrow"},"1")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"cm^{3} s^{-1}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"c"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"m"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},"3"))))))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"s"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))))))))))),". Since we work in fractional abundances rather than concentrations, we can remove factors of ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"H"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_H")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," since ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"j")),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"j")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"H"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_j=X_jn_H")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.716668em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.969438em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"i"))),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mi",{parentName:"mrow"},"k"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"j")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"k")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"H"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dX_i}{dt} = k_{jk} X_j X_k n_H")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.05744em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03148em"}},"k"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03148em"}},"k")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))),(0,n.kt)("p",null,"For reactions between involving only a single body such as ionization by a cosmic ray, we have"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"i"))),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mi",{parentName:"msub"},"i")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"i"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dX_i}{dt} = k_{i} X_i")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.05744em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.84444em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))),(0,n.kt)("p",null,"The total rate of change of the fractional abundance of a species due to gas phase reactions is then just the sum of these terms for all reactions where it is a product minus the sum of all reactions where it is a reactant."),(0,n.kt)("p",null,"As a rule, any part of a reaction ODE which does not depend on abundance (eg the rate itself) is calculated between timesteps by the subroutine ",(0,n.kt)("inlineCode",{parentName:"p"},"calculateReactionRates")," in ",(0,n.kt)("inlineCode",{parentName:"p"},"rates.f90"),". The abundances are include in the ODE calculation itself so they can be updated between steps by the solver."),(0,n.kt)("h2",{id:"reaction-rates"},"Reaction Rates"),(0,n.kt)("p",null,"Gas phase chemistry in UCLCHEM uses the UMIST12 database. This is a database listing reactants and products with up to three rate constants which we label ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"\u03b1"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"\u03b2"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"n"),(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"\u03b3")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\alpha, \\beta, and \\gamma")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8888799999999999em",verticalAlign:"-0.19444em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,n.kt)("span",{parentName:"span",className:"mpunct"},","),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05278em"}},"\u03b2"),(0,n.kt)("span",{parentName:"span",className:"mpunct"},","),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05556em"}},"\u03b3")))))," for thousands of gas phase reactions. We briefly list here the way in which the rates in the above equations are calculated for each reaction type and more information can be found in ",(0,n.kt)("a",{parentName:"p",href:"https://ui.adsabs.harvard.edu/abs/2013A&A...550A..36M/abstract"},"McElroy et al. 2013")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Two Body Reactions")," use the Kooji-Arrhenius equation."),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"k"),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mi",{parentName:"mrow"},"\u03b1"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"mfrac"},"T"),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mn",{parentName:"mrow"},"300"),(0,n.kt)("mi",{parentName:"mrow"},"K"))),(0,n.kt)("msup",{parentName:"mrow"},(0,n.kt)("mo",{parentName:"msup",stretchy:"false"},")"),(0,n.kt)("mi",{parentName:"msup"},"\u03b2")),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"x"),(0,n.kt)("mi",{parentName:"mrow"},"p"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"\u03b3"),(0,n.kt)("mi",{parentName:"mrow",mathvariant:"normal"},"/"),(0,n.kt)("mi",{parentName:"mrow"},"T"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k = \\alpha (\\frac{T}{300K})^\\beta exp(-\\gamma/T)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.04633em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"3"),(0,n.kt)("span",{parentName:"span",className:"mord"},"0"),(0,n.kt)("span",{parentName:"span",className:"mord"},"0"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8991079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-3.1130000000000004em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05278em"}},"\u03b2")))))))),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"x"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"p"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05556em"}},"\u03b3"),(0,n.kt)("span",{parentName:"span",className:"mord"},"/"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Cosmic Ray Protons")),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"k"),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mi",{parentName:"mrow"},"\u03b1"),(0,n.kt)("mi",{parentName:"mrow"},"\u03b6")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k = \\alpha \\zeta")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8888799999999999em",verticalAlign:"-0.19444em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07378em"}},"\u03b6")))))),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"Cosmic Ray induced photons")),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"k"),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mi",{parentName:"mrow"},"\u03b1"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"mfrac"},"T"),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mn",{parentName:"mrow"},"300"),(0,n.kt)("mi",{parentName:"mrow"},"K"))),(0,n.kt)("msup",{parentName:"mrow"},(0,n.kt)("mo",{parentName:"msup",stretchy:"false"},")"),(0,n.kt)("mi",{parentName:"msup"},"\u03b2")),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"mfrac"},"E"),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mn",{parentName:"mrow"},"1"),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"\u03c9"))),(0,n.kt)("mi",{parentName:"mrow"},"\u03b6")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k = \\alpha (\\frac{T}{300K})^\\beta \\frac{E}{1-\\omega} \\zeta")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.1296600000000003em",verticalAlign:"-0.7693300000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"3"),(0,n.kt)("span",{parentName:"span",className:"mord"},"0"),(0,n.kt)("span",{parentName:"span",className:"mord"},"0"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8991079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-3.1130000000000004em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05278em"}},"\u03b2")))))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"1"),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,n.kt)("span",{parentName:"span",className:"mbin"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"\u03c9"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05764em"}},"E")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.7693300000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07378em"}},"\u03b6")))))),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"UV Photons")),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"k"),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mi",{parentName:"mrow"},"\u03b1"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"F"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"U"),(0,n.kt)("mi",{parentName:"mrow"},"V"))),(0,n.kt)("mi",{parentName:"mrow"},"exp"),(0,n.kt)("mo",{parentName:"mrow"},"\u2061"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"k"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"A"),(0,n.kt)("mi",{parentName:"msub"},"v")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k = \\alpha F_{UV}\\exp(-kA_v)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"F"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.13889em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10903em"}},"U"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.22222em"}},"V"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,n.kt)("span",{parentName:"span",className:"mop"},"exp"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03588em"}},"v")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,"where ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"\u03b6")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\zeta")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8888799999999999em",verticalAlign:"-0.19444em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07378em"}},"\u03b6")))))," is the cosmic ray ionization rate in units of 1.3 10",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msup",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"msup"}),(0,n.kt)("mo",{parentName:"msup"},"\u2212")),(0,n.kt)("mn",{parentName:"mrow"},"17")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^-17")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span"}),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mbin mtight"},"\u2212")))))))),(0,n.kt)("span",{parentName:"span",className:"mord"},"1"),(0,n.kt)("span",{parentName:"span",className:"mord"},"7")))))," s",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msup",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"msup"}),(0,n.kt)("mrow",{parentName:"msup"},(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mn",{parentName:"mrow"},"1")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-1}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span"}),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))))))))))),", E is the efficiency with which cosmic rays cause ionization, ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"\u03c9")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\omega")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.43056em",verticalAlign:"0em"}}),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"\u03c9")))))," is the dust grain albedo, ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"F"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"U"),(0,n.kt)("mi",{parentName:"mrow"},"V"))),(0,n.kt)("mi",{parentName:"mrow"},"exp"),(0,n.kt)("mo",{parentName:"mrow"},"\u2061"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"k"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"A"),(0,n.kt)("mi",{parentName:"msub"},"v")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"F_{UV} \\exp(-kA_v)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"1em",verticalAlign:"-0.25em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"F"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.13889em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10903em"}},"U"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.22222em"}},"V"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,n.kt)("span",{parentName:"span",className:"mop"},"exp"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03588em"}},"v")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))," is the attenuated UV field."))}o.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8524628b.8f95d539.js b/assets/js/8524628b.8f95d539.js deleted file mode 100644 index f8b54d84..00000000 --- a/assets/js/8524628b.8f95d539.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8662],{3905:(a,e,s)=>{s.d(e,{Zo:()=>i,kt:()=>k});var t=s(7294);function n(a,e,s){return e in a?Object.defineProperty(a,e,{value:s,enumerable:!0,configurable:!0,writable:!0}):a[e]=s,a}function m(a,e){var s=Object.keys(a);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(a);e&&(t=t.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),s.push.apply(s,t)}return s}function p(a){for(var e=1;e=0||(n[s]=a[s]);return n}(a,e);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(a);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(a,s)&&(n[s]=a[s])}return n}var l=t.createContext({}),N=function(a){var e=t.useContext(l),s=e;return a&&(s="function"==typeof a?a(e):p(p({},e),a)),s},i=function(a){var e=N(a.components);return t.createElement(l.Provider,{value:e},a.children)},c={inlineCode:"code",wrapper:function(a){var e=a.children;return t.createElement(t.Fragment,{},e)}},o=t.forwardRef((function(a,e){var s=a.components,n=a.mdxType,m=a.originalType,l=a.parentName,i=r(a,["components","mdxType","originalType","parentName"]),o=N(s),k=n,h=o["".concat(l,".").concat(k)]||o[k]||c[k]||m;return s?t.createElement(h,p(p({ref:e},i),{},{components:s})):t.createElement(h,p({ref:e},i))}));function k(a,e){var s=arguments,n=e&&e.mdxType;if("string"==typeof a||n){var m=s.length,p=new Array(m);p[0]=o;var r={};for(var l in e)hasOwnProperty.call(e,l)&&(r[l]=e[l]);r.originalType=a,r.mdxType="string"==typeof a?a:n,p[1]=r;for(var N=2;N{s.r(e),s.d(e,{assets:()=>i,contentTitle:()=>l,default:()=>k,frontMatter:()=>r,metadata:()=>N,toc:()=>c});var t=s(7462),n=s(3366),m=(s(7294),s(3905)),p=["components"],r={id:"physics-core",title:"Core Physics"},l=void 0,N={unversionedId:"physics-core",id:"version-v3.2.0/physics-core",title:"Core Physics",description:"Each of the other physics doc pages details the specifics of a particular physics model. This one gives a general overview of the physics in UCLCHEM, including the core physics routines that are called for all models.",source:"@site/versioned_docs/version-v3.2.0/physics-core.md",sourceDirName:".",slug:"/physics-core",permalink:"/docs/physics-core",tags:[],version:"v3.2.0",frontMatter:{id:"physics-core",title:"Core Physics"},sidebar:"docs",previous:{title:"Integration",permalink:"/docs/trouble-integration"},next:{title:"Core Physics",permalink:"/docs/physics-core"}},i={},c=[{value:"Model dimensions",id:"model-dimensions",level:2},{value:"Core Physics Processes",id:"core-physics-processes",level:2},{value:"Freefall",id:"freefall",level:3},{value:"Column density",id:"column-density",level:3}],o={toc:c};function k(a){var e=a.components,s=(0,n.Z)(a,p);return(0,m.kt)("wrapper",(0,t.Z)({},o,s,{components:e,mdxType:"MDXLayout"}),(0,m.kt)("p",null,"Each of the other physics doc pages details the specifics of a particular physics model. This one gives a general overview of the physics in UCLCHEM, including the core physics routines that are called for all models."),(0,m.kt)("h2",{id:"model-dimensions"},"Model dimensions"),(0,m.kt)("p",null,"Whilst it is most often used to model a single point, UCLCHEM is a 1D model. For most models, you provide the size of some cloud of gas (",(0,m.kt)("inlineCode",{parentName:"p"},"rout"),") and the number of positions along a 1D cut through this cloud you'd like to model (",(0,m.kt)("inlineCode",{parentName:"p"},"points"),"). UCLCHEM then divides the cloud up into the required number of equally sized segments and then models a point at the inner edge of each segment. In the image below, the user has specified that they would like to model six points between some rin and rout. The cloud has been split into six segments and the dots indicate the exact position at which"),(0,m.kt)("img",{src:"/img/cloud_points.png",width:"600","margin-left":"40%"}),(0,m.kt)("p",null,'The reason we have to specify the exact position of the "point" at which UCLCHEM evaluates the abundances is that it affects the column densities. We start our calculation at the edge (hence point 1 is closest to rout) and use the width of a single segment to calculate the column densities of H2, CO, and C as well as the total column density. This affects the photo-chemistry through UV attenuation and self-shielding. However, it is unlikely a user will model enough points to properly follow the UV chemistry in the low A',(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msub"}),(0,m.kt)("mi",{parentName:"msub"},"V"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_V")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.47833099999999995em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.22222em"}},"V")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," parts of the cloud, especially since the time dependent nature of the code means it could take some time. If a full 1D calculation becomes really important to you, you may wish to consider a more purpose built PDR solver such as ",(0,m.kt)("a",{parentName:"p",href:"https://uclchem.github.io/3dpdr"},"3D-PDR"),"."),(0,m.kt)("p",null,"A a result, we typically use UCLCHEM to model the cloud as a single point. Once we are far enough into the cloud that the A",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msub"}),(0,m.kt)("mi",{parentName:"msub"},"V"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_V")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.47833099999999995em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.22222em"}},"V")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is very high, the entire cloud tends to become homogenous in 1D models. Effectively, you can model the entire cloud with Av greater than about 5 as a single point and assume those abundances hold for the entire UV shielded region of the cloud. However, our 1D set up is useful for things like hot cores where the temperature and chemistry is really dominated by the central heating source, for which we treat the radial dependence quite well. You can then get a radial view of the chemistry with just a few points."),(0,m.kt)("h2",{id:"core-physics-processes"},"Core Physics Processes"),(0,m.kt)("h3",{id:"freefall"},"Freefall"),(0,m.kt)("p",null,"Many, but not all, models allow you to allow the gas to increase in density as if the gas begins to collapse under freefall from being stationary at the intial density. You turn this on with the ",(0,m.kt)("inlineCode",{parentName:"p"},"freefall")," toggle and the analytical equation for this is"),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"mrow"},"d"),(0,m.kt)("mi",{parentName:"mrow"},"n")),(0,m.kt)("mrow",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"mrow"},"d"),(0,m.kt)("mi",{parentName:"mrow"},"t"))),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"b"),(0,m.kt)("mi",{parentName:"msub"},"c")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow",fence:"true"},"("),(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("msup",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"msup"},"n"),(0,m.kt)("mn",{parentName:"msup"},"4")),(0,m.kt)("msub",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"msub"},"n"),(0,m.kt)("mn",{parentName:"msub"},"0"))),(0,m.kt)("mo",{parentName:"mrow",fence:"true"},")")),(0,m.kt)("mfrac",{parentName:"msup"},(0,m.kt)("mn",{parentName:"mfrac"},"1"),(0,m.kt)("mn",{parentName:"mfrac"},"3"))),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow",fence:"true"},"["),(0,m.kt)("mn",{parentName:"mrow"},"24"),(0,m.kt)("mi",{parentName:"mrow"},"\u03c0"),(0,m.kt)("mi",{parentName:"mrow"},"G"),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"m"),(0,m.kt)("mi",{parentName:"msub"},"H")),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"n"),(0,m.kt)("mn",{parentName:"msub"},"0")),(0,m.kt)("mrow",{parentName:"mrow"},(0,m.kt)("mo",{parentName:"mrow",fence:"true"},"("),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow",fence:"true"},"("),(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"mfrac"},"n"),(0,m.kt)("msub",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"msub"},"n"),(0,m.kt)("mn",{parentName:"msub"},"0"))),(0,m.kt)("mo",{parentName:"mrow",fence:"true"},")")),(0,m.kt)("mfrac",{parentName:"msup"},(0,m.kt)("mn",{parentName:"mfrac"},"1"),(0,m.kt)("mn",{parentName:"mfrac"},"3"))),(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("mo",{parentName:"mrow",fence:"true"},")")),(0,m.kt)("mo",{parentName:"mrow",fence:"true"},"]")),(0,m.kt)("mfrac",{parentName:"msup"},(0,m.kt)("mn",{parentName:"mfrac"},"1"),(0,m.kt)("mn",{parentName:"mfrac"},"2")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dn}{dt} = b_c \\left(\\frac{n^4}{n_0}\\right)^{\\frac{1}{3}}\\left[24\\pi Gm_Hn_0\\left(\\left(\\frac{n}{n_0}\\right)^{\\frac{1}{3}}-1\\right)\\right]^{\\frac{1}{2}}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"2.05744em",verticalAlign:"-0.686em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"3.3878700000000004em",verticalAlign:"-1.25003em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"b"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"mopen delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size3"},"(")),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.491108em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"4"))))))))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,m.kt)("span",{parentName:"span",className:"mclose delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size3"},")"))),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.8350280000000003em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-4.244008000000001em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter sizing reset-size3 size6"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8443142857142858em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.656em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.2255000000000003em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line mtight",style:{borderBottomWidth:"0.049em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.384em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.344em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter sizing reset-size3 size6"})))))))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"mopen delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size4"},"[")),(0,m.kt)("span",{parentName:"span",className:"mord"},"2"),(0,m.kt)("span",{parentName:"span",className:"mord"},"4"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"\u03c0"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"G"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"m"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"mopen delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size4"},"(")),(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"mopen delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size3"},"(")),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.10756em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,m.kt)("span",{parentName:"span",className:"mclose delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size3"},")"))),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.7939200000000002em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-4.2029000000000005em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter sizing reset-size3 size6"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8443142857142858em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.656em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.2255000000000003em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line mtight",style:{borderBottomWidth:"0.049em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.384em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.344em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter sizing reset-size3 size6"})))))))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mbin"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mclose delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size4"},")"))),(0,m.kt)("span",{parentName:"span",className:"mclose delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size4"},"]"))),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"2.1378400000000006em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-4.54682em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter sizing reset-size3 size6"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8443142857142858em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.656em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.2255000000000003em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line mtight",style:{borderBottomWidth:"0.049em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.384em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.344em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter sizing reset-size3 size6"}))))))))))))))),(0,m.kt)("p",null,"this is the rate of change of the number density of H nuclei (that is our density unit) which is passed to the integrator to be intregrated over time along with the abundances. ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"b"),(0,m.kt)("mi",{parentName:"msub"},"c"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"b_c")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.84444em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"b"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is ",(0,m.kt)("inlineCode",{parentName:"p"},"freefallFactor")," in the parameters, a factor used to slow the collapse. ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"n"),(0,m.kt)("mn",{parentName:"msub"},"0"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_0")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is the code's ",(0,m.kt)("inlineCode",{parentName:"p"},"initialDens")," parameter. We stop this collapse at ",(0,m.kt)("inlineCode",{parentName:"p"},"finalDens")," even if the model continues."),(0,m.kt)("h3",{id:"column-density"},"Column density"),(0,m.kt)("p",null,"We calculate the column density for a single point model or for the position closest to the cloud edge in 1D models, by dividing the total size of the cloud by the number of points and multiplying by density."),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"N"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"T"),(0,m.kt)("mi",{parentName:"mrow"},"o"),(0,m.kt)("mi",{parentName:"mrow"},"t"))),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("msub",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"msub"},"r"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"c"),(0,m.kt)("mi",{parentName:"mrow"},"l"),(0,m.kt)("mi",{parentName:"mrow"},"o"),(0,m.kt)("mi",{parentName:"mrow"},"u"),(0,m.kt)("mi",{parentName:"mrow"},"d"))),(0,m.kt)("msub",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"msub"},"N"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"p"),(0,m.kt)("mi",{parentName:"mrow"},"o"),(0,m.kt)("mi",{parentName:"mrow"},"i"),(0,m.kt)("mi",{parentName:"mrow"},"n"),(0,m.kt)("mi",{parentName:"mrow"},"t"),(0,m.kt)("mi",{parentName:"mrow"},"s")))),(0,m.kt)("mi",{parentName:"mrow"},"n"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,m.kt)("mi",{parentName:"mrow"},"r"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"N_{Tot} = \\frac{r_{cloud}}{N_{points}} n(r)")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.13889em"}},"T"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"2.079668em",verticalAlign:"-0.972108em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.1075599999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"p"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"n"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,m.kt)("span",{parentName:"span"})))))))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"r"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.02778em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.01968em"}},"l"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"u"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.972108em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"mopen"},"("),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"r"),(0,m.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,m.kt)("p",null,"For points further in, we simply do the same calculation but then add the column density of the previous point. If we work in from the edge (point 1) to the centre (point N), then we get the cumulative column density. A similar process is followed for the column densities of CO, H2 and C."),(0,m.kt)("p",null,"We can then calculate the Av,"),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"A"),(0,m.kt)("mi",{parentName:"mrow"},"v"),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("mi",{parentName:"mrow"},"A"),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"v"),(0,m.kt)("mn",{parentName:"msub"},"0")),(0,m.kt)("mo",{parentName:"mrow"},"+"),(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("msub",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"msub"},"N"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"T"),(0,m.kt)("mi",{parentName:"mrow"},"o"),(0,m.kt)("mi",{parentName:"mrow"},"t"))),(0,m.kt)("mrow",{parentName:"mfrac"},(0,m.kt)("mn",{parentName:"mrow"},"1.6"),(0,m.kt)("mo",{parentName:"mrow"},"\xd7"),(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"21")),(0,m.kt)("mi",{parentName:"mrow"},"c"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"m"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"2")))))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"Av = Av_0 + \\frac{N_{Tot}}{1.6 \\times 10^{21} cm^{-2}}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.68333em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"v"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"v"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03588em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mbin"},"+"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"2.1296600000000003em",verticalAlign:"-0.7693300000000001em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},"."),(0,m.kt)("span",{parentName:"span",className:"mord"},"6"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mbin"},"\xd7"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.740108em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.9890000000000003em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"c"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"m"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.740108em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.989em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2"))))))))))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.13889em"}},"T"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.7693300000000001em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"}))))))),(0,m.kt)("p",null,"where ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"A"),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"v"),(0,m.kt)("mn",{parentName:"msub"},"0"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"Av_0")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"v"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03588em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is the code's ",(0,m.kt)("inlineCode",{parentName:"p"},"baseAv")," parameter."))}k.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8524628b.cdd781e5.js b/assets/js/8524628b.cdd781e5.js new file mode 100644 index 00000000..c5459ae5 --- /dev/null +++ b/assets/js/8524628b.cdd781e5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8662],{3905:(a,e,s)=>{s.d(e,{Zo:()=>i,kt:()=>k});var t=s(7294);function n(a,e,s){return e in a?Object.defineProperty(a,e,{value:s,enumerable:!0,configurable:!0,writable:!0}):a[e]=s,a}function m(a,e){var s=Object.keys(a);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(a);e&&(t=t.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),s.push.apply(s,t)}return s}function p(a){for(var e=1;e=0||(n[s]=a[s]);return n}(a,e);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(a);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(a,s)&&(n[s]=a[s])}return n}var l=t.createContext({}),N=function(a){var e=t.useContext(l),s=e;return a&&(s="function"==typeof a?a(e):p(p({},e),a)),s},i=function(a){var e=N(a.components);return t.createElement(l.Provider,{value:e},a.children)},c={inlineCode:"code",wrapper:function(a){var e=a.children;return t.createElement(t.Fragment,{},e)}},o=t.forwardRef((function(a,e){var s=a.components,n=a.mdxType,m=a.originalType,l=a.parentName,i=r(a,["components","mdxType","originalType","parentName"]),o=N(s),k=n,h=o["".concat(l,".").concat(k)]||o[k]||c[k]||m;return s?t.createElement(h,p(p({ref:e},i),{},{components:s})):t.createElement(h,p({ref:e},i))}));function k(a,e){var s=arguments,n=e&&e.mdxType;if("string"==typeof a||n){var m=s.length,p=new Array(m);p[0]=o;var r={};for(var l in e)hasOwnProperty.call(e,l)&&(r[l]=e[l]);r.originalType=a,r.mdxType="string"==typeof a?a:n,p[1]=r;for(var N=2;N{s.r(e),s.d(e,{assets:()=>i,contentTitle:()=>l,default:()=>k,frontMatter:()=>r,metadata:()=>N,toc:()=>c});var t=s(7462),n=s(3366),m=(s(7294),s(3905)),p=["components"],r={id:"physics-core",title:"Core Physics"},l=void 0,N={unversionedId:"physics-core",id:"version-v3.2.0/physics-core",title:"Core Physics",description:"Each of the other physics doc pages details the specifics of a particular physics model. This one gives a general overview of the physics in UCLCHEM, including the core physics routines that are called for all models.",source:"@site/versioned_docs/version-v3.2.0/physics-core.md",sourceDirName:".",slug:"/physics-core",permalink:"/docs/physics-core",draft:!1,tags:[],version:"v3.2.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"physics-core",title:"Core Physics"},sidebar:"docs",previous:{title:"Integration",permalink:"/docs/trouble-integration"},next:{title:"Core Physics",permalink:"/docs/physics-core"}},i={},c=[{value:"Model dimensions",id:"model-dimensions",level:2},{value:"Core Physics Processes",id:"core-physics-processes",level:2},{value:"Freefall",id:"freefall",level:3},{value:"Column density",id:"column-density",level:3}],o={toc:c};function k(a){var e=a.components,s=(0,n.Z)(a,p);return(0,m.kt)("wrapper",(0,t.Z)({},o,s,{components:e,mdxType:"MDXLayout"}),(0,m.kt)("p",null,"Each of the other physics doc pages details the specifics of a particular physics model. This one gives a general overview of the physics in UCLCHEM, including the core physics routines that are called for all models."),(0,m.kt)("h2",{id:"model-dimensions"},"Model dimensions"),(0,m.kt)("p",null,"Whilst it is most often used to model a single point, UCLCHEM is a 1D model. For most models, you provide the size of some cloud of gas (",(0,m.kt)("inlineCode",{parentName:"p"},"rout"),") and the number of positions along a 1D cut through this cloud you'd like to model (",(0,m.kt)("inlineCode",{parentName:"p"},"points"),"). UCLCHEM then divides the cloud up into the required number of equally sized segments and then models a point at the inner edge of each segment. In the image below, the user has specified that they would like to model six points between some rin and rout. The cloud has been split into six segments and the dots indicate the exact position at which"),(0,m.kt)("img",{src:"/img/cloud_points.png",width:"600","margin-left":"40%"}),(0,m.kt)("p",null,'The reason we have to specify the exact position of the "point" at which UCLCHEM evaluates the abundances is that it affects the column densities. We start our calculation at the edge (hence point 1 is closest to rout) and use the width of a single segment to calculate the column densities of H2, CO, and C as well as the total column density. This affects the photo-chemistry through UV attenuation and self-shielding. However, it is unlikely a user will model enough points to properly follow the UV chemistry in the low A',(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msub"}),(0,m.kt)("mi",{parentName:"msub"},"V"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_V")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.47833099999999995em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.22222em"}},"V")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," parts of the cloud, especially since the time dependent nature of the code means it could take some time. If a full 1D calculation becomes really important to you, you may wish to consider a more purpose built PDR solver such as ",(0,m.kt)("a",{parentName:"p",href:"https://uclchem.github.io/3dpdr"},"3D-PDR"),"."),(0,m.kt)("p",null,"A a result, we typically use UCLCHEM to model the cloud as a single point. Once we are far enough into the cloud that the A",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msub"}),(0,m.kt)("mi",{parentName:"msub"},"V"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_V")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.47833099999999995em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.22222em"}},"V")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is very high, the entire cloud tends to become homogenous in 1D models. Effectively, you can model the entire cloud with Av greater than about 5 as a single point and assume those abundances hold for the entire UV shielded region of the cloud. However, our 1D set up is useful for things like hot cores where the temperature and chemistry is really dominated by the central heating source, for which we treat the radial dependence quite well. You can then get a radial view of the chemistry with just a few points."),(0,m.kt)("h2",{id:"core-physics-processes"},"Core Physics Processes"),(0,m.kt)("h3",{id:"freefall"},"Freefall"),(0,m.kt)("p",null,"Many, but not all, models allow you to allow the gas to increase in density as if the gas begins to collapse under freefall from being stationary at the intial density. You turn this on with the ",(0,m.kt)("inlineCode",{parentName:"p"},"freefall")," toggle and the analytical equation for this is"),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"mrow"},"d"),(0,m.kt)("mi",{parentName:"mrow"},"n")),(0,m.kt)("mrow",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"mrow"},"d"),(0,m.kt)("mi",{parentName:"mrow"},"t"))),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"b"),(0,m.kt)("mi",{parentName:"msub"},"c")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow",fence:"true"},"("),(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("msup",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"msup"},"n"),(0,m.kt)("mn",{parentName:"msup"},"4")),(0,m.kt)("msub",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"msub"},"n"),(0,m.kt)("mn",{parentName:"msub"},"0"))),(0,m.kt)("mo",{parentName:"mrow",fence:"true"},")")),(0,m.kt)("mfrac",{parentName:"msup"},(0,m.kt)("mn",{parentName:"mfrac"},"1"),(0,m.kt)("mn",{parentName:"mfrac"},"3"))),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow",fence:"true"},"["),(0,m.kt)("mn",{parentName:"mrow"},"24"),(0,m.kt)("mi",{parentName:"mrow"},"\u03c0"),(0,m.kt)("mi",{parentName:"mrow"},"G"),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"m"),(0,m.kt)("mi",{parentName:"msub"},"H")),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"n"),(0,m.kt)("mn",{parentName:"msub"},"0")),(0,m.kt)("mrow",{parentName:"mrow"},(0,m.kt)("mo",{parentName:"mrow",fence:"true"},"("),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow",fence:"true"},"("),(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"mfrac"},"n"),(0,m.kt)("msub",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"msub"},"n"),(0,m.kt)("mn",{parentName:"msub"},"0"))),(0,m.kt)("mo",{parentName:"mrow",fence:"true"},")")),(0,m.kt)("mfrac",{parentName:"msup"},(0,m.kt)("mn",{parentName:"mfrac"},"1"),(0,m.kt)("mn",{parentName:"mfrac"},"3"))),(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("mo",{parentName:"mrow",fence:"true"},")")),(0,m.kt)("mo",{parentName:"mrow",fence:"true"},"]")),(0,m.kt)("mfrac",{parentName:"msup"},(0,m.kt)("mn",{parentName:"mfrac"},"1"),(0,m.kt)("mn",{parentName:"mfrac"},"2")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dn}{dt} = b_c \\left(\\frac{n^4}{n_0}\\right)^{\\frac{1}{3}}\\left[24\\pi Gm_Hn_0\\left(\\left(\\frac{n}{n_0}\\right)^{\\frac{1}{3}}-1\\right)\\right]^{\\frac{1}{2}}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"2.05744em",verticalAlign:"-0.686em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"3.3878700000000004em",verticalAlign:"-1.25003em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"b"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"mopen delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size3"},"(")),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.491108em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"4"))))))))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,m.kt)("span",{parentName:"span",className:"mclose delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size3"},")"))),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.8350280000000003em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-4.244008000000001em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter sizing reset-size3 size6"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8443142857142858em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.656em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.2255000000000003em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line mtight",style:{borderBottomWidth:"0.049em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.384em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.344em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter sizing reset-size3 size6"})))))))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"mopen delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size4"},"[")),(0,m.kt)("span",{parentName:"span",className:"mord"},"2"),(0,m.kt)("span",{parentName:"span",className:"mord"},"4"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"\u03c0"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"G"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"m"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"mopen delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size4"},"(")),(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"mopen delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size3"},"(")),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.10756em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,m.kt)("span",{parentName:"span",className:"mclose delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size3"},")"))),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.7939200000000002em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-4.2029000000000005em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter sizing reset-size3 size6"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8443142857142858em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.656em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.2255000000000003em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line mtight",style:{borderBottomWidth:"0.049em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.384em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.344em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter sizing reset-size3 size6"})))))))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mbin"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mclose delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size4"},")"))),(0,m.kt)("span",{parentName:"span",className:"mclose delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size4"},"]"))),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"2.1378400000000006em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-4.54682em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter sizing reset-size3 size6"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8443142857142858em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.656em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.2255000000000003em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line mtight",style:{borderBottomWidth:"0.049em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.384em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.344em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter sizing reset-size3 size6"}))))))))))))))),(0,m.kt)("p",null,"this is the rate of change of the number density of H nuclei (that is our density unit) which is passed to the integrator to be intregrated over time along with the abundances. ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"b"),(0,m.kt)("mi",{parentName:"msub"},"c"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"b_c")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.84444em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"b"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is ",(0,m.kt)("inlineCode",{parentName:"p"},"freefallFactor")," in the parameters, a factor used to slow the collapse. ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"n"),(0,m.kt)("mn",{parentName:"msub"},"0"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_0")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is the code's ",(0,m.kt)("inlineCode",{parentName:"p"},"initialDens")," parameter. We stop this collapse at ",(0,m.kt)("inlineCode",{parentName:"p"},"finalDens")," even if the model continues."),(0,m.kt)("h3",{id:"column-density"},"Column density"),(0,m.kt)("p",null,"We calculate the column density for a single point model or for the position closest to the cloud edge in 1D models, by dividing the total size of the cloud by the number of points and multiplying by density."),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"N"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"T"),(0,m.kt)("mi",{parentName:"mrow"},"o"),(0,m.kt)("mi",{parentName:"mrow"},"t"))),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("msub",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"msub"},"r"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"c"),(0,m.kt)("mi",{parentName:"mrow"},"l"),(0,m.kt)("mi",{parentName:"mrow"},"o"),(0,m.kt)("mi",{parentName:"mrow"},"u"),(0,m.kt)("mi",{parentName:"mrow"},"d"))),(0,m.kt)("msub",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"msub"},"N"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"p"),(0,m.kt)("mi",{parentName:"mrow"},"o"),(0,m.kt)("mi",{parentName:"mrow"},"i"),(0,m.kt)("mi",{parentName:"mrow"},"n"),(0,m.kt)("mi",{parentName:"mrow"},"t"),(0,m.kt)("mi",{parentName:"mrow"},"s")))),(0,m.kt)("mi",{parentName:"mrow"},"n"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,m.kt)("mi",{parentName:"mrow"},"r"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"N_{Tot} = \\frac{r_{cloud}}{N_{points}} n(r)")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.13889em"}},"T"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"2.079668em",verticalAlign:"-0.972108em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.1075599999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"p"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"n"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,m.kt)("span",{parentName:"span"})))))))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"r"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.02778em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.01968em"}},"l"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"u"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.972108em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"mopen"},"("),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"r"),(0,m.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,m.kt)("p",null,"For points further in, we simply do the same calculation but then add the column density of the previous point. If we work in from the edge (point 1) to the centre (point N), then we get the cumulative column density. A similar process is followed for the column densities of CO, H2 and C."),(0,m.kt)("p",null,"We can then calculate the Av,"),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"A"),(0,m.kt)("mi",{parentName:"mrow"},"v"),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("mi",{parentName:"mrow"},"A"),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"v"),(0,m.kt)("mn",{parentName:"msub"},"0")),(0,m.kt)("mo",{parentName:"mrow"},"+"),(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("msub",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"msub"},"N"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"T"),(0,m.kt)("mi",{parentName:"mrow"},"o"),(0,m.kt)("mi",{parentName:"mrow"},"t"))),(0,m.kt)("mrow",{parentName:"mfrac"},(0,m.kt)("mn",{parentName:"mrow"},"1.6"),(0,m.kt)("mo",{parentName:"mrow"},"\xd7"),(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"21")),(0,m.kt)("mi",{parentName:"mrow"},"c"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"m"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"2")))))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"Av = Av_0 + \\frac{N_{Tot}}{1.6 \\times 10^{21} cm^{-2}}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.68333em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"v"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"v"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03588em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mbin"},"+"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"2.1296600000000003em",verticalAlign:"-0.7693300000000001em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},"."),(0,m.kt)("span",{parentName:"span",className:"mord"},"6"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mbin"},"\xd7"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.740108em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.9890000000000003em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"c"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"m"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.740108em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.989em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2"))))))))))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.13889em"}},"T"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.7693300000000001em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"}))))))),(0,m.kt)("p",null,"where ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"A"),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"v"),(0,m.kt)("mn",{parentName:"msub"},"0"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"Av_0")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"v"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03588em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is the code's ",(0,m.kt)("inlineCode",{parentName:"p"},"baseAv")," parameter."))}k.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/87033a11.2d45430c.js b/assets/js/87033a11.2d45430c.js deleted file mode 100644 index 77f0e1c9..00000000 --- a/assets/js/87033a11.2d45430c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1157],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>h});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),p=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),m=p(r),h=o,d=m["".concat(c,".").concat(h)]||m[h]||u[h]||a;return r?n.createElement(d,i(i({ref:t},s),{},{components:r})):n.createElement(d,i({ref:t},s))}));function h(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=m;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l.mdxType="string"==typeof e?e:o,i[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>h,frontMatter:()=>l,metadata:()=>p,toc:()=>u});var n=r(7462),o=r(3366),a=(r(7294),r(3905)),i=["components"],l={title:"UCLCHEM v3.0",authors:"jonholdship"},c=void 0,p={permalink:"/blog/2022/04/29/uclchem-v3",source:"@site/blog/2022-04-29-uclchem-v3.md",title:"UCLCHEM v3.0",description:"UCLCHEM has had a major update! The new version is v3.0 and has many changes. Here are some of the key updates:",date:"2022-04-29T00:00:00.000Z",formattedDate:"April 29, 2022",tags:[],readingTime:.465,truncated:!1,authors:[{name:"Jonathan Holdship",title:"UCLCHEM developer",url:"https://jonholdship.github.io",imageURL:"/img/jon.png",key:"jonholdship"}],frontMatter:{title:"UCLCHEM v3.0",authors:"jonholdship"},nextItem:{title:"The Cosmic-ray Ionization Rate in NGC 253",permalink:"/blog/2022/04/14/crir-ngc253"}},s={authorsImageUrls:[void 0]},u=[],m={toc:u};function h(e){var t=e.components,r=(0,o.Z)(e,i);return(0,a.kt)("wrapper",(0,n.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"UCLCHEM has had a major update! The new version is v3.0 and has many changes. Here are some of the key updates:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"UCLCHEM is now entirely python-centric and pip installable."),(0,a.kt)("li",{parentName:"ul"},"MakeRates is smarter than ever and does much more of the work of building a network for you."),(0,a.kt)("li",{parentName:"ul"},"Three phase chemistry is now the default and well bug tested."),(0,a.kt)("li",{parentName:"ul"},"You no longer have to recompile the code to change physics modules.")),(0,a.kt)("p",null,"Check out our docs pages for all the updates and tutorials on how to use the new version."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/87033a11.7af87de6.js b/assets/js/87033a11.7af87de6.js new file mode 100644 index 00000000..97938bae --- /dev/null +++ b/assets/js/87033a11.7af87de6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1157],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>m});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),p=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),h=p(r),m=o,d=h["".concat(c,".").concat(m)]||h[m]||u[m]||a;return r?n.createElement(d,i(i({ref:t},s),{},{components:r})):n.createElement(d,i({ref:t},s))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=h;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l.mdxType="string"==typeof e?e:o,i[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>m,frontMatter:()=>l,metadata:()=>p,toc:()=>u});var n=r(7462),o=r(3366),a=(r(7294),r(3905)),i=["components"],l={title:"UCLCHEM v3.0",authors:"jonholdship"},c=void 0,p={permalink:"/blog/2022/04/29/uclchem-v3",source:"@site/blog/2022-04-29-uclchem-v3.md",title:"UCLCHEM v3.0",description:"UCLCHEM has had a major update! The new version is v3.0 and has many changes. Here are some of the key updates:",date:"2022-04-29T00:00:00.000Z",formattedDate:"April 29, 2022",tags:[],readingTime:.465,hasTruncateMarker:!1,authors:[{name:"Jonathan Holdship",title:"UCLCHEM developer",url:"https://jonholdship.github.io",imageURL:"/img/jon.png",key:"jonholdship"}],frontMatter:{title:"UCLCHEM v3.0",authors:"jonholdship"},nextItem:{title:"The Cosmic-ray Ionization Rate in NGC 253",permalink:"/blog/2022/04/14/crir-ngc253"}},s={authorsImageUrls:[void 0]},u=[],h={toc:u};function m(e){var t=e.components,r=(0,o.Z)(e,i);return(0,a.kt)("wrapper",(0,n.Z)({},h,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"UCLCHEM has had a major update! The new version is v3.0 and has many changes. Here are some of the key updates:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"UCLCHEM is now entirely python-centric and pip installable."),(0,a.kt)("li",{parentName:"ul"},"MakeRates is smarter than ever and does much more of the work of building a network for you."),(0,a.kt)("li",{parentName:"ul"},"Three phase chemistry is now the default and well bug tested."),(0,a.kt)("li",{parentName:"ul"},"You no longer have to recompile the code to change physics modules.")),(0,a.kt)("p",null,"Check out our docs pages for all the updates and tutorials on how to use the new version."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8762eb7f.0266e1fd.js b/assets/js/8762eb7f.0266e1fd.js new file mode 100644 index 00000000..f05bb3e0 --- /dev/null +++ b/assets/js/8762eb7f.0266e1fd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5013],{3905:(a,e,t)=>{t.d(e,{Zo:()=>N,kt:()=>k});var s=t(7294);function n(a,e,t){return e in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function m(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.push.apply(t,s)}return t}function p(a){for(var e=1;e=0||(n[t]=a[t]);return n}(a,e);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(a);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(a,t)&&(n[t]=a[t])}return n}var i=s.createContext({}),l=function(a){var e=s.useContext(i),t=e;return a&&(t="function"==typeof a?a(e):p(p({},e),a)),t},N=function(a){var e=l(a.components);return s.createElement(i.Provider,{value:e},a.children)},o={inlineCode:"code",wrapper:function(a){var e=a.children;return s.createElement(s.Fragment,{},e)}},c=s.forwardRef((function(a,e){var t=a.components,n=a.mdxType,m=a.originalType,i=a.parentName,N=r(a,["components","mdxType","originalType","parentName"]),c=l(t),k=n,h=c["".concat(i,".").concat(k)]||c[k]||o[k]||m;return t?s.createElement(h,p(p({ref:e},N),{},{components:t})):s.createElement(h,p({ref:e},N))}));function k(a,e){var t=arguments,n=e&&e.mdxType;if("string"==typeof a||n){var m=t.length,p=new Array(m);p[0]=c;var r={};for(var i in e)hasOwnProperty.call(e,i)&&(r[i]=e[i]);r.originalType=a,r.mdxType="string"==typeof a?a:n,p[1]=r;for(var l=2;l{t.r(e),t.d(e,{assets:()=>N,contentTitle:()=>i,default:()=>k,frontMatter:()=>r,metadata:()=>l,toc:()=>o});var s=t(7462),n=t(3366),m=(t(7294),t(3905)),p=["components"],r={},i="Chemical Analysis",l={unversionedId:"chemical_analysis",id:"chemical_analysis",title:"Chemical Analysis",description:"Chemical networks are complex systems where the interplay between many elements often means that small changes in one aspect of the network can greatly effect the outcome in unexpected ways. Nevertheless, there are cases where a simple chemical explanation can be found for some observed behaviour in the model outputs. This tutorial demonstrates how to use some of the functionality of the UCLCHEM library to analyse model outputs and discover these explanations.",source:"@site/docs/chemical_analysis.md",sourceDirName:".",slug:"/chemical_analysis",permalink:"/docs/next/chemical_analysis",draft:!1,tags:[],version:"current",lastUpdatedBy:"jonholdship",lastUpdatedAt:1651073142,formattedLastUpdatedAt:"Apr 27, 2022",frontMatter:{},sidebar:"docs",previous:{title:"Running a Grid",permalink:"/docs/next/running_a_grid"},next:{title:"Compilation Issues",permalink:"/docs/next/trouble-compile"}},N={},o=[{value:"H3O+ and SO",id:"h3o-and-so",level:2},{value:"1. Generate Test Cases",id:"1-generate-test-cases",level:3},{value:"2. Run the Analysis",id:"2-run-the-analysis",level:3},{value:"2.1 H_3O^+",id:"21-h_3o",level:4},{value:"2.2 SO",id:"22-so",level:4},{value:"Summary Notes",id:"summary-notes",level:2},{value:"Considerations",id:"considerations",level:2}],c={toc:o};function k(a){var e=a.components,r=(0,n.Z)(a,p);return(0,m.kt)("wrapper",(0,s.Z)({},c,r,{components:e,mdxType:"MDXLayout"}),(0,m.kt)("h1",{id:"chemical-analysis"},"Chemical Analysis"),(0,m.kt)("p",null,"Chemical networks are complex systems where the interplay between many elements often means that small changes in one aspect of the network can greatly effect the outcome in unexpected ways. Nevertheless, there are cases where a simple chemical explanation can be found for some observed behaviour in the model outputs. This tutorial demonstrates how to use some of the functionality of the UCLCHEM library to analyse model outputs and discover these explanations."),(0,m.kt)("p",null,"We do recommend caution when following the approach laid out in this tutorial. There are many pitfalls which we will try to point out as we go. Ultimately, a comprehensive view of how important a reaction is to the outcome of your model requires detailed statistical calculations such as the use of ",(0,m.kt)("a",{parentName:"p",href:"https://github.com/slundberg/shap"},"SHAP values")," to assign meaningful scores to how much various reactions in a network contribute to a species' abundance. Therefore, care must be taken by the user to ensure that the conclusions they draw from a simpler approach are sound."),(0,m.kt)("p",null,"We'll use an example from work that was recently published at the time of writing this tutorial to demonstrate the use of ",(0,m.kt)("inlineCode",{parentName:"p"},"uclchem.analysis.analysis()")," and how it can be used to draw conclusions about the most important reactions in a network for a given species/behaviour."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},"import uclchem\nfrom glob import glob\n")),(0,m.kt)("h2",{id:"h3o-and-so"},"H3O+ and SO"),(0,m.kt)("p",null,"In a piece of inference work in which we measured the cosmic ray ionization rate (CRIR) in NGC 253 ",(0,m.kt)("a",{parentName:"p",href:"https://ui.adsabs.harvard.edu/abs/2022arXiv220403668H/abstract"},"(Holdship et al. 2022)"),". We found that both H3O+ and SO were sensitive to the ionization rate. Furthermore, since H3O+ was increased in abundance by increasing CRIR and SO was destroyed, their ratio was extremely sensitive to the rate. "),(0,m.kt)("p",null,"In the work, we present the plot below which shows how the equilibrium abundance of each species changes with the CRIR as well as the ratio. We plot this for a range of temperatures to show that this behaviour is not particularly sensitive to the gas temperature."),(0,m.kt)("p",null,(0,m.kt)("img",{alt:"crir_h3o_so_example",src:t(360).Z,width:"1600",height:"1067"})),(0,m.kt)("p",null,"In a sense, this is all the information we need. A complex array of reactions all compete and contribute to produce the outcome of the model. Whatever they are, we see the abundance of these species are very sensitive to the CR over a wide range of temperature and density. However, we can only trust this conclusion as far as we trust the entire chemical network since we don't know what exactly causes this behaviour."),(0,m.kt)("p",null,"If we use the analysis function, we may find all of this is driven by a small handful of reactions. The benefit would then be that our trust in our conclusions only depends on how much we trust the rates of those specific reactions. If it is very important, we can evaluate those reactions and readers of our work can make the same decisions as information from experiment changes."),(0,m.kt)("h3",{id:"1-generate-test-cases"},"1. Generate Test Cases"),(0,m.kt)("p",null,"Ideally, we should run a huge grid of models and find some rigorous way to evaluate how important each reaction is to the outcome of the model. However, if we run a small grid representative of different conditions then any simple chemical explanation will be evident if it exists. If it no simple explanation is appropriate, then the analysis module is not appropriate for our task and we could consider more complex approaches."),(0,m.kt)("p",null,"Let's run a simple grid with all possible combinations of the following:"),(0,m.kt)("ul",null,(0,m.kt)("li",{parentName:"ul"},"A low CRIR (zeta=1) and high CRIR (zeta=1e4)"),(0,m.kt)("li",{parentName:"ul"},"A typical cloud density (n=1e4) and high density (n=1e6)"),(0,m.kt)("li",{parentName:"ul"},"The lower temperature bound of NGC 253 CMZ (50 K) and a high temperature (250 K)")),(0,m.kt)("p",null,"and that will give us enough to work with for our analysis."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'params={\'baseAv\':10, #UV shielded gas in our model\n \'freefall\':False,\n \'finalTime\':1e6\n }\nfor temperature in [50,250]:\n for density in [1e4,1e6]:\n for zeta in [1,1e4]:\n params["initialtemp"]=temperature\n params["initialdens"]=density\n params["zeta"]=zeta\n params["outputfile"]=f"../output/{temperature}_{density}_{zeta}.csv"\n uclchem.model.cloud(param_dict=params)\n')),(0,m.kt)("h3",{id:"2-run-the-analysis"},"2. Run the Analysis"),(0,m.kt)("p",null,"The ",(0,m.kt)("inlineCode",{parentName:"p"},"analysis")," function is very simple. For every time step in your model output, it will use UCLCHEM to calculate the rate of every reaction which includes a chosen species. It then uses the abundances at that time step to calculate the total contribution of that reaction to the rate of change of the species' abundance."),(0,m.kt)("p",null,"For example, if we care about H3O+ and find that it is created by ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"2")),(0,m.kt)("mi",{parentName:"mrow"},"O")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_2O")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O")))))," + ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"H"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+")))))))))))),", then UCLCHEM is called to get ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"k")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.69444em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"))))),", the rate of that reaction and then analysis calculates"),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mover",{parentName:"mrow",accent:"true"},(0,m.kt)("mrow",{parentName:"mover"},(0,m.kt)("mi",{parentName:"mrow"},"Y"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+")),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,m.kt)("mo",{parentName:"mover"},"\u02d9")),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("mi",{parentName:"mrow"},"k"),(0,m.kt)("mi",{parentName:"mrow"},"Y"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"2")),(0,m.kt)("mi",{parentName:"mrow"},"O"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,m.kt)("mi",{parentName:"mrow"},"Y"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"H"),(0,m.kt)("mo",{parentName:"msup"},"+")),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"n"),(0,m.kt)("mi",{parentName:"msub"},"H"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\dot{Y(H_3O^+)} = k Y(H_2O) Y(H^+) n_H")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"1.23686em",verticalAlign:"-0.25em"}}),(0,m.kt)("span",{parentName:"span",className:"mord accent"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.9868600000000001em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"Y"),(0,m.kt)("span",{parentName:"span",className:"mopen"},"("),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.697331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.989em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+")))))))),(0,m.kt)("span",{parentName:"span",className:"mclose"},")"))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.319em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"accent-body",style:{left:"-0.13889em"}},(0,m.kt)("span",{parentName:"span",className:"mord"},"\u02d9")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.25em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"1.071331em",verticalAlign:"-0.25em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"Y"),(0,m.kt)("span",{parentName:"span",className:"mopen"},"("),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"mclose"},")"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"Y"),(0,m.kt)("span",{parentName:"span",className:"mopen"},"("),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.821331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.113em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+")))))))),(0,m.kt)("span",{parentName:"span",className:"mclose"},")"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))),(0,m.kt)("p",null,"where ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mover",{parentName:"mrow",accent:"true"},(0,m.kt)("mrow",{parentName:"mover"},(0,m.kt)("mi",{parentName:"mrow"},"Y"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+")),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,m.kt)("mo",{parentName:"mover"},"\u02d9"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\dot{Y(H_3O^+)}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"1.23686em",verticalAlign:"-0.25em"}}),(0,m.kt)("span",{parentName:"span",className:"mord accent"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.9868600000000001em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"Y"),(0,m.kt)("span",{parentName:"span",className:"mopen"},"("),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.697331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.989em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+")))))))),(0,m.kt)("span",{parentName:"span",className:"mclose"},")"))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.319em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"accent-body",style:{left:"-0.13889em"}},(0,m.kt)("span",{parentName:"span",className:"mord"},"\u02d9")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.25em"}},(0,m.kt)("span",{parentName:"span"})))))))))," is the rate of change of the ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("mi",{parentName:"mrow"},"O"),(0,m.kt)("mo",{parentName:"mrow"},"+")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"mord"},"+")))))," abundance due to the reaction. The ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mover",{parentName:"mrow",accent:"true"},(0,m.kt)("mi",{parentName:"mover"},"Y"),(0,m.kt)("mo",{parentName:"mover"},"\u02d9"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\dot{Y}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.9201900000000001em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord accent"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.9201900000000001em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"Y"))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.25233em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"accent-body",style:{left:"-0.13889em"}},(0,m.kt)("span",{parentName:"span",className:"mord"},"\u02d9")))))))))))," s of each reaction involving the ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," are then compared to see which reactions contribute the most to the destruction and formation of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("mi",{parentName:"mrow"},"O"),(0,m.kt)("mo",{parentName:"mrow"},"+")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"mord"},"+"))))),"."),(0,m.kt)("p",null,"Our plan then is to do this for the low zeta case and the high zeta case. Hopefully, we'll see the same reactions are most important to the abundance of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," and SO at all densities and tempertures. If we don't find that that's the case, then the chemistry is these species is fairly complex and perhaps trying to present a simple cause for the CRIR dependence is not a good idea."),(0,m.kt)("p",null,"So, let's analyse the outputs!"),(0,m.kt)("h4",{id:"21-h_3o"},"2.1 ",(0,m.kt)("span",{parentName:"h4",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))),(0,m.kt)("p",null,(0,m.kt)("inlineCode",{parentName:"p"},"analysis()")," takes three arguments: the species, the output file to analyse, and a file to store the analsis output. Let's run it for every model in our little grid so we can inspect the outputs."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'outputs=glob("../output/[0-9]*.csv") #all files that start with a number\nfor output in outputs:\n \n analysis_output="../output/H3O-analysis-"+output[10:]\n uclchem.analysis.analysis("H3O+",output,analysis_output)\n')),(0,m.kt)("p",null,"This will produce one file per model output with lists of the most important reactions at each time step. Analysis will only print a time step when the most important reactions change from the previous one so we often see many fewer steps than in the full output. Let's look at the low temperature, low density, low zeta case:"),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"New Important Reactions At: 7.90e+05 years\nFormation = 1.92e-18 from:\nH2 + H2O+ -> H3O+ + H : 78.49%\nH2O + HCO+ -> CO + H3O+ : 17.68%\nH3+ + H2O -> H3O+ + H2 : 3.40%\n\nDestruction = -1.92e-18 from:\nH3O+ + E- -> OH + H + H : 65.43%\nH3O+ + E- -> H2O + H : 15.21%\nH3O+ + E- -> OH + H2 : 11.52%\nH3O+ + H2S -> H3S+ + H2O : 5.17%\nH3O+ + E- -> O + H2 + H : 1.20%\nH3O+ + HCN -> HCNH+ + H2O : 0.33%\nH3O+ + SIO -> SIOH+ + H2O : 0.33%\n")),(0,m.kt)("p",null,"What this shows is the reactions that cause 99.9% of the formation and 99.9% of the destruction of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," at a time step. The total rate of formation and destruction in units of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"s"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"1")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"s^{-1}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"s"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1")))))))))))))," is given as well the percentage of the total that each reaction contributes. "),(0,m.kt)("p",null,"What we need to find is a pattern in these reactions which holds across time and across different densities and temperatures. It actually turns out that the reactions printed above are the dominate formation and destruction routes of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," for all parameters for all times. For example, at high temperature, high density and high zeta, we get:"),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"New Important Reactions At: 1.00e+04 years\nFormation = 2.03e-14 from:\nH2 + H2O+ -> H3O+ + H : 95.47%\nH3+ + H2O -> H3O+ + H2 : 3.14%\nH2O + HCO+ -> CO + H3O+ : 1.05%\n\nDestruction = -2.03e-14 from:\nH3O+ + E- -> OH + H + H : 69.82%\nH3O+ + E- -> H2O + H : 16.23%\nH3O+ + E- -> OH + H2 : 12.29%\nH3O+ + E- -> O + H2 + H : 1.28%\n")),(0,m.kt)("p",null,"The sole difference being that the formation rate is much higher. Since equilibrium is reached, the destruction rate is also higher and so we need to use the fact we know the ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," abundance increases with CRIR to infer that the destruction rate is only faster because there is more ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," to destroy."),(0,m.kt)("p",null,"However, there are some problems here! Why does ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"2"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_2")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," + ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"2")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_2O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," become so efficient at high CRIR? We know the rate of a two body reaction does not depend on CRIR (",(0,m.kt)("a",{parentName:"p",href:"/docs/gas"},"see the chemistry docs"),") so it must be that ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"2")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_2O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," is increasing in abundance. We can run analysis on ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"2")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_2O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," to see what is driving that. In fact, as we report in the paper, following this thread we find that a chain of hydrogenations starting from ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"O"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"H"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"OH^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," is the overall route of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," formation and that this chain starts with small ions that are primarly formed through cosmic ray reactions. ",(0,m.kt)("em",{parentName:"p"},"It will very often be the case that analysing one species requires you to run analysis on another.")),(0,m.kt)("h4",{id:"22-so"},"2.2 SO"),(0,m.kt)("p",null,"With a strong explanation for ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+")))))))))))),", we can now look at SO. We start by running analysis again and then by looking at the reactions as before."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'outputs=glob("../output/[0-9]*.csv") #won\'t pick up H3O+ analysis because it\'s not a number\nfor output in outputs:\n \n analysis_output="../output/SO-analysis-"+output[10:]\n uclchem.analysis.analysis("SO",output,analysis_output)\n')),(0,m.kt)("p",null,"Again, let's start by looking at the low temperature, high density, low zeta case:"),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"New Important Reactions At: 1.31e+04 years\nFormation = 3.67e-22 from:\n#SO + THERM -> SO : 68.11%\nHSO+ + E- -> SO + H : 21.04%\n#SO + DEUVCR -> SO : 9.87%\n\nDestruction = -3.78e-22 from:\nSO + FREEZE -> #SO : 78.04%\nHCO+ + SO -> HSO+ + CO : 20.97%\n")),(0,m.kt)("p",null,"An interesting point here is that equilbrium is reached at around ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1.31"),(0,m.kt)("mo",{parentName:"mrow"},"\xd7"),(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"4"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"1.31 \\times 10^4")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.72777em",verticalAlign:"-0.08333em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},"."),(0,m.kt)("span",{parentName:"span",className:"mord"},"3"),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mbin"},"\xd7"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"4"))))))))))))," yr in this model. Since ",(0,m.kt)("inlineCode",{parentName:"p"},"analysis()")," only prints a time step when the most important reactions are different to the last one, this time step is the last output from the analysis. We can see that we broadly reach an equilibrium between thermal desorption and freeze out of SO, with some formation and destruction via ions. "),(0,m.kt)("p",null,"This doesn't hold up at lower densities or higher temperatures, looking at the high temperature, low density, low zeta case, we see a second pattern of reactions:"),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"New Important Reactions At: 9.50e+05 years\nFormation = 1.05e-20 from:\nO2 + S -> SO + O : 98.10%\nO + NS -> SO + N : 1.48%\n\nDestruction = -1.02e-20 from:\nC + SO -> CS + O : 39.10%\nC + SO -> S + CO : 39.10%\nC+ + SO -> SO+ + C : 4.33%\nC+ + SO -> CS+ + O : 4.33%\nC+ + SO -> S+ + CO : 4.33%\nC+ + SO -> S + CO+ : 4.33%\nN + SO -> S + NO : 3.46%\nH+ + SO -> SO+ + H : 0.28%\n")),(0,m.kt)("p",null,"However, it's not so complex. All the low zeta outputs show one of these two sets of reactions. Essentially, higher temperatures are opening up gas phase reaction routes which form and destroy SO. These new routes are not particularly quick with a total rate of change of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"20"))),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"s"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"1")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"10^{-20} s^{-1}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0"))))))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"s"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))))))))))),". Note that quite a lot of these are due to reactions with ions."),(0,m.kt)("p",null,"Finally, we look at the high zeta cases and find that no matter the temperature or density, we see the same reactions:"),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"New Important Reactions At: 1.81e+04 years\nFormation = 5.64e-17 from:\nO2 + S -> SO + O : 85.30%\nHSO+ + E- -> SO + H : 13.19%\nO + NS -> SO + N : 1.19%\n\nDestruction = -5.64e-17 from:\nH+ + SO -> SO+ + H : 13.16%\nC+ + SO -> SO+ + C : 10.52%\nC+ + SO -> CS+ + O : 10.52%\nC+ + SO -> S+ + CO : 10.52%\nC+ + SO -> S + CO+ : 10.52%\nH3+ + SO -> HSO+ + H2 : 9.86%\nC + SO -> CS + O : 8.90%\nC + SO -> S + CO : 8.90%\nSO + CRPHOT -> S + O : 4.11%\nSO + CRPHOT -> SO+ + E- : 4.11%\nHCO+ + SO -> HSO+ + CO : 3.20%\nHE+ + SO -> S+ + O + HE : 1.93%\nHE+ + SO -> S + O+ + HE : 1.93%\nN + SO -> S + NO : 0.87%\n")),(0,m.kt)("p",null,"Ions take over the destruction of SO when the CRIR is high and these reactions are proceeding about 1000 times faster than the low zeta rates. This makes sense as increasing the CRIR will greatly increase the abundances of these simple ionic species."),(0,m.kt)("p",null,"All in all, we can conclude that a range of gas phase reactions control the abundance of SO at low zeta but once the CRIR is high, destruction via ions dominates the SO chemistry leading to the decreasing abundance that we see."),(0,m.kt)("h2",{id:"summary-notes"},"Summary Notes"),(0,m.kt)("p",null,"In this notebook, we've run some representative models to look at why the SO and ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," abundances seem to so heavily depend on the CRIR. We find that a chain of very efficient reactions starting with simple ions comprise the primary formation route of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," so that the total production of this species depends entirely on the abundance of those ions. With high CRIR, those ions become very abundant and we get a lot of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," formation."),(0,m.kt)("p",null,"SO is complex at first glance since the formation routes vary by parameter. However, looking at the destruction routes we can see that it's simply that SO can be easily destroyed by simple ions and, again, these are very abundant in gas exposed to a high CRIR."),(0,m.kt)("p",null,"An interesting note about SO is that we could potentially say that destruction via C",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," is the dominant destruction route. However, we would caution users to be careful with that kind of statement. Reactions with H",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+")))))))))))),", HE",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," and other also destroy SO. It could be that if we turned off the C",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.771331em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," reactions, the SO chemistry would be unchanged as other ions take up the slack. Therefore, unless a single reaction is clearly dominant (as in ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"H"),(0,m.kt)("mn",{parentName:"msub"},"3")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"O"),(0,m.kt)("mo",{parentName:"msup"},"+"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"H_3O^+")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.921331em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.08125em"}},"H"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.08125em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"O"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.771331em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mbin mtight"},"+"))))))))))))," formation), it is best to test the importance of a reaction by removing it before concluding it is the single most important reaction."),(0,m.kt)("h2",{id:"considerations"},"Considerations"),(0,m.kt)("p",null,(0,m.kt)("inlineCode",{parentName:"p"},"uclchem.analysis.analysis()")," looks at a snapshot of the gas and calculates the instantaneous rate of change of important reactions. However, over the course of a time step, abundances change and reactions rise and fall in importance. More importantly, complex interplay between reactions can contribute to an outcome. This is ultimately a simple, first order look at what is happening in the network but in many cases, a deeper view will be required."),(0,m.kt)("p",null,"If you struggle to find an explanation that fits all time steps in your outputs and is true across a range of parameters, then it is best not to report simple conclusions about the chemistry and to look for other ways to understand the network."))}k.isMDXComponent=!0},360:(a,e,t)=>{t.d(e,{Z:()=>s});const s=t.p+"assets/images/holdship_ngc253-f2d6812a8c2a8fc94e669616d3410ee9.png"}}]); \ No newline at end of file diff --git a/assets/js/87956035.9bdaa09a.js b/assets/js/87956035.098f0357.js similarity index 85% rename from assets/js/87956035.9bdaa09a.js rename to assets/js/87956035.098f0357.js index 09e17547..f96108b7 100644 --- a/assets/js/87956035.9bdaa09a.js +++ b/assets/js/87956035.098f0357.js @@ -1 +1 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8489],{6954:e=>{e.exports=JSON.parse('{"title":"Chemistry","description":"In these pages, discuss aspects of the chemistry including how different reactions are treated, how the grain surface treatment works and so on.","slug":"/category/chemistry","permalink":"/docs/next/category/chemistry","navigation":{"previous":{"title":"Collapse Models","permalink":"/docs/next/physics-collapse"},"next":{"title":"Gas Phase Reactions","permalink":"/docs/next/gas"}}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8489],{6954:e=>{e.exports=JSON.parse('{"title":"Chemistry","description":"In these pages, discuss aspects of the chemistry including how different reactions are treated, how the grain surface treatment works and so on.","slug":"/category/chemistry","permalink":"/docs/next/category/chemistry","navigation":{"previous":{"title":"Collapse Models","permalink":"/docs/next/physics-collapse"},"next":{"title":"Notation","permalink":"/docs/next/notation"}}}')}}]); \ No newline at end of file diff --git a/assets/js/8b9fbec9.6001df08.js b/assets/js/8b9fbec9.6001df08.js new file mode 100644 index 00000000..6b7e7dd2 --- /dev/null +++ b/assets/js/8b9fbec9.6001df08.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4392],{3905:(e,t,a)=>{a.d(t,{Zo:()=>l,kt:()=>h});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function s(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=n.createContext({}),p=function(e){var t=n.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):s(s({},t),e)),a},l=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,l=i(e,["components","mdxType","originalType","parentName"]),u=p(a),h=r,m=u["".concat(c,".").concat(h)]||u[h]||d[h]||o;return a?n.createElement(m,s(s({ref:t},l),{},{components:a})):n.createElement(m,s({ref:t},l))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,s=new Array(o);s[0]=u;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:r,s[1]=i;for(var p=2;p{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>h,frontMatter:()=>i,metadata:()=>p,toc:()=>d});var n=a(7462),r=a(3366),o=(a(7294),a(3905)),s=["components"],i={id:"notation",title:"Notation"},c=void 0,p={unversionedId:"notation",id:"notation",title:"Notation",description:"UCLCHEM uses notation, which differentiates between species types. Here, we'll give an overview of this notation and associated processes.",source:"@site/docs/chem-notation.md",sourceDirName:".",slug:"/notation",permalink:"/docs/next/notation",draft:!1,tags:[],version:"current",lastUpdatedBy:"katarzynadutkowska",lastUpdatedAt:1689867307,formattedLastUpdatedAt:"Jul 20, 2023",frontMatter:{id:"notation",title:"Notation"},sidebar:"docs",previous:{title:"Chemistry",permalink:"/docs/next/category/chemistry"},next:{title:"Gas Phase Reactions",permalink:"/docs/next/gas"}},l={},d=[{value:"Gas phase",id:"gas-phase",level:2},{value:"Ice",id:"ice",level:2},{value:"Surface",id:"surface",level:2},{value:"Bulk",id:"bulk",level:2}],u={toc:d};function h(e){var t=e.components,a=(0,r.Z)(e,s);return(0,o.kt)("wrapper",(0,n.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"UCLCHEM uses notation, which differentiates between species types. Here, we'll give an overview of this notation and associated processes. "),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:"center"},(0,o.kt)("strong",{parentName:"th"},"Species type")),(0,o.kt)("th",{parentName:"tr",align:"center"},(0,o.kt)("strong",{parentName:"th"},"Symbol")),(0,o.kt)("th",{parentName:"tr",align:"center"},(0,o.kt)("strong",{parentName:"th"},"Example")))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:"center"},"Gas phase"),(0,o.kt)("td",{parentName:"tr",align:"center"}),(0,o.kt)("td",{parentName:"tr",align:"center"},"H2O")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:"center"},"Ice"),(0,o.kt)("td",{parentName:"tr",align:"center"},"$"),(0,o.kt)("td",{parentName:"tr",align:"center"},"$H2O")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:"center"},"Surface"),(0,o.kt)("td",{parentName:"tr",align:"center"},"#"),(0,o.kt)("td",{parentName:"tr",align:"center"},"#H2O")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:"center"},"Bulk"),(0,o.kt)("td",{parentName:"tr",align:"center"},"@"),(0,o.kt)("td",{parentName:"tr",align:"center"},"@H2O")))),(0,o.kt)("h2",{id:"gas-phase"},"Gas phase"),(0,o.kt)("p",null,"The gas phase, i.e., the total abundance of a given species in the gas phase, is marked without any symbol. Hence, in order to analyze a given gas phase species, we need to use the name of the species without any additions, e.g., ",(0,o.kt)("strong",{parentName:"p"},"H2O"),". You can read more on reactions occurring in the gas phase ",(0,o.kt)("a",{parentName:"p",href:"/docs/next/gas"},"here"),"."),(0,o.kt)("h2",{id:"ice"},"Ice"),(0,o.kt)("p",null,"When we need to consider the total ice abundance of a given species, we would have to use the $ symbol in front of the molecule. Following the example from the previous section, this would be ",(0,o.kt)("strong",{parentName:"p"},"$H2O"),". However, what is the total ice abundance? If you run a three-phase model, i.e., the one considering gas, surface, and bulk: ",(0,o.kt)("em",{parentName:"p"},"ice = surface + bulk"),".\nIn the case of a simpler two-phase model, it will simply correspond to the abundance on the surface. "),(0,o.kt)("h2",{id:"surface"},"Surface"),(0,o.kt)("p",null,"The surface species starts with #, and the abundance of water on the surface of the grain would ",(0,o.kt)("strong",{parentName:"p"},"#H2O"),". The grain surface is the outermost part of the grain, from which species get released to the gas phase but are also frozen onto. Hence, the ",(0,o.kt)("a",{parentName:"p",href:"/docs/next/desorb"},"adsorption & desorption reactions")," only consider the surface Details of the reactions happening on the dust grain surface are described ",(0,o.kt)("a",{parentName:"p",href:"/docs/next/grain"},"here"),". "),(0,o.kt)("h2",{id:"bulk"},"Bulk"),(0,o.kt)("p",null,"In three-phase models, we also account for the bulk of the dust grain, which corresponds to everything below the surface. The bulk is marked with @, so we can access it through ",(0,o.kt)("strong",{parentName:"p"},"@H2O"),". The species from the bulk can diffuse into the surface but also get released into the gas phase (or destroyed) in fast shocks. Bulk ice processes are described in greater detail in a separate ",(0,o.kt)("a",{parentName:"p",href:"/docs/next/bulk"},"page"),"."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8cd0bbdb.e919e219.js b/assets/js/8cd0bbdb.e919e219.js new file mode 100644 index 00000000..d3017d46 --- /dev/null +++ b/assets/js/8cd0bbdb.e919e219.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4463],{3905:(e,t,o)=>{o.d(t,{Zo:()=>u,kt:()=>h});var n=o(7294);function a(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function r(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function i(e){for(var t=1;t=0||(a[o]=e[o]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(a[o]=e[o])}return a}var s=n.createContext({}),c=function(e){var t=n.useContext(s),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},u=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var o=e.components,a=e.mdxType,r=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=c(o),h=a,m=d["".concat(s,".").concat(h)]||d[h]||p[h]||r;return o?n.createElement(m,i(i({ref:t},u),{},{components:o})):n.createElement(m,i({ref:t},u))}));function h(e,t){var o=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=o.length,i=new Array(r);i[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:a,i[1]=l;for(var c=2;c{o.r(t),o.d(t,{assets:()=>u,contentTitle:()=>s,default:()=>h,frontMatter:()=>l,metadata:()=>c,toc:()=>p});var n=o(7462),a=o(3366),r=(o(7294),o(3905)),i=["components"],l={id:"trouble-compile",title:"Compilation Issues"},s=void 0,c={unversionedId:"trouble-compile",id:"version-v3.2.0/trouble-compile",title:"Compilation Issues",description:"Given that UCLCHEM is supplied as source code, used across many machine types, and is a fairly complex model, things will occasionally go wrong. We've collected here some of the most common problems and hope they resolve most issues.",source:"@site/versioned_docs/version-v3.2.0/trouble-compile.md",sourceDirName:".",slug:"/trouble-compile",permalink:"/docs/trouble-compile",draft:!1,tags:[],version:"v3.2.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"trouble-compile",title:"Compilation Issues"},sidebar:"docs",previous:{title:"Chemical Analysis",permalink:"/docs/chemical_analysis"},next:{title:"Integration",permalink:"/docs/trouble-integration"}},u={},p=[{value:"Pip fails",id:"pip-fails",level:2},{value:"Windows Trouble",id:"windows-trouble",level:2},{value:"Mac Trouble",id:"mac-trouble",level:2},{value:"x86 Macs",id:"x86-macs",level:3},{value:"gfortran",id:"gfortran",level:4},{value:"conda-Xcode compatibility",id:"conda-xcode-compatibility",level:4},{value:"Apple silicon Macs",id:"apple-silicon-macs",level:3},{value:"Architectures",id:"architectures",level:2}],d={toc:p};function h(e){var t=e.components,o=(0,a.Z)(e,i);return(0,r.kt)("wrapper",(0,n.Z)({},d,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Given that UCLCHEM is supplied as source code, used across many machine types, and is a fairly complex model, things will occasionally go wrong. We've collected here some of the most common problems and hope they resolve most issues."),(0,r.kt)("h2",{id:"pip-fails"},"Pip fails"),(0,r.kt)("p",null,"Pip is a package manager for Python. It is used to install and manage Python packages but we're hijacking its set up process to ask it to compile UCLCHEM. If the compilation goes wrong, the error message is often a bit useless. Please go to ",(0,r.kt)("inlineCode",{parentName:"p"},"src/fortran_src")," in your terminal and type ",(0,r.kt)("inlineCode",{parentName:"p"},"make python"),". You will get a more useful error which you can then try to debug or send to the team."),(0,r.kt)("p",null,"Installing via pip may fail if your environment is not set up. Whilst pip will check that you have the necessary python libraries installed, it will not check that you have the necessary compilers. In order to compile you need gfortran which is packaged with the ",(0,r.kt)("a",{parentName:"p",href:"https://gcc.gnu.org/"},"gnu compiler")," suite. You also need make which is part of the GNU toolset. You can likely install these things through your operating system's package manager rather than from their websites."),(0,r.kt)("p",null,"Advanced users who do not wish to change compiler may want to check the Makefile. It can be found in ",(0,r.kt)("inlineCode",{parentName:"p"},"src/fortran_src/Makefile"),". There are variables to control the choice of compiler, compilation flags and the F2PY flags which tell numpy.f2py which fortran compiler was used. These can all be altered if you do not wish to use gfortran."),(0,r.kt)("h2",{id:"windows-trouble"},"Windows Trouble"),(0,r.kt)("p",null,"UCLCHEM was written on a GNU/Linux machine and therefore makes a lot of assumptions about how your environment is set up. Whilst these assumptions hold for basically all Linux (and most Mac) distributions, Windows users often run into trouble. You can attempt to install a GNU toolset through packages like MinGW but the most straightforward way we've found for Windows users is to use the Windows Subsystem for linux."),(0,r.kt)("p",null,"Open a powershell as an administrator and type ",(0,r.kt)("inlineCode",{parentName:"p"},"wsl --install")," to install the Windows Subsystem for Linux. It will then ask you to reboot. Once you've done this, you'll find Ubuntu in your Windows App Store. Installing this Ubuntu app will give you access to a terminal that is indistinguishable from one running on a Linux system but it will have access to all your Windows files. You can set up your linux environment with all necessary tools:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"sudo apt update\nsudo apt install make\nsudo apt install python3-pip\nsudo apt install gfortran\n")),(0,r.kt)("p",null,"and then you'll find your files in ",(0,r.kt)("inlineCode",{parentName:"p"},"/mnt"),". For example, your C: drive can be accessed via ",(0,r.kt)("inlineCode",{parentName:"p"},"cd /mnt/c"),". With the above tools installed, you'll be able to follow our basic install instructions and run UCLCHEM via your Ubuntu installation."),(0,r.kt)("h2",{id:"mac-trouble"},"Mac Trouble"),(0,r.kt)("p",null,"The troubleshooting for macbooks is divided into troubleshooting for macbooks using x86 architectures (Intel) and apple silicon ARM (M1/M2). You can see which type of chip you have via About This Mac."),(0,r.kt)("h3",{id:"x86-macs"},"x86 Macs"),(0,r.kt)("h4",{id:"gfortran"},"gfortran"),(0,r.kt)("p",null,"A problem Mac users commonly come across is that fortran codes compile but do not run because the gfortran libraries are not in the expected location. If you get an error like:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"Exception has occurred: ImportErrordlopen(/usr/local/lib/python3.9/site-packages/uclchemwrap.cpython-39-darwin.so, 2): Library not loaded: /usr/local/opt/gcc/lib/gcc/10/libgfortran.5.dylib Referenced from: /usr/local/lib/python3.9/site-packages/uclchemwrap.cpython-39-darwin.so Reason: image not found\n")),(0,r.kt)("p",null,"then this is likely what has happened to you. You can fix it by following the instructions in ",(0,r.kt)("a",{parentName:"p",href:"https://stackoverflow.com/questions/57207357/dyld-library-not-loaded-usr-local-gfortran-lib-libgfortran-3-dylib-reason-im"},"this Stackoverflow post"),". "),(0,r.kt)("p",null,"However, the underlying problem is that Apple would prefer you do not use GNU compilers. As Mac OS updates come in, the exact issue may change. You will usually find many stackoverflow posts about your problem if you search for people having similar errors with gfortran on Mac. Many members of the UCLCHEM group also use Mac so do get in touch if you cannot find a solution.xit"),(0,r.kt)("h4",{id:"conda-xcode-compatibility"},"conda-Xcode compatibility"),(0,r.kt)("p",null,"Sometimes the version of the Xcode SDK is not compatible with the conda packages that are generated with\nan older version. This means you will have to downgrade the SDK you are using as seen in ",(0,r.kt)("a",{parentName:"p",href:"https://stackoverflow.com/questions/69236331/conda-macos-big-sur-ld-unsupported-tapi-file-type-tapi-tbd-in-yaml-file"},"this Stackoverflow post")),(0,r.kt)("h3",{id:"apple-silicon-macs"},"Apple silicon Macs"),(0,r.kt)("p",null,"If you by accident install any package that was meant for x86 architectures (brew, pip, conda etc.) you will encounter problems as Rosetta 2 does not seem to work well with the gfortran.\nCurrently we recommend uninstalling all packages/software that might cause interference with uclchcem, such as gfortran installed via brew and reinstalling everything using conda as listed in the ","[docs/start-basicuse]"," document."),(0,r.kt)("h2",{id:"architectures"},"Architectures"),(0,r.kt)("p",null,"F2PY defaults to x86_64 architecture. This is fine for most users, but if you are using a different architecture, you may need to specify this in the Makefile. To do so, edit ",(0,r.kt)("inlineCode",{parentName:"p"},"src/fortran_src/Makfile")," so that the line that reads"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"python3 -m numpy.f2py -c --fcompiler=${f2pyFC}\n")),(0,r.kt)("p",null,"is replaced with"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"python3 -m numpy.f2py -c --fcompiler=${f2pyFC} --arch=my_arch\n")),(0,r.kt)("p",null,"where my_arch is the architecture you are using."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8e6ea0e6.d4bf7704.js b/assets/js/8e6ea0e6.ef3d3c03.js similarity index 55% rename from assets/js/8e6ea0e6.d4bf7704.js rename to assets/js/8e6ea0e6.ef3d3c03.js index 36b54bac..a480de08 100644 --- a/assets/js/8e6ea0e6.d4bf7704.js +++ b/assets/js/8e6ea0e6.ef3d3c03.js @@ -1 +1 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4486],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>h});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),p=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),m=p(r),h=o,d=m["".concat(c,".").concat(h)]||m[h]||u[h]||a;return r?n.createElement(d,i(i({ref:t},s),{},{components:r})):n.createElement(d,i({ref:t},s))}));function h(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=m;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l.mdxType="string"==typeof e?e:o,i[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>h,frontMatter:()=>l,metadata:()=>p,toc:()=>u});var n=r(7462),o=r(3366),a=(r(7294),r(3905)),i=["components"],l={title:"UCLCHEM v3.0",authors:"jonholdship"},c=void 0,p={permalink:"/blog/2022/04/29/uclchem-v3",source:"@site/blog/2022-04-29-uclchem-v3.md",title:"UCLCHEM v3.0",description:"UCLCHEM has had a major update! The new version is v3.0 and has many changes. Here are some of the key updates:",date:"2022-04-29T00:00:00.000Z",formattedDate:"April 29, 2022",tags:[],readingTime:.465,truncated:!1,authors:[{name:"Jonathan Holdship",title:"UCLCHEM developer",url:"https://jonholdship.github.io",imageURL:"/img/jon.png",key:"jonholdship"}],frontMatter:{title:"UCLCHEM v3.0",authors:"jonholdship"},nextItem:{title:"The Cosmic-ray Ionization Rate in NGC 253",permalink:"/blog/2022/04/14/crir-ngc253"}},s={authorsImageUrls:[void 0]},u=[],m={toc:u};function h(e){var t=e.components,r=(0,o.Z)(e,i);return(0,a.kt)("wrapper",(0,n.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"UCLCHEM has had a major update! The new version is v3.0 and has many changes. Here are some of the key updates:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"UCLCHEM is now entirely python-centric and pip installable."),(0,a.kt)("li",{parentName:"ul"},"MakeRates is smarter than ever and does much more of the work of building a network for you."),(0,a.kt)("li",{parentName:"ul"},"Three phase chemistry is now the default and well bug tested."),(0,a.kt)("li",{parentName:"ul"},"You no longer have to recompile the code to change physics modules.")),(0,a.kt)("p",null,"Check out our docs pages for all the updates and tutorials on how to use the new version."))}h.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4486],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>m});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),p=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),h=p(r),m=o,d=h["".concat(c,".").concat(m)]||h[m]||u[m]||a;return r?n.createElement(d,i(i({ref:t},s),{},{components:r})):n.createElement(d,i({ref:t},s))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=h;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l.mdxType="string"==typeof e?e:o,i[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>m,frontMatter:()=>l,metadata:()=>p,toc:()=>u});var n=r(7462),o=r(3366),a=(r(7294),r(3905)),i=["components"],l={title:"UCLCHEM v3.0",authors:"jonholdship"},c=void 0,p={permalink:"/blog/2022/04/29/uclchem-v3",source:"@site/blog/2022-04-29-uclchem-v3.md",title:"UCLCHEM v3.0",description:"UCLCHEM has had a major update! The new version is v3.0 and has many changes. Here are some of the key updates:",date:"2022-04-29T00:00:00.000Z",formattedDate:"April 29, 2022",tags:[],readingTime:.465,hasTruncateMarker:!1,authors:[{name:"Jonathan Holdship",title:"UCLCHEM developer",url:"https://jonholdship.github.io",imageURL:"/img/jon.png",key:"jonholdship"}],frontMatter:{title:"UCLCHEM v3.0",authors:"jonholdship"},nextItem:{title:"The Cosmic-ray Ionization Rate in NGC 253",permalink:"/blog/2022/04/14/crir-ngc253"}},s={authorsImageUrls:[void 0]},u=[],h={toc:u};function m(e){var t=e.components,r=(0,o.Z)(e,i);return(0,a.kt)("wrapper",(0,n.Z)({},h,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"UCLCHEM has had a major update! The new version is v3.0 and has many changes. Here are some of the key updates:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"UCLCHEM is now entirely python-centric and pip installable."),(0,a.kt)("li",{parentName:"ul"},"MakeRates is smarter than ever and does much more of the work of building a network for you."),(0,a.kt)("li",{parentName:"ul"},"Three phase chemistry is now the default and well bug tested."),(0,a.kt)("li",{parentName:"ul"},"You no longer have to recompile the code to change physics modules.")),(0,a.kt)("p",null,"Check out our docs pages for all the updates and tutorials on how to use the new version."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8eef9ab5.7765f28a.js b/assets/js/8eef9ab5.8c4df806.js similarity index 99% rename from assets/js/8eef9ab5.7765f28a.js rename to assets/js/8eef9ab5.8c4df806.js index 304a5778..a731c682 100644 --- a/assets/js/8eef9ab5.7765f28a.js +++ b/assets/js/8eef9ab5.8c4df806.js @@ -1 +1 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6995],{4503:(e,a,t)=>{t.d(a,{Z:()=>Xe});var c,l,r,n,i,s,h,m,d,o,f,p,E,y,u,b,Z,M,x,g,v,w,q,k,A,B,O,S,D,P,G,R,T,N,_,C,j,L,J,I,H,U,F,V,W,z,Y,K,X,Q,$,ee,ae,te,ce,le,re,ne,ie,se,he,me,de,oe,fe,pe,Ee,ye,ue,be,Ze,Me,xe,ge,ve,we,qe,ke,Ae,Be,Oe,Se,De,Pe,Ge,Re,Te,Ne,_e,Ce,je,Le,Je,Ie,He,Ue,Fe,Ve,We=t(7294),ze=["title","titleId"];function Ye(){return Ye=Object.assign?Object.assign.bind():function(e){for(var a=1;a=0||(l[t]=e[t]);return l}(e,a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(c=0;c=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(l[t]=e[t])}return l}const Xe=function(e){var a=e.title,t=e.titleId,Xe=Ke(e,ze);return We.createElement("svg",Ye({"data-name":"Layer 1",xmlns:"http://www.w3.org/2000/svg",width:1100,height:806.74,viewBox:"0 0 1100 806.74","aria-labelledby":t},Xe),c||(c=We.createElement("defs",null,We.createElement("linearGradient",{id:"a",x1:459.23,y1:847.99,x2:459.23,y2:385.75,gradientTransform:"translate(250.84)",gradientUnits:"userSpaceOnUse"},We.createElement("stop",{offset:0,stopColor:"gray",stopOpacity:.25}),We.createElement("stop",{offset:.54,stopColor:"gray",stopOpacity:.12}),We.createElement("stop",{offset:1,stopColor:"gray",stopOpacity:.1})))),void 0===a?We.createElement("title",{id:t},"operating system"):a?We.createElement("title",{id:t},a):null,l||(l=We.createElement("ellipse",{cx:629.72,cy:780.56,rx:122.56,ry:26.18,fill:"#604687",opacity:.1})),r||(r=We.createElement("path",{d:"M1070.55 683.84c-24.35 20.2-59 28.56-92.51 33.84l-5.64.86c-58.57 8.74-118.32 10.52-177.79 12.28-165.87 4.91-332.17 9.81-497.6-1.51-73.16-5-148.13-13.76-212.25-43.7l-1.67-.79c-.83-.39-1.66-.78-2.49-1.19A224.11 224.11 0 0 1 48 664.54c-18.31-13.06-33.43-29-41.42-47.91-12.52-29.66-5.9-63 8.4-92s35.8-55.12 54.34-82.43c5.44-8 10.6-16.3 15.4-24.81 30-53.37 44.88-115.13 13.43-166.56a228.58 228.58 0 0 0-13.43-19c-7.67-10-15.47-20-20.74-31.07-12.29-25.76-9.65-54.73-5.17-82.25 6-36.59 17.05-76 51.38-98.86 35.67-23.74 86.3-22.54 130.57-14 68.83 13.19 132.36 40.8 196.49 65.7s131.35 47.58 201.86 50.02c62.26 2.17 134.89-14 176.23-56.08 40.15-40.85 115.6-43.94 170-19.27 51.91 23.54 85.48 73.36 83 123.12-3.16 62.1-54.93 111.83-95.9 164.7-6.81 8.79-13.33 17.68-19.28 26.72-19.42 29.53-33.15 65-19.78 96.88 7.5 17.85 21.81 31.47 39.06 43.36 38.65 26.63 92 44.55 116 81.83 20.67 32.16 13.01 75.56-17.89 101.21Z",fill:"#604687",opacity:.1})),n||(n=We.createElement("ellipse",{cx:972.5,cy:704.85,rx:57.01,ry:10.96,fill:"#604687"})),i||(i=We.createElement("ellipse",{cx:971.55,cy:700.19,rx:6.64,ry:8.69,fill:"#3f3d56"})),s||(s=We.createElement("ellipse",{cx:971.55,cy:689.57,rx:6.64,ry:8.69,fill:"#3f3d56"})),h||(h=We.createElement("ellipse",{cx:971.55,cy:678.94,rx:6.64,ry:8.69,fill:"#3f3d56"})),m||(m=We.createElement("ellipse",{cx:971.55,cy:668.32,rx:6.64,ry:8.69,fill:"#3f3d56"})),d||(d=We.createElement("ellipse",{cx:971.55,cy:657.7,rx:6.64,ry:8.69,fill:"#3f3d56"})),o||(o=We.createElement("ellipse",{cx:971.55,cy:647.08,rx:6.64,ry:8.69,fill:"#3f3d56"})),f||(f=We.createElement("ellipse",{cx:971.55,cy:636.46,rx:6.64,ry:8.69,fill:"#3f3d56"})),p||(p=We.createElement("path",{d:"M996.4 563.78a31 31 0 0 0 2.47-3.64l-17.44-2.86 18.86.14a31.78 31.78 0 0 0 .61-25.2l-25.31 13.15 23.34-17.15a31.8 31.8 0 1 0-52.51 35.58 31.55 31.55 0 0 0-3.63 5.8l22.64 11.77-24.14-8.1a31.79 31.79 0 0 0 5.13 29.86 31.8 31.8 0 1 0 50 0 31.78 31.78 0 0 0 0-39.32Z",fill:"#604687"})),E||(E=We.createElement("path",{d:"M939.61 583.44a31.68 31.68 0 0 0 6.81 19.66 31.8 31.8 0 1 0 50 0c4.24-5.41-56.81-23.23-56.81-19.66Z",opacity:.1})),y||(y=We.createElement("path",{d:"M134.73 673.91c0 5.59-21.81 10.21-50 10.87h-1.67c-.83-.39-1.66-.78-2.49-1.19A224.11 224.11 0 0 1 48 664.54c6.85-.8 14.64-1.34 23-1.52h1.13c1.82 0 3.67-.06 5.54-.06h7.05c28.2.73 50.01 5.41 50.01 10.95Z",fill:"#604687"})),u||(u=We.createElement("ellipse",{cx:76.76,cy:669.25,rx:6.64,ry:8.69,fill:"#3f3d56"})),b||(b=We.createElement("ellipse",{cx:76.76,cy:658.63,rx:6.64,ry:8.69,fill:"#3f3d56"})),Z||(Z=We.createElement("ellipse",{cx:76.76,cy:648.01,rx:6.64,ry:8.69,fill:"#3f3d56"})),M||(M=We.createElement("ellipse",{cx:76.76,cy:637.39,rx:6.64,ry:8.69,fill:"#3f3d56"})),x||(x=We.createElement("ellipse",{cx:76.76,cy:626.77,rx:6.64,ry:8.69,fill:"#3f3d56"})),g||(g=We.createElement("ellipse",{cx:76.76,cy:616.15,rx:6.64,ry:8.69,fill:"#3f3d56"})),v||(v=We.createElement("ellipse",{cx:76.76,cy:605.52,rx:6.64,ry:8.69,fill:"#3f3d56"})),w||(w=We.createElement("path",{d:"M101.61 532.84a32.28 32.28 0 0 0 2.48-3.63l-17.45-2.84 18.87.14a31.8 31.8 0 0 0 .6-25.19l-25.3 13.13 23.34-17.16a31.8 31.8 0 1 0-52.52 35.58 32.45 32.45 0 0 0-3.63 5.8l22.64 11.7-24.14-8.07a31.87 31.87 0 0 0 5.13 29.86 31.8 31.8 0 1 0 50 0 31.78 31.78 0 0 0 0-39.32Z",fill:"#604687"})),q||(q=We.createElement("path",{d:"M44.83 552.5a31.67 31.67 0 0 0 6.8 19.66 31.8 31.8 0 1 0 50 0c4.24-5.41-56.8-23.23-56.8-19.66Z",opacity:.1})),k||(k=We.createElement("g",{opacity:.2},We.createElement("path",{d:"M305.84 555.29c0 .94-.1 1.86-.2 2.76q-11.64-4.68-22.92-9.93a18.59 18.59 0 0 1-10.6-5.17c-2.19-1.1-4.37-2.24-6.54-3.39a26.82 26.82 0 0 1 1.66-3c4.2-6.66 10.6-10.83 17.65-10.6s13.15 4.78 16.93 11.66a34.37 34.37 0 0 1 4.02 17.67Z",fill:"#3f3d56"}),We.createElement("path",{d:"M307 520.37a34.56 34.56 0 0 1-5.13 17.32c-4.21 6.64-10.6 10.81-17.65 10.58-.49 0-1-.06-1.45-.1a18.59 18.59 0 0 1-10.6-5.17 25.27 25.27 0 0 1-4.88-6.37 35.82 35.82 0 0 1 1.1-35c4.21-6.66 10.6-10.83 17.65-10.6s13.15 4.78 16.93 11.66a34.47 34.47 0 0 1 4.03 17.68Z",fill:"#3f3d56"}),We.createElement("ellipse",{cx:336.18,cy:531.28,rx:28.63,ry:21.87,transform:"rotate(-88.19 287.148 533.775)",fill:"#3f3d56"}),We.createElement("ellipse",{cx:337.29,cy:496.31,rx:28.63,ry:21.87,transform:"rotate(-88.19 288.252 498.807)",fill:"#3f3d56"}),We.createElement("ellipse",{cx:338.39,cy:461.34,rx:28.63,ry:21.87,transform:"rotate(-88.19 289.351 463.833)",fill:"#3f3d56"}),We.createElement("path",{d:"M214.12 172.83a105.78 105.78 0 0 1-7.76-12.24l57.72-7.62-62.08-1.5a104.92 104.92 0 0 1 .62-83l82 45.85-75.15-58.95a104.75 104.75 0 1 1 169.22 122.65A105.13 105.13 0 0 1 390 197.48l-75.77 36.38 80.33-24.17a104.85 104.85 0 0 1-20 97.78A104.75 104.75 0 1 1 210 302.28a104.73 104.73 0 0 1 4.08-129.45Z",fill:"#604687"}),We.createElement("path",{d:"M399.05 243.45a104.29 104.29 0 0 1-24.44 64A104.75 104.75 0 1 1 210 302.28c-13.43-18.25 189.42-70.58 189.05-58.83Z",opacity:.1}))),A||(A=We.createElement("g",{opacity:.2},We.createElement("path",{d:"M798.18 480.51c0 .67-.07 1.32-.14 2q-8.31-3.29-16.31-7.06a13.31 13.31 0 0 1-7.55-3.68c-1.55-.79-3.11-1.6-4.65-2.41a19.78 19.78 0 0 1 1.18-2.13c3-4.74 7.54-7.7 12.56-7.54s9.36 3.4 12.05 8.3a24.5 24.5 0 0 1 2.86 12.52Z",fill:"#3f3d56"}),We.createElement("path",{d:"M799 455.62a24.56 24.56 0 0 1-3.65 12.33c-3 4.72-7.54 7.69-12.56 7.53l-1-.07a13.31 13.31 0 0 1-7.55-3.68 18.32 18.32 0 0 1-3.47-4.54 25.51 25.51 0 0 1 .78-24.88c3-4.74 7.55-7.71 12.56-7.55s9.37 3.4 12.05 8.3a24.55 24.55 0 0 1 2.84 12.56Z",fill:"#3f3d56"}),We.createElement("ellipse",{cx:834.19,cy:476.87,rx:20.37,ry:15.56,transform:"rotate(-88.19 785.171 479.34)",fill:"#3f3d56"}),We.createElement("ellipse",{cx:834.98,cy:451.98,rx:20.37,ry:15.56,transform:"rotate(-88.19 785.957 454.46)",fill:"#3f3d56"}),We.createElement("ellipse",{cx:835.76,cy:427.1,rx:20.37,ry:15.56,transform:"rotate(-88.19 786.738 429.573)",fill:"#3f3d56"}),We.createElement("path",{d:"M732.91 208.37a73.57 73.57 0 0 1-5.52-8.71l41.08-5.42-44.21-1.07a74.67 74.67 0 0 1 .43-59.07L783 166.69l-53.4-41.93A74.55 74.55 0 1 1 850 212.02a74.71 74.71 0 0 1 8.06 13.86l-53.89 25.89 57.17-17.2a74.55 74.55 0 0 1-14.22 69.58A74.54 74.54 0 1 1 730 300.46a74.55 74.55 0 0 1 2.91-92.09Z",fill:"#604687"}),We.createElement("path",{d:"M864.52 258.59a74.2 74.2 0 0 1-17.4 45.56A74.54 74.54 0 1 1 730 300.46c-9.58-13 134.78-50.23 134.52-41.87Z",opacity:.1}))),B||(B=We.createElement("g",{opacity:.2},We.createElement("path",{d:"M585 402.46c0 .67-.08 1.32-.15 2q-8.31-3.29-16.31-7.06a13.28 13.28 0 0 1-7.54-3.68c-1.56-.79-3.11-1.6-4.65-2.41a19 19 0 0 1 1.17-2.13c3-4.73 7.55-7.7 12.56-7.54s9.36 3.4 12.05 8.3a24.5 24.5 0 0 1 2.87 12.52Z",fill:"#3f3d56"}),We.createElement("path",{d:"M585.74 377.57a24.56 24.56 0 0 1-3.65 12.33c-3 4.72-7.54 7.69-12.56 7.53-.35 0-.68 0-1-.07a13.28 13.28 0 0 1-7.54-3.68 18.11 18.11 0 0 1-3.48-4.54 25.48 25.48 0 0 1 .79-24.88c3-4.74 7.54-7.71 12.56-7.55s9.36 3.4 12 8.3a24.54 24.54 0 0 1 2.88 12.56Z",fill:"#3f3d56"}),We.createElement("ellipse",{cx:620.97,cy:398.82,rx:20.37,ry:15.56,transform:"rotate(-88.3 571.11 401.206)",fill:"#3f3d56"}),We.createElement("ellipse",{cx:621.75,cy:373.93,rx:20.37,ry:15.56,transform:"rotate(-88.19 572.718 376.417)",fill:"#3f3d56"}),We.createElement("ellipse",{cx:622.54,cy:349.05,rx:20.37,ry:15.56,transform:"rotate(-88.19 573.504 351.525)",fill:"#3f3d56"}),We.createElement("path",{d:"M519.68 130.28a74.87 74.87 0 0 1-5.52-8.71l41.08-5.42-44.24-1.07a74.62 74.62 0 0 1 .44-59.07l58.33 32.63-53.39-41.93a74.54 74.54 0 1 1 120.42 87.26 74.76 74.76 0 0 1 8.07 13.86L591 173.72l57.16-17.2a74.55 74.55 0 0 1-14.22 69.58 74.54 74.54 0 1 1-117.16-3.73 74.57 74.57 0 0 1 2.9-92.13Z",fill:"#604687"}),We.createElement("path",{d:"M651.29 180.54a74.2 74.2 0 0 1-17.4 45.56 74.54 74.54 0 1 1-117.11-3.73c-9.59-12.95 134.77-50.19 134.51-41.83Z",opacity:.1}))),O||(O=We.createElement("path",{d:"M972.4 500.81v217.73c-58.57 8.74-118.32 10.52-177.79 12.28-165.87 4.91-332.17 9.81-497.6-1.51-73.16-5-148.13-13.76-212.25-43.7V417.37c.24-185-.76 0 0-185.56v-66.59a14.1 14.1 0 0 1 14.1-14.1H958.3a14.1 14.1 0 0 1 14.1 14.1v168.63c.6 166.52-.4.52 0 166.96Z",fill:"#3f3d56"})),S||(S=We.createElement("rect",{x:344.15,y:217.75,width:368.86,height:28.56,rx:5.22,fill:"#604687",opacity:.3})),D||(D=We.createElement("path",{d:"M687.94 233.22h-.61l-.23-.19a5.1 5.1 0 0 0 1.19-3.25 4.94 4.94 0 1 0-4.92 5 5.09 5.09 0 0 0 3.24-1.18l.22.19v.58l3.81 3.82 1.14-1.14Zm-4.57 0a3.44 3.44 0 1 1 3.43-3.44 3.42 3.42 0 0 1-3.43 3.44Z",fill:"#444053"})),P||(P=We.createElement("rect",{x:222.84,y:493.2,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),G||(G=We.createElement("rect",{x:222.84,y:522.95,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),R||(R=We.createElement("rect",{x:222.84,y:508.08,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),T||(T=We.createElement("path",{d:"M164.57 522.58a5.74 5.74 0 0 0-5.8 5.69 3.88 3.88 0 0 1-3.87 3.79 10 10 0 0 0 7.73 3.8 7.67 7.67 0 0 0 7.75-7.59 5.75 5.75 0 0 0-5.81-5.69Zm26.53-17.76-2.6-2.55a1.94 1.94 0 0 0-2.72 0l-17.34 17 5.32 5.22 17.32-17a1.86 1.86 0 0 0 .02-2.67Z",fill:"#604687"})),N||(N=We.createElement("rect",{x:222.84,y:345.66,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),_||(_=We.createElement("rect",{x:222.84,y:375.41,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),C||(C=We.createElement("rect",{x:222.84,y:360.53,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),j||(j=We.createElement("path",{d:"M191.18 378.15 176 362.87a10.82 10.82 0 0 0-2.51-11.58 11 11 0 0 0-12.35-2.18l7.18 7.22-5 5-7.32-7.18a10.86 10.86 0 0 0 2.17 12.41 10.66 10.66 0 0 0 11.51 2.52l15.15 15.29a1.61 1.61 0 0 0 2.34 0l3.84-3.86a1.51 1.51 0 0 0 .17-2.35Z",fill:"#604687"})),L||(L=We.createElement("rect",{x:509.6,y:493.2,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),J||(J=We.createElement("rect",{x:509.6,y:522.95,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),I||(I=We.createElement("rect",{x:509.6,y:508.08,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),H||(H=We.createElement("path",{d:"M459.44 526a10 10 0 0 1-9.89 0c-3.87 1.19-6.24 5.09-7.12 8.54h24.12c-.87-3.45-3.23-7.35-7.11-8.54Zm-4.94-18.37a8.69 8.69 0 1 0 8.69 8.68 8.69 8.69 0 0 0-8.69-8.68Zm0 15.3a6.71 6.71 0 0 1-6.07-4.14h12.14a6.71 6.71 0 0 1-6.07 4.14Z",fill:"#604687"})),U||(U=We.createElement("path",{d:"M472.09 521.37a10.07 10.07 0 0 1-8.4.69 12 12 0 0 1-2.3 2.86 11.24 11.24 0 0 1 4.9 4.33h12.91a10.72 10.72 0 0 0-7.11-7.88Zm-4.94-18.38a8.71 8.71 0 0 0-7.33 4 10.78 10.78 0 0 1 5.15 7.14h8.25a6.72 6.72 0 0 1-6.07 4.12 6 6 0 0 1-2.08-.38 11.65 11.65 0 0 1-.54 2.07 8.35 8.35 0 0 0 2.62.4 8.69 8.69 0 0 0 0-17.38Z",fill:"#604687"})),F||(F=We.createElement("rect",{x:222.84,y:603.86,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),V||(V=We.createElement("rect",{x:222.84,y:633.61,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),W||(W=We.createElement("rect",{x:222.84,y:618.74,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),z||(z=We.createElement("path",{d:"M176.57 607.62h-9.82a3.28 3.28 0 0 0-3.32 3.24v.7h-.62a3.28 3.28 0 0 0-3.32 3.24v23.63a3.34 3.34 0 0 0 3.32 3.32h17.08a3.27 3.27 0 0 0 3.23-3.32v-.62h.71a3.27 3.27 0 0 0 3.23-3.32v-16.37Zm0 3.66 6.84 6.84h-6.84Zm3.94 27.15a.67.67 0 0 1-.62.7h-17.08a.73.73 0 0 1-.69-.7V614.8a.67.67 0 0 1 .69-.62h.62v21c0 1.82.86 2.66 2.67 2.66h14.41Zm3.93-3.94a.66.66 0 0 1-.61.7h-17.08a.73.73 0 0 1-.69-.7v-23.63a.67.67 0 0 1 .69-.62h7.19v10.51h10.5Z",fill:"#604687"})),Y||(Y=We.createElement("rect",{x:509.6,y:345.66,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),K||(K=We.createElement("rect",{x:509.6,y:375.41,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),X||(X=We.createElement("rect",{x:509.6,y:360.53,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),Q||(Q=We.createElement("path",{d:"M457.32 353.37h-11.38a3.51 3.51 0 0 0-3.5 3.51v19.25a3.5 3.5 0 0 0 3.5 3.5h29.76a3.5 3.5 0 0 0 3.5-3.5v-15.34a3.51 3.51 0 0 0-3.5-3.5h-14.88l-3.5-3.94Z",fill:"#604687"})),$||($=We.createElement("rect",{x:792.79,y:493.2,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),ee||(ee=We.createElement("rect",{x:792.79,y:522.95,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),ae||(ae=We.createElement("rect",{x:792.79,y:508.08,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),te||(te=We.createElement("path",{d:"m762.93 509.28-6.77-.32-.4-4.41a1.7 1.7 0 0 0-1.88-1.52l-24.27 2a1.67 1.67 0 0 0-1.59 1.79l1.73 19.35a1.7 1.7 0 0 0 1.88 1.49l1.23-.09-.19 3.76a1.87 1.87 0 0 0 1.83 1.93l27.09 1.28a1.88 1.88 0 0 0 2-1.74l1.14-21.6a1.86 1.86 0 0 0-1.8-1.92Zm-29.12.44-.58 11.06-1.44 2-1.32-14.61v-.09a.89.89 0 0 1 .78-.77l21.42-1.75a.81.81 0 0 1 .87.64l.21 2.52-18-.86a1.9 1.9 0 0 0-1.94 1.86Zm27.4 19.44-7-8.17-3.07 2.82-5.67-6.63-10.07 10.72.86-16.33a.94.94 0 0 1 1-.74l23.9 1.16a.87.87 0 0 1 .85.83Z",fill:"#604687"})),ce||(ce=We.createElement("path",{d:"M756.89 518.79a2.63 2.63 0 1 0-2.62-2.63 2.64 2.64 0 0 0 2.62 2.63Z",fill:"#604687"})),le||(le=We.createElement("rect",{x:795.17,y:345.66,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),re||(re=We.createElement("rect",{x:795.17,y:375.41,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),ne||(ne=We.createElement("rect",{x:795.17,y:360.53,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),ie||(ie=We.createElement("circle",{cx:762.56,cy:356.63,r:5.25,fill:"#604687"})),se||(se=We.createElement("path",{d:"m758.53 362.82-10.42 6.94-14.44-9.62v-3.51l14.44 9.63 8.3-5.53a7.39 7.39 0 0 1-.1-8h-23.07a3.52 3.52 0 0 0-3.51 3.51v21.88a3.52 3.52 0 0 0 3.51 3.51H763a3.51 3.51 0 0 0 3.5-3.51v-15.2a7.37 7.37 0 0 1-8-.06Z",fill:"#604687"})),he||(he=We.createElement("ellipse",{cx:509.64,cy:746.02,rx:26.08,ry:5.01,fill:"#604687"})),me||(me=We.createElement("ellipse",{cx:509.21,cy:743.89,rx:3.04,ry:3.97,fill:"#3f3d56"})),de||(de=We.createElement("ellipse",{cx:509.21,cy:739.03,rx:3.04,ry:3.97,fill:"#3f3d56"})),oe||(oe=We.createElement("ellipse",{cx:509.21,cy:734.17,rx:3.04,ry:3.97,fill:"#3f3d56"})),fe||(fe=We.createElement("ellipse",{cx:509.21,cy:729.31,rx:3.04,ry:3.97,fill:"#3f3d56"})),pe||(pe=We.createElement("ellipse",{cx:509.21,cy:724.46,rx:3.04,ry:3.97,fill:"#3f3d56"})),Ee||(Ee=We.createElement("ellipse",{cx:509.21,cy:719.6,rx:3.04,ry:3.97,fill:"#3f3d56"})),ye||(ye=We.createElement("ellipse",{cx:509.21,cy:714.74,rx:3.04,ry:3.97,fill:"#3f3d56"})),ue||(ue=We.createElement("path",{d:"M520.57 681.5a13.59 13.59 0 0 0 1.13-1.67l-8-1.31 8.62.07a14.59 14.59 0 0 0 .28-11.52l-11.57 6 10.67-7.85a14.54 14.54 0 1 0-24 16.28 15.11 15.11 0 0 0-1.66 2.65l10.36 5.38-11-3.7a14.53 14.53 0 0 0 2.34 13.65 14.54 14.54 0 1 0 22.86 0 14.55 14.55 0 0 0 0-18Z",fill:"#604687"})),be||(be=We.createElement("path",{d:"M494.6 690.49a14.45 14.45 0 0 0 3.11 9 14.54 14.54 0 1 0 22.86 0c1.95-2.48-25.97-10.63-25.97-9Z",opacity:.1})),Ze||(Ze=We.createElement("path",{d:"M802 436.86a13.68 13.68 0 0 1-1-2.7c-.1-1.07.32-2.48-.63-3-.53-.29-1.27-.07-1.74-.45a2.15 2.15 0 0 1-.51-1.2 4.1 4.1 0 0 0-3.8-3c1-2.71 4.68-3.37 6.3-5.76.81-1.19.55-3.38-.88-3.39a2.49 2.49 0 0 0-1 .25l-5.33 2.2a27.35 27.35 0 0 0-3 1.39c-2.93 1.67-5.12 4.38-7.09 7.13a30.49 30.49 0 0 0-4.41 8 18 18 0 0 0-.94 5.49v.56c-.87.15-1.58.53-2.49.71l-2.07 5.47a6.93 6.93 0 0 1-1.35 2.49 12.52 12.52 0 0 1-1.46 1.15 8.45 8.45 0 0 0-2.91 7.37 7.93 7.93 0 0 0-4.66 9.78 9.31 9.31 0 0 0-6.81 6 4.43 4.43 0 0 1-.89 1.88 3.55 3.55 0 0 1-2.37.73c-2.34.15-4.38 2-6.49 1a13.21 13.21 0 0 0-7.71-1.08 5.77 5.77 0 0 1-1.65.15 4.43 4.43 0 0 1-1.35-.47 10.46 10.46 0 0 0-3.06-1.21 2.84 2.84 0 0 0-2.9 1.12c-.74-.81-1.18-1.86-1.85-2.73a3 3 0 0 0-2.82-1.35c.7-.63 0-1.89-.93-2.11a11.56 11.56 0 0 0-2.81.1c-2.44 0-4.32-2.24-6.69-2.83-2.18-.53-5.09.11-6.21-1.85-.35-.63-.45-1.45-1-1.92a3.64 3.64 0 0 0-.71-1.45c-.9-1-2.41-1.16-3.76-1.12a15.68 15.68 0 0 0-4.37.75c0-.17-.09-.36-.15-.56a11.09 11.09 0 0 0-4.84-5.94 20 20 0 0 0-5.66-2.26v-.53a22.55 22.55 0 0 1 1.16-7.43c.08-.26.18-.52.27-.78a26.6 26.6 0 0 0 12-44.63 6.83 6.83 0 0 0-.21-1.6 7.86 7.86 0 0 0-1.6-3.12c-1.22-2.72-3.12-3.92-5.55-5.06-.7-.33-1.44-.65-2.22-1-3.87-1.74-7.61-4.3-12-4.29-4 0-7.86 2.21-11.82 2.13h-.95c-1.11-.13-2.44-.39-3.17.46a4.5 4.5 0 0 0-.56 1.09 2.64 2.64 0 0 1-.2.37 4.4 4.4 0 0 1-.51.69c-1.28 1.4-3.43 2-5.2 2.94-4 2.05-6.62 6.23-7.66 10.61s-.68 9 .1 13.44c.4 2.22 1.26 4.74 2.84 6.14s-13.37 9.51-10.93 10.86c1.33.74 6.87-2.77 11.64-6.12.05.2.09.41.15.61a44 44 0 0 0 2.18 6.25c1 2.39 2.44 5 4.93 5.69a5.36 5.36 0 0 0 1.69.19h.44a39.39 39.39 0 0 1-1.15 10.87 6.61 6.61 0 0 0-4.09 1.13 3.29 3.29 0 0 1-1.66.88 2.89 2.89 0 0 1-1.71-.84 9.7 9.7 0 0 0-12.14.64c-4.84 4.57-4.29 13.49-10 16.95-1.56.95-3.56 1.46-4.48 3.05a11.41 11.41 0 0 1-.77 1.47 4.05 4.05 0 0 1-1.36 1 26.48 26.48 0 0 0-4.68 2.7 6.72 6.72 0 0 0-2.69 4.54 8.61 8.61 0 0 0 .82 3.81 36.44 36.44 0 0 0 3.12 6 6.38 6.38 0 0 0-1.26 2.95c-.4 2.81.94 5.58 1.09 8.42.13 2.48-.66 4.9-1.1 7.34-1.76 9.54 1.61 19.2 5 28.26a14.58 14.58 0 0 1 1.2 4.65c.09 3-1.6 5.67-2.07 8.59-1 6.14 3.53 11.92 3.63 18.13 0 2.87-.86 5.78-.14 8.55.47 1.85 1.62 3.44 2.44 5.17 1.44 3.06 1.83 6.53 3.21 9.62a23.07 23.07 0 0 0 7.12 8.48c1.73 5.49-.73 12.12 0 18q1.41-.56 2.85-1a41.17 41.17 0 0 0 6.3 24.84c1.55 2.42 3.37 4.68 4.54 7.31a34.26 34.26 0 0 1 1.77 5.79q2.51 10.47 5 20.92c1.36 5.65 2.73 11.4 2.32 17.2-.28 4-1.3 8.57 1.18 11.77a8.51 8.51 0 0 1 1.49 2.06 5.22 5.22 0 0 1 0 2.72 180.71 180.71 0 0 0-2.48 20.39c-.56.75-1.12 1.51-1.63 2.26-4.11 6-6.09 13.21-7.69 20.32a245.83 245.83 0 0 0-5.16 42.44 28.38 28.38 0 0 0-5.26 6.41c-2.15 4-2.43 8.7-2.66 13.24a4.73 4.73 0 0 0 .24 2.18 4.48 4.48 0 0 0 2.24 1.68l1.24.59c-.27 1-.51 2-.72 3.05-1.58-1.78-4.39-4.6-4.87-2.54a101.78 101.78 0 0 0-2.56 21 1.77 1.77 0 0 0 1.9 2.12A116.25 116.25 0 0 0 660 848c5.65 0 11.29-.46 16.92-.89l5.77-.44a127.7 127.7 0 0 0 17.67-2.19c2.55-.56 5.18-1.35 7.1-3.14s2.86-4.85 1.54-7.12c-1.61-2.74-5.37-2.94-8.51-3.38a27.85 27.85 0 0 1-8.92-2.84c-.63-.32-1.24-.68-1.85-1 .16 0 .33-.08.48-.14 2.7-.91 4.85-3 7.39-4.25 3-1.45 6.31-1.78 9.57-2.19s6.62-1 9.33-2.86c2.54-1.74 4.34-4.91 3.75-7.89a5.15 5.15 0 0 0-.16-.62c-1-3.23-4.5-5-7.76-5.8s-6.8-1.28-9.44-3.38l-.39-.31c-.22-.19-.45-.37-.69-.56a5.62 5.62 0 0 0 .77-3.26c-.14-1.79-1.18-3.37-1.89-5-1.39-3.25-1.5-6.88-1.88-10.39-.94-8.83-3.65-17.35-5.69-26-.23-1-.45-2-.67-3a62.86 62.86 0 0 1 7.27-11.64 38 38 0 0 0 7-13.77c.42-1.54.73-3.1 1.05-4.67Q713.18 694.18 718 667a45.19 45.19 0 0 0 .91-7.84 23.89 23.89 0 0 0 1.35-7.43c.94-3.67 1.89-7.52 1.12-9.92-.54-1.7-.81-7.51-1.11-13.08a50.24 50.24 0 0 0-.54-8.93c-.09-.51-.19-1-.3-1.51q-.09-.45-.18-.75a25.68 25.68 0 0 0-1.76-4.86 23.63 23.63 0 0 0-1.32-2.71 12.34 12.34 0 0 0-1-1.48 62 62 0 0 1 6.22.58c.5.07 1.12.11 1.43-.3a1.47 1.47 0 0 0 .18-.77 12.75 12.75 0 0 0-1.62-6.76c-.8-1.42-1.91-2.8-1.88-4.43a6.53 6.53 0 0 1 .55-2.2l2.77-7.44c2.35-6.29 1.23-13.58 2.45-20.18a118.46 118.46 0 0 0 1.82-15.61c.23-4.47.09-9.32-2.6-12.9a14.73 14.73 0 0 1-2-2.84 8.41 8.41 0 0 1-.48-3.39q-.07-10.51.42-21a206.38 206.38 0 0 0 35.05-4 22 22 0 0 0 4-1.08 20.19 20.19 0 0 0 4-2.53c3.93-2.84 7.92-5.73 10.91-9.55a32.36 32.36 0 0 0 6.46-15.94c2.84-2.63 4.35-6.37 5.77-10a15.42 15.42 0 0 0 1.32-4.85c.07-1.72-1.06-3.52-.74-5.21a13.78 13.78 0 0 1 4.19-7.58 2.74 2.74 0 0 0 1-1.33 2.12 2.12 0 0 0-.23-1.3l-.09-.15c.28-.17.54-.35.81-.53.93-.66 1.82-1.39 2.69-2.1a17 17 0 0 0 3.49-3.54 5.75 5.75 0 0 0 .94-4.7ZM673.69 820.15c-.24 0-.48 0-.71.06a9.57 9.57 0 0 0-2.54.73l-.19.1c1.1-2.38 2.14-4.8 3.08-7.26.11-.29.21-.58.32-.88l-.12 1.64a20.22 20.22 0 0 0 .16 5.61Z",transform:"translate(-50 -46.63)",fill:"url(#a)"})),Me||(Me=We.createElement("path",{d:"M638 409.1c.1 3.88 1.42 7.64 1.62 11.52-11.43.57-22.72-5-34-3.28 3.17-2.05 4.86-5.74 5.86-9.37a38.9 38.9 0 0 0 1.11-14.41 6.61 6.61 0 0 0-.14-.79c-.42-1.9-1.51-4.59-1.22-6.08.39-2 2.25-1.59 3.93-1.48a150.51 150.51 0 0 1 15.26 2c1.32.23 14.13 3.43 14.33 3.1a59.69 59.69 0 0 0-5.55 11.43 22.32 22.32 0 0 0-1.2 7.36ZM751.05 397.1a16.64 16.64 0 0 1-3.49 3.52c-.87.71-1.76 1.44-2.69 2.09a11.5 11.5 0 0 1-5.72 2.33c-2.72.18-8.51-1.42-10.2-3.75a6.77 6.77 0 0 1-1-3.91 17.88 17.88 0 0 1 .94-5.46 30.42 30.42 0 0 1 4.41-8c2-2.74 4.16-5.43 7.09-7.09a27.35 27.35 0 0 1 3-1.39l5.33-2.18a2.5 2.5 0 0 1 1-.26c1.43 0 1.69 2.2.88 3.38-1.62 2.38-5.27 3-6.3 5.73a4.09 4.09 0 0 1 3.8 2.95 2.11 2.11 0 0 0 .51 1.19c.47.37 1.21.16 1.74.45.95.5.53 1.91.63 3a13.5 13.5 0 0 0 1 2.68 5.69 5.69 0 0 1-.93 4.72Z",fill:"#ee8e9e"})),xe||(xe=We.createElement("path",{d:"M593.4 786.45c.88-.88 2.32-.73 3.55-.54a132 132 0 0 0 19.95 1.61c.84-4.08-1.59-8-2.37-12.14a10.76 10.76 0 0 0-.8-3.08c-.94-1.8-3.06-2.63-5.05-3-3.59-.76-9.21-2.09-11.22 1.54-2.41 4.31-3.18 10.75-4.06 15.61Z",fill:"#65617d"})),ge||(ge=We.createElement("path",{d:"M666.49 771.02c-2.71 1.85-6.07 2.42-9.33 2.84s-6.61.74-9.57 2.19c-2.54 1.26-4.69 3.32-7.39 4.22a15.31 15.31 0 0 1-7.67.12c-3-.57-6.26-1.67-7.89-4.29-1.46-2.32-1.31-5.27-1.11-8 .24-3.09.47-6.2.69-9.3a4.4 4.4 0 0 1 .58-2.24c2.19-3.2 7.52 1.33 10.37 1.33 4.52 0 9.37-2.46 12.62-5.45a3.89 3.89 0 0 1 1-.74c1.29-.58 2.58.49 3.72 1.42l.39.31c2.64 2.09 6.18 2.52 9.44 3.37s6.75 2.55 7.76 5.77a4.57 4.57 0 0 1 .16.61c.57 2.95-1.26 6.1-3.77 7.84Z",fill:"#3f3d56"})),ve||(ve=We.createElement("path",{d:"M666.49 771.02c-2.71 1.85-6.07 2.42-9.33 2.84s-6.61.74-9.57 2.19c-2.54 1.26-4.69 3.32-7.39 4.22a15.31 15.31 0 0 1-7.67.12c-3-.57-6.26-1.67-7.89-4.29-1.46-2.32-1.31-5.27-1.11-8 .24-3.09.47-6.2.69-9.3a4.4 4.4 0 0 1 .58-2.24c2.19-3.2 7.52 1.33 10.37 1.33 4.52 0 9.37-2.46 12.62-5.45a3.89 3.89 0 0 1 1-.74c1.29-.58 2.58.49 3.72 1.42l.39.31c2.64 2.09 6.18 2.52 9.44 3.37s6.75 2.55 7.76 5.77a4.57 4.57 0 0 1 .16.61c.57 2.95-1.26 6.1-3.77 7.84Z",fill:"#434175"})),we||(we=We.createElement("path",{d:"M666.49 772.06c-2.71 1.85-6.07 2.43-9.33 2.85s-6.61.73-9.57 2.18c-2.54 1.26-4.69 3.32-7.39 4.22a15.31 15.31 0 0 1-7.67.12 12.6 12.6 0 0 1-7.89-5.33c-1.46-2.32-1.31-5.27-1.11-8 .24-3.09.47-6.2.69-9.3a4.4 4.4 0 0 1 .58-2.24c2.19-3.2 7.52 1.33 10.37 1.33 4.52 0 9.37-2.46 12.62-5.45a3.89 3.89 0 0 1 1-.74c1.29-.58 2.58.49 3.72 1.42a26.4 26.4 0 0 1-3.17 6.56 13.63 13.63 0 0 1-10 6.22c-2 .15-4.09-.25-6 .27s-3.77 2.52-3.08 4.42 3.06 2.25 5 2.36a22.38 22.38 0 0 0 8.21-.58c1.6-.53 3.07-1.41 4.62-2.06 6.62-2.74 15-1.21 20.46-5.85a13 13 0 0 1 1.67-1.28c1.45 2.99-1.22 7.19-3.73 8.88Z",fill:"#e8eaf2"})),qe||(qe=We.createElement("path",{d:"M666.49 772.06c-2.71 1.85-6.07 2.43-9.33 2.85s-6.61.73-9.57 2.18c-2.54 1.26-4.69 3.32-7.39 4.22a15.31 15.31 0 0 1-7.67.12 12.6 12.6 0 0 1-7.89-5.33c-1.46-2.32-1.31-5.27-1.11-8 .24-3.09.47-6.2.69-9.3a4.4 4.4 0 0 1 .58-2.24c2.19-3.2 7.52 1.33 10.37 1.33 4.52 0 9.37-2.46 12.62-5.45a3.89 3.89 0 0 1 1-.74c1.29-.58 2.58.49 3.72 1.42a26.4 26.4 0 0 1-3.17 6.56 13.63 13.63 0 0 1-10 6.22c-2 .15-4.09-.25-6 .27s-3.77 2.52-3.08 4.42 3.06 2.25 5 2.36a22.38 22.38 0 0 0 8.21-.58c1.6-.53 3.07-1.41 4.62-2.06 6.62-2.74 15-1.21 20.46-5.85a13 13 0 0 1 1.67-1.28c1.45 2.99-1.22 7.19-3.73 8.88Z",opacity:.05})),ke||(ke=We.createElement("path",{d:"M594.64 569.44a40.77 40.77 0 0 0 5.58 30c1.55 2.4 3.37 4.66 4.54 7.27a33.77 33.77 0 0 1 1.77 5.77l5 20.8c1.36 5.62 2.73 11.34 2.32 17.11-.28 4-1.3 8.53 1.18 11.71a8.46 8.46 0 0 1 1.49 2.05 5.15 5.15 0 0 1 0 2.7c-2.54 15.11-4.43 30.9.16 45.51 4.17 13.25 4.41 27.93 7.95 41.35a9.24 9.24 0 0 0 2.19 4.59 7.27 7.27 0 0 0 3.3 1.56c5.22 1.25 10.73-.21 15.59-2.46 3.42-1.59 7.1-4.37 6.81-8.12-.14-1.79-1.18-3.36-1.89-5-1.39-3.23-1.5-6.83-1.88-10.33-.94-8.78-3.65-17.26-5.69-25.84s-3.44-17.57-1.71-26.23a229.79 229.79 0 0 1 16.87-51.9 6.27 6.27 0 0 1 1.55-2.32 16.86 16.86 0 0 0 2.19-1.49 6.66 6.66 0 0 0 1-2.72c.76-2.74 3-4.77 4.53-7.17 3.83-6.08 2.62-13.87 2.48-21.05-.14-7 .86-14-.28-20.92s-5.04-13.94-11.69-16.06c-3.29-1.07-6.85-.82-10.29-.48-18.23 1.8-35.95 5.11-53.07 11.67Z",fill:"#696791"})),Ae||(Ae=We.createElement("path",{d:"M594.64 570.44a40.77 40.77 0 0 0 5.58 30c1.55 2.4 3.37 4.66 4.54 7.27a33.77 33.77 0 0 1 1.77 5.77l5 20.8c1.36 5.62 2.73 11.34 2.32 17.11-.28 4-1.3 8.53 1.18 11.71a8.46 8.46 0 0 1 1.49 2.05 5.15 5.15 0 0 1 0 2.7c-2.54 15.11-4.43 30.9.16 45.51 4.17 13.25 4.41 27.93 7.95 41.35a9.24 9.24 0 0 0 2.19 4.59 7.27 7.27 0 0 0 3.3 1.56c5.22 1.25 10.73-.21 15.59-2.46 3.42-1.59 7.1-4.37 6.81-8.12-.14-1.79-1.18-3.36-1.89-5-1.39-3.23-1.5-6.83-1.88-10.33-.94-8.78-3.65-17.26-5.69-25.84s-3.44-17.57-1.71-26.23a229.79 229.79 0 0 1 16.87-51.9 6.27 6.27 0 0 1 1.55-2.32 16.86 16.86 0 0 0 2.19-1.49 6.66 6.66 0 0 0 1-2.72c.76-2.74 3-4.77 4.53-7.17 3.83-6.08 2.62-13.87 2.48-21.05-.14-7 .86-14-.28-20.92s-5.04-13.94-11.69-16.06c-3.29-1.07-6.85-.82-10.29-.48-18.23 1.8-35.95 5.11-53.07 11.67Z",opacity:.1})),Be||(Be=We.createElement("path",{d:"M668.92 613.23a44 44 0 0 1-.91 8.07q-4.83 27-10.28 54c-.32 1.56-.63 3.12-1.05 4.65a37.78 37.78 0 0 1-7 13.7c-15.15 18.89-16.46 46.32-24.68 69.1-.56 1.54-1.11 3.09-1.7 4.61a115.75 115.75 0 0 1-5.07 11.31 3.22 3.22 0 0 1-1 1.35 3.08 3.08 0 0 1-1.65.33 48.31 48.31 0 0 1-21.36-4.86 4.48 4.48 0 0 1-2.27-1.89 4.66 4.66 0 0 1-.24-2.17c.23-4.51.51-9.19 2.66-13.16a28.22 28.22 0 0 1 5.26-6.38 242.36 242.36 0 0 1 5.16-42.22c1.6-7.08 3.58-14.23 7.69-20.21 3-4.42 7.38-8.78 6.84-14.11-.23-2.34-1.21-5.25.69-6.62.83-.61 2.06-.69 2.63-1.55a3 3 0 0 0 .37-1.32 32.66 32.66 0 0 0-.68-10.93 58.79 58.79 0 0 1-1.63-7.13 9 9 0 0 1 1.79-6.88c.1-4.87 0-9.92.07-14.78a27.16 27.16 0 0 0-.69-8.25c-.36-1.27-.93-2.49-1.21-3.79-1-4.67 1.52-10.27-1.5-14-1.26-1.54-3.2-2.31-4.85-3.42a17.71 17.71 0 0 1-6.66-9.57 52.59 52.59 0 0 1-1.9-11.74 11.28 11.28 0 0 1 0-2.53 4.35 4.35 0 0 1 .34-1.27c.94-2.11 3.46-2.93 5.71-3.47a185.15 185.15 0 0 1 43.61-5.1c5.44-3.7 8.49-2.37 10.8 1.54a41.09 41.09 0 0 1 3.07 7.51c1 3.18 1.12 21 2.14 24.17 1.3 4.15-2.55 12.65-2.5 17.01Z",fill:"#696791"})),Oe||(Oe=We.createElement("path",{d:"M570.68 451.29c-.4 2.8.94 5.55 1.09 8.38.13 2.47-.66 4.88-1.1 7.31-1.76 9.48 1.61 19.09 5 28.11a14.4 14.4 0 0 1 1.2 4.62c.09 2.94-1.6 5.64-2.07 8.55-1 6.11 3.53 11.85 3.63 18 0 2.85-.86 5.75-.14 8.5.47 1.84 1.62 3.43 2.43 5.14 1.45 3 1.84 6.5 3.22 9.57 2.49 5.55 7.84 9.18 12.94 12.51 2.89-1 6-2.11 7.62-4.72a11.63 11.63 0 0 0 1.33-4.14c1.1-6.33 1.06-12.79 1-19.21a118.59 118.59 0 0 0-.83-16.54c-1-7-3.29-13.7-4.92-20.57-2-8.65-3.09-17.59-6.28-25.9-2.81-7.29-7.17-13.84-11.77-20.12-1.75-2.39-3.14-5.81-6.54-5.26a7.13 7.13 0 0 0-5.81 5.77Z",fill:"#434175"})),Se||(Se=We.createElement("path",{d:"M570.68 449.29c-.4 2.8.94 5.55 1.09 8.38.13 2.47-.66 4.88-1.1 7.31-1.76 9.48 1.61 19.09 5 28.11a14.4 14.4 0 0 1 1.2 4.62c.09 2.94-1.6 5.64-2.07 8.55-1 6.11 3.53 11.85 3.63 18 0 2.85-.86 5.75-.14 8.5.47 1.84 1.62 3.43 2.43 5.14 1.45 3 1.84 6.5 3.22 9.57 2.49 5.55 7.84 9.18 12.94 12.51 2.89-1 6-2.11 7.62-4.72a11.63 11.63 0 0 0 1.33-4.14c1.1-6.33 1.06-12.79 1-19.21a118.59 118.59 0 0 0-.83-16.54c-1-7-3.29-13.7-4.92-20.57-2-8.65-3.09-17.59-6.28-25.9-2.81-7.29-7.17-13.84-11.77-20.12-1.75-2.39-3.14-5.81-6.54-5.26a7.13 7.13 0 0 0-5.81 5.77Z",opacity:.05})),De||(De=We.createElement("path",{d:"M644.66 390.28a59.69 59.69 0 0 0-5.55 11.43 26.19 26.19 0 0 1-6.3.76c-8.25 0-14.08-4.69-18.93-10.62-.42-1.9-3-3.67-2.74-5.16.39-2 2.25-1.59 3.93-1.48a150.51 150.51 0 0 1 15.26 2c1.32.16 14.13 3.4 14.33 3.07Z",opacity:.1})),Pe||(Pe=We.createElement("circle",{cx:632.81,cy:375.34,r:26.41,fill:"#ee8e9e"})),Ge||(Ge=We.createElement("path",{d:"M666.18 564.56c-4.57-.27-9.18-.08-13.76.1a47.15 47.15 0 0 0-8.55.88c-3.47.79-6.71 2.37-10.13 3.36-5.48 1.59-11.26 1.66-16.93 2.22a94.36 94.36 0 0 0-11.09 1.74 4.35 4.35 0 0 1 .34-1.27c.94-2.11 3.46-2.93 5.71-3.47a185.15 185.15 0 0 1 43.61-5.1c5.44-3.65 8.49-2.37 10.8 1.54Z",opacity:.1})),Re||(Re=We.createElement("path",{d:"M648.18 418.58c-1.15 1.33-2.7 2.8-4.4 2.37a6.08 6.08 0 0 1-1.72-.92c-3-2-6.78-2.42-10.36-3a152.4 152.4 0 0 1-21.34-4.8 21.93 21.93 0 0 0-6.32-1.28c-4.47 0-8.44 3-11.24 6.48s-4.8 7.57-7.55 11.1c-2 2.52-4.3 4.74-6.13 7.35-4.62 6.59-5.62 15.19-4.42 23.15s4.37 15.47 7.53 22.88a78.47 78.47 0 0 0 6.14 12.46c-1.06 6-.5 13 2.38 18.4.93 1.77 2.08 3.49 2.39 5.47a13.85 13.85 0 0 1-.16 4l-1.35 9.56c-.41 2.91-.82 5.82-1.35 8.72-1 5.29-2.28 11 .17 15.82 2.93 5.74-.15 13.09.62 19.49a97.8 97.8 0 0 1 25.74-6.11c5.67-.56 11.45-.63 16.93-2.22 3.42-1 6.66-2.57 10.13-3.37a47 47 0 0 1 8.55-.87c6.33-.25 12.7-.51 19 .42.5.08 1.12.12 1.43-.29a1.47 1.47 0 0 0 .19-.75 12.63 12.63 0 0 0-1.62-6.72c-.8-1.41-1.91-2.79-1.88-4.41a6.48 6.48 0 0 1 .55-2.19l2.77-7.4c2.35-6.25 1.23-13.51 2.45-20.07a117.46 117.46 0 0 0 1.82-15.53c.23-4.45.09-9.27-2.6-12.83a14.67 14.67 0 0 1-2-2.83 8.34 8.34 0 0 1-.48-3.37q-.09-13.36.73-26.72c-2.34-4.21-4.79-8.51-7.13-12.72-2.73-4.9-5.49-9.9-6.59-15.4-.73-3.63-.71-7.38-1.23-11.05a4.9 4.9 0 0 0-.93-2.59 4.69 4.69 0 0 0-3.76-1.11 16.44 16.44 0 0 0-4.96.88Z",fill:"#434175"})),Te||(Te=We.createElement("path",{d:"M744.87 402.71a11.5 11.5 0 0 1-5.72 2.33c-2.72.18-8.51-1.42-10.2-3.75a6.77 6.77 0 0 1-1-3.91 4.91 4.91 0 0 1 1.14-.22 29.88 29.88 0 0 1 8.86.36c2.88.7 5.66 2.45 6.87 5.16Z",opacity:.1})),Ne||(Ne=We.createElement("path",{d:"M657 459.83c1.61 2 3.28 4.06 5.56 5.25 2.63 1.36 5.72 1.39 8.67 1.33a208 208 0 0 0 36.23-4 22.81 22.81 0 0 0 4-1.07 20.6 20.6 0 0 0 4-2.52c3.93-2.82 7.92-5.7 10.91-9.51a32.05 32.05 0 0 0 6.46-15.85c2.84-2.61 4.35-6.34 5.77-9.93a15.24 15.24 0 0 0 1.32-4.82c.07-1.71-1.06-3.5-.74-5.18a13.64 13.64 0 0 1 4.19-7.54 2.74 2.74 0 0 0 1-1.33 2.1 2.1 0 0 0-.23-1.29c-1.22-2.71-4-4.45-6.88-5.16a29.61 29.61 0 0 0-8.87-.36 20.06 20.06 0 0 0-2.9.78l-2.07 5.43a6.88 6.88 0 0 1-1.35 2.48 12.52 12.52 0 0 1-1.46 1.15 8.38 8.38 0 0 0-2.91 7.33 7.88 7.88 0 0 0-4.66 9.72 9.3 9.3 0 0 0-6.81 6 4.45 4.45 0 0 1-.89 1.87 3.66 3.66 0 0 1-2.34.76c-2.34.14-4.38 2-6.49 1a13.29 13.29 0 0 0-7.71-1.08 5.77 5.77 0 0 1-1.65.15 4.43 4.43 0 0 1-1.35-.47 10.72 10.72 0 0 0-3.06-1.2 2.84 2.84 0 0 0-2.9 1.12c-.74-.81-1.18-1.85-1.85-2.72a3 3 0 0 0-2.82-1.35c.7-.62 0-1.87-.93-2.1a12.66 12.66 0 0 0-2.81.1c-2.44 0-4.32-2.23-6.69-2.81-2.18-.53-5.09.11-6.21-1.84-.39-.69-.47-1.63-1.14-2a2.2 2.2 0 0 0-1.48-.17 14.24 14.24 0 0 0-4.45 1.35c-2.29 9-1.09 18.24.65 27.3a24.07 24.07 0 0 0 4.89 11.18Z",fill:"#434175"})),_e||(_e=We.createElement("path",{d:"m656.93 491.88-11.37 22.94c1.23-2.13 3.82-3 5.87-4.31a15.54 15.54 0 0 0 5.57-7.54 47.14 47.14 0 0 0 2.15-9.29c.23-1.45.71-3.49 0-4.81-1.26.27-1.68 1.94-2.22 3.01ZM624.21 511.37c-2.57 2.54-5.71 4.41-8.53 6.66-6.6 5.26-11.3 12.46-15.89 19.53a30.77 30.77 0 0 0-3.25 5.92c.54.46 1.34 0 1.88-.49l8.93-7.84a20.19 20.19 0 0 0 3-3c1.55-2.09 2.24-4.69 3.65-6.88a26.84 26.84 0 0 1 5.43-5.53c2.05-1.76 11.47-9.73 9.18-12.83-1.69.8-3.05 3.1-4.4 4.46Z",opacity:.1})),Ce||(Ce=We.createElement("path",{d:"M643.72 411.95a26.78 26.78 0 0 0-9.45-3.11 20 20 0 0 0-6-.43c-1.86.23-3.65.95-5.52 1-2.63.15-5.14-.92-7.68-1.61s-5.47-1-7.6.57a3.29 3.29 0 0 1-1.66.88 3 3 0 0 1-1.71-.84 9.74 9.74 0 0 0-12.14.64c-4.84 4.54-4.29 13.41-10 16.86-1.56 1-3.56 1.45-4.48 3a12 12 0 0 1-.77 1.46 4 4 0 0 1-1.36 1 26.43 26.43 0 0 0-4.68 2.69 6.66 6.66 0 0 0-2.69 4.51 8.53 8.53 0 0 0 .82 3.79 35.62 35.62 0 0 0 34.61 22.13 5.42 5.42 0 0 0 3.63-1.13 6.93 6.93 0 0 0 1.27-2.09c2.67-5.59 7.68-9.72 10.86-15 1.89-3.17 3.11-6.72 5.09-9.84 3-4.73 7.54-8.23 12-11.62 2.52-1.91 5.31-3.92 8.47-3.79 2.81.12 4.86.27 3.82-3.17a11 11 0 0 0-4.83-5.9Z",fill:"#434175"})),je||(je=We.createElement("path",{d:"M643.72 411.95a26.78 26.78 0 0 0-9.45-3.11 20 20 0 0 0-6-.43c-1.86.23-3.65.95-5.52 1-2.63.15-5.14-.92-7.68-1.61s-5.47-1-7.6.57a3.29 3.29 0 0 1-1.66.88 3 3 0 0 1-1.71-.84 9.74 9.74 0 0 0-12.14.64c-4.84 4.54-4.29 13.41-10 16.86-1.56 1-3.56 1.45-4.48 3a12 12 0 0 1-.77 1.46 4 4 0 0 1-1.36 1 26.43 26.43 0 0 0-4.68 2.69 6.66 6.66 0 0 0-2.69 4.51 8.53 8.53 0 0 0 .82 3.79 35.62 35.62 0 0 0 34.61 22.13 5.42 5.42 0 0 0 3.63-1.13 6.93 6.93 0 0 0 1.27-2.09c2.67-5.59 7.68-9.72 10.86-15 1.89-3.17 3.11-6.72 5.09-9.84 3-4.73 7.54-8.23 12-11.62 2.52-1.91 5.31-3.92 8.47-3.79 2.81.12 4.86.27 3.82-3.17a11 11 0 0 0-4.83-5.9Z",opacity:.05})),Le||(Le=We.createElement("path",{d:"M657.47 794.73c-1.92 1.79-4.55 2.57-7.1 3.12a127.7 127.7 0 0 1-17.67 2.19l-5.77.44c-5.63.43-11.27.86-16.92.88a117.17 117.17 0 0 1-20.82-1.8 2.28 2.28 0 0 1-1.65-.8 2.24 2.24 0 0 1-.25-1.31 100.74 100.74 0 0 1 2.56-20.9c.65-2.81 5.7 3.5 5.93 3.77a5.76 5.76 0 0 0 4.59 2.43c5.81.32 12.32-3.21 16.93-6.35a22.18 22.18 0 0 1 3.14-1.95 9.19 9.19 0 0 1 2.54-.72 15.28 15.28 0 0 1 8.64 1.75c3.47 1.72 6.51 4.19 10 6a28.06 28.06 0 0 0 8.92 2.82c3.14.43 6.9.64 8.51 3.36 1.28 2.25.32 5.29-1.58 7.07Z",fill:"#434175"})),Je||(Je=We.createElement("path",{d:"M657.47 795.77c-1.92 1.79-4.55 2.57-7.1 3.12a127.7 127.7 0 0 1-17.67 2.19l-5.77.44c-5.63.43-11.27.86-16.92.88a116.24 116.24 0 0 1-20.82-1.8 2.27 2.27 0 0 1-1.65-.79 9.26 9.26 0 0 1-1.29-2.36c.12-7 2-14.05 3.6-20.9.65-2.81 5.7 3.5 5.93 3.77a5.76 5.76 0 0 0 4.59 2.43c5.81.32 12.32-3.21 16.93-6.35a22.18 22.18 0 0 1 3.14-1.95 9.19 9.19 0 0 1 2.54-.72c-.75 4.18-6.74 9.23-9.84 10.77-6.26 3.11-13.7 1.55-20.68 1.92a3 3 0 0 0-1.47.35c-.83.56-.88 1.75-.86 2.75.06 1.66.27 3.62 1.72 4.46a4.94 4.94 0 0 0 2.32.49 327.89 327.89 0 0 0 51.57-1.81 28.23 28.23 0 0 0 8.4-1.87 21.44 21.44 0 0 0 4.87-3.14c2.2 1.72.36 6.34-1.54 8.12Z",fill:"#e8eaf2"})),Ie||(Ie=We.createElement("path",{d:"M643.09 375.06c-.1 2.73 1.76 8-3.35 6.55-3-.88-3.9-4.49-7.76-3.69s-4.76 5.57-6.06 8.68a16.59 16.59 0 0 1-12 9.72 7.26 7.26 0 0 1-3.31 0c-2.49-.71-3.91-3.28-4.93-5.66a44.08 44.08 0 0 1-2.18-6.22 25.31 25.31 0 0 1-.79-4.56 19.48 19.48 0 0 1 0-3.15c.46-6.21 4-11.87 8.52-16.15s10-7.38 15.45-10.43a22.9 22.9 0 0 1 5.7-2.54 19.21 19.21 0 0 1 6-.24 20.85 20.85 0 0 1 7.66 1.8 10.71 10.71 0 0 1 2.69 1.89 8.11 8.11 0 0 1 2.34 3.89c1 4-1.58 7.63-3.66 10.8-1.9 2.81-4.19 5.79-4.32 9.31Z",fill:"#434175"})),He||(He=We.createElement("path",{d:"M729 433.67c-1.09-2.75-5.67-10.36-4.35-13a33.77 33.77 0 0 1 3.49 6.24c.86 2.15.18 5.01.86 6.76ZM647.47 365.74c2.08-3.17 4.64-6.79 3.66-10.8a8.35 8.35 0 0 0-3-4.44 7.27 7.27 0 0 1 .76 1.87c1 4-1.58 7.62-3.66 10.8-1.85 2.82-4.14 5.81-4.28 9.32-.1 2.73 1.77 8-3.34 6.55-3-.88-3.9-4.49-7.77-3.69s-4.75 5.56-6.06 8.68a16.57 16.57 0 0 1-12 9.72 7.26 7.26 0 0 1-3.31 0 5.05 5.05 0 0 1-1.56-.77 6.76 6.76 0 0 0 3.77 3.34 7.44 7.44 0 0 0 3.32 0 16.63 16.63 0 0 0 12-9.73c1.31-3.12 2.16-7.86 6.06-8.67s4.72 2.8 7.77 3.68c5.11 1.48 3.24-3.82 3.34-6.55.16-3.5 2.46-6.49 4.3-9.31Z",opacity:.1})),Ue||(Ue=We.createElement("path",{d:"M648.6 360.31a21.84 21.84 0 0 1-1.56 2.24 26.58 26.58 0 0 1-3.61 3.74c-.79.68-1.6 1.31-2.44 1.91a38.47 38.47 0 0 1-4.93 2.95 91.47 91.47 0 0 1-15.78 5.65l-10.54 3.07c-1.3 1-3.67 2.74-6.28 4.57a25.31 25.31 0 0 1-.79-4.56 19.48 19.48 0 0 1 0-3.15c.46-6.21 4-11.87 8.52-16.15s10-7.38 15.45-10.43a22.9 22.9 0 0 1 5.7-2.54 19.21 19.21 0 0 1 6-.24 20.85 20.85 0 0 1 7.66 1.8 10.71 10.71 0 0 1 2.69 1.89 10.14 10.14 0 0 1 1.35 2.86c.66 2.15-.26 4.45-1.44 6.39Z",opacity:.1})),Fe||(Fe=We.createElement("path",{d:"M648.6 359.6a21.84 21.84 0 0 1-1.56 2.24 26.58 26.58 0 0 1-3.61 3.74c-.79.68-1.6 1.31-2.44 1.91a39.65 39.65 0 0 1-4.93 2.95 91.47 91.47 0 0 1-15.78 5.65l-10.54 3.06c-3.68 2.79-16 11.91-18.07 10.77-2.44-1.34 10.93-10.81 10.93-10.81l.61.47c-2-1.23-3-4.08-3.42-6.55-.78-4.42-1.15-9-.1-13.37s3.67-8.51 7.66-10.55c1.77-.92 3.92-1.53 5.2-2.93a4.4 4.4 0 0 0 .51-.69 2.08 2.08 0 0 0 .2-.36 4.32 4.32 0 0 1 .56-1.09c.73-.84 2.06-.59 3.17-.45h.36a5.68 5.68 0 0 0 .59 0c4 .09 7.81-2.12 11.82-2.12 4.39 0 8.13 2.54 12 4.28.78.35 1.52.67 2.22 1 2.8 1.3 4.9 2.69 6 6.38.72 2.24-.2 4.55-1.38 6.47Z",fill:"#604687"})),Ve||(Ve=We.createElement("path",{d:"M617.94 343.65a1.8 1.8 0 0 1-.42 2.32 3.2 3.2 0 0 1-1.66.59 11.2 11.2 0 0 1-1.3.1 3.58 3.58 0 0 1-1.71-.29 2.2 2.2 0 0 1-.3-.19 4.4 4.4 0 0 0 .51-.69c.1.08.2.06.59 0a9.13 9.13 0 0 0 2.14-.36 2.38 2.38 0 0 0 .8-.39 2.48 2.48 0 0 0 .76-1.15ZM602.86 379.01a4.87 4.87 0 0 0 1.83.68 8.29 8.29 0 0 0 1.41.23 7.84 7.84 0 0 0 3.45-1",opacity:.1})))}},7156:(e,a,t)=>{t.d(a,{Z:()=>Q});var c,l,r,n,i,s,h,m,d,o,f,p,E,y,u,b,Z,M,x,g,v,w,q,k,A,B,O,S,D,P,G,R,T,N,_,C,j,L,J,I,H,U,F,V,W,z=t(7294),Y=["title","titleId"];function K(){return K=Object.assign?Object.assign.bind():function(e){for(var a=1;a=0||(l[t]=e[t]);return l}(e,a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(c=0;c=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(l[t]=e[t])}return l}const Q=function(e){var a=e.title,t=e.titleId,Q=X(e,Y);return z.createElement("svg",K({"data-name":"Layer 1",xmlns:"http://www.w3.org/2000/svg",width:1108,height:731.18,viewBox:"0 0 1108 731.18","aria-labelledby":t},Q),void 0===a?z.createElement("title",{id:t},"react"):a?z.createElement("title",{id:t},a):null,c||(c=z.createElement("path",{d:"m767.68 330.79 6.89-2.7c.66-.26 1.31-.54 2-.81a59.85 59.85 0 0 1 15.28-115.77l-4.8 24.2 18.22-23.92h.16a59.87 59.87 0 0 1 51.16 67.45c-.15 1.13-.39 2.23-.6 3.34 5.61-4.43 10.87-9.32 14.81-15 8-11.54 10.71-25.76 13.47-43.17 5.47-34.48 10.4-69.34 14.84-104.18a59.83 59.83 0 0 1-42-65.36c.25-1.82.6-3.59 1-5.34.1-.44.2-.88.31-1.31.43-1.69.91-3.35 1.47-5 .09-.27.21-.52.3-.78.5-1.37 1-2.72 1.65-4 .22-.5.44-1 .67-1.47a57.69 57.69 0 0 1 2.22-4.19c.27-.45.56-.88.83-1.33.62-1 1.27-2 1.94-2.93.36-.5.71-1 1.08-1.49l.27-.39a59.81 59.81 0 0 1 74.64-17l-6.24 31.49 18-23.64a59.5 59.5 0 0 1 16.32 68.62h.07c-.17.4-.38.78-.55 1.18-.33.74-.67 1.47-1 2.2-.46.93-1 1.84-1.45 2.74-.38.68-.75 1.36-1.16 2-.59 1-1.23 1.9-1.87 2.83-.38.54-.73 1.1-1.12 1.63-1 1.39-2.12 2.72-3.26 4-.4.45-.83.86-1.25 1.3-.81.86-1.62 1.71-2.48 2.52-.53.5-1.09 1-1.64 1.46-.79.7-1.6 1.38-2.43 2-.59.47-1.19.92-1.79 1.36a77.101 77.101 0 0 1-4.45 2.96c-1 .61-2.05 1.17-3.1 1.72-.53.27-1 .57-1.59.83-1.58.77-3.2 1.48-4.85 2.11-.31.12-.64.21-.95.32-1.38.5-2.77 1-4.18 1.35-.61.17-1.23.31-1.85.46-1.15.28-2.31.54-3.48.76q-1 .18-2.07.33c-1.15.17-2.31.3-3.48.4-.69.06-1.37.12-2.07.16-1.26.06-2.53.07-3.8.06a2.08 2.08 0 0 0-.25 0q-2.82 22-5.92 44a59.82 59.82 0 0 1 86.4-10.32l-15.68 26.58 25.21-16.59a59.68 59.68 0 0 1 11.5 44.16 58.76 58.76 0 0 1-4.5 15.94 59.83 59.83 0 0 1-111.19-4c-.23 1.48-.45 3-.68 4.46-2.44 15.35-5.47 34.46-16.23 50-7.29 10.56-17.33 18.36-27.09 25.22q-9.52 6.7-19.48 12.77a59.85 59.85 0 0 1-24.53 13.74q-16 8.19-32.69 14.81l-6.95 2.72c-6.25 2.44-12.65 4.94-19 7.6 1 .09 2 .17 3 .3a59.9 59.9 0 0 1 50.86 49.05l-42.31 23.11 42.18-1.89A59.16 59.16 0 0 1 797 450.13a59.87 59.87 0 0 1-82.7 11.74l2.1 3.91c1.4 2.58 2.78 5.15 4.12 7.7 18.33 34.74 19.66 64.74 3.75 84.49l-13-10.45c15.49-19.22 3.2-49.77-5.5-66.27-1.32-2.5-2.68-5-4-7.56-11.77-21.83-25.12-46.57-19.77-72.9 8-39.7 51.05-56.5 85.68-70ZM269.6 519.01l-5.38-2.11c-.52-.2-1-.43-1.54-.63a46.75 46.75 0 0 0-11.94-90.42l3.75 18.9-14.22-18.68h-.13a46.76 46.76 0 0 0-40 52.68c.12.89.31 1.74.47 2.61a55.84 55.84 0 0 1-11.56-11.73c-6.23-9-8.37-20.12-10.53-33.71-4.23-26.93-8.07-54.15-11.52-81.33a46.72 46.72 0 0 0 32.77-51.05c-.2-1.42-.47-2.8-.79-4.17l-.24-1a48.36 48.36 0 0 0-1.15-3.88c-.07-.21-.16-.41-.24-.61a48.24 48.24 0 0 0-1.28-3.15c-.18-.38-.35-.77-.53-1.15-.54-1.11-1.11-2.2-1.73-3.26-.21-.36-.44-.7-.65-1-.49-.78-1-1.55-1.52-2.29-.28-.39-.55-.79-.84-1.17l-.21-.3a46.76 46.76 0 0 0-58.29-13.32l4.88 24.6-14.07-18.46a46.48 46.48 0 0 0-12.75 53.59h-.05c.13.31.29.61.43.92.26.58.52 1.15.8 1.72q.54 1.08 1.14 2.13c.29.54.58 1.07.9 1.59.46.75 1 1.48 1.46 2.21.3.42.57.86.88 1.27.8 1.08 1.65 2.12 2.54 3.13.31.35.65.67 1 1 .63.67 1.27 1.33 1.94 2 .41.4.85.77 1.28 1.14q.93.83 1.89 1.59c.46.36.93.71 1.4 1.06.68.49 1.37 1 2.06 1.41.47.31.94.61 1.42.9.79.48 1.6.91 2.42 1.34.42.22.82.45 1.24.66 1.24.6 2.5 1.15 3.79 1.64.24.1.5.16.74.25 1.07.39 2.16.75 3.27 1.06.47.13 1 .24 1.44.35.9.22 1.8.43 2.72.6l1.61.26c.9.13 1.81.23 2.72.31.54.05 1.07.09 1.62.12 1 .05 2 .06 3 .05h.19q2.2 17.22 4.62 34.41a46.71 46.71 0 0 0-67.48-8.14l12.14 20.64-19.68-12.95a46.57 46.57 0 0 0-9 34.49 45.8 45.8 0 0 0 3.53 12.46 46.73 46.73 0 0 0 86.84-3.12c.18 1.15.35 2.32.53 3.48 1.9 12 4.27 26.92 12.67 39.08 5.7 8.24 13.54 14.33 21.16 19.69q7.44 5.24 15.21 10a46.88 46.88 0 0 0 19.16 10.74c8.32 4.26 16.84 8.14 25.54 11.56l5.42 2.13c4.88 1.9 9.88 3.85 14.81 5.93-.78.07-1.57.13-2.36.24a46.77 46.77 0 0 0-39.72 38.27l33 18-32.94-1.47a46.78 46.78 0 0 0 73.57 29.2c-.55 1-1.09 2-1.64 3.05-1.09 2-2.17 4-3.22 6-14.31 27.13-15.35 50.57-2.92 66l10.13-8.16c-12.1-15-2.5-38.87 4.3-51.76 1-1.95 2.09-3.92 3.16-5.9 9.19-17 19.61-36.37 15.46-56.94-6.21-30.94-39.86-44.02-66.9-54.6Z",fill:"#f2f2f2"})),l||(l=z.createElement("ellipse",{cx:554,cy:707.68,rx:554,ry:23.5,fill:"#3f3d56"})),r||(r=z.createElement("ellipse",{cx:554,cy:707.68,rx:554,ry:23.5,opacity:.1})),n||(n=z.createElement("ellipse",{cx:554,cy:694.68,rx:554,ry:23.5,fill:"#3f3d56"})),i||(i=z.createElement("path",{d:"M85 686.32c-3-5.51.4-12.26 4.28-17.18s8.61-10 8.51-16.29c-.14-9-9.7-14.31-17.33-19.08a84.78 84.78 0 0 1-15.56-12.51 23 23 0 0 1-4.78-6.4c-1.58-3.52-1.53-7.52-1.43-11.38q.5-19.26 1.9-38.48",fill:"none",stroke:"#3f3d56",strokeMiterlimit:10,strokeWidth:4})),s||(s=z.createElement("path",{d:"M46.11 564.29a14 14 0 0 1 7-11.49l3.14 6.21-.09-7.52a13.86 13.86 0 0 1 4.62-.56 14 14 0 1 1-14.67 13.36ZM71.14 659.29a14 14 0 0 0 26.5-5.76 13.82 13.82 0 0 0-.91-5.69 14 14 0 0 0-26.27.15l8.77 7.13-9.64-2.24a13.89 13.89 0 0 0 1.55 6.41ZM78.07 632.04a14 14 0 0 0 4.46-27.54l.07 5.79-3.18-6.29a14.04 14.04 0 0 0-1.31 28.05ZM44 609.37a14.016 14.016 0 0 0 1.32-28 13.88 13.88 0 0 0-7.52 1.78l2.48 6.8-5.11-4.9a14 14 0 0 0-4.53 9.69 13.33 13.33 0 0 0 .36 3.85 14 14 0 0 0 13 10.78Z",fill:"#604687"})),h||(h=z.createElement("path",{d:"M48 568.03c3.24.36 6.39 1.37 9.64 1.57s6.82-.58 8.88-3.1c1.11-1.37 1.66-3.09 2.59-4.57a10.08 10.08 0 0 1 3.54-3.33 14 14 0 1 1-26.24 9.32c.53.02 1.06.06 1.59.11ZM44 609.37a14 14 0 0 0 13.35-20 10.4 10.4 0 0 0-2.82 2.83c-1 1.51-1.61 3.25-2.78 4.64-2.19 2.57-5.92 3.41-9.31 3.25s-6.66-1.11-10-1.42c-.47 0-.94-.08-1.41-.09A14 14 0 0 0 44 609.37ZM78.07 632.04a14 14 0 0 0 13.47-19.76 11.36 11.36 0 0 0-3 2.85c-1.09 1.54-1.77 3.31-3 4.73-2.36 2.64-6.34 3.57-9.93 3.48s-6.82-.93-10.28-1.19a14 14 0 0 0 12.74 9.89ZM71.14 659.29a14 14 0 0 0 26.5-5.76 13.82 13.82 0 0 0-.91-5.69 14 14 0 0 0-3.08 2.74c-1.34 1.63-2.21 3.47-3.76 5-2.87 2.82-7.5 4-11.62 4.09a62.35 62.35 0 0 1-7.13-.38Z",opacity:.1})),m||(m=z.createElement("path",{d:"M106.19 679.98s-11.08-.34-14.41-2.72-17-5.22-17.87-1.4-16.65 19-4.14 19.06 29.06-2 32.39-4 4.03-10.94 4.03-10.94Z",fill:"#656380"})),d||(d=z.createElement("path",{d:"M69.54 693.59c12.51.1 29.06-2 32.4-4 2.53-1.54 3.54-7.09 3.88-9.65h.37s-.7 8.93-4 11-19.89 4.08-32.39 4c-3.61 0-4.86-1.31-4.79-3.22.47 1.13 1.85 1.87 4.53 1.87Z",opacity:.2})),o||(o=z.createElement("path",{d:"M1055 695.32c-3-5.51.4-12.26 4.28-17.18s8.61-10 8.51-16.29c-.14-9-9.7-14.31-17.33-19.08a84.78 84.78 0 0 1-15.56-12.51 23 23 0 0 1-4.78-6.4c-1.58-3.52-1.53-7.52-1.43-11.38q.49-19.26 1.9-38.48",fill:"none",stroke:"#3f3d56",strokeMiterlimit:10,strokeWidth:4})),f||(f=z.createElement("path",{d:"M1016.11 573.29a14 14 0 0 1 7-11.49l3.14 6.21-.09-7.52a13.86 13.86 0 0 1 4.62-.56 14 14 0 1 1-14.68 13.36ZM1041.14 668.29a14 14 0 0 0 26.5-5.76 13.82 13.82 0 0 0-.91-5.69 14 14 0 0 0-26.27.15l8.77 7.13-9.64-2.24a13.89 13.89 0 0 0 1.55 6.41ZM1048.07 641.04a14 14 0 0 0 4.46-27.54l.07 5.79-3.18-6.29a14.04 14.04 0 0 0-1.31 28.05ZM1014 618.37a14.016 14.016 0 0 0 1.32-28 13.88 13.88 0 0 0-7.52 1.78l2.48 6.8-5.11-4.9a14 14 0 0 0-4.53 9.69 13.33 13.33 0 0 0 .36 3.85 14 14 0 0 0 13 10.78Z",fill:"#604687"})),p||(p=z.createElement("path",{d:"M1018 577.03c3.24.36 6.39 1.37 9.64 1.57s6.82-.58 8.88-3.1c1.11-1.37 1.66-3.09 2.59-4.57a10.08 10.08 0 0 1 3.54-3.33 14 14 0 1 1-26.24 9.32c.53.02 1.06.06 1.59.11ZM1014 618.37a14 14 0 0 0 13.35-20 10.4 10.4 0 0 0-2.82 2.83c-1 1.51-1.61 3.25-2.78 4.64-2.19 2.57-5.92 3.41-9.31 3.25s-6.66-1.11-10-1.42c-.47 0-.94-.08-1.41-.09a14 14 0 0 0 12.97 10.79ZM1048.07 641.04a14 14 0 0 0 13.47-19.76 11.36 11.36 0 0 0-3 2.85c-1.09 1.54-1.77 3.31-3 4.73-2.36 2.64-6.34 3.57-9.93 3.48s-6.82-.93-10.28-1.19a14 14 0 0 0 12.74 9.89ZM1041.14 668.29a14 14 0 0 0 26.5-5.76 13.82 13.82 0 0 0-.91-5.69 14 14 0 0 0-3.08 2.74c-1.34 1.63-2.21 3.47-3.76 5-2.87 2.82-7.5 4-11.62 4.09a62.35 62.35 0 0 1-7.13-.38Z",opacity:.1})),E||(E=z.createElement("path",{d:"M1076.19 688.98s-11.08-.34-14.41-2.72-17-5.22-17.87-1.4-16.65 19-4.14 19.06 29.06-2 32.39-4 4.03-10.94 4.03-10.94Z",fill:"#656380"})),y||(y=z.createElement("path",{d:"M1039.54 702.59c12.51.1 29.06-2 32.4-4 2.53-1.54 3.54-7.09 3.88-9.65h.37s-.7 8.93-4 11-19.89 4.08-32.39 4c-3.61 0-4.86-1.31-4.79-3.22.47 1.13 1.85 1.87 4.53 1.87Z",opacity:.2})),u||(u=z.createElement("path",{d:"M745.57 331.15q-9.92-3.4-20-6.3 1.66-6.79 3.09-13.65c15.14-73.51 5.24-132.73-28.57-152.22-32.42-18.7-85.44.8-139 47.39q-7.92 6.92-15.47 14.2-5.07-4.85-10.3-9.51c-56.11-49.83-112.32-70.82-146.14-51.27-32.39 18.75-42 74.42-28.35 144.09q2 10.35 4.59 20.58c-7.95 2.26-15.64 4.67-23 7.24-65.79 22.89-107.81 58.89-107.81 96.18 0 38.51 45.11 77.14 113.64 100.56q8.34 2.83 16.8 5.26-2.74 11-4.88 22.18c-13 68.46-2.84 122.82 29.46 141.45 33.37 19.26 89.37-.54 143.89-48.2 4.31-3.77 8.63-7.77 13-11.95q8.18 7.89 16.79 15.32c52.82 45.45 105 63.81 137.26 45.12 33.33-19.29 44.16-77.69 30.1-148.73q-1.6-8.14-3.73-16.61 5.91-1.74 11.56-3.61c71.24-23.6 117.6-61.76 117.6-100.79 0-37.43-43.38-73.62-110.5-96.73Z",fill:"#53c1de"})),b||(b=z.createElement("path",{d:"M730.12 503.47c-3.4 1.13-6.88 2.21-10.44 3.27a621.6 621.6 0 0 0-31.47-78.73 623.06 623.06 0 0 0 30.25-77.58c6.35 1.84 12.53 3.78 18.47 5.83 57.51 19.79 92.59 49.06 92.59 71.62 0 24-37.89 55.21-99.4 75.59Zm-25.52 50.58c6.22 31.41 7.1 59.81 3 82-3.7 19.95-11.14 33.25-20.34 38.58-19.59 11.33-61.47-3.4-106.64-42.27q-7.77-6.69-15.63-14.25a624.23 624.23 0 0 0 52.09-66.14 620.2 620.2 0 0 0 84.17-13q1.9 7.68 3.37 15ZM446.48 672.69c-19.14 6.76-34.38 6.95-43.59 1.64-19.6-11.31-27.75-55-16.63-113.5q2-10.37 4.53-20.63a625.79 625.79 0 0 0 83.75 12.13 645.09 645.09 0 0 0 53.35 65.9q-5.79 5.61-11.84 10.91c-24.11 21.08-48.28 36-69.57 43.55Zm-89.64-169.37c-30.31-10.36-55.33-23.82-72.49-38.5-15.41-13.2-23.19-26.31-23.19-36.94 0-22.63 33.74-51.5 90-71.11q10.6-3.69 21.39-6.73a637.08 637.08 0 0 0 30.29 78.48 646.29 646.29 0 0 0-30.66 79.6q-7.74-2.21-15.34-4.8Zm30.05-204.54c-11.68-59.69-3.93-104.72 15.59-116 20.79-12 66.76 5.12 115.22 48.15 3.1 2.75 6.21 5.63 9.32 8.6a635.89 635.89 0 0 0-52.93 65.52 648.42 648.42 0 0 0-82.93 12.89q-2.39-9.52-4.27-19.15ZM655 364.97q-9.11-15.74-18.89-31.08c19.83 2.51 38.82 5.83 56.66 9.91a565.54 565.54 0 0 1-19.89 53.51q-8.61-16.35-17.88-32.34ZM545.64 258.5a569.3 569.3 0 0 1 36.57 44.14q-36.71-1.73-73.45 0c12.07-15.92 24.44-30.72 36.88-44.13Zm-110 106.65q-9.15 15.87-17.55 32.14c-7.73-18.33-14.34-36.36-19.74-53.77 17.73-4 36.64-7.21 56.34-9.68q-9.92 15.44-19.07 31.31Zm19.61 158.65a564.64 564.64 0 0 1-57.25-9.21c5.49-17.71 12.25-36.13 20.15-54.86q8.43 16.29 17.61 32.16 9.34 16.19 19.47 31.91Zm91.14 75.33c-12.6-13.54-25.15-28.54-37.39-44.75q17.85.71 36.36.71 19 0 37.51-.84a563.94 563.94 0 0 1-36.5 44.88Zm126.69-140.35A562.82 562.82 0 0 1 694 513.44a561.35 561.35 0 0 1-58 9.89q9.85-15.63 19.08-31.63 9.38-16.26 18-32.92Zm-41 19.66q-14.12 24.52-29.81 48.1c-18.44 1.32-37.49 2-56.91 2s-38.15-.6-56.27-1.78q-16.09-23.5-30.39-48.17t-26.51-50.08q12.27-25.53 26.43-50.1 14.14-24.56 30.13-48c18.49-1.4 37.43-2.13 56.59-2.13s38.22.74 56.69 2.14q15.81 23.37 30 47.81t26.79 49.87q-12.45 25.62-26.71 50.3Zm54.77-296.46c20.81 12 28.9 60.4 15.83 123.87q-1.29 6.19-2.8 12.35a635.74 635.74 0 0 0-83.09-13.13 625.16 625.16 0 0 0-52.53-65.56q7-6.74 14.29-13.11c45.88-39.93 88.76-55.69 108.3-44.42Z",fill:"#fff"})),Z||(Z=z.createElement("path",{d:"M545.34 372.38a55.5 55.5 0 1 1-55.5 55.5 55.49 55.49 0 0 1 55.5-55.5",fill:"#53c1de"})),M||(M=z.createElement("path",{d:"M559.26 20.4a16.6 16.6 0 1 1-16.6-16.6 16.52 16.52 0 0 1 16.6 16.6Z",fill:"#3f3d56"})),x||(x=z.createElement("path",{d:"M529.4 24.59A16.62 16.62 0 0 1 541.89.05a16.6 16.6 0 1 0 1.41 33.07 16.6 16.6 0 0 1-13.9-8.53ZM521.91 43.52h44.47v69.37h-44.47z",fill:"#3f3d56"})),g||(g=z.createElement("path",{opacity:.1,d:"M521.91 43.52h44.47v69.37h-44.47z"})),v||(v=z.createElement("path",{d:"M451.66 295.2s-4.75 13.05-16 14.83-17.79 4.74-17.79 4.74l26.68 17.19 14.23-1.78s1.78-18.38 7.71-22.53-14.83-12.45-14.83-12.45ZM644.34 295.2s4.75 13.05 16 14.83 17.79 4.74 17.79 4.74l-26.68 17.19-14.23-1.78s-1.78-18.38-7.71-22.53 14.83-12.45 14.83-12.45Z",fill:"#a0616a"})),w||(w=z.createElement("path",{d:"M514.5 180.18s-7.11 3.56-9.48 10.68c0 0-13 4.15-20.16 15.41 0 0-8.9 9.49-10.08 14.23S460 253.7 460 253.7s-13.64 44.47-20.75 49.21c0 0 22.53-4.74 26.68 17.79 0 0 5.33 0 11.26-20.75s20.16-46.25 20.16-46.25 4.74-17.78 8.89-20.75 10.67-16.6 16.6-13 45.06-.6 45.06-.6 23.1 10.64 23.68 17.75 4.74 7.71 5.33 13.64 22.53 52.76 22.53 52.76 4.15 13 5.34 16c0 0 13-31.42 30.24-13.63 0 0-.6-11.86-5.93-19s-28.46-62.84-28.46-62.84-2.37-8.3-4.74-10.67-20.76-21.35-27.28-21.35c0 0-3.55-8.89-7.7-10.08ZM461.14 326.03a28.89 28.89 0 0 1-28.22-3.79 56.37 56.37 0 0 0-12.59-7.3c-6.29-2.54-13.81-4.42-16.1-.17-4.15 7.71 50.39 26.68 50.39 26.68s7.12-4.15 6.52-15.42ZM634.86 326.03a28.89 28.89 0 0 0 28.22-3.79 56.37 56.37 0 0 1 12.59-7.3c6.29-2.54 13.81-4.42 16.1-.17 4.15 7.71-50.39 26.68-50.39 26.68s-7.12-4.15-6.52-15.42Z",fill:"#3f3d56"})),q||(q=z.createElement("path",{d:"M533.88 82.67c-.22 2.06-.9 4.29-2.66 5.38-1.44.9-3.26.83-4.92 1.17a11.46 11.46 0 0 0-7.82 6.77 17.51 17.51 0 0 0-.75 10.55 39.22 39.22 0 0 0 1.52 5.06c1.74 4.92 3.84 9.8 7.09 13.89a59 59 0 0 0 9.3 8.77c2.11 1.72 4.29 3.47 6.89 4.28a21.75 21.75 0 0 0 5.4.72c2.25.1 4.65.17 6.6-.95 3-1.73 3.89-5.55 5.52-8.62 1.38-2.6 3.44-4.81 4.73-7.46a29.49 29.49 0 0 0 2-6.52l2.77-12.3c1-4.47 1.92-9.51-.59-13.34a2.28 2.28 0 0 0-.74-.77 2.79 2.79 0 0 0-1.52-.15 16.44 16.44 0 0 1-9.15-2.09 3.93 3.93 0 0 1-1.15-.9 4.72 4.72 0 0 1-.7-2.12 22.2 22.2 0 0 0-1.28-4.45 3 3 0 0 0-.87-1.34 3.15 3.15 0 0 0-1.41-.47 114.47 114.47 0 0 0-12.93-1.35c-1.42-.07-3.56-.64-4.54.62s-.67 4.12-.79 5.62Z",fill:"#a0616a"})),k||(k=z.createElement("path",{d:"M533.88 82.67c-.22 2.06-.9 4.29-2.66 5.38-1.44.9-3.26.83-4.92 1.17a11.46 11.46 0 0 0-7.82 6.77 17.51 17.51 0 0 0-.75 10.55 39.22 39.22 0 0 0 1.52 5.06c1.74 4.92 3.84 9.8 7.09 13.89a59 59 0 0 0 9.3 8.77c2.11 1.72 4.29 3.47 6.89 4.28a21.75 21.75 0 0 0 5.4.72c2.25.1 4.65.17 6.6-.95 3-1.73 3.89-5.55 5.52-8.62 1.38-2.6 3.44-4.81 4.73-7.46a29.49 29.49 0 0 0 2-6.52l2.77-12.3c1-4.47 1.92-9.51-.59-13.34a2.28 2.28 0 0 0-.74-.77 2.79 2.79 0 0 0-1.52-.15 16.44 16.44 0 0 1-9.15-2.09 3.93 3.93 0 0 1-1.15-.9 4.72 4.72 0 0 1-.7-2.12 22.2 22.2 0 0 0-1.28-4.45 3 3 0 0 0-.87-1.34 3.15 3.15 0 0 0-1.41-.47 114.47 114.47 0 0 0-12.93-1.35c-1.42-.07-3.56-.64-4.54.62s-.67 4.12-.79 5.62Z",opacity:.1})),A||(A=z.createElement("path",{d:"M525.85 89.74a26.93 26.93 0 0 0-7.13-1.12c-5.72-.14-11.84 1.83-15.14 6.5a15.34 15.34 0 0 0-2.29 11.47 23.57 23.57 0 0 0 5.2 10.66 32 32 0 0 1 4 5.24c1.58 3 1.63 6.59 2.06 10 1 8.12 4.46 15.75 5.83 23.82s.19 17.42-6.18 22.55c-1.07.86-2.37 1.77-2.46 3.14-.14 2.19 2.71 3.12 4.9 3.33 6.55.62 13.27 1.23 19.63-.46 2.63-.7 5.17-1.79 7.85-2.29 6.8-1.27 13.64 1.34 20.45 2.59a90.61 90.61 0 0 0 14.91 1.21 7.94 7.94 0 0 0 3.43-.45 2.75 2.75 0 0 0 1.74-2.74 4.76 4.76 0 0 0-1.18-2c-3.44-4.25-4.49-9.9-5.43-15.29l-3.15-18.11c-1.69-9.68-3.26-20.2 1.32-28.89 3.29-6.25 9.36-10.65 12.83-16.8a9.84 9.84 0 0 0 1.55-6.28c-.52-3.09-3.31-5.3-6.17-6.59a23.21 23.21 0 0 0-17.42-.64c.1 4.33-1 8.71-1.71 13l-1.21 7a88.83 88.83 0 0 1-2.71 12.2 12.85 12.85 0 0 1-2.17 4.42 11.43 11.43 0 0 1-3.83 2.79 22.83 22.83 0 0 1-10.14 2.32 13.54 13.54 0 0 1-4.48-.69 19 19 0 0 1-6.17-4.34 10.11 10.11 0 0 1-1.63-1.77 9.93 9.93 0 0 1-1.11-2.67 55.42 55.42 0 0 1-1.91-7.48c-.3-1.94-.4-3.91-.54-5.87-.39-5.79-.39-12.19-1.54-17.76Z",fill:"#604687"})),B||(B=z.createElement("path",{d:"M519.84 204.49s-2.37 31.43 12.45 36.76 1.78-26.09 1.78-26.09l-4.75-9.48ZM570.23 204.49s2.37 31.43-12.45 36.76-1.78-26.09-1.78-26.09l4.75-9.48Z",fill:"#a0616a"})),O||(O=z.createElement("path",{d:"m506.79 99.59-4.74 7.71s4.15 26.68 4.74 31.42a62.2 62.2 0 0 0 2.38 10.08s.59 14.23.59 19.57 3 14.23 3 14.23a64.82 64.82 0 0 0 3 14.82c2.37 6.52 4.74 14.23 4.74 14.23s3-8.3 14.82 4.15a7.18 7.18 0 0 0 0-10.08s-3.55-16-3.55-24.31-6.53-48-6.53-48-4.24-45.12-18.45-33.82Z",opacity:.1})),S||(S=z.createElement("path",{d:"m505.61 98.96-4.74 7.71s4.15 26.68 4.74 31.42a61.84 61.84 0 0 0 2.39 10.08s.59 14.23.59 19.56 3 14.23 3 14.23a64.53 64.53 0 0 0 3 14.82c2.37 6.53 4.75 14.23 4.75 14.23s3-8.3 14.82 4.15a7.18 7.18 0 0 0 0-10.07s-3.56-16-3.56-24.31-6.52-48-6.52-48-4.24-45.09-18.47-33.82Z",fill:"#604687"})),D||(D=z.createElement("path",{d:"m583.87 94.81 3 3.53s3.49 20.18-4.22 45.68l-2.37 23.12s-4.15 19.57-4.74 24.31-.59 5.33-1.78 7.11a2.29 2.29 0 0 0 0 3l-3.56 13s-5.33-6.52-16 1.78c0 0-3-4.74-.6-8.89s2.37-5.93 1.78-7.12 2.37-7.11 2.37-8.3 4.18-28.44 4.18-28.44 1.78-26.68 3.56-35.57c1.09-5.47 1.07-17.66.88-26.24-.19-8.94 10.63-13.78 17-7.5.15.16.33.31.5.53Z",opacity:.1})),P||(P=z.createElement("path",{d:"m585.65 93.59 3 3.53s3.49 20.19-4.22 45.68l-2.37 23.12s-4.15 19.57-4.74 24.31-.6 5.34-1.78 7.12a2.28 2.28 0 0 0 0 3L572 213.39s-5.33-6.53-16 1.77c0 0-3-4.74-.59-8.89s2.37-5.93 1.78-7.11 2.37-7.12 2.37-8.3 4.15-28.46 4.15-28.46 1.78-26.68 3.56-35.58.59-35.57.59-35.57 9.49-6.52 17.79 2.34Z",fill:"#604687"})),G||(G=z.createElement("circle",{cx:545.92,cy:61.61,r:23.72,fill:"#a0616a"})),R||(R=z.createElement("path",{d:"M558.29 26a16.6 16.6 0 0 1-31.09.44c9.26-3.73 18.72-.41 18.72-.41 4.73-1.66 8.83-1.51 12.37-.03Z",opacity:.1})),T||(T=z.createElement("path",{d:"M545.92 27.22s-45.65-16-34.38 61.66c0 0 10.08 6.52 17.78 2.37 0 0-5.33-53.95 15.42-51.58s17.19 50.4 17.19 50.4 11.86 3.55 15.42-3-1.19-70.48-31.43-59.85Z",fill:"#3f3d56"})),N||(N=z.createElement("path",{d:"M544.74 36.11c-14.24-1.62-16.2 23.27-16 39.05.17-15.69 2.81-37 16-35.49 14.81 1.69 17.24 26.66 17.41 40.8.17-12.98-1.25-42.51-17.41-44.36ZM511.54 85.32a159.38 159.38 0 0 1-1.77-20.53 152.12 152.12 0 0 0 1.77 24.09s10.08 6.52 17.78 2.37c0 0-.12-1.28-.26-3.43-7.67 3.87-17.52-2.5-17.52-2.5ZM577.35 83.59c-3.32 6.08-13.83 3.41-15.25 3-.07 2.2-.17 3.52-.17 3.52s11.86 3.55 15.42-3c.73-1.34 1.11-5.13 1-10.2-.1 3.25-.45 5.68-1 6.68Z",opacity:.1})),_||(_=z.createElement("path",{d:"M826.73 672.96c4.74-8.78-.64-19.54-6.82-27.37s-13.73-16-13.57-26c.23-14.35 15.45-22.81 27.62-30.42a134.77 134.77 0 0 0 24.79-19.93c3-3.05 5.87-6.31 7.62-10.21 2.52-5.6 2.45-12 2.29-18.12q-.79-30.71-3-61.34",fill:"none",stroke:"#3f3d56",strokeMiterlimit:10,strokeWidth:4})),C||(C=z.createElement("path",{d:"M888.74 478.49a22.31 22.31 0 0 0-11.16-18.32l-5 9.9.15-12a22.37 22.37 0 1 0 16 20.41ZM848.86 629.88a22.36 22.36 0 1 1 1.08-18l-14 11.37 15.37-3.57a22.25 22.25 0 0 1-2.45 10.2ZM837.81 586.45a22.37 22.37 0 0 1-7.09-43.86l-.12 9.22 5.06-10h.06a22.37 22.37 0 1 1 2.09 44.69ZM892.11 550.32a22.37 22.37 0 1 1 9.89-41.86l-4 10.83 8.13-7.8a22.37 22.37 0 0 1-14.07 38.83Z",fill:"#604687"})),j||(j=z.createElement("path",{d:"M885.74 484.45c-5.17.57-10.19 2.18-15.37 2.5s-10.87-.92-14.14-5c-1.77-2.17-2.65-4.91-4.14-7.28a16 16 0 0 0-5.63-5.3 22.37 22.37 0 1 0 41.81 14.84c-.85.09-1.69.15-2.53.24ZM892.11 550.32a22.39 22.39 0 0 1-21.28-31.91 16.37 16.37 0 0 1 4.5 4.51c1.59 2.4 2.56 5.18 4.43 7.39 3.48 4.09 9.44 5.43 14.84 5.19s10.6-1.78 16-2.28c.75-.06 1.5-.11 2.26-.13a22.37 22.37 0 0 1-20.75 17.23ZM837.81 586.45a22.37 22.37 0 0 1-21.46-31.49 17.83 17.83 0 0 1 4.73 4.55c1.74 2.45 2.82 5.27 4.86 7.54 3.77 4.2 10.11 5.68 15.83 5.54 5.54-.12 10.87-1.48 16.38-1.9a22.36 22.36 0 0 1-20.34 15.76ZM848.86 629.88a22.37 22.37 0 0 1-40.78-18.29 22.27 22.27 0 0 1 4.91 4.38c2.13 2.59 3.53 5.53 6 7.94 4.57 4.49 11.95 6.34 18.52 6.51a97.1 97.1 0 0 0 11.35-.54Z",opacity:.1})),L||(L=z.createElement("path",{d:"M793 662.85s17.65-.54 23-4.33 27.16-8.31 28.48-2.24 26.53 30.22 6.6 30.38-46.31-3.1-51.62-6.34-6.46-17.47-6.46-17.47Z",fill:"#656380"})),J||(J=z.createElement("path",{d:"M851.4 684.59c-19.93.16-46.31-3.11-51.62-6.34-4-2.47-5.65-11.3-6.19-15.38H793s1.12 14.24 6.43 17.47 31.69 6.5 51.62 6.34c5.75 0 7.74-2.09 7.63-5.12-.8 1.81-2.99 2.95-7.28 3.03Z",opacity:.2})),I||(I=z.createElement("path",{d:"m323 42.86-18.25 11.57 11.08-20.15a18 18 0 0 0-11-3.94h-.3a21.58 21.58 0 0 1-3.78-.28l-6.19 3.92 2.65-4.82a22.06 22.06 0 0 1-10.82-8.21l-11.07 7 7-12.72c-6.48-7.77-15.2-12.54-24.81-12.54-11.51 0-21.76 6.85-28.38 17.52a21.24 21.24 0 0 1-18.76 10.12h-.62c-12.71 0-23 14.41-23 32.19s10.3 32.18 23 32.18a17.2 17.2 0 0 0 8-2c8.29-4.31 19.17-4.39 27.85-.54a29 29 0 0 0 23.68.05c8.62-3.77 19.37-3.69 27.61.54a17.23 17.23 0 0 0 7.93 2c12.71 0 23-14.41 23-32.18A40.86 40.86 0 0 0 323 42.86Z",fill:"#f2f2f2"})),H||(H=z.createElement("path",{d:"M288.59 89.95a34 34 0 0 0-19.72 2.14 29 29 0 0 1-23.67-.05c-8.69-3.85-19.57-3.77-27.86.54a17.2 17.2 0 0 1-8 2c-11.29 0-20.68-11.38-22.64-26.38a21.58 21.58 0 0 0 5.64-6.08c6.66-10.66 16.87-17.53 28.38-17.53s21.64 6.77 28.26 17.32a21.79 21.79 0 0 0 18.76 10.31h.26c9 .01 16.8 7.22 20.59 17.73Z",opacity:.03})),U||(U=z.createElement("path",{d:"M800.07 66.42 791 72.19l5.53-10a9 9 0 0 0-5.51-2h-.14a10.79 10.79 0 0 1-1.89-.14l-3.09 2 1.3-2.46a11 11 0 0 1-5.4-4.09l-5.52 3.5 3.49-6.34a16.17 16.17 0 0 0-12.37-6.26c-5.75 0-10.86 3.42-14.16 8.74a10.57 10.57 0 0 1-9.36 5h-.31c-6.34 0-11.48 7.19-11.48 16s5.14 16.05 11.48 16.05a8.62 8.62 0 0 0 4-1 16.56 16.56 0 0 1 13.89-.27 14.52 14.52 0 0 0 11.81 0 16.58 16.58 0 0 1 13.77.27 8.61 8.61 0 0 0 4 1c6.34 0 11.48-7.18 11.48-16.05a20.28 20.28 0 0 0-2.45-9.72Z",fill:"#f2f2f2"})),F||(F=z.createElement("path",{d:"M782.92 89.91a17 17 0 0 0-9.83 1.07 14.52 14.52 0 0 1-11.81 0 16.58 16.58 0 0 0-13.9.27 8.55 8.55 0 0 1-4 1c-5.64 0-10.32-5.67-11.3-13.15a10.93 10.93 0 0 0 2.82-3c3.3-5.32 8.42-8.73 14.16-8.73s10.79 3.37 14.09 8.63a10.85 10.85 0 0 0 9.36 5.14h.15c4.49-.07 8.34 3.53 10.26 8.77Z",opacity:.03})),V||(V=z.createElement("path",{d:"m204.34 215.86 14.66 9.28-8.88-16.15a14.48 14.48 0 0 1 8.85-3.15h.23a17.08 17.08 0 0 0 3-.22l4.95 3.14-2.15-3.86a17.78 17.78 0 0 0 8.67-6.58l8.87 5.62-5.54-10.19c5.19-6.22 12.18-10 19.87-10 9.23 0 17.44 5.48 22.75 14a17 17 0 0 0 15 8.11h.5c10.18 0 18.43 11.54 18.43 25.78s-8.25 25.79-18.43 25.79a13.86 13.86 0 0 1-6.43-1.61 26.59 26.59 0 0 0-22.31-.43 23.28 23.28 0 0 1-19 0 26.64 26.64 0 0 0-22.12.43 13.9 13.9 0 0 1-6.35 1.57c-10.19 0-18.44-11.54-18.44-25.79a32.78 32.78 0 0 1 3.87-15.74Z",fill:"#f2f2f2"})),W||(W=z.createElement("path",{d:"M231.89 253.59a27.36 27.36 0 0 1 15.8 1.72 23.28 23.28 0 0 0 19 0 26.61 26.61 0 0 1 22.32.43 13.82 13.82 0 0 0 6.42 1.61c9.05 0 16.57-9.11 18.14-21.13a17.44 17.44 0 0 1-4.52-4.88c-5.31-8.54-13.52-14-22.75-14s-17.33 5.42-22.64 13.88a17.44 17.44 0 0 1-15 8.25h-.23c-7.26-.07-13.5 5.71-16.54 14.12Z",opacity:.03})))}},8538:(e,a,t)=>{t.d(a,{Z:()=>G});var c,l,r,n,i,s,h,m,d,o,f,p,E,y,u,b,Z,M,x,g,v,w,q,k,A,B,O=t(7294),S=["title","titleId"];function D(){return D=Object.assign?Object.assign.bind():function(e){for(var a=1;a=0||(l[t]=e[t]);return l}(e,a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(c=0;c=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(l[t]=e[t])}return l}const G=function(e){var a=e.title,t=e.titleId,G=P(e,S);return O.createElement("svg",D({"data-name":"Layer 1",xmlns:"http://www.w3.org/2000/svg",width:1038.23,height:693.31,viewBox:"0 0 1038.23 693.31","aria-labelledby":t},G),c||(c=O.createElement("defs",null,O.createElement("linearGradient",{id:"a",x1:320.96,y1:796.01,x2:320.96,y2:284.81,gradientUnits:"userSpaceOnUse"},O.createElement("stop",{offset:0,stopColor:"gray",stopOpacity:.25}),O.createElement("stop",{offset:.54,stopColor:"gray",stopOpacity:.12}),O.createElement("stop",{offset:1,stopColor:"gray",stopOpacity:.1})))),void 0===a?O.createElement("title",{id:t},"version control"):a?O.createElement("title",{id:t},a):null,l||(l=O.createElement("path",{d:"M615.24 111.4c-64.72-2.25-126.36-23.14-185.23-46S312.85 17.21 249.68 5.1c-40.63-7.79-87.09-8.89-119.83 12.89-31.5 21-41.68 57.15-47.16 90.72-4.11 25.27-6.54 51.85 4.75 75.5 7.83 16.42 21.74 30.22 31.36 45.95 33.46 54.72 9.81 122.2-26.46 175.63-17 25.06-36.74 49-49.87 75.66s-19.2 57.25-7.72 84.47c11.39 27 38.52 47.24 67.9 61.49 59.69 28.94 130 37.23 198.62 41.92 151.82 10.39 304.46 5.89 456.68 1.39 56.34-1.67 112.92-3.36 168.34-12.07 30.78-4.84 62.56-12.52 84.9-31 28.36-23.53 35.39-63.38 16.39-92.88-31.88-49.49-120-61.79-142.31-114.9-12.27-29.23.33-61.8 18.15-88.91 38.24-58.17 102.33-109.19 105.71-175.68 2.32-45.66-28.49-91.39-76.13-113-49.94-22.65-119.18-19.8-156 17.69-37.96 38.56-104.62 53.41-161.76 51.43Z",fill:"#6c63ff",opacity:.1})),r||(r=O.createElement("path",{d:"M529.62 754.84c-1-3.62-2-7.28-4-10.43a36.53 36.53 0 0 0-6.55-7.17c-7.25-6.58-16.15-13.26-25.76-11.6a34.39 34.39 0 0 0-8.54 3.12c-1.4.65-2.81 1.3-4.25 1.85a21.17 21.17 0 0 1-12.82 1.12c-2.2-.59-4.25-1.65-6.42-2.31a20.35 20.35 0 0 0-3.15-.68 53.64 53.64 0 0 0 6.09-3.21c10.78-6.6 19.38-18.53 18.18-31.29-.41-4.29-1.88-8.4-3.34-12.45l-3.84-10.62c-1.66-4.6-3.38-9.29-6.41-13.11-3.37-4.26-8.17-7.15-13.13-9.3-10.65-4.63-22.29-6.26-33.78-7.84l-.8-.11V516.68a8 8 0 0 0-8-8H398q-1-6.12-2-12.22c-1.9-11.61-3.87-23.43-9.22-33.88-3.5-6.84-9.07-13.37-16.58-14.71a16.08 16.08 0 0 1-4.31-1c-2.2-1.08-3.4-3.48-5.09-5.25-4.36-4.57-11.45-4.64-17.29-7-5.16-2.05-9.38-5.91-14.08-8.88s-10.54-5.08-15.74-3.15c0 .38-.07.76-.11 1.13l-3.34-1.54c-3.6-1.67-7.27-3.38-10.16-6.12-3.71-3.5-5.69-8.14-7.23-13.07-.16-.51-.31-1-.47-1.55a46.43 46.43 0 0 0 12.44-23.75l.81 2.63a17.45 17.45 0 0 0 .64 1.74 6.86 6.86 0 0 0 2 2.83 3.55 3.55 0 0 0 .84.49 3.5 3.5 0 0 0 .86.22 3.2 3.2 0 0 0 1.24-.09 4.73 4.73 0 0 0 3-2.78 6 6 0 0 0 .35-1.22 6.31 6.31 0 0 0 .07-.76v-1.04c0-.1 0-.33-.05-.5v-.26c0-.2-.06-.4-.1-.59s0-.11 0-.16c-.05-.25-.11-.51-.16-.76v-.19c0-.06-.09-.41-.14-.62s-.07-.27-.1-.41v-.06c-.1-.4-.19-.79-.28-1.19a34.38 34.38 0 0 1-.55-10.56 113.08 113.08 0 0 1 2.86-15.35l.21-.91c.08-.35.16-.7.23-1.06.16-.72.32-1.44.47-2.17l.36-1.84.27-1.64v-.21A47.41 47.41 0 0 0 318 330c-.46-5.23-2.08-10.18-5.63-14.12-2.51-2.79-5.82-4.85-8.15-7.78-2.18-2.74-3.41-6.12-5.67-8.81-6.24-7.45-22.26-13.19-32.09-14.19-11.26-1.14-29.45 1.74-38.53 8.39-3.36 2.45-5.66 6-8 9.36-4.3 6.25-9.18 12.49-16.07 16-2.6 1.32-5.58 2.32-7.31 4.62a12.49 12.49 0 0 0-1.95 5.18 102.71 102.71 0 0 0-2.06 19.78v2.5a18.23 18.23 0 0 0 1.56 7.23c.16.34.34.67.53 1l.12.21a39.78 39.78 0 0 1 3.2 5.45 7.22 7.22 0 0 1 .49 1.66 12.24 12.24 0 0 1-.28 4.38c0 .22-.09.44-.13.66l-.09.43c0 .15 0 .3-.08.44-.08.43-.15.86-.21 1.28a9 9 0 0 0 .22 3.46 4.55 4.55 0 0 0 2.22 3 6.5 6.5 0 0 0 1.8.56c.63.11 1.27.18 1.89.32a9.33 9.33 0 0 1 2.29.85 9.22 9.22 0 0 1 1.93 1.24 11 11 0 0 1 .83.84 14 14 0 0 1 1.42 1.94q.32.53.6 1.08a24.67 24.67 0 0 1 1.71 4.52c.26.93.48 1.87.67 2.81.09.42.17.84.24 1.25s.14.83.2 1.24a2.91 2.91 0 0 0 .8-.16c1.47-.53 2.29-2.24 2.75-3.9.08-.28.15-.55.21-.82.23-1 .47-2.1.7-3.15a46.37 46.37 0 0 0 18.25 20.1c.28.83.55 1.65.79 2.49 1.31 4.53 1.94 9.27-.33 13.23-1.62 2.81-4.34 4.54-7.38 5.74a4.88 4.88 0 0 0-1.65-1.4c-2.63-1.32-5.79.28-8 2.25-4 3.62-7.26 8.81-12.52 10-1.9.44-4 .35-5.58 1.51a13 13 0 0 0-2.59 3.4 11.92 11.92 0 0 1-10.23 5.1c-1.83-.09-4-.51-5.25.83-.93 1-1 2.58-2 3.53-1.34 1.32-3.54.68-5.41.6-3.56-.15-6.87 2.15-8.9 5.1s-3 6.48-4 10v.06a7.15 7.15 0 0 0-.73.61 10.55 10.55 0 0 0-2.21 3.58 170.87 170.87 0 0 0-14.1 58.18 6 6 0 0 1-.64 2.82 13.87 13.87 0 0 1-1.47 1.6 5.61 5.61 0 0 0 .93 8 6.3 6.3 0 0 1 1.07-1.42c-.11.46-.21.91-.28 1.32a35.49 35.49 0 0 0-.11 8.8q1.42 20.84 2.87 41.65c.27 3.93.54 7.85.9 11.77q1.05 11.38 3 22.67c.06.34.13.69.22 1-8.15 2.59-15.4 7.27-18.45 15.08-1.06 2.7-1.54 5.64-2.84 8.23-1.43 2.84-3.78 5.11-5.34 7.89-2.69 4.78-2.81 10.64-1.83 16 1.89 10.45 7.54 19.79 15 27.39h-1a15.64 15.64 0 0 0-6.83 2.45c-15.78 9.22-24.8 29-21.51 47.06.65 3.53 1.78 7.11 4.14 9.8a15.51 15.51 0 0 0 7.28 4.46 25.29 25.29 0 0 0 5.37 1c12.3 1 24.21-4.7 36.54-5.18a98 98 0 0 1 12.23.57q8.91.74 17.85.94c9.69.23 15.14-2.35 21.32-9.59a26.1 26.1 0 0 0 3.77-5.94c5.26-.3 11.07-.76 15.27-1.1l.06.58c.23 2 .58 4.3 2.18 5.56a7.61 7.61 0 0 0 3 1.23c10.1 2.48 20.32 5 30.72 5a129.71 129.71 0 0 0 14.59-1.12l18.27-2.11a91 91 0 0 1 15.7 3.42c5.28 1.79 10.21 4.45 15.37 6.56 12 4.86 24.9 6.6 37.68 8.3 2.18.29 4.68.49 6.29-1 2.08-2 1.39-5.34.8-8.14-.24-1.15-.42-2.3-.56-3.46a175.25 175.25 0 0 1 25.24 8.76l1.43.63c.42 2.18 2.43 3.92 4.36 6.27a16 16 0 0 0 2.21 2.74 7.37 7.37 0 0 0 3.17 1.14 147.82 147.82 0 0 0 40.93 1.85 41.86 41.86 0 0 1 8.44-.29 36.58 36.58 0 0 1 6.1 1.37l11.57 3.32c8.53 2.44 17.26 4.91 26.11 4.36a33.4 33.4 0 0 0 5.33-.77c7-1.62 13.52-5.53 16.88-11.82 4.75-8.55 2.56-19.07 0-28.47Z",transform:"translate(-80.89 -103.35)",fill:"url(#a)"})),n||(n=O.createElement("path",{d:"M125.02 649.54c-2.11-4.8-4.11-10.32-2-15.12a12.85 12.85 0 0 1 6.65-6.25 32 32 0 0 1 9-2.22 125.61 125.61 0 0 1 29.26-.4c.71 5.62-.79 11.32-2.08 16.75-1.17 5-1.84 5.74-7 6-3.34.18-33.04 3.01-33.83 1.24Z",fill:"#fbbebe"})),i||(i=O.createElement("ellipse",{cx:214.07,cy:577.16,rx:143,ry:40,fill:"#464353"})),s||(s=O.createElement("ellipse",{cx:214.07,cy:577.16,rx:143,ry:40,opacity:.1})),h||(h=O.createElement("path",{d:"M239.71 366a44.49 44.49 0 0 1-22.94 20.84 57.58 57.58 0 0 1-18.21 3.46c-6.79.31-13.72-.13-20.1-2.45-8.56-3.1-15.67-9.44-21-16.83s-9-15.83-12.19-24.34c-1.68-4.43-3.28-9.15-2.49-13.83 5.15-1.17 10.79-2.89 13.45-7.46 2.27-3.92 1.64-8.62.33-13.1-.37-1.27-.8-2.53-1.23-3.74-1-2.9-4.45-8.41-2-10.89 1.53-1.57 7.94-2.37 10.15-3.39 6.81-3.14 13.09-7.68 20.57-9.17 6.47-1.29 13.15-.08 19.61 1.26a6.45 6.45 0 0 1 2.42.87 5.82 5.82 0 0 1 1.8 2.7c1.84 4.48 2.92 9.43 4.4 14.1 1.54 4.89 3.52 9.48 7.23 12.95 2.89 2.71 6.57 4.41 10.17 6.06l8.86 4.06a11.65 11.65 0 0 1 4.19 2.71 10.61 10.61 0 0 1 2 5.44 50.82 50.82 0 0 1-5.02 30.75Z",fill:"#fbbebe"})),m||(m=O.createElement("path",{d:"M212.24 304.03a46 46 0 0 1-55.67 8.26c-.37-1.27-.8-2.53-1.23-3.74-1-2.9-4.45-8.41-2-10.89 1.53-1.57 7.94-2.37 10.15-3.39 6.81-3.14 13.09-7.68 20.57-9.17 6.47-1.29 13.15-.08 19.61 1.26a6.45 6.45 0 0 1 2.42.87 5.82 5.82 0 0 1 1.8 2.7c1.79 4.48 2.87 9.43 4.35 14.1Z",opacity:.1})),d||(d=O.createElement("circle",{cx:179.07,cy:270.16,r:46,fill:"#fbbebe"})),o||(o=O.createElement("path",{d:"m319.22 419.45-3.78-22.9c-1.91-11.49-3.88-23.2-9.22-33.55-3.51-6.78-9.08-13.24-16.59-14.58a16.05 16.05 0 0 1-4.32-1c-2.2-1.06-3.4-3.44-5.09-5.2-4.36-4.52-11.46-4.59-17.3-6.89-5.16-2-9.38-5.85-14.08-8.79s-10.55-5-15.75-3.12c-.84 8.95-1.73 18.1-5.53 26.25a39.28 39.28 0 0 1-59.26 14.76c-8.91-6.71-14.62-17.06-17.28-27.89-.65-2.64-1.39-5.67-3.82-6.88-2.63-1.32-5.79.28-8 2.22-4 3.59-7.27 8.73-12.53 9.94-1.9.44-4 .35-5.58 1.5a12.7 12.7 0 0 0-2.6 3.37 12 12 0 0 1-10.23 5.06c-1.83-.09-4-.51-5.25.82-.93 1-1 2.56-2 3.49-1.35 1.31-3.54.67-5.42.6-3.56-.15-6.87 2.13-8.91 5s-3 6.42-4 9.86c10.93 24.34 20.93 48.71 31.86 73.05a6.23 6.23 0 0 1 .79 3 7.31 7.31 0 0 1-1.36 3c-5.36 8.61-5.19 19.44-4.6 29.56s1.31 20.81-3.21 29.88c-1.23 2.49-2.83 4.77-4 7.26-2.74 5.64-3.73 23.68-2.13 29.74h226.08c-4.31-11.85-2.67-35.63-1.77-48.21.63-8.8-1-17.59-1.7-26.39-1.53-17.97-.45-35.02-3.42-52.96Z",fill:"#6c63ff"})),f||(f=O.createElement("path",{d:"M65.36 445.65a35.4 35.4 0 0 0-.12 8.73l2.87 41.27c.27 3.89.54 7.77.9 11.65.69 7.53 1.72 15 3 22.46a4 4 0 0 0 4.1 3.89c12.65 2.68 25.72 2.57 38.63 1.84 19.7-1.1 39.37-3.61 59.1-3.18 5.08.11 11 0 14.08-4s1.29-10.47-2.73-13.7-9.48-4-14.64-4c-6.83-.07-13.66.9-20.47.5-6.25-.37-12.36-1.88-18.42-3.39l-17-4.23c.65-5.15 2.61-10 4.47-14.89 3.34-8.67 6.46-17.63 6.52-26.92s-3.44-19.06-11.05-24.38c-6.26-4.37-14.32-5.18-21.95-5-5.55.16-15.14-1.17-20.21 1-4.01 1.76-6.33 8.42-7.08 12.35Z",fill:"#fbbebe"})),p||(p=O.createElement("path",{d:"M330.79 540.01c3.33-1.27 7-.81 10.57-.33 11.49 1.57 23.15 3.18 33.8 7.77 5 2.14 9.76 5 13.14 9.21 3 3.79 4.75 8.43 6.41 13l3.84 10.52c1.46 4 2.94 8.08 3.35 12.33 1.2 12.59-7.41 24.46-18.24 31s-23.58 8.87-36 11.31-24.89 5.14-37.26 8a150 150 0 0 1-17.53 3.45c-13.24 1.5-27.08-.71-39.66 3.67-5 1.75-9.91 4.35-15.1 5.56a93.93 93.93 0 0 1-10.44 1.59l-23.81 2.72a129.89 129.89 0 0 1-14.6 1.12c-10.4 0-20.63-2.46-30.73-4.92a7.77 7.77 0 0 1-3-1.21c-1.6-1.26-1.95-3.49-2.18-5.51q-1.53-13.41-2.68-26.85c-.24-2.91-.42-6.06 1.17-8.51 2-3 5.9-3.94 9.46-4.52a246.88 246.88 0 0 1 45.68-3.17c5.81-5.81 15.39-5.84 23-9a68.39 68.39 0 0 0 8.11-4.41 106 106 0 0 1 44.53-14.07 41.45 41.45 0 0 0 9.11-1.3c5.89-1.83 11.26-6.81 17.31-5.59.75-2.07 1.27-4.84 3-6.26.86-.73 1.92-1.22 2.71-2 1.67-1.69 1.82-4.35 1.57-6.71s-.81-4.78-.2-7.08a9.79 9.79 0 0 1 1.11-2.47c3-5.18 7.53-7.84 13.56-7.34Z",fill:"#464353"})),E||(E=O.createElement("path",{d:"M330.79 540.01c3.33-1.27 7-.81 10.57-.33 11.49 1.57 23.15 3.18 33.8 7.77 5 2.14 9.76 5 13.14 9.21 3 3.79 4.75 8.43 6.41 13l3.84 10.52c1.46 4 2.94 8.08 3.35 12.33 1.2 12.59-7.41 24.46-18.24 31s-23.58 8.87-36 11.31-24.89 5.14-37.26 8a150 150 0 0 1-17.53 3.45c-13.24 1.5-27.08-.71-39.66 3.67-5 1.75-9.91 4.35-15.1 5.56a93.93 93.93 0 0 1-10.44 1.59l-23.81 2.72a129.89 129.89 0 0 1-14.6 1.12c-10.4 0-20.63-2.46-30.73-4.92a7.77 7.77 0 0 1-3-1.21c-1.6-1.26-1.95-3.49-2.18-5.51q-1.53-13.41-2.68-26.85c-.24-2.91-.42-6.06 1.17-8.51 2-3 5.9-3.94 9.46-4.52a246.88 246.88 0 0 1 45.68-3.17c5.81-5.81 15.39-5.84 23-9a68.39 68.39 0 0 0 8.11-4.41 106 106 0 0 1 44.53-14.07 41.45 41.45 0 0 0 9.11-1.3c5.89-1.83 11.26-6.81 17.31-5.59.75-2.07 1.27-4.84 3-6.26.86-.73 1.92-1.22 2.71-2 1.67-1.69 1.82-4.35 1.57-6.71s-.81-4.78-.2-7.08a9.79 9.79 0 0 1 1.11-2.47c3-5.18 7.53-7.84 13.56-7.34Z",opacity:.05})),y||(y=O.createElement("path",{d:"M134.22 655.72c-6.19 7.17-11.64 9.73-21.33 9.5q-8.94-.21-17.86-.93a100.2 100.2 0 0 0-12.24-.57c-12.34.48-24.25 6.13-36.56 5.14a25.92 25.92 0 0 1-5.37-1 15.63 15.63 0 0 1-7.29-4.42c-2.36-2.67-3.49-6.21-4.14-9.71-3.29-17.94 5.73-37.48 21.52-46.61a15.78 15.78 0 0 1 6.84-2.43 16.21 16.21 0 0 1 6.92 1.52l.15.06A52.33 52.33 0 0 1 82 617.71a9.66 9.66 0 0 0 2.62 2.11 9 9 0 0 0 3.09.58l13.14.83a31.14 31.14 0 0 1 6.6.91 52.46 52.46 0 0 1 6.94 3c7.07 3.16 14.91 4 22.55 5.22a3.37 3.37 0 0 1 2 .8 3.13 3.13 0 0 1 .62 1.3 25.51 25.51 0 0 1-5.34 23.26Z",fill:"#3f3d56"})),u||(u=O.createElement("path",{d:"M64.86 606.28a78.9 78.9 0 0 0-13.15 16.44 82.28 82.28 0 0 0-10.74 32.54 60.4 60.4 0 0 0-.11 12.61 15.63 15.63 0 0 1-7.29-4.42c-2.36-2.67-3.49-6.21-4.14-9.71-3.29-17.94 5.73-37.48 21.52-46.61a15.78 15.78 0 0 1 6.84-2.43 16.21 16.21 0 0 1 6.92 1.52Z",opacity:.1})),b||(b=O.createElement("path",{d:"M319.35 631.16c7.35-.2 15.6-.57 21 4.38 5.15 4.68 5.83 12.4 6.17 19.35l.39 8.07c.12 2.46.22 5-.77 7.28-1.76 4-6.59 5.93-11 5.7s-8.46-2.16-12.49-3.9a175.7 175.7 0 0 0-34-10.71q.57-8.37 1.9-16.66c.61-3.83.71-10.24 3.27-13.42 2.71-3.36 6.24-1.54 9.92-.92a79.63 79.63 0 0 0 15.61.83Z",fill:"#fbbebe"})),Z||(Z=O.createElement("path",{d:"M125.11 550.07c0 1-1.57 0-1.71-1.07-1.1-8.09-7.52-14.76-15-18s-16-3.41-24.1-2.64c-12.25 1.16-26 5.85-30.48 17.3-1.06 2.68-1.54 5.58-2.84 8.15-1.44 2.82-3.79 5.07-5.35 7.81-2.69 4.74-2.8 10.55-1.83 15.91 2.61 14.3 12.39 26.53 24.24 35s25.7 13.53 39.51 18.09a685.19 685.19 0 0 0 112 26.75c6.16.93 12.38 1.79 18.28 3.77 5.28 1.77 10.22 4.42 15.38 6.5 12 4.82 24.91 6.54 37.7 8.23 2.18.28 4.68.48 6.29-1 2.08-1.93 1.39-5.29.8-8.06a43.35 43.35 0 0 1 5.11-30.76c2.14-3.6 4.92-7.29 4.52-11.46-.48-4.86-5.32-8.3-10.14-9.08s-9.72.37-14.56 1c-1.67.22-3.49.36-4.95-.49a9.89 9.89 0 0 1-1.94-1.72 21.93 21.93 0 0 0-25.54-3.57c-1.79 1-4.5-1.23-6.36-2.07l-21.03-9.52c-24.16-10.93-48.44-21.91-74-28.83a15.54 15.54 0 0 1-5.7-2.37c-1.27-1-2.18-2.36-3.35-3.47-2.55-2.41-6.1-3.37-9.16-5.08s-6.49-5.89-5.79-9.32Z",fill:"#464353"})),M||(M=O.createElement("path",{d:"M449.32 680.76c-3.36 6.23-9.88 10.11-16.88 11.71a33.5 33.5 0 0 1-5.34.76c-8.85.55-17.59-1.9-26.12-4.32l-11.58-3.26a36.55 36.55 0 0 0-6.1-1.36 41.86 41.86 0 0 0-8.44.29 149.59 149.59 0 0 1-41-1.84 7.23 7.23 0 0 1-3.17-1.13 15.75 15.75 0 0 1-2.21-2.71c-3.15-3.79-6.54-6-2.81-11 2.15-2.9 6.14-4.35 7.81-7.68s.6-8.06-.39-11.5c-1.35-4.75-5.79-6.8-7.38-11.16-1.19-3.29.81-7.11 3.82-8.9s6.73-1.93 10.2-1.47 6.87 1.44 10.36 1.71c10.26.82 20.75-4.47 30.6-1.49 2.17.66 4.22 1.71 6.42 2.29a21.35 21.35 0 0 0 12.83-1.11c1.44-.54 2.85-1.19 4.25-1.83a34.23 34.23 0 0 1 8.55-3.09c9.61-1.65 18.52 5 25.77 11.49a36.44 36.44 0 0 1 6.55 7.1c2 3.12 3.06 6.75 4 10.33 2.65 9.25 4.84 19.67.26 28.17Z",fill:"#3f3d56"})),x||(x=O.createElement("path",{d:"M449.32 680.76c-3.36 6.23-9.88 10.11-16.88 11.71a32.69 32.69 0 0 0 3.55-17.16c-.6-9.51-4.78-18.47-10.11-26.37a93.4 93.4 0 0 0-11.14-13.57c-3.18-3.2-7.09-5.74-10.51-8.67a34.23 34.23 0 0 1 8.55-3.09c9.61-1.65 18.52 5 25.77 11.49a36.44 36.44 0 0 1 6.55 7.1c2 3.12 3.06 6.75 4 10.33 2.61 9.31 4.8 19.73.22 28.23Z",opacity:.1})),g||(g=O.createElement("path",{d:"M82.11 372.26a10.35 10.35 0 0 0-2.22 3.55 167.86 167.86 0 0 0-14.1 57.62 5.76 5.76 0 0 1-.65 2.79 12.21 12.21 0 0 1-1.47 1.59 5.52 5.52 0 0 0 .94 8c1.65-3.11 5.6-4.12 9.11-4.39 16.81-1.33 33.23 6.49 50.09 5.9-1.19-4.11-2.9-8.06-3.87-12.22-4.29-18.47 6.41-38.58-.15-56.37-1.31-3.56-3.5-7.06-6.95-8.62a18.51 18.51 0 0 0-4.45-1.18c-4.26-.77-12.74-4.06-16.86-2.74-1.52.49-2.12 1.92-3.38 2.78-1.91 1.23-4.45 1.68-6.04 3.29Z",fill:"#6c63ff"})),v||(v=O.createElement("rect",{x:117.57,y:408.66,width:223,height:142,rx:7.97,fill:"#3f3d56"})),w||(w=O.createElement("circle",{cx:228.57,cy:479.66,r:6,fill:"#fff"})),q||(q=O.createElement("path",{d:"M147.29 195.5c-3.36 2.43-5.66 5.92-8 9.27-4.31 6.19-9.19 12.37-16.08 15.82-2.61 1.31-5.59 2.3-7.32 4.58a12.34 12.34 0 0 0-1.95 5.13 101.65 101.65 0 0 0-2.06 19.6c0 3.28.14 6.66 1.59 9.64 1.37 2.8 3.84 5.17 4.35 8.22.39 2.38-.49 4.75-.8 7.14s.23 5.22 2.44 6.36a14.79 14.79 0 0 0 3.7.87c6.65 1.48 8.88 9.28 9.89 15.73 2.26-.13 3.28-2.72 3.75-4.83l6.93-30.81c.75-3.34 2-7.21 5.33-8.38 2.23-.77 4.67-.05 7 .15 9.15.75 16.89-6.32 25.84-8.27a33 33 0 0 1 8.71-.58c7.06.35 15.27 3.25 16.77 9.84.25 1.07.4 2.35 1.4 2.88s2.05.08 3.1 0c4.48-.45 7.12 4.59 8.41 8.71l4.7 15c.7 2.27 1.88 4.94 4.34 5.23 2.27.28 4.2-1.87 4.54-4s-.4-4.34-.89-6.48c-2.21-9.85 1.17-19.93 3.23-29.8s2.43-21.21-4.48-28.81c-2.51-2.75-5.81-4.8-8.15-7.7-2.18-2.72-3.41-6.06-5.67-8.73-6.25-7.37-22.28-13.06-32.11-14-11.23-1.22-29.43 1.63-38.51 8.22Z",fill:"#3f3d56"})),k||(k=O.createElement("g",{opacity:.1},O.createElement("path",{d:"M229.37 279.8c-2.46-.3-3.64-3-4.34-5.23q-2.35-7.51-4.7-15c-1.29-4.13-3.93-9.17-8.41-8.71-1.05.11-2.18.52-3.1 0s-1.15-1.81-1.4-2.88c-1.5-6.6-9.71-9.49-16.77-9.84a33.43 33.43 0 0 0-8.71.57c-8.95 2-16.69 9-25.84 8.27-2.36-.19-4.8-.91-7-.14-3.37 1.16-4.58 5-5.33 8.38l-6.93 30.8c-.47 2.12-1.49 4.71-3.75 4.83-1-6.44-3.24-14.24-9.89-15.72a15.72 15.72 0 0 1-3.7-.87 4.34 4.34 0 0 1-1.93-2.15c-.18.93-.39 1.86-.51 2.79-.3 2.38.23 5.22 2.44 6.36a14.79 14.79 0 0 0 3.7.87c6.65 1.48 8.88 9.28 9.89 15.73 2.26-.13 3.28-2.72 3.75-4.83l6.93-30.81c.75-3.34 2-7.21 5.33-8.38 2.23-.77 4.67-.05 7 .15 9.15.75 16.89-6.32 25.84-8.27a33 33 0 0 1 8.71-.58c7.06.35 15.27 3.25 16.77 9.84.25 1.07.4 2.35 1.4 2.88s2.05.08 3.1 0c4.48-.45 7.12 4.59 8.41 8.71q2.34 7.51 4.7 15c.7 2.27 1.88 4.94 4.34 5.23 2.27.28 4.2-1.87 4.54-4a13.58 13.58 0 0 0-.6-5.31 4.13 4.13 0 0 1-3.94 2.31ZM117.83 260.76c-.51-3.05-3-5.42-4.35-8.22a16.45 16.45 0 0 1-1.48-6c0 1.12-.1 2.24-.11 3.37 0 3.28.14 6.66 1.59 9.64 1.11 2.27 2.94 4.27 3.86 6.58a15.06 15.06 0 0 0 .49-5.37ZM236.25 239.48c-1.82 8.72-4.66 17.6-3.78 26.34.57-6.45 2.45-12.94 3.78-19.34a51 51 0 0 0 1.16-14.83 61.14 61.14 0 0 1-1.16 7.83Z"}))),A||(A=O.createElement("g",{opacity:.8},O.createElement("path",{fill:"none",stroke:"#3f3d56",strokeMiterlimit:10,strokeWidth:3,d:"M330.04 290.49H955.1M385.57 290.48s29.89 4.15 14.41-27.92 42-26 42-26M584.64 290.48s29.89-4.14 14.41 27.93 42 26 42 26M871.27 290.48s-29.9-4.14-14.41 27.93-42 26-42 26M814.86 344.4H649.93"}),O.createElement("circle",{cx:330.04,cy:290.49,r:18.25,fill:"#6c63ff"}),O.createElement("circle",{cx:442.29,cy:236.3,r:18.25,fill:"#3acc6c"}),O.createElement("circle",{cx:442.29,cy:290.49,r:18.25,fill:"#6c63ff"}),O.createElement("circle",{cx:514.73,cy:290.49,r:18.25,fill:"#6c63ff"}),O.createElement("circle",{cx:641.35,cy:344.13,r:18.25,fill:"#ff6584"}),O.createElement("circle",{cx:737.03,cy:344.13,r:18.25,fill:"#ff6584"}),O.createElement("circle",{cx:732.04,cy:290.49,r:18.25,fill:"#6c63ff"}),O.createElement("circle",{cx:950.48,cy:290.49,r:18.25,fill:"#6c63ff"}),O.createElement("circle",{cx:861.12,cy:290.49,r:18.25,fill:"#6c63ff"}),O.createElement("path",{fill:"#6c63ff",d:"M299.38 122.66h61.23v42.2h-61.23z"}),O.createElement("path",{fill:"#3acc6c",d:"M411.9 122.66h61.23v42.2H411.9z"}),O.createElement("path",{fill:"#ff6584",d:"M610.48 122.66h61.23v42.2h-61.23z"}))),B||(B=O.createElement("path",{d:"M86.35 299.36s-74.77-31.44-84.57 25.29c0 0-5.11 8.84 2 16.14 0 0 1.53-3.92 8.75.13a37.17 37.17 0 0 0 8.16 3.32 18.36 18.36 0 0 0 11.62-.62s24.59-1.33 45.27-33.5c0 0 8.87-5.48 9.31-7.54l-14.82 1s1.14 10.85-5 17.36c0 0 5.44-16.84 2.83-17.31-.53-.1-7.83.86-7.83.86s1.89 18.87-8 28.63c0 0 9.18-19.19 5.19-28.29l-10.94 2.11s3 19.85-7.82 31.39c0 0 8.9-20.4 5.46-30.76l-10.47 3.52s2.52 19.41-6.53 29c0 0 7.9-24.61 4.18-28 0 0-9.42 3.82-11.43 6 0 0 1.49 14-4.26 19.05 0 0 3.53-17 1.78-17.7 0 0-10.94 8.24-14.28 15.35 0 0 4.16-10.86 12.91-17 0 0-7.35-1.24-13 1.83 0 0 3.78-7.21 15.65-3.79 0 0 8.79-6.09 10.55-6 0 0-11.23-5-19.34-4.38 0 0 8.7-5 22.08 3.35l10.45-3.77s-14.5-7.43-21.76-7.4c0 0 9.66-3.74 24.47 6.66l10.7-2.18s-12-7.35-20.09-9.06c0 0 9.7-1.54 23.18 8.55l7.31-.61s-8.85-5.22-11.53-6.49-2.56-2.09-2.56-2.09a34.89 34.89 0 0 1 17.14 8.18s15.18-.3 15.24-1.23ZM83.59 243s-26.48-61.27-64.63-33.17c0 0-8.06 2.34-8 10.7 0 0 3.14-1.46 5.13 5.07a30.1 30.1 0 0 0 3 6.61 15 15 0 0 0 7.25 6.25s15.37 13.22 46 5.89c0 0 8.4 1.79 9.83.83l-9.36-7.87s-5.51 7.1-12.89 7.44c0 0 12.83-6.9 11.55-8.67-.26-.36-5.15-3.94-5.15-3.94s-9.62 12.28-21 12.47c0 0 16.39-6.18 19.2-13.85l-7.7-5s-9.71 13.51-22.71 14.21c0 0 16.91-7.05 20.77-15.17l-8.23-3.87s-9.56 13-20.37 13.49c0 0 18.72-10.12 18.43-14.25 0 0-7.77-3.1-10.24-2.92 0 0-7.07 9.15-13.38 8.89 0 0 11.79-8.09 11.15-9.5 0 0-11.2-1.34-17.23 1 0 0 8.66-4.08 17.35-2.74 0 0-3.66-4.93-8.75-6.3 0 0 6.36-2.13 11.46 6.65 0 0 8.68 1.4 9.7 2.44 0 0-3.81-9.39-9-13.62 0 0 8 2 11.2 14.57l8.36 3.71s-4.38-12.68-8.72-16.79c0 0 7.87 3.28 10.75 17.9l7.6 4.79s-2.94-11.2-6.77-16.83c0 0 6.64 4.62 8.89 18.29l4.7 3.8s-2.29-8.14-3.16-10.42-.33-2.7-.33-2.7a28.65 28.65 0 0 1 5.49 14.68s9.24 8.44 9.81 7.93Z",fill:"#6c63ff",opacity:.1})))}},6566:(e,a,t)=>{t.d(a,{Z:()=>m});var c=t(7462),l=t(7294),r=t(6010);const n="features_xdhU",i="featureSvg__8YW";var s=[{title:"Gas-Grain Chemistry",Svg:t(7156).Z,description:l.createElement(l.Fragment,null,"Detailed, consistent treatment of chemistry across the gas phase and both the surface and the bulk of the ice mantles around dust grains.")},{title:"Modular Physics",Svg:t(4503).Z,description:l.createElement(l.Fragment,null,"Flexible, interchangeable modules to model all kinds of astrophysical objects such as molecular clouds, protostellar cores and C/J-type shocks.")},{title:"Active Development",Svg:t(8538).Z,description:l.createElement(l.Fragment,null,"Teams at UCL and Leiden Observatory are working with international collaborators to extend and improve UCLCHEM. Check our ",l.createElement("a",{href:"./blog/index.html"},"blog")," for recent updates.")}];function h(e){var a=e.Svg,t=e.title,c=e.description;return l.createElement("div",{className:(0,r.Z)("col col--4")},l.createElement("div",{className:"text--center"},l.createElement(a,{className:i,alt:t})),l.createElement("div",{className:"text--center padding-horiz--md"},l.createElement("h3",null,t),l.createElement("p",null,c)))}function m(){return l.createElement("section",{className:n},l.createElement("div",{className:"container"},l.createElement("div",{className:"row"},s.map((function(e,a){return l.createElement(h,(0,c.Z)({key:a},e))})))))}},9235:(e,a,t)=>{t.r(a),t.d(a,{default:()=>o});var c=t(7294),l=t(6010),r=t(2600),n=t(9960),i=t(2263),s=t(1207);t(6566);function h(){return c.createElement("div",{className:"mycontainer"},c.createElement("h2",null,"Authors, Contributors and Users"),c.createElement("p",null,"Main author: Thomas G. Bisbas (@tbisbas)."),c.createElement("p",null,"Contributors: Serena Viti, Michael J. Barlow, Jeremy Yates, Tom Bell, Brandt Gaches"),c.createElement("p",null,"You are free to download and use the code for your work provided that you will cite the paper by ",c.createElement("a",{href:"http://adsabs.harvard.edu/abs/2012MNRAS.427.2100B",target:"_blank"},"Bisbas et al., 2012, MNRAS, 427, 2100")),c.createElement("p",null," A number of papers have been using 3D-PDR for studying Photodissociation Regions in 1D and 3D:"),c.createElement("ul",null,c.createElement("li",null,c.createElement("a",{href:"https://ui.adsabs.harvard.edu/abs/2021arXiv211006958G/abstract",target:"_blank"}," Gaches B.A.L., Bisbas T. G., Bialy S. (2022) ")),c.createElement("li",null," ",c.createElement("a",{href:"https://ui.adsabs.harvard.edu/abs/2021MNRAS.502.2701B/abstract",target:"_blank"},"Bisbas T.G., Tan J.C., Tanaka K.E.I (2021)")),c.createElement("li",null," ",c.createElement("a",{href:"https://ui.adsabs.harvard.edu/abs/2020PASJ..tmp..187L/abstract",target:"_blank"},"Lim W., Nakamura F., Wu B., Bisbas T.G. et al. (2020)")),c.createElement("li",null," ",c.createElement("a",{href:"https://ui.adsabs.harvard.edu/abs/2019ApJ...878..105G/abstract",target:"_blank"},"Gaches B.A.L., Offner S.S.R., Bisbas T.G. (2019a)")),c.createElement("li",null," ",c.createElement("a",{href:"https://ui.adsabs.harvard.edu/abs/2019arXiv190806999G/abstract",target:"_blank"},"Gaches B.A.L., Offner S.S.R., Bisbas T.G. (2019b)")),c.createElement("li",null," ",c.createElement("a",{href:"http://adsabs.harvard.edu/abs/2019MNRAS.485.3097B",target:"_blank"},"Bisbas T.G., Schruba A., van Dishoeck E.F. (2019)")),c.createElement("li",null," ",c.createElement("a",{href:"http://adsabs.harvard.edu/abs/2018MNRAS.479.1154B",target:"_blank"},"Banerji M., Jones G.C., Wang J., et al. (2018)")),c.createElement("li",null," ",c.createElement("a",{href:"http://adsabs.harvard.edu/abs/2018MNRAS.478.1716P",target:"_blank"},"Papadopoulos P.P, Bisbas T.G., Zhang Z-Y (2018)")),c.createElement("li",null," ",c.createElement("a",{href:"http://adsabs.harvard.edu/abs/2018MNRAS.478L..54B",target:"_blank"},"Bisbas T.G., Tan J.C., Csengeri T., et al., (2018)")),c.createElement("li",null," ",c.createElement("a",{href:"http://adsabs.harvard.edu/abs/2017ApJ...850...23B",target:"_blank"},"Bisbas T.G., Tanaka, K.E.I., Tan, J.C. et al., (2017)")),c.createElement("li",null," ",c.createElement("a",{href:"http://adsabs.harvard.edu/abs/2017ApJ...839...90B",target:"_blank"},"Bisbas T.G., van Dishoeck E.W., Papadopoulos P.P. et al., (2017)")),c.createElement("li",null," ",c.createElement("a",{href:"http://adsabs.harvard.edu/abs/2017MNRAS.466.2825B",target:"_blank"},"Bothwell M.S., Aguirre J.E., Aravena M., et al., (2017)")),c.createElement("li",null," ",c.createElement("a",{href:"http://adsabs.harvard.edu/abs/2017MNRAS.464.3315A",target:"_blank"},"Accurso G., Saintoge A., Bisbas T.G. and Viti S., (2016)")),c.createElement("li",null," ",c.createElement("a",{href:"http://adsabs.harvard.edu/abs/2016MNRAS.457.3593F",target:"_blank"},"Facchini S., Clarke C. and Bisbas T.G. (2016)")),c.createElement("li",null," ",c.createElement("a",{href:"http://adsabs.harvard.edu/abs/2015MNRAS.454.2828B",target:"_blank"},"Bisbas T.G., Haworth T.J., Barlow M.J., et al., (2015)")),c.createElement("li",null," ",c.createElement("a",{href:"http://adsabs.harvard.edu/abs/2015ApJ...803...37B",target:"_blank"},"Bisbas T.G., Papadopoulos P.P. and Viti S., (2015)")),c.createElement("li",null," ",c.createElement("a",{href:"http://adsabs.harvard.edu/abs/2015ApJ...799..235G",target:"_blank"},"Gaches B.A.L., Offner S.S.R., Rosolowsky E.W. and Bisbas T.G., (2015)")),c.createElement("li",null," ",c.createElement("a",{href:"http://adsabs.harvard.edu/abs/2014MNRAS.440L..81O",target:"_blank"},"Offner S.S.R., Bisbas T.G., Bell T.A. and Viti S. (2014)")),c.createElement("li",null," ",c.createElement("a",{href:"http://adsabs.harvard.edu/abs/2014MNRAS.443..111B",target:"_blank"},"Bisbas T.G., Bell T.A., Viti S., et al., (2014)")),c.createElement("li",null," ",c.createElement("a",{href:"http://adsabs.harvard.edu/abs/2013ApJ...770...49O",target:"_blank"},"Offner S.S.R., Bisbas T.G., Viti S. and Bell T.A. (2013)"))))}function m(){(0,i.Z)().siteConfig;return c.createElement("header",{className:(0,l.Z)("hero hero--primary",s.Z.heroBanner)},c.createElement("div",{className:"container"},c.createElement("h1",{className:"hero__title"},"3D-PDR"),c.createElement("div",{className:"mybuttons"},c.createElement(n.Z,{className:"mybuttons button button--secondary button--lg",to:"https://github.com/uclchem/3D-PDR"},"View on GitHub"),c.createElement(n.Z,{className:"mybuttons button button--secondary button--lg",to:"https://github.com/uclchem/3D-PDR/zipball/master"},"Get a Zip"),c.createElement(n.Z,{className:"mybuttons button button--secondary button--lg",to:"https://github.com/uclchem/3D-PDR/tarball/master"},"Get a Tarball"))))}function d(){return c.createElement("div",{className:"mycontainer"},c.createElement("p",null,"3D-PDR is a three-dimensional photodissociation region code written in Fortran. It uses the Sundials package (written in C) to solve the set of ordinary differential equations and it is the successor of UCL_PDR, a one-dimensional PDR code written at UCL. Using the HEALpix ray-tracing scheme, 3D-PDR solves a three-dimensional escape probability routine and evaluates the attenuation of the far-ultraviolet radiation in the PDR and the propagation of FIR/submm emission lines out of the PDR."),c.createElement("p",null,"The code is parallelized (OpenMP) and can be applied to 1D and 3D problems. The GitHub package includes: the 3D-PDR code, three different chemical networks (33, 58, and 128 species) and molecular data, the Sundials solver, and a set of various 1D uniform density clouds and a uniform density spherical distribution to test the 3D version of the code. To `make' 3D-PDR, you will first need to install the Sundials package and link 3D-PDR with the ODE solver. Please see the ",c.createElement("a",{href:"https://uclchem.github.io/3DPDR_manual.pdf"}," manual ")," for instructions on how to do this step-by-step."),c.createElement("p",null,"(Update: 23/04/2019) The file [3dpdr_cr.tar] that can be found in the main tarball, contains a totally new version of 3D-PDR treating cosmic-ray sources. This version was developed by Brandt Gaches [email: gaches .at. ph1.uni-koeln.de] and is presented in Gaches et al. (2019a). The tarball contains a short additional manual. Please contact Brandt Gaches for any question regarding this version."),c.createElement("p",null,"3D-PDR works with the gfortran version 4.8.4 and the ifort version 14.0.4. Later compiler versions may require adjustments in the code."))}function o(){var e=(0,i.Z)().siteConfig;return c.createElement(r.Z,{title:"3D-PDR - "+e.title,description:"Description will go into a meta tag in "},c.createElement(m,null),c.createElement(d,null),c.createElement(h,null))}},1207:(e,a,t)=>{t.d(a,{Z:()=>c});const c={heroBanner:"heroBanner_qdFl",buttons:"buttons_AeoN"}}}]); \ No newline at end of file +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6995],{4503:(e,a,t)=>{t.d(a,{Z:()=>Xe});var c,l,r,n,i,s,h,m,d,o,f,p,E,y,u,b,Z,M,x,g,v,w,q,k,A,B,O,S,D,P,G,R,T,N,_,C,j,L,J,I,H,U,F,V,W,z,Y,K,X,Q,$,ee,ae,te,ce,le,re,ne,ie,se,he,me,de,oe,fe,pe,Ee,ye,ue,be,Ze,Me,xe,ge,ve,we,qe,ke,Ae,Be,Oe,Se,De,Pe,Ge,Re,Te,Ne,_e,Ce,je,Le,Je,Ie,He,Ue,Fe,Ve,We=t(7294),ze=["title","titleId"];function Ye(){return Ye=Object.assign?Object.assign.bind():function(e){for(var a=1;a=0||(l[t]=e[t]);return l}(e,a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(c=0;c=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(l[t]=e[t])}return l}const Xe=function(e){var a=e.title,t=e.titleId,Xe=Ke(e,ze);return We.createElement("svg",Ye({"data-name":"Layer 1",xmlns:"http://www.w3.org/2000/svg",width:1100,height:806.74,viewBox:"0 0 1100 806.74","aria-labelledby":t},Xe),c||(c=We.createElement("defs",null,We.createElement("linearGradient",{id:"a",x1:459.23,y1:847.99,x2:459.23,y2:385.75,gradientTransform:"translate(250.84)",gradientUnits:"userSpaceOnUse"},We.createElement("stop",{offset:0,stopColor:"gray",stopOpacity:.25}),We.createElement("stop",{offset:.54,stopColor:"gray",stopOpacity:.12}),We.createElement("stop",{offset:1,stopColor:"gray",stopOpacity:.1})))),void 0===a?We.createElement("title",{id:t},"operating system"):a?We.createElement("title",{id:t},a):null,l||(l=We.createElement("ellipse",{cx:629.72,cy:780.56,rx:122.56,ry:26.18,fill:"#604687",opacity:.1})),r||(r=We.createElement("path",{d:"M1070.55 683.84c-24.35 20.2-59 28.56-92.51 33.84l-5.64.86c-58.57 8.74-118.32 10.52-177.79 12.28-165.87 4.91-332.17 9.81-497.6-1.51-73.16-5-148.13-13.76-212.25-43.7l-1.67-.79c-.83-.39-1.66-.78-2.49-1.19A224.11 224.11 0 0 1 48 664.54c-18.31-13.06-33.43-29-41.42-47.91-12.52-29.66-5.9-63 8.4-92s35.8-55.12 54.34-82.43c5.44-8 10.6-16.3 15.4-24.81 30-53.37 44.88-115.13 13.43-166.56a228.58 228.58 0 0 0-13.43-19c-7.67-10-15.47-20-20.74-31.07-12.29-25.76-9.65-54.73-5.17-82.25 6-36.59 17.05-76 51.38-98.86 35.67-23.74 86.3-22.54 130.57-14 68.83 13.19 132.36 40.8 196.49 65.7s131.35 47.58 201.86 50.02c62.26 2.17 134.89-14 176.23-56.08 40.15-40.85 115.6-43.94 170-19.27 51.91 23.54 85.48 73.36 83 123.12-3.16 62.1-54.93 111.83-95.9 164.7-6.81 8.79-13.33 17.68-19.28 26.72-19.42 29.53-33.15 65-19.78 96.88 7.5 17.85 21.81 31.47 39.06 43.36 38.65 26.63 92 44.55 116 81.83 20.67 32.16 13.01 75.56-17.89 101.21Z",fill:"#604687",opacity:.1})),n||(n=We.createElement("ellipse",{cx:972.5,cy:704.85,rx:57.01,ry:10.96,fill:"#604687"})),i||(i=We.createElement("ellipse",{cx:971.55,cy:700.19,rx:6.64,ry:8.69,fill:"#3f3d56"})),s||(s=We.createElement("ellipse",{cx:971.55,cy:689.57,rx:6.64,ry:8.69,fill:"#3f3d56"})),h||(h=We.createElement("ellipse",{cx:971.55,cy:678.94,rx:6.64,ry:8.69,fill:"#3f3d56"})),m||(m=We.createElement("ellipse",{cx:971.55,cy:668.32,rx:6.64,ry:8.69,fill:"#3f3d56"})),d||(d=We.createElement("ellipse",{cx:971.55,cy:657.7,rx:6.64,ry:8.69,fill:"#3f3d56"})),o||(o=We.createElement("ellipse",{cx:971.55,cy:647.08,rx:6.64,ry:8.69,fill:"#3f3d56"})),f||(f=We.createElement("ellipse",{cx:971.55,cy:636.46,rx:6.64,ry:8.69,fill:"#3f3d56"})),p||(p=We.createElement("path",{d:"M996.4 563.78a31 31 0 0 0 2.47-3.64l-17.44-2.86 18.86.14a31.78 31.78 0 0 0 .61-25.2l-25.31 13.15 23.34-17.15a31.8 31.8 0 1 0-52.51 35.58 31.55 31.55 0 0 0-3.63 5.8l22.64 11.77-24.14-8.1a31.79 31.79 0 0 0 5.13 29.86 31.8 31.8 0 1 0 50 0 31.78 31.78 0 0 0 0-39.32Z",fill:"#604687"})),E||(E=We.createElement("path",{d:"M939.61 583.44a31.68 31.68 0 0 0 6.81 19.66 31.8 31.8 0 1 0 50 0c4.24-5.41-56.81-23.23-56.81-19.66Z",opacity:.1})),y||(y=We.createElement("path",{d:"M134.73 673.91c0 5.59-21.81 10.21-50 10.87h-1.67c-.83-.39-1.66-.78-2.49-1.19A224.11 224.11 0 0 1 48 664.54c6.85-.8 14.64-1.34 23-1.52h1.13c1.82 0 3.67-.06 5.54-.06h7.05c28.2.73 50.01 5.41 50.01 10.95Z",fill:"#604687"})),u||(u=We.createElement("ellipse",{cx:76.76,cy:669.25,rx:6.64,ry:8.69,fill:"#3f3d56"})),b||(b=We.createElement("ellipse",{cx:76.76,cy:658.63,rx:6.64,ry:8.69,fill:"#3f3d56"})),Z||(Z=We.createElement("ellipse",{cx:76.76,cy:648.01,rx:6.64,ry:8.69,fill:"#3f3d56"})),M||(M=We.createElement("ellipse",{cx:76.76,cy:637.39,rx:6.64,ry:8.69,fill:"#3f3d56"})),x||(x=We.createElement("ellipse",{cx:76.76,cy:626.77,rx:6.64,ry:8.69,fill:"#3f3d56"})),g||(g=We.createElement("ellipse",{cx:76.76,cy:616.15,rx:6.64,ry:8.69,fill:"#3f3d56"})),v||(v=We.createElement("ellipse",{cx:76.76,cy:605.52,rx:6.64,ry:8.69,fill:"#3f3d56"})),w||(w=We.createElement("path",{d:"M101.61 532.84a32.28 32.28 0 0 0 2.48-3.63l-17.45-2.84 18.87.14a31.8 31.8 0 0 0 .6-25.19l-25.3 13.13 23.34-17.16a31.8 31.8 0 1 0-52.52 35.58 32.45 32.45 0 0 0-3.63 5.8l22.64 11.7-24.14-8.07a31.87 31.87 0 0 0 5.13 29.86 31.8 31.8 0 1 0 50 0 31.78 31.78 0 0 0 0-39.32Z",fill:"#604687"})),q||(q=We.createElement("path",{d:"M44.83 552.5a31.67 31.67 0 0 0 6.8 19.66 31.8 31.8 0 1 0 50 0c4.24-5.41-56.8-23.23-56.8-19.66Z",opacity:.1})),k||(k=We.createElement("g",{opacity:.2},We.createElement("path",{d:"M305.84 555.29c0 .94-.1 1.86-.2 2.76q-11.64-4.68-22.92-9.93a18.59 18.59 0 0 1-10.6-5.17c-2.19-1.1-4.37-2.24-6.54-3.39a26.82 26.82 0 0 1 1.66-3c4.2-6.66 10.6-10.83 17.65-10.6s13.15 4.78 16.93 11.66a34.37 34.37 0 0 1 4.02 17.67Z",fill:"#3f3d56"}),We.createElement("path",{d:"M307 520.37a34.56 34.56 0 0 1-5.13 17.32c-4.21 6.64-10.6 10.81-17.65 10.58-.49 0-1-.06-1.45-.1a18.59 18.59 0 0 1-10.6-5.17 25.27 25.27 0 0 1-4.88-6.37 35.82 35.82 0 0 1 1.1-35c4.21-6.66 10.6-10.83 17.65-10.6s13.15 4.78 16.93 11.66a34.47 34.47 0 0 1 4.03 17.68Z",fill:"#3f3d56"}),We.createElement("ellipse",{cx:336.18,cy:531.28,rx:28.63,ry:21.87,transform:"rotate(-88.19 287.148 533.775)",fill:"#3f3d56"}),We.createElement("ellipse",{cx:337.29,cy:496.31,rx:28.63,ry:21.87,transform:"rotate(-88.19 288.252 498.807)",fill:"#3f3d56"}),We.createElement("ellipse",{cx:338.39,cy:461.34,rx:28.63,ry:21.87,transform:"rotate(-88.19 289.351 463.833)",fill:"#3f3d56"}),We.createElement("path",{d:"M214.12 172.83a105.78 105.78 0 0 1-7.76-12.24l57.72-7.62-62.08-1.5a104.92 104.92 0 0 1 .62-83l82 45.85-75.15-58.95a104.75 104.75 0 1 1 169.22 122.65A105.13 105.13 0 0 1 390 197.48l-75.77 36.38 80.33-24.17a104.85 104.85 0 0 1-20 97.78A104.75 104.75 0 1 1 210 302.28a104.73 104.73 0 0 1 4.08-129.45Z",fill:"#604687"}),We.createElement("path",{d:"M399.05 243.45a104.29 104.29 0 0 1-24.44 64A104.75 104.75 0 1 1 210 302.28c-13.43-18.25 189.42-70.58 189.05-58.83Z",opacity:.1}))),A||(A=We.createElement("g",{opacity:.2},We.createElement("path",{d:"M798.18 480.51c0 .67-.07 1.32-.14 2q-8.31-3.29-16.31-7.06a13.31 13.31 0 0 1-7.55-3.68c-1.55-.79-3.11-1.6-4.65-2.41a19.78 19.78 0 0 1 1.18-2.13c3-4.74 7.54-7.7 12.56-7.54s9.36 3.4 12.05 8.3a24.5 24.5 0 0 1 2.86 12.52Z",fill:"#3f3d56"}),We.createElement("path",{d:"M799 455.62a24.56 24.56 0 0 1-3.65 12.33c-3 4.72-7.54 7.69-12.56 7.53l-1-.07a13.31 13.31 0 0 1-7.55-3.68 18.32 18.32 0 0 1-3.47-4.54 25.51 25.51 0 0 1 .78-24.88c3-4.74 7.55-7.71 12.56-7.55s9.37 3.4 12.05 8.3a24.55 24.55 0 0 1 2.84 12.56Z",fill:"#3f3d56"}),We.createElement("ellipse",{cx:834.19,cy:476.87,rx:20.37,ry:15.56,transform:"rotate(-88.19 785.171 479.34)",fill:"#3f3d56"}),We.createElement("ellipse",{cx:834.98,cy:451.98,rx:20.37,ry:15.56,transform:"rotate(-88.19 785.957 454.46)",fill:"#3f3d56"}),We.createElement("ellipse",{cx:835.76,cy:427.1,rx:20.37,ry:15.56,transform:"rotate(-88.19 786.738 429.573)",fill:"#3f3d56"}),We.createElement("path",{d:"M732.91 208.37a73.57 73.57 0 0 1-5.52-8.71l41.08-5.42-44.21-1.07a74.67 74.67 0 0 1 .43-59.07L783 166.69l-53.4-41.93A74.55 74.55 0 1 1 850 212.02a74.71 74.71 0 0 1 8.06 13.86l-53.89 25.89 57.17-17.2a74.55 74.55 0 0 1-14.22 69.58A74.54 74.54 0 1 1 730 300.46a74.55 74.55 0 0 1 2.91-92.09Z",fill:"#604687"}),We.createElement("path",{d:"M864.52 258.59a74.2 74.2 0 0 1-17.4 45.56A74.54 74.54 0 1 1 730 300.46c-9.58-13 134.78-50.23 134.52-41.87Z",opacity:.1}))),B||(B=We.createElement("g",{opacity:.2},We.createElement("path",{d:"M585 402.46c0 .67-.08 1.32-.15 2q-8.31-3.29-16.31-7.06a13.28 13.28 0 0 1-7.54-3.68c-1.56-.79-3.11-1.6-4.65-2.41a19 19 0 0 1 1.17-2.13c3-4.73 7.55-7.7 12.56-7.54s9.36 3.4 12.05 8.3a24.5 24.5 0 0 1 2.87 12.52Z",fill:"#3f3d56"}),We.createElement("path",{d:"M585.74 377.57a24.56 24.56 0 0 1-3.65 12.33c-3 4.72-7.54 7.69-12.56 7.53-.35 0-.68 0-1-.07a13.28 13.28 0 0 1-7.54-3.68 18.11 18.11 0 0 1-3.48-4.54 25.48 25.48 0 0 1 .79-24.88c3-4.74 7.54-7.71 12.56-7.55s9.36 3.4 12 8.3a24.54 24.54 0 0 1 2.88 12.56Z",fill:"#3f3d56"}),We.createElement("ellipse",{cx:620.97,cy:398.82,rx:20.37,ry:15.56,transform:"rotate(-88.3 571.11 401.206)",fill:"#3f3d56"}),We.createElement("ellipse",{cx:621.75,cy:373.93,rx:20.37,ry:15.56,transform:"rotate(-88.19 572.718 376.417)",fill:"#3f3d56"}),We.createElement("ellipse",{cx:622.54,cy:349.05,rx:20.37,ry:15.56,transform:"rotate(-88.19 573.504 351.525)",fill:"#3f3d56"}),We.createElement("path",{d:"M519.68 130.28a74.87 74.87 0 0 1-5.52-8.71l41.08-5.42-44.24-1.07a74.62 74.62 0 0 1 .44-59.07l58.33 32.63-53.39-41.93a74.54 74.54 0 1 1 120.42 87.26 74.76 74.76 0 0 1 8.07 13.86L591 173.72l57.16-17.2a74.55 74.55 0 0 1-14.22 69.58 74.54 74.54 0 1 1-117.16-3.73 74.57 74.57 0 0 1 2.9-92.13Z",fill:"#604687"}),We.createElement("path",{d:"M651.29 180.54a74.2 74.2 0 0 1-17.4 45.56 74.54 74.54 0 1 1-117.11-3.73c-9.59-12.95 134.77-50.19 134.51-41.83Z",opacity:.1}))),O||(O=We.createElement("path",{d:"M972.4 500.81v217.73c-58.57 8.74-118.32 10.52-177.79 12.28-165.87 4.91-332.17 9.81-497.6-1.51-73.16-5-148.13-13.76-212.25-43.7V417.37c.24-185-.76 0 0-185.56v-66.59a14.1 14.1 0 0 1 14.1-14.1H958.3a14.1 14.1 0 0 1 14.1 14.1v168.63c.6 166.52-.4.52 0 166.96Z",fill:"#3f3d56"})),S||(S=We.createElement("rect",{x:344.15,y:217.75,width:368.86,height:28.56,rx:5.22,fill:"#604687",opacity:.3})),D||(D=We.createElement("path",{d:"M687.94 233.22h-.61l-.23-.19a5.1 5.1 0 0 0 1.19-3.25 4.94 4.94 0 1 0-4.92 5 5.09 5.09 0 0 0 3.24-1.18l.22.19v.58l3.81 3.82 1.14-1.14Zm-4.57 0a3.44 3.44 0 1 1 3.43-3.44 3.42 3.42 0 0 1-3.43 3.44Z",fill:"#444053"})),P||(P=We.createElement("rect",{x:222.84,y:493.2,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),G||(G=We.createElement("rect",{x:222.84,y:522.95,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),R||(R=We.createElement("rect",{x:222.84,y:508.08,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),T||(T=We.createElement("path",{d:"M164.57 522.58a5.74 5.74 0 0 0-5.8 5.69 3.88 3.88 0 0 1-3.87 3.79 10 10 0 0 0 7.73 3.8 7.67 7.67 0 0 0 7.75-7.59 5.75 5.75 0 0 0-5.81-5.69Zm26.53-17.76-2.6-2.55a1.94 1.94 0 0 0-2.72 0l-17.34 17 5.32 5.22 17.32-17a1.86 1.86 0 0 0 .02-2.67Z",fill:"#604687"})),N||(N=We.createElement("rect",{x:222.84,y:345.66,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),_||(_=We.createElement("rect",{x:222.84,y:375.41,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),C||(C=We.createElement("rect",{x:222.84,y:360.53,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),j||(j=We.createElement("path",{d:"M191.18 378.15 176 362.87a10.82 10.82 0 0 0-2.51-11.58 11 11 0 0 0-12.35-2.18l7.18 7.22-5 5-7.32-7.18a10.86 10.86 0 0 0 2.17 12.41 10.66 10.66 0 0 0 11.51 2.52l15.15 15.29a1.61 1.61 0 0 0 2.34 0l3.84-3.86a1.51 1.51 0 0 0 .17-2.35Z",fill:"#604687"})),L||(L=We.createElement("rect",{x:509.6,y:493.2,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),J||(J=We.createElement("rect",{x:509.6,y:522.95,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),I||(I=We.createElement("rect",{x:509.6,y:508.08,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),H||(H=We.createElement("path",{d:"M459.44 526a10 10 0 0 1-9.89 0c-3.87 1.19-6.24 5.09-7.12 8.54h24.12c-.87-3.45-3.23-7.35-7.11-8.54Zm-4.94-18.37a8.69 8.69 0 1 0 8.69 8.68 8.69 8.69 0 0 0-8.69-8.68Zm0 15.3a6.71 6.71 0 0 1-6.07-4.14h12.14a6.71 6.71 0 0 1-6.07 4.14Z",fill:"#604687"})),U||(U=We.createElement("path",{d:"M472.09 521.37a10.07 10.07 0 0 1-8.4.69 12 12 0 0 1-2.3 2.86 11.24 11.24 0 0 1 4.9 4.33h12.91a10.72 10.72 0 0 0-7.11-7.88Zm-4.94-18.38a8.71 8.71 0 0 0-7.33 4 10.78 10.78 0 0 1 5.15 7.14h8.25a6.72 6.72 0 0 1-6.07 4.12 6 6 0 0 1-2.08-.38 11.65 11.65 0 0 1-.54 2.07 8.35 8.35 0 0 0 2.62.4 8.69 8.69 0 0 0 0-17.38Z",fill:"#604687"})),F||(F=We.createElement("rect",{x:222.84,y:603.86,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),V||(V=We.createElement("rect",{x:222.84,y:633.61,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),W||(W=We.createElement("rect",{x:222.84,y:618.74,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),z||(z=We.createElement("path",{d:"M176.57 607.62h-9.82a3.28 3.28 0 0 0-3.32 3.24v.7h-.62a3.28 3.28 0 0 0-3.32 3.24v23.63a3.34 3.34 0 0 0 3.32 3.32h17.08a3.27 3.27 0 0 0 3.23-3.32v-.62h.71a3.27 3.27 0 0 0 3.23-3.32v-16.37Zm0 3.66 6.84 6.84h-6.84Zm3.94 27.15a.67.67 0 0 1-.62.7h-17.08a.73.73 0 0 1-.69-.7V614.8a.67.67 0 0 1 .69-.62h.62v21c0 1.82.86 2.66 2.67 2.66h14.41Zm3.93-3.94a.66.66 0 0 1-.61.7h-17.08a.73.73 0 0 1-.69-.7v-23.63a.67.67 0 0 1 .69-.62h7.19v10.51h10.5Z",fill:"#604687"})),Y||(Y=We.createElement("rect",{x:509.6,y:345.66,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),K||(K=We.createElement("rect",{x:509.6,y:375.41,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),X||(X=We.createElement("rect",{x:509.6,y:360.53,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),Q||(Q=We.createElement("path",{d:"M457.32 353.37h-11.38a3.51 3.51 0 0 0-3.5 3.51v19.25a3.5 3.5 0 0 0 3.5 3.5h29.76a3.5 3.5 0 0 0 3.5-3.5v-15.34a3.51 3.51 0 0 0-3.5-3.5h-14.88l-3.5-3.94Z",fill:"#604687"})),$||($=We.createElement("rect",{x:792.79,y:493.2,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),ee||(ee=We.createElement("rect",{x:792.79,y:522.95,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),ae||(ae=We.createElement("rect",{x:792.79,y:508.08,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),te||(te=We.createElement("path",{d:"m762.93 509.28-6.77-.32-.4-4.41a1.7 1.7 0 0 0-1.88-1.52l-24.27 2a1.67 1.67 0 0 0-1.59 1.79l1.73 19.35a1.7 1.7 0 0 0 1.88 1.49l1.23-.09-.19 3.76a1.87 1.87 0 0 0 1.83 1.93l27.09 1.28a1.88 1.88 0 0 0 2-1.74l1.14-21.6a1.86 1.86 0 0 0-1.8-1.92Zm-29.12.44-.58 11.06-1.44 2-1.32-14.61v-.09a.89.89 0 0 1 .78-.77l21.42-1.75a.81.81 0 0 1 .87.64l.21 2.52-18-.86a1.9 1.9 0 0 0-1.94 1.86Zm27.4 19.44-7-8.17-3.07 2.82-5.67-6.63-10.07 10.72.86-16.33a.94.94 0 0 1 1-.74l23.9 1.16a.87.87 0 0 1 .85.83Z",fill:"#604687"})),ce||(ce=We.createElement("path",{d:"M756.89 518.79a2.63 2.63 0 1 0-2.62-2.63 2.64 2.64 0 0 0 2.62 2.63Z",fill:"#604687"})),le||(le=We.createElement("rect",{x:795.17,y:345.66,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),re||(re=We.createElement("rect",{x:795.17,y:375.41,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),ne||(ne=We.createElement("rect",{x:795.17,y:360.53,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),ie||(ie=We.createElement("circle",{cx:762.56,cy:356.63,r:5.25,fill:"#604687"})),se||(se=We.createElement("path",{d:"m758.53 362.82-10.42 6.94-14.44-9.62v-3.51l14.44 9.63 8.3-5.53a7.39 7.39 0 0 1-.1-8h-23.07a3.52 3.52 0 0 0-3.51 3.51v21.88a3.52 3.52 0 0 0 3.51 3.51H763a3.51 3.51 0 0 0 3.5-3.51v-15.2a7.37 7.37 0 0 1-8-.06Z",fill:"#604687"})),he||(he=We.createElement("ellipse",{cx:509.64,cy:746.02,rx:26.08,ry:5.01,fill:"#604687"})),me||(me=We.createElement("ellipse",{cx:509.21,cy:743.89,rx:3.04,ry:3.97,fill:"#3f3d56"})),de||(de=We.createElement("ellipse",{cx:509.21,cy:739.03,rx:3.04,ry:3.97,fill:"#3f3d56"})),oe||(oe=We.createElement("ellipse",{cx:509.21,cy:734.17,rx:3.04,ry:3.97,fill:"#3f3d56"})),fe||(fe=We.createElement("ellipse",{cx:509.21,cy:729.31,rx:3.04,ry:3.97,fill:"#3f3d56"})),pe||(pe=We.createElement("ellipse",{cx:509.21,cy:724.46,rx:3.04,ry:3.97,fill:"#3f3d56"})),Ee||(Ee=We.createElement("ellipse",{cx:509.21,cy:719.6,rx:3.04,ry:3.97,fill:"#3f3d56"})),ye||(ye=We.createElement("ellipse",{cx:509.21,cy:714.74,rx:3.04,ry:3.97,fill:"#3f3d56"})),ue||(ue=We.createElement("path",{d:"M520.57 681.5a13.59 13.59 0 0 0 1.13-1.67l-8-1.31 8.62.07a14.59 14.59 0 0 0 .28-11.52l-11.57 6 10.67-7.85a14.54 14.54 0 1 0-24 16.28 15.11 15.11 0 0 0-1.66 2.65l10.36 5.38-11-3.7a14.53 14.53 0 0 0 2.34 13.65 14.54 14.54 0 1 0 22.86 0 14.55 14.55 0 0 0 0-18Z",fill:"#604687"})),be||(be=We.createElement("path",{d:"M494.6 690.49a14.45 14.45 0 0 0 3.11 9 14.54 14.54 0 1 0 22.86 0c1.95-2.48-25.97-10.63-25.97-9Z",opacity:.1})),Ze||(Ze=We.createElement("path",{d:"M802 436.86a13.68 13.68 0 0 1-1-2.7c-.1-1.07.32-2.48-.63-3-.53-.29-1.27-.07-1.74-.45a2.15 2.15 0 0 1-.51-1.2 4.1 4.1 0 0 0-3.8-3c1-2.71 4.68-3.37 6.3-5.76.81-1.19.55-3.38-.88-3.39a2.49 2.49 0 0 0-1 .25l-5.33 2.2a27.35 27.35 0 0 0-3 1.39c-2.93 1.67-5.12 4.38-7.09 7.13a30.49 30.49 0 0 0-4.41 8 18 18 0 0 0-.94 5.49v.56c-.87.15-1.58.53-2.49.71l-2.07 5.47a6.93 6.93 0 0 1-1.35 2.49 12.52 12.52 0 0 1-1.46 1.15 8.45 8.45 0 0 0-2.91 7.37 7.93 7.93 0 0 0-4.66 9.78 9.31 9.31 0 0 0-6.81 6 4.43 4.43 0 0 1-.89 1.88 3.55 3.55 0 0 1-2.37.73c-2.34.15-4.38 2-6.49 1a13.21 13.21 0 0 0-7.71-1.08 5.77 5.77 0 0 1-1.65.15 4.43 4.43 0 0 1-1.35-.47 10.46 10.46 0 0 0-3.06-1.21 2.84 2.84 0 0 0-2.9 1.12c-.74-.81-1.18-1.86-1.85-2.73a3 3 0 0 0-2.82-1.35c.7-.63 0-1.89-.93-2.11a11.56 11.56 0 0 0-2.81.1c-2.44 0-4.32-2.24-6.69-2.83-2.18-.53-5.09.11-6.21-1.85-.35-.63-.45-1.45-1-1.92a3.64 3.64 0 0 0-.71-1.45c-.9-1-2.41-1.16-3.76-1.12a15.68 15.68 0 0 0-4.37.75c0-.17-.09-.36-.15-.56a11.09 11.09 0 0 0-4.84-5.94 20 20 0 0 0-5.66-2.26v-.53a22.55 22.55 0 0 1 1.16-7.43c.08-.26.18-.52.27-.78a26.6 26.6 0 0 0 12-44.63 6.83 6.83 0 0 0-.21-1.6 7.86 7.86 0 0 0-1.6-3.12c-1.22-2.72-3.12-3.92-5.55-5.06-.7-.33-1.44-.65-2.22-1-3.87-1.74-7.61-4.3-12-4.29-4 0-7.86 2.21-11.82 2.13h-.95c-1.11-.13-2.44-.39-3.17.46a4.5 4.5 0 0 0-.56 1.09 2.64 2.64 0 0 1-.2.37 4.4 4.4 0 0 1-.51.69c-1.28 1.4-3.43 2-5.2 2.94-4 2.05-6.62 6.23-7.66 10.61s-.68 9 .1 13.44c.4 2.22 1.26 4.74 2.84 6.14s-13.37 9.51-10.93 10.86c1.33.74 6.87-2.77 11.64-6.12.05.2.09.41.15.61a44 44 0 0 0 2.18 6.25c1 2.39 2.44 5 4.93 5.69a5.36 5.36 0 0 0 1.69.19h.44a39.39 39.39 0 0 1-1.15 10.87 6.61 6.61 0 0 0-4.09 1.13 3.29 3.29 0 0 1-1.66.88 2.89 2.89 0 0 1-1.71-.84 9.7 9.7 0 0 0-12.14.64c-4.84 4.57-4.29 13.49-10 16.95-1.56.95-3.56 1.46-4.48 3.05a11.41 11.41 0 0 1-.77 1.47 4.05 4.05 0 0 1-1.36 1 26.48 26.48 0 0 0-4.68 2.7 6.72 6.72 0 0 0-2.69 4.54 8.61 8.61 0 0 0 .82 3.81 36.44 36.44 0 0 0 3.12 6 6.38 6.38 0 0 0-1.26 2.95c-.4 2.81.94 5.58 1.09 8.42.13 2.48-.66 4.9-1.1 7.34-1.76 9.54 1.61 19.2 5 28.26a14.58 14.58 0 0 1 1.2 4.65c.09 3-1.6 5.67-2.07 8.59-1 6.14 3.53 11.92 3.63 18.13 0 2.87-.86 5.78-.14 8.55.47 1.85 1.62 3.44 2.44 5.17 1.44 3.06 1.83 6.53 3.21 9.62a23.07 23.07 0 0 0 7.12 8.48c1.73 5.49-.73 12.12 0 18q1.41-.56 2.85-1a41.17 41.17 0 0 0 6.3 24.84c1.55 2.42 3.37 4.68 4.54 7.31a34.26 34.26 0 0 1 1.77 5.79q2.51 10.47 5 20.92c1.36 5.65 2.73 11.4 2.32 17.2-.28 4-1.3 8.57 1.18 11.77a8.51 8.51 0 0 1 1.49 2.06 5.22 5.22 0 0 1 0 2.72 180.71 180.71 0 0 0-2.48 20.39c-.56.75-1.12 1.51-1.63 2.26-4.11 6-6.09 13.21-7.69 20.32a245.83 245.83 0 0 0-5.16 42.44 28.38 28.38 0 0 0-5.26 6.41c-2.15 4-2.43 8.7-2.66 13.24a4.73 4.73 0 0 0 .24 2.18 4.48 4.48 0 0 0 2.24 1.68l1.24.59c-.27 1-.51 2-.72 3.05-1.58-1.78-4.39-4.6-4.87-2.54a101.78 101.78 0 0 0-2.56 21 1.77 1.77 0 0 0 1.9 2.12A116.25 116.25 0 0 0 660 848c5.65 0 11.29-.46 16.92-.89l5.77-.44a127.7 127.7 0 0 0 17.67-2.19c2.55-.56 5.18-1.35 7.1-3.14s2.86-4.85 1.54-7.12c-1.61-2.74-5.37-2.94-8.51-3.38a27.85 27.85 0 0 1-8.92-2.84c-.63-.32-1.24-.68-1.85-1 .16 0 .33-.08.48-.14 2.7-.91 4.85-3 7.39-4.25 3-1.45 6.31-1.78 9.57-2.19s6.62-1 9.33-2.86c2.54-1.74 4.34-4.91 3.75-7.89a5.15 5.15 0 0 0-.16-.62c-1-3.23-4.5-5-7.76-5.8s-6.8-1.28-9.44-3.38l-.39-.31c-.22-.19-.45-.37-.69-.56a5.62 5.62 0 0 0 .77-3.26c-.14-1.79-1.18-3.37-1.89-5-1.39-3.25-1.5-6.88-1.88-10.39-.94-8.83-3.65-17.35-5.69-26-.23-1-.45-2-.67-3a62.86 62.86 0 0 1 7.27-11.64 38 38 0 0 0 7-13.77c.42-1.54.73-3.1 1.05-4.67Q713.18 694.18 718 667a45.19 45.19 0 0 0 .91-7.84 23.89 23.89 0 0 0 1.35-7.43c.94-3.67 1.89-7.52 1.12-9.92-.54-1.7-.81-7.51-1.11-13.08a50.24 50.24 0 0 0-.54-8.93c-.09-.51-.19-1-.3-1.51q-.09-.45-.18-.75a25.68 25.68 0 0 0-1.76-4.86 23.63 23.63 0 0 0-1.32-2.71 12.34 12.34 0 0 0-1-1.48 62 62 0 0 1 6.22.58c.5.07 1.12.11 1.43-.3a1.47 1.47 0 0 0 .18-.77 12.75 12.75 0 0 0-1.62-6.76c-.8-1.42-1.91-2.8-1.88-4.43a6.53 6.53 0 0 1 .55-2.2l2.77-7.44c2.35-6.29 1.23-13.58 2.45-20.18a118.46 118.46 0 0 0 1.82-15.61c.23-4.47.09-9.32-2.6-12.9a14.73 14.73 0 0 1-2-2.84 8.41 8.41 0 0 1-.48-3.39q-.07-10.51.42-21a206.38 206.38 0 0 0 35.05-4 22 22 0 0 0 4-1.08 20.19 20.19 0 0 0 4-2.53c3.93-2.84 7.92-5.73 10.91-9.55a32.36 32.36 0 0 0 6.46-15.94c2.84-2.63 4.35-6.37 5.77-10a15.42 15.42 0 0 0 1.32-4.85c.07-1.72-1.06-3.52-.74-5.21a13.78 13.78 0 0 1 4.19-7.58 2.74 2.74 0 0 0 1-1.33 2.12 2.12 0 0 0-.23-1.3l-.09-.15c.28-.17.54-.35.81-.53.93-.66 1.82-1.39 2.69-2.1a17 17 0 0 0 3.49-3.54 5.75 5.75 0 0 0 .94-4.7ZM673.69 820.15c-.24 0-.48 0-.71.06a9.57 9.57 0 0 0-2.54.73l-.19.1c1.1-2.38 2.14-4.8 3.08-7.26.11-.29.21-.58.32-.88l-.12 1.64a20.22 20.22 0 0 0 .16 5.61Z",transform:"translate(-50 -46.63)",fill:"url(#a)"})),Me||(Me=We.createElement("path",{d:"M638 409.1c.1 3.88 1.42 7.64 1.62 11.52-11.43.57-22.72-5-34-3.28 3.17-2.05 4.86-5.74 5.86-9.37a38.9 38.9 0 0 0 1.11-14.41 6.61 6.61 0 0 0-.14-.79c-.42-1.9-1.51-4.59-1.22-6.08.39-2 2.25-1.59 3.93-1.48a150.51 150.51 0 0 1 15.26 2c1.32.23 14.13 3.43 14.33 3.1a59.69 59.69 0 0 0-5.55 11.43 22.32 22.32 0 0 0-1.2 7.36ZM751.05 397.1a16.64 16.64 0 0 1-3.49 3.52c-.87.71-1.76 1.44-2.69 2.09a11.5 11.5 0 0 1-5.72 2.33c-2.72.18-8.51-1.42-10.2-3.75a6.77 6.77 0 0 1-1-3.91 17.88 17.88 0 0 1 .94-5.46 30.42 30.42 0 0 1 4.41-8c2-2.74 4.16-5.43 7.09-7.09a27.35 27.35 0 0 1 3-1.39l5.33-2.18a2.5 2.5 0 0 1 1-.26c1.43 0 1.69 2.2.88 3.38-1.62 2.38-5.27 3-6.3 5.73a4.09 4.09 0 0 1 3.8 2.95 2.11 2.11 0 0 0 .51 1.19c.47.37 1.21.16 1.74.45.95.5.53 1.91.63 3a13.5 13.5 0 0 0 1 2.68 5.69 5.69 0 0 1-.93 4.72Z",fill:"#ee8e9e"})),xe||(xe=We.createElement("path",{d:"M593.4 786.45c.88-.88 2.32-.73 3.55-.54a132 132 0 0 0 19.95 1.61c.84-4.08-1.59-8-2.37-12.14a10.76 10.76 0 0 0-.8-3.08c-.94-1.8-3.06-2.63-5.05-3-3.59-.76-9.21-2.09-11.22 1.54-2.41 4.31-3.18 10.75-4.06 15.61Z",fill:"#65617d"})),ge||(ge=We.createElement("path",{d:"M666.49 771.02c-2.71 1.85-6.07 2.42-9.33 2.84s-6.61.74-9.57 2.19c-2.54 1.26-4.69 3.32-7.39 4.22a15.31 15.31 0 0 1-7.67.12c-3-.57-6.26-1.67-7.89-4.29-1.46-2.32-1.31-5.27-1.11-8 .24-3.09.47-6.2.69-9.3a4.4 4.4 0 0 1 .58-2.24c2.19-3.2 7.52 1.33 10.37 1.33 4.52 0 9.37-2.46 12.62-5.45a3.89 3.89 0 0 1 1-.74c1.29-.58 2.58.49 3.72 1.42l.39.31c2.64 2.09 6.18 2.52 9.44 3.37s6.75 2.55 7.76 5.77a4.57 4.57 0 0 1 .16.61c.57 2.95-1.26 6.1-3.77 7.84Z",fill:"#3f3d56"})),ve||(ve=We.createElement("path",{d:"M666.49 771.02c-2.71 1.85-6.07 2.42-9.33 2.84s-6.61.74-9.57 2.19c-2.54 1.26-4.69 3.32-7.39 4.22a15.31 15.31 0 0 1-7.67.12c-3-.57-6.26-1.67-7.89-4.29-1.46-2.32-1.31-5.27-1.11-8 .24-3.09.47-6.2.69-9.3a4.4 4.4 0 0 1 .58-2.24c2.19-3.2 7.52 1.33 10.37 1.33 4.52 0 9.37-2.46 12.62-5.45a3.89 3.89 0 0 1 1-.74c1.29-.58 2.58.49 3.72 1.42l.39.31c2.64 2.09 6.18 2.52 9.44 3.37s6.75 2.55 7.76 5.77a4.57 4.57 0 0 1 .16.61c.57 2.95-1.26 6.1-3.77 7.84Z",fill:"#434175"})),we||(we=We.createElement("path",{d:"M666.49 772.06c-2.71 1.85-6.07 2.43-9.33 2.85s-6.61.73-9.57 2.18c-2.54 1.26-4.69 3.32-7.39 4.22a15.31 15.31 0 0 1-7.67.12 12.6 12.6 0 0 1-7.89-5.33c-1.46-2.32-1.31-5.27-1.11-8 .24-3.09.47-6.2.69-9.3a4.4 4.4 0 0 1 .58-2.24c2.19-3.2 7.52 1.33 10.37 1.33 4.52 0 9.37-2.46 12.62-5.45a3.89 3.89 0 0 1 1-.74c1.29-.58 2.58.49 3.72 1.42a26.4 26.4 0 0 1-3.17 6.56 13.63 13.63 0 0 1-10 6.22c-2 .15-4.09-.25-6 .27s-3.77 2.52-3.08 4.42 3.06 2.25 5 2.36a22.38 22.38 0 0 0 8.21-.58c1.6-.53 3.07-1.41 4.62-2.06 6.62-2.74 15-1.21 20.46-5.85a13 13 0 0 1 1.67-1.28c1.45 2.99-1.22 7.19-3.73 8.88Z",fill:"#e8eaf2"})),qe||(qe=We.createElement("path",{d:"M666.49 772.06c-2.71 1.85-6.07 2.43-9.33 2.85s-6.61.73-9.57 2.18c-2.54 1.26-4.69 3.32-7.39 4.22a15.31 15.31 0 0 1-7.67.12 12.6 12.6 0 0 1-7.89-5.33c-1.46-2.32-1.31-5.27-1.11-8 .24-3.09.47-6.2.69-9.3a4.4 4.4 0 0 1 .58-2.24c2.19-3.2 7.52 1.33 10.37 1.33 4.52 0 9.37-2.46 12.62-5.45a3.89 3.89 0 0 1 1-.74c1.29-.58 2.58.49 3.72 1.42a26.4 26.4 0 0 1-3.17 6.56 13.63 13.63 0 0 1-10 6.22c-2 .15-4.09-.25-6 .27s-3.77 2.52-3.08 4.42 3.06 2.25 5 2.36a22.38 22.38 0 0 0 8.21-.58c1.6-.53 3.07-1.41 4.62-2.06 6.62-2.74 15-1.21 20.46-5.85a13 13 0 0 1 1.67-1.28c1.45 2.99-1.22 7.19-3.73 8.88Z",opacity:.05})),ke||(ke=We.createElement("path",{d:"M594.64 569.44a40.77 40.77 0 0 0 5.58 30c1.55 2.4 3.37 4.66 4.54 7.27a33.77 33.77 0 0 1 1.77 5.77l5 20.8c1.36 5.62 2.73 11.34 2.32 17.11-.28 4-1.3 8.53 1.18 11.71a8.46 8.46 0 0 1 1.49 2.05 5.15 5.15 0 0 1 0 2.7c-2.54 15.11-4.43 30.9.16 45.51 4.17 13.25 4.41 27.93 7.95 41.35a9.24 9.24 0 0 0 2.19 4.59 7.27 7.27 0 0 0 3.3 1.56c5.22 1.25 10.73-.21 15.59-2.46 3.42-1.59 7.1-4.37 6.81-8.12-.14-1.79-1.18-3.36-1.89-5-1.39-3.23-1.5-6.83-1.88-10.33-.94-8.78-3.65-17.26-5.69-25.84s-3.44-17.57-1.71-26.23a229.79 229.79 0 0 1 16.87-51.9 6.27 6.27 0 0 1 1.55-2.32 16.86 16.86 0 0 0 2.19-1.49 6.66 6.66 0 0 0 1-2.72c.76-2.74 3-4.77 4.53-7.17 3.83-6.08 2.62-13.87 2.48-21.05-.14-7 .86-14-.28-20.92s-5.04-13.94-11.69-16.06c-3.29-1.07-6.85-.82-10.29-.48-18.23 1.8-35.95 5.11-53.07 11.67Z",fill:"#696791"})),Ae||(Ae=We.createElement("path",{d:"M594.64 570.44a40.77 40.77 0 0 0 5.58 30c1.55 2.4 3.37 4.66 4.54 7.27a33.77 33.77 0 0 1 1.77 5.77l5 20.8c1.36 5.62 2.73 11.34 2.32 17.11-.28 4-1.3 8.53 1.18 11.71a8.46 8.46 0 0 1 1.49 2.05 5.15 5.15 0 0 1 0 2.7c-2.54 15.11-4.43 30.9.16 45.51 4.17 13.25 4.41 27.93 7.95 41.35a9.24 9.24 0 0 0 2.19 4.59 7.27 7.27 0 0 0 3.3 1.56c5.22 1.25 10.73-.21 15.59-2.46 3.42-1.59 7.1-4.37 6.81-8.12-.14-1.79-1.18-3.36-1.89-5-1.39-3.23-1.5-6.83-1.88-10.33-.94-8.78-3.65-17.26-5.69-25.84s-3.44-17.57-1.71-26.23a229.79 229.79 0 0 1 16.87-51.9 6.27 6.27 0 0 1 1.55-2.32 16.86 16.86 0 0 0 2.19-1.49 6.66 6.66 0 0 0 1-2.72c.76-2.74 3-4.77 4.53-7.17 3.83-6.08 2.62-13.87 2.48-21.05-.14-7 .86-14-.28-20.92s-5.04-13.94-11.69-16.06c-3.29-1.07-6.85-.82-10.29-.48-18.23 1.8-35.95 5.11-53.07 11.67Z",opacity:.1})),Be||(Be=We.createElement("path",{d:"M668.92 613.23a44 44 0 0 1-.91 8.07q-4.83 27-10.28 54c-.32 1.56-.63 3.12-1.05 4.65a37.78 37.78 0 0 1-7 13.7c-15.15 18.89-16.46 46.32-24.68 69.1-.56 1.54-1.11 3.09-1.7 4.61a115.75 115.75 0 0 1-5.07 11.31 3.22 3.22 0 0 1-1 1.35 3.08 3.08 0 0 1-1.65.33 48.31 48.31 0 0 1-21.36-4.86 4.48 4.48 0 0 1-2.27-1.89 4.66 4.66 0 0 1-.24-2.17c.23-4.51.51-9.19 2.66-13.16a28.22 28.22 0 0 1 5.26-6.38 242.36 242.36 0 0 1 5.16-42.22c1.6-7.08 3.58-14.23 7.69-20.21 3-4.42 7.38-8.78 6.84-14.11-.23-2.34-1.21-5.25.69-6.62.83-.61 2.06-.69 2.63-1.55a3 3 0 0 0 .37-1.32 32.66 32.66 0 0 0-.68-10.93 58.79 58.79 0 0 1-1.63-7.13 9 9 0 0 1 1.79-6.88c.1-4.87 0-9.92.07-14.78a27.16 27.16 0 0 0-.69-8.25c-.36-1.27-.93-2.49-1.21-3.79-1-4.67 1.52-10.27-1.5-14-1.26-1.54-3.2-2.31-4.85-3.42a17.71 17.71 0 0 1-6.66-9.57 52.59 52.59 0 0 1-1.9-11.74 11.28 11.28 0 0 1 0-2.53 4.35 4.35 0 0 1 .34-1.27c.94-2.11 3.46-2.93 5.71-3.47a185.15 185.15 0 0 1 43.61-5.1c5.44-3.7 8.49-2.37 10.8 1.54a41.09 41.09 0 0 1 3.07 7.51c1 3.18 1.12 21 2.14 24.17 1.3 4.15-2.55 12.65-2.5 17.01Z",fill:"#696791"})),Oe||(Oe=We.createElement("path",{d:"M570.68 451.29c-.4 2.8.94 5.55 1.09 8.38.13 2.47-.66 4.88-1.1 7.31-1.76 9.48 1.61 19.09 5 28.11a14.4 14.4 0 0 1 1.2 4.62c.09 2.94-1.6 5.64-2.07 8.55-1 6.11 3.53 11.85 3.63 18 0 2.85-.86 5.75-.14 8.5.47 1.84 1.62 3.43 2.43 5.14 1.45 3 1.84 6.5 3.22 9.57 2.49 5.55 7.84 9.18 12.94 12.51 2.89-1 6-2.11 7.62-4.72a11.63 11.63 0 0 0 1.33-4.14c1.1-6.33 1.06-12.79 1-19.21a118.59 118.59 0 0 0-.83-16.54c-1-7-3.29-13.7-4.92-20.57-2-8.65-3.09-17.59-6.28-25.9-2.81-7.29-7.17-13.84-11.77-20.12-1.75-2.39-3.14-5.81-6.54-5.26a7.13 7.13 0 0 0-5.81 5.77Z",fill:"#434175"})),Se||(Se=We.createElement("path",{d:"M570.68 449.29c-.4 2.8.94 5.55 1.09 8.38.13 2.47-.66 4.88-1.1 7.31-1.76 9.48 1.61 19.09 5 28.11a14.4 14.4 0 0 1 1.2 4.62c.09 2.94-1.6 5.64-2.07 8.55-1 6.11 3.53 11.85 3.63 18 0 2.85-.86 5.75-.14 8.5.47 1.84 1.62 3.43 2.43 5.14 1.45 3 1.84 6.5 3.22 9.57 2.49 5.55 7.84 9.18 12.94 12.51 2.89-1 6-2.11 7.62-4.72a11.63 11.63 0 0 0 1.33-4.14c1.1-6.33 1.06-12.79 1-19.21a118.59 118.59 0 0 0-.83-16.54c-1-7-3.29-13.7-4.92-20.57-2-8.65-3.09-17.59-6.28-25.9-2.81-7.29-7.17-13.84-11.77-20.12-1.75-2.39-3.14-5.81-6.54-5.26a7.13 7.13 0 0 0-5.81 5.77Z",opacity:.05})),De||(De=We.createElement("path",{d:"M644.66 390.28a59.69 59.69 0 0 0-5.55 11.43 26.19 26.19 0 0 1-6.3.76c-8.25 0-14.08-4.69-18.93-10.62-.42-1.9-3-3.67-2.74-5.16.39-2 2.25-1.59 3.93-1.48a150.51 150.51 0 0 1 15.26 2c1.32.16 14.13 3.4 14.33 3.07Z",opacity:.1})),Pe||(Pe=We.createElement("circle",{cx:632.81,cy:375.34,r:26.41,fill:"#ee8e9e"})),Ge||(Ge=We.createElement("path",{d:"M666.18 564.56c-4.57-.27-9.18-.08-13.76.1a47.15 47.15 0 0 0-8.55.88c-3.47.79-6.71 2.37-10.13 3.36-5.48 1.59-11.26 1.66-16.93 2.22a94.36 94.36 0 0 0-11.09 1.74 4.35 4.35 0 0 1 .34-1.27c.94-2.11 3.46-2.93 5.71-3.47a185.15 185.15 0 0 1 43.61-5.1c5.44-3.65 8.49-2.37 10.8 1.54Z",opacity:.1})),Re||(Re=We.createElement("path",{d:"M648.18 418.58c-1.15 1.33-2.7 2.8-4.4 2.37a6.08 6.08 0 0 1-1.72-.92c-3-2-6.78-2.42-10.36-3a152.4 152.4 0 0 1-21.34-4.8 21.93 21.93 0 0 0-6.32-1.28c-4.47 0-8.44 3-11.24 6.48s-4.8 7.57-7.55 11.1c-2 2.52-4.3 4.74-6.13 7.35-4.62 6.59-5.62 15.19-4.42 23.15s4.37 15.47 7.53 22.88a78.47 78.47 0 0 0 6.14 12.46c-1.06 6-.5 13 2.38 18.4.93 1.77 2.08 3.49 2.39 5.47a13.85 13.85 0 0 1-.16 4l-1.35 9.56c-.41 2.91-.82 5.82-1.35 8.72-1 5.29-2.28 11 .17 15.82 2.93 5.74-.15 13.09.62 19.49a97.8 97.8 0 0 1 25.74-6.11c5.67-.56 11.45-.63 16.93-2.22 3.42-1 6.66-2.57 10.13-3.37a47 47 0 0 1 8.55-.87c6.33-.25 12.7-.51 19 .42.5.08 1.12.12 1.43-.29a1.47 1.47 0 0 0 .19-.75 12.63 12.63 0 0 0-1.62-6.72c-.8-1.41-1.91-2.79-1.88-4.41a6.48 6.48 0 0 1 .55-2.19l2.77-7.4c2.35-6.25 1.23-13.51 2.45-20.07a117.46 117.46 0 0 0 1.82-15.53c.23-4.45.09-9.27-2.6-12.83a14.67 14.67 0 0 1-2-2.83 8.34 8.34 0 0 1-.48-3.37q-.09-13.36.73-26.72c-2.34-4.21-4.79-8.51-7.13-12.72-2.73-4.9-5.49-9.9-6.59-15.4-.73-3.63-.71-7.38-1.23-11.05a4.9 4.9 0 0 0-.93-2.59 4.69 4.69 0 0 0-3.76-1.11 16.44 16.44 0 0 0-4.96.88Z",fill:"#434175"})),Te||(Te=We.createElement("path",{d:"M744.87 402.71a11.5 11.5 0 0 1-5.72 2.33c-2.72.18-8.51-1.42-10.2-3.75a6.77 6.77 0 0 1-1-3.91 4.91 4.91 0 0 1 1.14-.22 29.88 29.88 0 0 1 8.86.36c2.88.7 5.66 2.45 6.87 5.16Z",opacity:.1})),Ne||(Ne=We.createElement("path",{d:"M657 459.83c1.61 2 3.28 4.06 5.56 5.25 2.63 1.36 5.72 1.39 8.67 1.33a208 208 0 0 0 36.23-4 22.81 22.81 0 0 0 4-1.07 20.6 20.6 0 0 0 4-2.52c3.93-2.82 7.92-5.7 10.91-9.51a32.05 32.05 0 0 0 6.46-15.85c2.84-2.61 4.35-6.34 5.77-9.93a15.24 15.24 0 0 0 1.32-4.82c.07-1.71-1.06-3.5-.74-5.18a13.64 13.64 0 0 1 4.19-7.54 2.74 2.74 0 0 0 1-1.33 2.1 2.1 0 0 0-.23-1.29c-1.22-2.71-4-4.45-6.88-5.16a29.61 29.61 0 0 0-8.87-.36 20.06 20.06 0 0 0-2.9.78l-2.07 5.43a6.88 6.88 0 0 1-1.35 2.48 12.52 12.52 0 0 1-1.46 1.15 8.38 8.38 0 0 0-2.91 7.33 7.88 7.88 0 0 0-4.66 9.72 9.3 9.3 0 0 0-6.81 6 4.45 4.45 0 0 1-.89 1.87 3.66 3.66 0 0 1-2.34.76c-2.34.14-4.38 2-6.49 1a13.29 13.29 0 0 0-7.71-1.08 5.77 5.77 0 0 1-1.65.15 4.43 4.43 0 0 1-1.35-.47 10.72 10.72 0 0 0-3.06-1.2 2.84 2.84 0 0 0-2.9 1.12c-.74-.81-1.18-1.85-1.85-2.72a3 3 0 0 0-2.82-1.35c.7-.62 0-1.87-.93-2.1a12.66 12.66 0 0 0-2.81.1c-2.44 0-4.32-2.23-6.69-2.81-2.18-.53-5.09.11-6.21-1.84-.39-.69-.47-1.63-1.14-2a2.2 2.2 0 0 0-1.48-.17 14.24 14.24 0 0 0-4.45 1.35c-2.29 9-1.09 18.24.65 27.3a24.07 24.07 0 0 0 4.89 11.18Z",fill:"#434175"})),_e||(_e=We.createElement("path",{d:"m656.93 491.88-11.37 22.94c1.23-2.13 3.82-3 5.87-4.31a15.54 15.54 0 0 0 5.57-7.54 47.14 47.14 0 0 0 2.15-9.29c.23-1.45.71-3.49 0-4.81-1.26.27-1.68 1.94-2.22 3.01ZM624.21 511.37c-2.57 2.54-5.71 4.41-8.53 6.66-6.6 5.26-11.3 12.46-15.89 19.53a30.77 30.77 0 0 0-3.25 5.92c.54.46 1.34 0 1.88-.49l8.93-7.84a20.19 20.19 0 0 0 3-3c1.55-2.09 2.24-4.69 3.65-6.88a26.84 26.84 0 0 1 5.43-5.53c2.05-1.76 11.47-9.73 9.18-12.83-1.69.8-3.05 3.1-4.4 4.46Z",opacity:.1})),Ce||(Ce=We.createElement("path",{d:"M643.72 411.95a26.78 26.78 0 0 0-9.45-3.11 20 20 0 0 0-6-.43c-1.86.23-3.65.95-5.52 1-2.63.15-5.14-.92-7.68-1.61s-5.47-1-7.6.57a3.29 3.29 0 0 1-1.66.88 3 3 0 0 1-1.71-.84 9.74 9.74 0 0 0-12.14.64c-4.84 4.54-4.29 13.41-10 16.86-1.56 1-3.56 1.45-4.48 3a12 12 0 0 1-.77 1.46 4 4 0 0 1-1.36 1 26.43 26.43 0 0 0-4.68 2.69 6.66 6.66 0 0 0-2.69 4.51 8.53 8.53 0 0 0 .82 3.79 35.62 35.62 0 0 0 34.61 22.13 5.42 5.42 0 0 0 3.63-1.13 6.93 6.93 0 0 0 1.27-2.09c2.67-5.59 7.68-9.72 10.86-15 1.89-3.17 3.11-6.72 5.09-9.84 3-4.73 7.54-8.23 12-11.62 2.52-1.91 5.31-3.92 8.47-3.79 2.81.12 4.86.27 3.82-3.17a11 11 0 0 0-4.83-5.9Z",fill:"#434175"})),je||(je=We.createElement("path",{d:"M643.72 411.95a26.78 26.78 0 0 0-9.45-3.11 20 20 0 0 0-6-.43c-1.86.23-3.65.95-5.52 1-2.63.15-5.14-.92-7.68-1.61s-5.47-1-7.6.57a3.29 3.29 0 0 1-1.66.88 3 3 0 0 1-1.71-.84 9.74 9.74 0 0 0-12.14.64c-4.84 4.54-4.29 13.41-10 16.86-1.56 1-3.56 1.45-4.48 3a12 12 0 0 1-.77 1.46 4 4 0 0 1-1.36 1 26.43 26.43 0 0 0-4.68 2.69 6.66 6.66 0 0 0-2.69 4.51 8.53 8.53 0 0 0 .82 3.79 35.62 35.62 0 0 0 34.61 22.13 5.42 5.42 0 0 0 3.63-1.13 6.93 6.93 0 0 0 1.27-2.09c2.67-5.59 7.68-9.72 10.86-15 1.89-3.17 3.11-6.72 5.09-9.84 3-4.73 7.54-8.23 12-11.62 2.52-1.91 5.31-3.92 8.47-3.79 2.81.12 4.86.27 3.82-3.17a11 11 0 0 0-4.83-5.9Z",opacity:.05})),Le||(Le=We.createElement("path",{d:"M657.47 794.73c-1.92 1.79-4.55 2.57-7.1 3.12a127.7 127.7 0 0 1-17.67 2.19l-5.77.44c-5.63.43-11.27.86-16.92.88a117.17 117.17 0 0 1-20.82-1.8 2.28 2.28 0 0 1-1.65-.8 2.24 2.24 0 0 1-.25-1.31 100.74 100.74 0 0 1 2.56-20.9c.65-2.81 5.7 3.5 5.93 3.77a5.76 5.76 0 0 0 4.59 2.43c5.81.32 12.32-3.21 16.93-6.35a22.18 22.18 0 0 1 3.14-1.95 9.19 9.19 0 0 1 2.54-.72 15.28 15.28 0 0 1 8.64 1.75c3.47 1.72 6.51 4.19 10 6a28.06 28.06 0 0 0 8.92 2.82c3.14.43 6.9.64 8.51 3.36 1.28 2.25.32 5.29-1.58 7.07Z",fill:"#434175"})),Je||(Je=We.createElement("path",{d:"M657.47 795.77c-1.92 1.79-4.55 2.57-7.1 3.12a127.7 127.7 0 0 1-17.67 2.19l-5.77.44c-5.63.43-11.27.86-16.92.88a116.24 116.24 0 0 1-20.82-1.8 2.27 2.27 0 0 1-1.65-.79 9.26 9.26 0 0 1-1.29-2.36c.12-7 2-14.05 3.6-20.9.65-2.81 5.7 3.5 5.93 3.77a5.76 5.76 0 0 0 4.59 2.43c5.81.32 12.32-3.21 16.93-6.35a22.18 22.18 0 0 1 3.14-1.95 9.19 9.19 0 0 1 2.54-.72c-.75 4.18-6.74 9.23-9.84 10.77-6.26 3.11-13.7 1.55-20.68 1.92a3 3 0 0 0-1.47.35c-.83.56-.88 1.75-.86 2.75.06 1.66.27 3.62 1.72 4.46a4.94 4.94 0 0 0 2.32.49 327.89 327.89 0 0 0 51.57-1.81 28.23 28.23 0 0 0 8.4-1.87 21.44 21.44 0 0 0 4.87-3.14c2.2 1.72.36 6.34-1.54 8.12Z",fill:"#e8eaf2"})),Ie||(Ie=We.createElement("path",{d:"M643.09 375.06c-.1 2.73 1.76 8-3.35 6.55-3-.88-3.9-4.49-7.76-3.69s-4.76 5.57-6.06 8.68a16.59 16.59 0 0 1-12 9.72 7.26 7.26 0 0 1-3.31 0c-2.49-.71-3.91-3.28-4.93-5.66a44.08 44.08 0 0 1-2.18-6.22 25.31 25.31 0 0 1-.79-4.56 19.48 19.48 0 0 1 0-3.15c.46-6.21 4-11.87 8.52-16.15s10-7.38 15.45-10.43a22.9 22.9 0 0 1 5.7-2.54 19.21 19.21 0 0 1 6-.24 20.85 20.85 0 0 1 7.66 1.8 10.71 10.71 0 0 1 2.69 1.89 8.11 8.11 0 0 1 2.34 3.89c1 4-1.58 7.63-3.66 10.8-1.9 2.81-4.19 5.79-4.32 9.31Z",fill:"#434175"})),He||(He=We.createElement("path",{d:"M729 433.67c-1.09-2.75-5.67-10.36-4.35-13a33.77 33.77 0 0 1 3.49 6.24c.86 2.15.18 5.01.86 6.76ZM647.47 365.74c2.08-3.17 4.64-6.79 3.66-10.8a8.35 8.35 0 0 0-3-4.44 7.27 7.27 0 0 1 .76 1.87c1 4-1.58 7.62-3.66 10.8-1.85 2.82-4.14 5.81-4.28 9.32-.1 2.73 1.77 8-3.34 6.55-3-.88-3.9-4.49-7.77-3.69s-4.75 5.56-6.06 8.68a16.57 16.57 0 0 1-12 9.72 7.26 7.26 0 0 1-3.31 0 5.05 5.05 0 0 1-1.56-.77 6.76 6.76 0 0 0 3.77 3.34 7.44 7.44 0 0 0 3.32 0 16.63 16.63 0 0 0 12-9.73c1.31-3.12 2.16-7.86 6.06-8.67s4.72 2.8 7.77 3.68c5.11 1.48 3.24-3.82 3.34-6.55.16-3.5 2.46-6.49 4.3-9.31Z",opacity:.1})),Ue||(Ue=We.createElement("path",{d:"M648.6 360.31a21.84 21.84 0 0 1-1.56 2.24 26.58 26.58 0 0 1-3.61 3.74c-.79.68-1.6 1.31-2.44 1.91a38.47 38.47 0 0 1-4.93 2.95 91.47 91.47 0 0 1-15.78 5.65l-10.54 3.07c-1.3 1-3.67 2.74-6.28 4.57a25.31 25.31 0 0 1-.79-4.56 19.48 19.48 0 0 1 0-3.15c.46-6.21 4-11.87 8.52-16.15s10-7.38 15.45-10.43a22.9 22.9 0 0 1 5.7-2.54 19.21 19.21 0 0 1 6-.24 20.85 20.85 0 0 1 7.66 1.8 10.71 10.71 0 0 1 2.69 1.89 10.14 10.14 0 0 1 1.35 2.86c.66 2.15-.26 4.45-1.44 6.39Z",opacity:.1})),Fe||(Fe=We.createElement("path",{d:"M648.6 359.6a21.84 21.84 0 0 1-1.56 2.24 26.58 26.58 0 0 1-3.61 3.74c-.79.68-1.6 1.31-2.44 1.91a39.65 39.65 0 0 1-4.93 2.95 91.47 91.47 0 0 1-15.78 5.65l-10.54 3.06c-3.68 2.79-16 11.91-18.07 10.77-2.44-1.34 10.93-10.81 10.93-10.81l.61.47c-2-1.23-3-4.08-3.42-6.55-.78-4.42-1.15-9-.1-13.37s3.67-8.51 7.66-10.55c1.77-.92 3.92-1.53 5.2-2.93a4.4 4.4 0 0 0 .51-.69 2.08 2.08 0 0 0 .2-.36 4.32 4.32 0 0 1 .56-1.09c.73-.84 2.06-.59 3.17-.45h.36a5.68 5.68 0 0 0 .59 0c4 .09 7.81-2.12 11.82-2.12 4.39 0 8.13 2.54 12 4.28.78.35 1.52.67 2.22 1 2.8 1.3 4.9 2.69 6 6.38.72 2.24-.2 4.55-1.38 6.47Z",fill:"#604687"})),Ve||(Ve=We.createElement("path",{d:"M617.94 343.65a1.8 1.8 0 0 1-.42 2.32 3.2 3.2 0 0 1-1.66.59 11.2 11.2 0 0 1-1.3.1 3.58 3.58 0 0 1-1.71-.29 2.2 2.2 0 0 1-.3-.19 4.4 4.4 0 0 0 .51-.69c.1.08.2.06.59 0a9.13 9.13 0 0 0 2.14-.36 2.38 2.38 0 0 0 .8-.39 2.48 2.48 0 0 0 .76-1.15ZM602.86 379.01a4.87 4.87 0 0 0 1.83.68 8.29 8.29 0 0 0 1.41.23 7.84 7.84 0 0 0 3.45-1",opacity:.1})))}},7156:(e,a,t)=>{t.d(a,{Z:()=>Q});var c,l,r,n,i,s,h,m,d,o,f,p,E,y,u,b,Z,M,x,g,v,w,q,k,A,B,O,S,D,P,G,R,T,N,_,C,j,L,J,I,H,U,F,V,W,z=t(7294),Y=["title","titleId"];function K(){return K=Object.assign?Object.assign.bind():function(e){for(var a=1;a=0||(l[t]=e[t]);return l}(e,a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(c=0;c=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(l[t]=e[t])}return l}const Q=function(e){var a=e.title,t=e.titleId,Q=X(e,Y);return z.createElement("svg",K({"data-name":"Layer 1",xmlns:"http://www.w3.org/2000/svg",width:1108,height:731.18,viewBox:"0 0 1108 731.18","aria-labelledby":t},Q),void 0===a?z.createElement("title",{id:t},"react"):a?z.createElement("title",{id:t},a):null,c||(c=z.createElement("path",{d:"m767.68 330.79 6.89-2.7c.66-.26 1.31-.54 2-.81a59.85 59.85 0 0 1 15.28-115.77l-4.8 24.2 18.22-23.92h.16a59.87 59.87 0 0 1 51.16 67.45c-.15 1.13-.39 2.23-.6 3.34 5.61-4.43 10.87-9.32 14.81-15 8-11.54 10.71-25.76 13.47-43.17 5.47-34.48 10.4-69.34 14.84-104.18a59.83 59.83 0 0 1-42-65.36c.25-1.82.6-3.59 1-5.34.1-.44.2-.88.31-1.31.43-1.69.91-3.35 1.47-5 .09-.27.21-.52.3-.78.5-1.37 1-2.72 1.65-4 .22-.5.44-1 .67-1.47a57.69 57.69 0 0 1 2.22-4.19c.27-.45.56-.88.83-1.33.62-1 1.27-2 1.94-2.93.36-.5.71-1 1.08-1.49l.27-.39a59.81 59.81 0 0 1 74.64-17l-6.24 31.49 18-23.64a59.5 59.5 0 0 1 16.32 68.62h.07c-.17.4-.38.78-.55 1.18-.33.74-.67 1.47-1 2.2-.46.93-1 1.84-1.45 2.74-.38.68-.75 1.36-1.16 2-.59 1-1.23 1.9-1.87 2.83-.38.54-.73 1.1-1.12 1.63-1 1.39-2.12 2.72-3.26 4-.4.45-.83.86-1.25 1.3-.81.86-1.62 1.71-2.48 2.52-.53.5-1.09 1-1.64 1.46-.79.7-1.6 1.38-2.43 2-.59.47-1.19.92-1.79 1.36a77.101 77.101 0 0 1-4.45 2.96c-1 .61-2.05 1.17-3.1 1.72-.53.27-1 .57-1.59.83-1.58.77-3.2 1.48-4.85 2.11-.31.12-.64.21-.95.32-1.38.5-2.77 1-4.18 1.35-.61.17-1.23.31-1.85.46-1.15.28-2.31.54-3.48.76q-1 .18-2.07.33c-1.15.17-2.31.3-3.48.4-.69.06-1.37.12-2.07.16-1.26.06-2.53.07-3.8.06a2.08 2.08 0 0 0-.25 0q-2.82 22-5.92 44a59.82 59.82 0 0 1 86.4-10.32l-15.68 26.58 25.21-16.59a59.68 59.68 0 0 1 11.5 44.16 58.76 58.76 0 0 1-4.5 15.94 59.83 59.83 0 0 1-111.19-4c-.23 1.48-.45 3-.68 4.46-2.44 15.35-5.47 34.46-16.23 50-7.29 10.56-17.33 18.36-27.09 25.22q-9.52 6.7-19.48 12.77a59.85 59.85 0 0 1-24.53 13.74q-16 8.19-32.69 14.81l-6.95 2.72c-6.25 2.44-12.65 4.94-19 7.6 1 .09 2 .17 3 .3a59.9 59.9 0 0 1 50.86 49.05l-42.31 23.11 42.18-1.89A59.16 59.16 0 0 1 797 450.13a59.87 59.87 0 0 1-82.7 11.74l2.1 3.91c1.4 2.58 2.78 5.15 4.12 7.7 18.33 34.74 19.66 64.74 3.75 84.49l-13-10.45c15.49-19.22 3.2-49.77-5.5-66.27-1.32-2.5-2.68-5-4-7.56-11.77-21.83-25.12-46.57-19.77-72.9 8-39.7 51.05-56.5 85.68-70ZM269.6 519.01l-5.38-2.11c-.52-.2-1-.43-1.54-.63a46.75 46.75 0 0 0-11.94-90.42l3.75 18.9-14.22-18.68h-.13a46.76 46.76 0 0 0-40 52.68c.12.89.31 1.74.47 2.61a55.84 55.84 0 0 1-11.56-11.73c-6.23-9-8.37-20.12-10.53-33.71-4.23-26.93-8.07-54.15-11.52-81.33a46.72 46.72 0 0 0 32.77-51.05c-.2-1.42-.47-2.8-.79-4.17l-.24-1a48.36 48.36 0 0 0-1.15-3.88c-.07-.21-.16-.41-.24-.61a48.24 48.24 0 0 0-1.28-3.15c-.18-.38-.35-.77-.53-1.15-.54-1.11-1.11-2.2-1.73-3.26-.21-.36-.44-.7-.65-1-.49-.78-1-1.55-1.52-2.29-.28-.39-.55-.79-.84-1.17l-.21-.3a46.76 46.76 0 0 0-58.29-13.32l4.88 24.6-14.07-18.46a46.48 46.48 0 0 0-12.75 53.59h-.05c.13.31.29.61.43.92.26.58.52 1.15.8 1.72q.54 1.08 1.14 2.13c.29.54.58 1.07.9 1.59.46.75 1 1.48 1.46 2.21.3.42.57.86.88 1.27.8 1.08 1.65 2.12 2.54 3.13.31.35.65.67 1 1 .63.67 1.27 1.33 1.94 2 .41.4.85.77 1.28 1.14q.93.83 1.89 1.59c.46.36.93.71 1.4 1.06.68.49 1.37 1 2.06 1.41.47.31.94.61 1.42.9.79.48 1.6.91 2.42 1.34.42.22.82.45 1.24.66 1.24.6 2.5 1.15 3.79 1.64.24.1.5.16.74.25 1.07.39 2.16.75 3.27 1.06.47.13 1 .24 1.44.35.9.22 1.8.43 2.72.6l1.61.26c.9.13 1.81.23 2.72.31.54.05 1.07.09 1.62.12 1 .05 2 .06 3 .05h.19q2.2 17.22 4.62 34.41a46.71 46.71 0 0 0-67.48-8.14l12.14 20.64-19.68-12.95a46.57 46.57 0 0 0-9 34.49 45.8 45.8 0 0 0 3.53 12.46 46.73 46.73 0 0 0 86.84-3.12c.18 1.15.35 2.32.53 3.48 1.9 12 4.27 26.92 12.67 39.08 5.7 8.24 13.54 14.33 21.16 19.69q7.44 5.24 15.21 10a46.88 46.88 0 0 0 19.16 10.74c8.32 4.26 16.84 8.14 25.54 11.56l5.42 2.13c4.88 1.9 9.88 3.85 14.81 5.93-.78.07-1.57.13-2.36.24a46.77 46.77 0 0 0-39.72 38.27l33 18-32.94-1.47a46.78 46.78 0 0 0 73.57 29.2c-.55 1-1.09 2-1.64 3.05-1.09 2-2.17 4-3.22 6-14.31 27.13-15.35 50.57-2.92 66l10.13-8.16c-12.1-15-2.5-38.87 4.3-51.76 1-1.95 2.09-3.92 3.16-5.9 9.19-17 19.61-36.37 15.46-56.94-6.21-30.94-39.86-44.02-66.9-54.6Z",fill:"#f2f2f2"})),l||(l=z.createElement("ellipse",{cx:554,cy:707.68,rx:554,ry:23.5,fill:"#3f3d56"})),r||(r=z.createElement("ellipse",{cx:554,cy:707.68,rx:554,ry:23.5,opacity:.1})),n||(n=z.createElement("ellipse",{cx:554,cy:694.68,rx:554,ry:23.5,fill:"#3f3d56"})),i||(i=z.createElement("path",{d:"M85 686.32c-3-5.51.4-12.26 4.28-17.18s8.61-10 8.51-16.29c-.14-9-9.7-14.31-17.33-19.08a84.78 84.78 0 0 1-15.56-12.51 23 23 0 0 1-4.78-6.4c-1.58-3.52-1.53-7.52-1.43-11.38q.5-19.26 1.9-38.48",fill:"none",stroke:"#3f3d56",strokeMiterlimit:10,strokeWidth:4})),s||(s=z.createElement("path",{d:"M46.11 564.29a14 14 0 0 1 7-11.49l3.14 6.21-.09-7.52a13.86 13.86 0 0 1 4.62-.56 14 14 0 1 1-14.67 13.36ZM71.14 659.29a14 14 0 0 0 26.5-5.76 13.82 13.82 0 0 0-.91-5.69 14 14 0 0 0-26.27.15l8.77 7.13-9.64-2.24a13.89 13.89 0 0 0 1.55 6.41ZM78.07 632.04a14 14 0 0 0 4.46-27.54l.07 5.79-3.18-6.29a14.04 14.04 0 0 0-1.31 28.05ZM44 609.37a14.016 14.016 0 0 0 1.32-28 13.88 13.88 0 0 0-7.52 1.78l2.48 6.8-5.11-4.9a14 14 0 0 0-4.53 9.69 13.33 13.33 0 0 0 .36 3.85 14 14 0 0 0 13 10.78Z",fill:"#604687"})),h||(h=z.createElement("path",{d:"M48 568.03c3.24.36 6.39 1.37 9.64 1.57s6.82-.58 8.88-3.1c1.11-1.37 1.66-3.09 2.59-4.57a10.08 10.08 0 0 1 3.54-3.33 14 14 0 1 1-26.24 9.32c.53.02 1.06.06 1.59.11ZM44 609.37a14 14 0 0 0 13.35-20 10.4 10.4 0 0 0-2.82 2.83c-1 1.51-1.61 3.25-2.78 4.64-2.19 2.57-5.92 3.41-9.31 3.25s-6.66-1.11-10-1.42c-.47 0-.94-.08-1.41-.09A14 14 0 0 0 44 609.37ZM78.07 632.04a14 14 0 0 0 13.47-19.76 11.36 11.36 0 0 0-3 2.85c-1.09 1.54-1.77 3.31-3 4.73-2.36 2.64-6.34 3.57-9.93 3.48s-6.82-.93-10.28-1.19a14 14 0 0 0 12.74 9.89ZM71.14 659.29a14 14 0 0 0 26.5-5.76 13.82 13.82 0 0 0-.91-5.69 14 14 0 0 0-3.08 2.74c-1.34 1.63-2.21 3.47-3.76 5-2.87 2.82-7.5 4-11.62 4.09a62.35 62.35 0 0 1-7.13-.38Z",opacity:.1})),m||(m=z.createElement("path",{d:"M106.19 679.98s-11.08-.34-14.41-2.72-17-5.22-17.87-1.4-16.65 19-4.14 19.06 29.06-2 32.39-4 4.03-10.94 4.03-10.94Z",fill:"#656380"})),d||(d=z.createElement("path",{d:"M69.54 693.59c12.51.1 29.06-2 32.4-4 2.53-1.54 3.54-7.09 3.88-9.65h.37s-.7 8.93-4 11-19.89 4.08-32.39 4c-3.61 0-4.86-1.31-4.79-3.22.47 1.13 1.85 1.87 4.53 1.87Z",opacity:.2})),o||(o=z.createElement("path",{d:"M1055 695.32c-3-5.51.4-12.26 4.28-17.18s8.61-10 8.51-16.29c-.14-9-9.7-14.31-17.33-19.08a84.78 84.78 0 0 1-15.56-12.51 23 23 0 0 1-4.78-6.4c-1.58-3.52-1.53-7.52-1.43-11.38q.49-19.26 1.9-38.48",fill:"none",stroke:"#3f3d56",strokeMiterlimit:10,strokeWidth:4})),f||(f=z.createElement("path",{d:"M1016.11 573.29a14 14 0 0 1 7-11.49l3.14 6.21-.09-7.52a13.86 13.86 0 0 1 4.62-.56 14 14 0 1 1-14.68 13.36ZM1041.14 668.29a14 14 0 0 0 26.5-5.76 13.82 13.82 0 0 0-.91-5.69 14 14 0 0 0-26.27.15l8.77 7.13-9.64-2.24a13.89 13.89 0 0 0 1.55 6.41ZM1048.07 641.04a14 14 0 0 0 4.46-27.54l.07 5.79-3.18-6.29a14.04 14.04 0 0 0-1.31 28.05ZM1014 618.37a14.016 14.016 0 0 0 1.32-28 13.88 13.88 0 0 0-7.52 1.78l2.48 6.8-5.11-4.9a14 14 0 0 0-4.53 9.69 13.33 13.33 0 0 0 .36 3.85 14 14 0 0 0 13 10.78Z",fill:"#604687"})),p||(p=z.createElement("path",{d:"M1018 577.03c3.24.36 6.39 1.37 9.64 1.57s6.82-.58 8.88-3.1c1.11-1.37 1.66-3.09 2.59-4.57a10.08 10.08 0 0 1 3.54-3.33 14 14 0 1 1-26.24 9.32c.53.02 1.06.06 1.59.11ZM1014 618.37a14 14 0 0 0 13.35-20 10.4 10.4 0 0 0-2.82 2.83c-1 1.51-1.61 3.25-2.78 4.64-2.19 2.57-5.92 3.41-9.31 3.25s-6.66-1.11-10-1.42c-.47 0-.94-.08-1.41-.09a14 14 0 0 0 12.97 10.79ZM1048.07 641.04a14 14 0 0 0 13.47-19.76 11.36 11.36 0 0 0-3 2.85c-1.09 1.54-1.77 3.31-3 4.73-2.36 2.64-6.34 3.57-9.93 3.48s-6.82-.93-10.28-1.19a14 14 0 0 0 12.74 9.89ZM1041.14 668.29a14 14 0 0 0 26.5-5.76 13.82 13.82 0 0 0-.91-5.69 14 14 0 0 0-3.08 2.74c-1.34 1.63-2.21 3.47-3.76 5-2.87 2.82-7.5 4-11.62 4.09a62.35 62.35 0 0 1-7.13-.38Z",opacity:.1})),E||(E=z.createElement("path",{d:"M1076.19 688.98s-11.08-.34-14.41-2.72-17-5.22-17.87-1.4-16.65 19-4.14 19.06 29.06-2 32.39-4 4.03-10.94 4.03-10.94Z",fill:"#656380"})),y||(y=z.createElement("path",{d:"M1039.54 702.59c12.51.1 29.06-2 32.4-4 2.53-1.54 3.54-7.09 3.88-9.65h.37s-.7 8.93-4 11-19.89 4.08-32.39 4c-3.61 0-4.86-1.31-4.79-3.22.47 1.13 1.85 1.87 4.53 1.87Z",opacity:.2})),u||(u=z.createElement("path",{d:"M745.57 331.15q-9.92-3.4-20-6.3 1.66-6.79 3.09-13.65c15.14-73.51 5.24-132.73-28.57-152.22-32.42-18.7-85.44.8-139 47.39q-7.92 6.92-15.47 14.2-5.07-4.85-10.3-9.51c-56.11-49.83-112.32-70.82-146.14-51.27-32.39 18.75-42 74.42-28.35 144.09q2 10.35 4.59 20.58c-7.95 2.26-15.64 4.67-23 7.24-65.79 22.89-107.81 58.89-107.81 96.18 0 38.51 45.11 77.14 113.64 100.56q8.34 2.83 16.8 5.26-2.74 11-4.88 22.18c-13 68.46-2.84 122.82 29.46 141.45 33.37 19.26 89.37-.54 143.89-48.2 4.31-3.77 8.63-7.77 13-11.95q8.18 7.89 16.79 15.32c52.82 45.45 105 63.81 137.26 45.12 33.33-19.29 44.16-77.69 30.1-148.73q-1.6-8.14-3.73-16.61 5.91-1.74 11.56-3.61c71.24-23.6 117.6-61.76 117.6-100.79 0-37.43-43.38-73.62-110.5-96.73Z",fill:"#53c1de"})),b||(b=z.createElement("path",{d:"M730.12 503.47c-3.4 1.13-6.88 2.21-10.44 3.27a621.6 621.6 0 0 0-31.47-78.73 623.06 623.06 0 0 0 30.25-77.58c6.35 1.84 12.53 3.78 18.47 5.83 57.51 19.79 92.59 49.06 92.59 71.62 0 24-37.89 55.21-99.4 75.59Zm-25.52 50.58c6.22 31.41 7.1 59.81 3 82-3.7 19.95-11.14 33.25-20.34 38.58-19.59 11.33-61.47-3.4-106.64-42.27q-7.77-6.69-15.63-14.25a624.23 624.23 0 0 0 52.09-66.14 620.2 620.2 0 0 0 84.17-13q1.9 7.68 3.37 15ZM446.48 672.69c-19.14 6.76-34.38 6.95-43.59 1.64-19.6-11.31-27.75-55-16.63-113.5q2-10.37 4.53-20.63a625.79 625.79 0 0 0 83.75 12.13 645.09 645.09 0 0 0 53.35 65.9q-5.79 5.61-11.84 10.91c-24.11 21.08-48.28 36-69.57 43.55Zm-89.64-169.37c-30.31-10.36-55.33-23.82-72.49-38.5-15.41-13.2-23.19-26.31-23.19-36.94 0-22.63 33.74-51.5 90-71.11q10.6-3.69 21.39-6.73a637.08 637.08 0 0 0 30.29 78.48 646.29 646.29 0 0 0-30.66 79.6q-7.74-2.21-15.34-4.8Zm30.05-204.54c-11.68-59.69-3.93-104.72 15.59-116 20.79-12 66.76 5.12 115.22 48.15 3.1 2.75 6.21 5.63 9.32 8.6a635.89 635.89 0 0 0-52.93 65.52 648.42 648.42 0 0 0-82.93 12.89q-2.39-9.52-4.27-19.15ZM655 364.97q-9.11-15.74-18.89-31.08c19.83 2.51 38.82 5.83 56.66 9.91a565.54 565.54 0 0 1-19.89 53.51q-8.61-16.35-17.88-32.34ZM545.64 258.5a569.3 569.3 0 0 1 36.57 44.14q-36.71-1.73-73.45 0c12.07-15.92 24.44-30.72 36.88-44.13Zm-110 106.65q-9.15 15.87-17.55 32.14c-7.73-18.33-14.34-36.36-19.74-53.77 17.73-4 36.64-7.21 56.34-9.68q-9.92 15.44-19.07 31.31Zm19.61 158.65a564.64 564.64 0 0 1-57.25-9.21c5.49-17.71 12.25-36.13 20.15-54.86q8.43 16.29 17.61 32.16 9.34 16.19 19.47 31.91Zm91.14 75.33c-12.6-13.54-25.15-28.54-37.39-44.75q17.85.71 36.36.71 19 0 37.51-.84a563.94 563.94 0 0 1-36.5 44.88Zm126.69-140.35A562.82 562.82 0 0 1 694 513.44a561.35 561.35 0 0 1-58 9.89q9.85-15.63 19.08-31.63 9.38-16.26 18-32.92Zm-41 19.66q-14.12 24.52-29.81 48.1c-18.44 1.32-37.49 2-56.91 2s-38.15-.6-56.27-1.78q-16.09-23.5-30.39-48.17t-26.51-50.08q12.27-25.53 26.43-50.1 14.14-24.56 30.13-48c18.49-1.4 37.43-2.13 56.59-2.13s38.22.74 56.69 2.14q15.81 23.37 30 47.81t26.79 49.87q-12.45 25.62-26.71 50.3Zm54.77-296.46c20.81 12 28.9 60.4 15.83 123.87q-1.29 6.19-2.8 12.35a635.74 635.74 0 0 0-83.09-13.13 625.16 625.16 0 0 0-52.53-65.56q7-6.74 14.29-13.11c45.88-39.93 88.76-55.69 108.3-44.42Z",fill:"#fff"})),Z||(Z=z.createElement("path",{d:"M545.34 372.38a55.5 55.5 0 1 1-55.5 55.5 55.49 55.49 0 0 1 55.5-55.5",fill:"#53c1de"})),M||(M=z.createElement("path",{d:"M559.26 20.4a16.6 16.6 0 1 1-16.6-16.6 16.52 16.52 0 0 1 16.6 16.6Z",fill:"#3f3d56"})),x||(x=z.createElement("path",{d:"M529.4 24.59A16.62 16.62 0 0 1 541.89.05a16.6 16.6 0 1 0 1.41 33.07 16.6 16.6 0 0 1-13.9-8.53ZM521.91 43.52h44.47v69.37h-44.47z",fill:"#3f3d56"})),g||(g=z.createElement("path",{opacity:.1,d:"M521.91 43.52h44.47v69.37h-44.47z"})),v||(v=z.createElement("path",{d:"M451.66 295.2s-4.75 13.05-16 14.83-17.79 4.74-17.79 4.74l26.68 17.19 14.23-1.78s1.78-18.38 7.71-22.53-14.83-12.45-14.83-12.45ZM644.34 295.2s4.75 13.05 16 14.83 17.79 4.74 17.79 4.74l-26.68 17.19-14.23-1.78s-1.78-18.38-7.71-22.53 14.83-12.45 14.83-12.45Z",fill:"#a0616a"})),w||(w=z.createElement("path",{d:"M514.5 180.18s-7.11 3.56-9.48 10.68c0 0-13 4.15-20.16 15.41 0 0-8.9 9.49-10.08 14.23S460 253.7 460 253.7s-13.64 44.47-20.75 49.21c0 0 22.53-4.74 26.68 17.79 0 0 5.33 0 11.26-20.75s20.16-46.25 20.16-46.25 4.74-17.78 8.89-20.75 10.67-16.6 16.6-13 45.06-.6 45.06-.6 23.1 10.64 23.68 17.75 4.74 7.71 5.33 13.64 22.53 52.76 22.53 52.76 4.15 13 5.34 16c0 0 13-31.42 30.24-13.63 0 0-.6-11.86-5.93-19s-28.46-62.84-28.46-62.84-2.37-8.3-4.74-10.67-20.76-21.35-27.28-21.35c0 0-3.55-8.89-7.7-10.08ZM461.14 326.03a28.89 28.89 0 0 1-28.22-3.79 56.37 56.37 0 0 0-12.59-7.3c-6.29-2.54-13.81-4.42-16.1-.17-4.15 7.71 50.39 26.68 50.39 26.68s7.12-4.15 6.52-15.42ZM634.86 326.03a28.89 28.89 0 0 0 28.22-3.79 56.37 56.37 0 0 1 12.59-7.3c6.29-2.54 13.81-4.42 16.1-.17 4.15 7.71-50.39 26.68-50.39 26.68s-7.12-4.15-6.52-15.42Z",fill:"#3f3d56"})),q||(q=z.createElement("path",{d:"M533.88 82.67c-.22 2.06-.9 4.29-2.66 5.38-1.44.9-3.26.83-4.92 1.17a11.46 11.46 0 0 0-7.82 6.77 17.51 17.51 0 0 0-.75 10.55 39.22 39.22 0 0 0 1.52 5.06c1.74 4.92 3.84 9.8 7.09 13.89a59 59 0 0 0 9.3 8.77c2.11 1.72 4.29 3.47 6.89 4.28a21.75 21.75 0 0 0 5.4.72c2.25.1 4.65.17 6.6-.95 3-1.73 3.89-5.55 5.52-8.62 1.38-2.6 3.44-4.81 4.73-7.46a29.49 29.49 0 0 0 2-6.52l2.77-12.3c1-4.47 1.92-9.51-.59-13.34a2.28 2.28 0 0 0-.74-.77 2.79 2.79 0 0 0-1.52-.15 16.44 16.44 0 0 1-9.15-2.09 3.93 3.93 0 0 1-1.15-.9 4.72 4.72 0 0 1-.7-2.12 22.2 22.2 0 0 0-1.28-4.45 3 3 0 0 0-.87-1.34 3.15 3.15 0 0 0-1.41-.47 114.47 114.47 0 0 0-12.93-1.35c-1.42-.07-3.56-.64-4.54.62s-.67 4.12-.79 5.62Z",fill:"#a0616a"})),k||(k=z.createElement("path",{d:"M533.88 82.67c-.22 2.06-.9 4.29-2.66 5.38-1.44.9-3.26.83-4.92 1.17a11.46 11.46 0 0 0-7.82 6.77 17.51 17.51 0 0 0-.75 10.55 39.22 39.22 0 0 0 1.52 5.06c1.74 4.92 3.84 9.8 7.09 13.89a59 59 0 0 0 9.3 8.77c2.11 1.72 4.29 3.47 6.89 4.28a21.75 21.75 0 0 0 5.4.72c2.25.1 4.65.17 6.6-.95 3-1.73 3.89-5.55 5.52-8.62 1.38-2.6 3.44-4.81 4.73-7.46a29.49 29.49 0 0 0 2-6.52l2.77-12.3c1-4.47 1.92-9.51-.59-13.34a2.28 2.28 0 0 0-.74-.77 2.79 2.79 0 0 0-1.52-.15 16.44 16.44 0 0 1-9.15-2.09 3.93 3.93 0 0 1-1.15-.9 4.72 4.72 0 0 1-.7-2.12 22.2 22.2 0 0 0-1.28-4.45 3 3 0 0 0-.87-1.34 3.15 3.15 0 0 0-1.41-.47 114.47 114.47 0 0 0-12.93-1.35c-1.42-.07-3.56-.64-4.54.62s-.67 4.12-.79 5.62Z",opacity:.1})),A||(A=z.createElement("path",{d:"M525.85 89.74a26.93 26.93 0 0 0-7.13-1.12c-5.72-.14-11.84 1.83-15.14 6.5a15.34 15.34 0 0 0-2.29 11.47 23.57 23.57 0 0 0 5.2 10.66 32 32 0 0 1 4 5.24c1.58 3 1.63 6.59 2.06 10 1 8.12 4.46 15.75 5.83 23.82s.19 17.42-6.18 22.55c-1.07.86-2.37 1.77-2.46 3.14-.14 2.19 2.71 3.12 4.9 3.33 6.55.62 13.27 1.23 19.63-.46 2.63-.7 5.17-1.79 7.85-2.29 6.8-1.27 13.64 1.34 20.45 2.59a90.61 90.61 0 0 0 14.91 1.21 7.94 7.94 0 0 0 3.43-.45 2.75 2.75 0 0 0 1.74-2.74 4.76 4.76 0 0 0-1.18-2c-3.44-4.25-4.49-9.9-5.43-15.29l-3.15-18.11c-1.69-9.68-3.26-20.2 1.32-28.89 3.29-6.25 9.36-10.65 12.83-16.8a9.84 9.84 0 0 0 1.55-6.28c-.52-3.09-3.31-5.3-6.17-6.59a23.21 23.21 0 0 0-17.42-.64c.1 4.33-1 8.71-1.71 13l-1.21 7a88.83 88.83 0 0 1-2.71 12.2 12.85 12.85 0 0 1-2.17 4.42 11.43 11.43 0 0 1-3.83 2.79 22.83 22.83 0 0 1-10.14 2.32 13.54 13.54 0 0 1-4.48-.69 19 19 0 0 1-6.17-4.34 10.11 10.11 0 0 1-1.63-1.77 9.93 9.93 0 0 1-1.11-2.67 55.42 55.42 0 0 1-1.91-7.48c-.3-1.94-.4-3.91-.54-5.87-.39-5.79-.39-12.19-1.54-17.76Z",fill:"#604687"})),B||(B=z.createElement("path",{d:"M519.84 204.49s-2.37 31.43 12.45 36.76 1.78-26.09 1.78-26.09l-4.75-9.48ZM570.23 204.49s2.37 31.43-12.45 36.76-1.78-26.09-1.78-26.09l4.75-9.48Z",fill:"#a0616a"})),O||(O=z.createElement("path",{d:"m506.79 99.59-4.74 7.71s4.15 26.68 4.74 31.42a62.2 62.2 0 0 0 2.38 10.08s.59 14.23.59 19.57 3 14.23 3 14.23a64.82 64.82 0 0 0 3 14.82c2.37 6.52 4.74 14.23 4.74 14.23s3-8.3 14.82 4.15a7.18 7.18 0 0 0 0-10.08s-3.55-16-3.55-24.31-6.53-48-6.53-48-4.24-45.12-18.45-33.82Z",opacity:.1})),S||(S=z.createElement("path",{d:"m505.61 98.96-4.74 7.71s4.15 26.68 4.74 31.42a61.84 61.84 0 0 0 2.39 10.08s.59 14.23.59 19.56 3 14.23 3 14.23a64.53 64.53 0 0 0 3 14.82c2.37 6.53 4.75 14.23 4.75 14.23s3-8.3 14.82 4.15a7.18 7.18 0 0 0 0-10.07s-3.56-16-3.56-24.31-6.52-48-6.52-48-4.24-45.09-18.47-33.82Z",fill:"#604687"})),D||(D=z.createElement("path",{d:"m583.87 94.81 3 3.53s3.49 20.18-4.22 45.68l-2.37 23.12s-4.15 19.57-4.74 24.31-.59 5.33-1.78 7.11a2.29 2.29 0 0 0 0 3l-3.56 13s-5.33-6.52-16 1.78c0 0-3-4.74-.6-8.89s2.37-5.93 1.78-7.12 2.37-7.11 2.37-8.3 4.18-28.44 4.18-28.44 1.78-26.68 3.56-35.57c1.09-5.47 1.07-17.66.88-26.24-.19-8.94 10.63-13.78 17-7.5.15.16.33.31.5.53Z",opacity:.1})),P||(P=z.createElement("path",{d:"m585.65 93.59 3 3.53s3.49 20.19-4.22 45.68l-2.37 23.12s-4.15 19.57-4.74 24.31-.6 5.34-1.78 7.12a2.28 2.28 0 0 0 0 3L572 213.39s-5.33-6.53-16 1.77c0 0-3-4.74-.59-8.89s2.37-5.93 1.78-7.11 2.37-7.12 2.37-8.3 4.15-28.46 4.15-28.46 1.78-26.68 3.56-35.58.59-35.57.59-35.57 9.49-6.52 17.79 2.34Z",fill:"#604687"})),G||(G=z.createElement("circle",{cx:545.92,cy:61.61,r:23.72,fill:"#a0616a"})),R||(R=z.createElement("path",{d:"M558.29 26a16.6 16.6 0 0 1-31.09.44c9.26-3.73 18.72-.41 18.72-.41 4.73-1.66 8.83-1.51 12.37-.03Z",opacity:.1})),T||(T=z.createElement("path",{d:"M545.92 27.22s-45.65-16-34.38 61.66c0 0 10.08 6.52 17.78 2.37 0 0-5.33-53.95 15.42-51.58s17.19 50.4 17.19 50.4 11.86 3.55 15.42-3-1.19-70.48-31.43-59.85Z",fill:"#3f3d56"})),N||(N=z.createElement("path",{d:"M544.74 36.11c-14.24-1.62-16.2 23.27-16 39.05.17-15.69 2.81-37 16-35.49 14.81 1.69 17.24 26.66 17.41 40.8.17-12.98-1.25-42.51-17.41-44.36ZM511.54 85.32a159.38 159.38 0 0 1-1.77-20.53 152.12 152.12 0 0 0 1.77 24.09s10.08 6.52 17.78 2.37c0 0-.12-1.28-.26-3.43-7.67 3.87-17.52-2.5-17.52-2.5ZM577.35 83.59c-3.32 6.08-13.83 3.41-15.25 3-.07 2.2-.17 3.52-.17 3.52s11.86 3.55 15.42-3c.73-1.34 1.11-5.13 1-10.2-.1 3.25-.45 5.68-1 6.68Z",opacity:.1})),_||(_=z.createElement("path",{d:"M826.73 672.96c4.74-8.78-.64-19.54-6.82-27.37s-13.73-16-13.57-26c.23-14.35 15.45-22.81 27.62-30.42a134.77 134.77 0 0 0 24.79-19.93c3-3.05 5.87-6.31 7.62-10.21 2.52-5.6 2.45-12 2.29-18.12q-.79-30.71-3-61.34",fill:"none",stroke:"#3f3d56",strokeMiterlimit:10,strokeWidth:4})),C||(C=z.createElement("path",{d:"M888.74 478.49a22.31 22.31 0 0 0-11.16-18.32l-5 9.9.15-12a22.37 22.37 0 1 0 16 20.41ZM848.86 629.88a22.36 22.36 0 1 1 1.08-18l-14 11.37 15.37-3.57a22.25 22.25 0 0 1-2.45 10.2ZM837.81 586.45a22.37 22.37 0 0 1-7.09-43.86l-.12 9.22 5.06-10h.06a22.37 22.37 0 1 1 2.09 44.69ZM892.11 550.32a22.37 22.37 0 1 1 9.89-41.86l-4 10.83 8.13-7.8a22.37 22.37 0 0 1-14.07 38.83Z",fill:"#604687"})),j||(j=z.createElement("path",{d:"M885.74 484.45c-5.17.57-10.19 2.18-15.37 2.5s-10.87-.92-14.14-5c-1.77-2.17-2.65-4.91-4.14-7.28a16 16 0 0 0-5.63-5.3 22.37 22.37 0 1 0 41.81 14.84c-.85.09-1.69.15-2.53.24ZM892.11 550.32a22.39 22.39 0 0 1-21.28-31.91 16.37 16.37 0 0 1 4.5 4.51c1.59 2.4 2.56 5.18 4.43 7.39 3.48 4.09 9.44 5.43 14.84 5.19s10.6-1.78 16-2.28c.75-.06 1.5-.11 2.26-.13a22.37 22.37 0 0 1-20.75 17.23ZM837.81 586.45a22.37 22.37 0 0 1-21.46-31.49 17.83 17.83 0 0 1 4.73 4.55c1.74 2.45 2.82 5.27 4.86 7.54 3.77 4.2 10.11 5.68 15.83 5.54 5.54-.12 10.87-1.48 16.38-1.9a22.36 22.36 0 0 1-20.34 15.76ZM848.86 629.88a22.37 22.37 0 0 1-40.78-18.29 22.27 22.27 0 0 1 4.91 4.38c2.13 2.59 3.53 5.53 6 7.94 4.57 4.49 11.95 6.34 18.52 6.51a97.1 97.1 0 0 0 11.35-.54Z",opacity:.1})),L||(L=z.createElement("path",{d:"M793 662.85s17.65-.54 23-4.33 27.16-8.31 28.48-2.24 26.53 30.22 6.6 30.38-46.31-3.1-51.62-6.34-6.46-17.47-6.46-17.47Z",fill:"#656380"})),J||(J=z.createElement("path",{d:"M851.4 684.59c-19.93.16-46.31-3.11-51.62-6.34-4-2.47-5.65-11.3-6.19-15.38H793s1.12 14.24 6.43 17.47 31.69 6.5 51.62 6.34c5.75 0 7.74-2.09 7.63-5.12-.8 1.81-2.99 2.95-7.28 3.03Z",opacity:.2})),I||(I=z.createElement("path",{d:"m323 42.86-18.25 11.57 11.08-20.15a18 18 0 0 0-11-3.94h-.3a21.58 21.58 0 0 1-3.78-.28l-6.19 3.92 2.65-4.82a22.06 22.06 0 0 1-10.82-8.21l-11.07 7 7-12.72c-6.48-7.77-15.2-12.54-24.81-12.54-11.51 0-21.76 6.85-28.38 17.52a21.24 21.24 0 0 1-18.76 10.12h-.62c-12.71 0-23 14.41-23 32.19s10.3 32.18 23 32.18a17.2 17.2 0 0 0 8-2c8.29-4.31 19.17-4.39 27.85-.54a29 29 0 0 0 23.68.05c8.62-3.77 19.37-3.69 27.61.54a17.23 17.23 0 0 0 7.93 2c12.71 0 23-14.41 23-32.18A40.86 40.86 0 0 0 323 42.86Z",fill:"#f2f2f2"})),H||(H=z.createElement("path",{d:"M288.59 89.95a34 34 0 0 0-19.72 2.14 29 29 0 0 1-23.67-.05c-8.69-3.85-19.57-3.77-27.86.54a17.2 17.2 0 0 1-8 2c-11.29 0-20.68-11.38-22.64-26.38a21.58 21.58 0 0 0 5.64-6.08c6.66-10.66 16.87-17.53 28.38-17.53s21.64 6.77 28.26 17.32a21.79 21.79 0 0 0 18.76 10.31h.26c9 .01 16.8 7.22 20.59 17.73Z",opacity:.03})),U||(U=z.createElement("path",{d:"M800.07 66.42 791 72.19l5.53-10a9 9 0 0 0-5.51-2h-.14a10.79 10.79 0 0 1-1.89-.14l-3.09 2 1.3-2.46a11 11 0 0 1-5.4-4.09l-5.52 3.5 3.49-6.34a16.17 16.17 0 0 0-12.37-6.26c-5.75 0-10.86 3.42-14.16 8.74a10.57 10.57 0 0 1-9.36 5h-.31c-6.34 0-11.48 7.19-11.48 16s5.14 16.05 11.48 16.05a8.62 8.62 0 0 0 4-1 16.56 16.56 0 0 1 13.89-.27 14.52 14.52 0 0 0 11.81 0 16.58 16.58 0 0 1 13.77.27 8.61 8.61 0 0 0 4 1c6.34 0 11.48-7.18 11.48-16.05a20.28 20.28 0 0 0-2.45-9.72Z",fill:"#f2f2f2"})),F||(F=z.createElement("path",{d:"M782.92 89.91a17 17 0 0 0-9.83 1.07 14.52 14.52 0 0 1-11.81 0 16.58 16.58 0 0 0-13.9.27 8.55 8.55 0 0 1-4 1c-5.64 0-10.32-5.67-11.3-13.15a10.93 10.93 0 0 0 2.82-3c3.3-5.32 8.42-8.73 14.16-8.73s10.79 3.37 14.09 8.63a10.85 10.85 0 0 0 9.36 5.14h.15c4.49-.07 8.34 3.53 10.26 8.77Z",opacity:.03})),V||(V=z.createElement("path",{d:"m204.34 215.86 14.66 9.28-8.88-16.15a14.48 14.48 0 0 1 8.85-3.15h.23a17.08 17.08 0 0 0 3-.22l4.95 3.14-2.15-3.86a17.78 17.78 0 0 0 8.67-6.58l8.87 5.62-5.54-10.19c5.19-6.22 12.18-10 19.87-10 9.23 0 17.44 5.48 22.75 14a17 17 0 0 0 15 8.11h.5c10.18 0 18.43 11.54 18.43 25.78s-8.25 25.79-18.43 25.79a13.86 13.86 0 0 1-6.43-1.61 26.59 26.59 0 0 0-22.31-.43 23.28 23.28 0 0 1-19 0 26.64 26.64 0 0 0-22.12.43 13.9 13.9 0 0 1-6.35 1.57c-10.19 0-18.44-11.54-18.44-25.79a32.78 32.78 0 0 1 3.87-15.74Z",fill:"#f2f2f2"})),W||(W=z.createElement("path",{d:"M231.89 253.59a27.36 27.36 0 0 1 15.8 1.72 23.28 23.28 0 0 0 19 0 26.61 26.61 0 0 1 22.32.43 13.82 13.82 0 0 0 6.42 1.61c9.05 0 16.57-9.11 18.14-21.13a17.44 17.44 0 0 1-4.52-4.88c-5.31-8.54-13.52-14-22.75-14s-17.33 5.42-22.64 13.88a17.44 17.44 0 0 1-15 8.25h-.23c-7.26-.07-13.5 5.71-16.54 14.12Z",opacity:.03})))}},8538:(e,a,t)=>{t.d(a,{Z:()=>G});var c,l,r,n,i,s,h,m,d,o,f,p,E,y,u,b,Z,M,x,g,v,w,q,k,A,B,O=t(7294),S=["title","titleId"];function D(){return D=Object.assign?Object.assign.bind():function(e){for(var a=1;a=0||(l[t]=e[t]);return l}(e,a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(c=0;c=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(l[t]=e[t])}return l}const G=function(e){var a=e.title,t=e.titleId,G=P(e,S);return O.createElement("svg",D({"data-name":"Layer 1",xmlns:"http://www.w3.org/2000/svg",width:1038.23,height:693.31,viewBox:"0 0 1038.23 693.31","aria-labelledby":t},G),c||(c=O.createElement("defs",null,O.createElement("linearGradient",{id:"a",x1:320.96,y1:796.01,x2:320.96,y2:284.81,gradientUnits:"userSpaceOnUse"},O.createElement("stop",{offset:0,stopColor:"gray",stopOpacity:.25}),O.createElement("stop",{offset:.54,stopColor:"gray",stopOpacity:.12}),O.createElement("stop",{offset:1,stopColor:"gray",stopOpacity:.1})))),void 0===a?O.createElement("title",{id:t},"version control"):a?O.createElement("title",{id:t},a):null,l||(l=O.createElement("path",{d:"M615.24 111.4c-64.72-2.25-126.36-23.14-185.23-46S312.85 17.21 249.68 5.1c-40.63-7.79-87.09-8.89-119.83 12.89-31.5 21-41.68 57.15-47.16 90.72-4.11 25.27-6.54 51.85 4.75 75.5 7.83 16.42 21.74 30.22 31.36 45.95 33.46 54.72 9.81 122.2-26.46 175.63-17 25.06-36.74 49-49.87 75.66s-19.2 57.25-7.72 84.47c11.39 27 38.52 47.24 67.9 61.49 59.69 28.94 130 37.23 198.62 41.92 151.82 10.39 304.46 5.89 456.68 1.39 56.34-1.67 112.92-3.36 168.34-12.07 30.78-4.84 62.56-12.52 84.9-31 28.36-23.53 35.39-63.38 16.39-92.88-31.88-49.49-120-61.79-142.31-114.9-12.27-29.23.33-61.8 18.15-88.91 38.24-58.17 102.33-109.19 105.71-175.68 2.32-45.66-28.49-91.39-76.13-113-49.94-22.65-119.18-19.8-156 17.69-37.96 38.56-104.62 53.41-161.76 51.43Z",fill:"#6c63ff",opacity:.1})),r||(r=O.createElement("path",{d:"M529.62 754.84c-1-3.62-2-7.28-4-10.43a36.53 36.53 0 0 0-6.55-7.17c-7.25-6.58-16.15-13.26-25.76-11.6a34.39 34.39 0 0 0-8.54 3.12c-1.4.65-2.81 1.3-4.25 1.85a21.17 21.17 0 0 1-12.82 1.12c-2.2-.59-4.25-1.65-6.42-2.31a20.35 20.35 0 0 0-3.15-.68 53.64 53.64 0 0 0 6.09-3.21c10.78-6.6 19.38-18.53 18.18-31.29-.41-4.29-1.88-8.4-3.34-12.45l-3.84-10.62c-1.66-4.6-3.38-9.29-6.41-13.11-3.37-4.26-8.17-7.15-13.13-9.3-10.65-4.63-22.29-6.26-33.78-7.84l-.8-.11V516.68a8 8 0 0 0-8-8H398q-1-6.12-2-12.22c-1.9-11.61-3.87-23.43-9.22-33.88-3.5-6.84-9.07-13.37-16.58-14.71a16.08 16.08 0 0 1-4.31-1c-2.2-1.08-3.4-3.48-5.09-5.25-4.36-4.57-11.45-4.64-17.29-7-5.16-2.05-9.38-5.91-14.08-8.88s-10.54-5.08-15.74-3.15c0 .38-.07.76-.11 1.13l-3.34-1.54c-3.6-1.67-7.27-3.38-10.16-6.12-3.71-3.5-5.69-8.14-7.23-13.07-.16-.51-.31-1-.47-1.55a46.43 46.43 0 0 0 12.44-23.75l.81 2.63a17.45 17.45 0 0 0 .64 1.74 6.86 6.86 0 0 0 2 2.83 3.55 3.55 0 0 0 .84.49 3.5 3.5 0 0 0 .86.22 3.2 3.2 0 0 0 1.24-.09 4.73 4.73 0 0 0 3-2.78 6 6 0 0 0 .35-1.22 6.31 6.31 0 0 0 .07-.76v-1.04c0-.1 0-.33-.05-.5v-.26c0-.2-.06-.4-.1-.59s0-.11 0-.16c-.05-.25-.11-.51-.16-.76v-.19c0-.06-.09-.41-.14-.62s-.07-.27-.1-.41v-.06c-.1-.4-.19-.79-.28-1.19a34.38 34.38 0 0 1-.55-10.56 113.08 113.08 0 0 1 2.86-15.35l.21-.91c.08-.35.16-.7.23-1.06.16-.72.32-1.44.47-2.17l.36-1.84.27-1.64v-.21A47.41 47.41 0 0 0 318 330c-.46-5.23-2.08-10.18-5.63-14.12-2.51-2.79-5.82-4.85-8.15-7.78-2.18-2.74-3.41-6.12-5.67-8.81-6.24-7.45-22.26-13.19-32.09-14.19-11.26-1.14-29.45 1.74-38.53 8.39-3.36 2.45-5.66 6-8 9.36-4.3 6.25-9.18 12.49-16.07 16-2.6 1.32-5.58 2.32-7.31 4.62a12.49 12.49 0 0 0-1.95 5.18 102.71 102.71 0 0 0-2.06 19.78v2.5a18.23 18.23 0 0 0 1.56 7.23c.16.34.34.67.53 1l.12.21a39.78 39.78 0 0 1 3.2 5.45 7.22 7.22 0 0 1 .49 1.66 12.24 12.24 0 0 1-.28 4.38c0 .22-.09.44-.13.66l-.09.43c0 .15 0 .3-.08.44-.08.43-.15.86-.21 1.28a9 9 0 0 0 .22 3.46 4.55 4.55 0 0 0 2.22 3 6.5 6.5 0 0 0 1.8.56c.63.11 1.27.18 1.89.32a9.33 9.33 0 0 1 2.29.85 9.22 9.22 0 0 1 1.93 1.24 11 11 0 0 1 .83.84 14 14 0 0 1 1.42 1.94q.32.53.6 1.08a24.67 24.67 0 0 1 1.71 4.52c.26.93.48 1.87.67 2.81.09.42.17.84.24 1.25s.14.83.2 1.24a2.91 2.91 0 0 0 .8-.16c1.47-.53 2.29-2.24 2.75-3.9.08-.28.15-.55.21-.82.23-1 .47-2.1.7-3.15a46.37 46.37 0 0 0 18.25 20.1c.28.83.55 1.65.79 2.49 1.31 4.53 1.94 9.27-.33 13.23-1.62 2.81-4.34 4.54-7.38 5.74a4.88 4.88 0 0 0-1.65-1.4c-2.63-1.32-5.79.28-8 2.25-4 3.62-7.26 8.81-12.52 10-1.9.44-4 .35-5.58 1.51a13 13 0 0 0-2.59 3.4 11.92 11.92 0 0 1-10.23 5.1c-1.83-.09-4-.51-5.25.83-.93 1-1 2.58-2 3.53-1.34 1.32-3.54.68-5.41.6-3.56-.15-6.87 2.15-8.9 5.1s-3 6.48-4 10v.06a7.15 7.15 0 0 0-.73.61 10.55 10.55 0 0 0-2.21 3.58 170.87 170.87 0 0 0-14.1 58.18 6 6 0 0 1-.64 2.82 13.87 13.87 0 0 1-1.47 1.6 5.61 5.61 0 0 0 .93 8 6.3 6.3 0 0 1 1.07-1.42c-.11.46-.21.91-.28 1.32a35.49 35.49 0 0 0-.11 8.8q1.42 20.84 2.87 41.65c.27 3.93.54 7.85.9 11.77q1.05 11.38 3 22.67c.06.34.13.69.22 1-8.15 2.59-15.4 7.27-18.45 15.08-1.06 2.7-1.54 5.64-2.84 8.23-1.43 2.84-3.78 5.11-5.34 7.89-2.69 4.78-2.81 10.64-1.83 16 1.89 10.45 7.54 19.79 15 27.39h-1a15.64 15.64 0 0 0-6.83 2.45c-15.78 9.22-24.8 29-21.51 47.06.65 3.53 1.78 7.11 4.14 9.8a15.51 15.51 0 0 0 7.28 4.46 25.29 25.29 0 0 0 5.37 1c12.3 1 24.21-4.7 36.54-5.18a98 98 0 0 1 12.23.57q8.91.74 17.85.94c9.69.23 15.14-2.35 21.32-9.59a26.1 26.1 0 0 0 3.77-5.94c5.26-.3 11.07-.76 15.27-1.1l.06.58c.23 2 .58 4.3 2.18 5.56a7.61 7.61 0 0 0 3 1.23c10.1 2.48 20.32 5 30.72 5a129.71 129.71 0 0 0 14.59-1.12l18.27-2.11a91 91 0 0 1 15.7 3.42c5.28 1.79 10.21 4.45 15.37 6.56 12 4.86 24.9 6.6 37.68 8.3 2.18.29 4.68.49 6.29-1 2.08-2 1.39-5.34.8-8.14-.24-1.15-.42-2.3-.56-3.46a175.25 175.25 0 0 1 25.24 8.76l1.43.63c.42 2.18 2.43 3.92 4.36 6.27a16 16 0 0 0 2.21 2.74 7.37 7.37 0 0 0 3.17 1.14 147.82 147.82 0 0 0 40.93 1.85 41.86 41.86 0 0 1 8.44-.29 36.58 36.58 0 0 1 6.1 1.37l11.57 3.32c8.53 2.44 17.26 4.91 26.11 4.36a33.4 33.4 0 0 0 5.33-.77c7-1.62 13.52-5.53 16.88-11.82 4.75-8.55 2.56-19.07 0-28.47Z",transform:"translate(-80.89 -103.35)",fill:"url(#a)"})),n||(n=O.createElement("path",{d:"M125.02 649.54c-2.11-4.8-4.11-10.32-2-15.12a12.85 12.85 0 0 1 6.65-6.25 32 32 0 0 1 9-2.22 125.61 125.61 0 0 1 29.26-.4c.71 5.62-.79 11.32-2.08 16.75-1.17 5-1.84 5.74-7 6-3.34.18-33.04 3.01-33.83 1.24Z",fill:"#fbbebe"})),i||(i=O.createElement("ellipse",{cx:214.07,cy:577.16,rx:143,ry:40,fill:"#464353"})),s||(s=O.createElement("ellipse",{cx:214.07,cy:577.16,rx:143,ry:40,opacity:.1})),h||(h=O.createElement("path",{d:"M239.71 366a44.49 44.49 0 0 1-22.94 20.84 57.58 57.58 0 0 1-18.21 3.46c-6.79.31-13.72-.13-20.1-2.45-8.56-3.1-15.67-9.44-21-16.83s-9-15.83-12.19-24.34c-1.68-4.43-3.28-9.15-2.49-13.83 5.15-1.17 10.79-2.89 13.45-7.46 2.27-3.92 1.64-8.62.33-13.1-.37-1.27-.8-2.53-1.23-3.74-1-2.9-4.45-8.41-2-10.89 1.53-1.57 7.94-2.37 10.15-3.39 6.81-3.14 13.09-7.68 20.57-9.17 6.47-1.29 13.15-.08 19.61 1.26a6.45 6.45 0 0 1 2.42.87 5.82 5.82 0 0 1 1.8 2.7c1.84 4.48 2.92 9.43 4.4 14.1 1.54 4.89 3.52 9.48 7.23 12.95 2.89 2.71 6.57 4.41 10.17 6.06l8.86 4.06a11.65 11.65 0 0 1 4.19 2.71 10.61 10.61 0 0 1 2 5.44 50.82 50.82 0 0 1-5.02 30.75Z",fill:"#fbbebe"})),m||(m=O.createElement("path",{d:"M212.24 304.03a46 46 0 0 1-55.67 8.26c-.37-1.27-.8-2.53-1.23-3.74-1-2.9-4.45-8.41-2-10.89 1.53-1.57 7.94-2.37 10.15-3.39 6.81-3.14 13.09-7.68 20.57-9.17 6.47-1.29 13.15-.08 19.61 1.26a6.45 6.45 0 0 1 2.42.87 5.82 5.82 0 0 1 1.8 2.7c1.79 4.48 2.87 9.43 4.35 14.1Z",opacity:.1})),d||(d=O.createElement("circle",{cx:179.07,cy:270.16,r:46,fill:"#fbbebe"})),o||(o=O.createElement("path",{d:"m319.22 419.45-3.78-22.9c-1.91-11.49-3.88-23.2-9.22-33.55-3.51-6.78-9.08-13.24-16.59-14.58a16.05 16.05 0 0 1-4.32-1c-2.2-1.06-3.4-3.44-5.09-5.2-4.36-4.52-11.46-4.59-17.3-6.89-5.16-2-9.38-5.85-14.08-8.79s-10.55-5-15.75-3.12c-.84 8.95-1.73 18.1-5.53 26.25a39.28 39.28 0 0 1-59.26 14.76c-8.91-6.71-14.62-17.06-17.28-27.89-.65-2.64-1.39-5.67-3.82-6.88-2.63-1.32-5.79.28-8 2.22-4 3.59-7.27 8.73-12.53 9.94-1.9.44-4 .35-5.58 1.5a12.7 12.7 0 0 0-2.6 3.37 12 12 0 0 1-10.23 5.06c-1.83-.09-4-.51-5.25.82-.93 1-1 2.56-2 3.49-1.35 1.31-3.54.67-5.42.6-3.56-.15-6.87 2.13-8.91 5s-3 6.42-4 9.86c10.93 24.34 20.93 48.71 31.86 73.05a6.23 6.23 0 0 1 .79 3 7.31 7.31 0 0 1-1.36 3c-5.36 8.61-5.19 19.44-4.6 29.56s1.31 20.81-3.21 29.88c-1.23 2.49-2.83 4.77-4 7.26-2.74 5.64-3.73 23.68-2.13 29.74h226.08c-4.31-11.85-2.67-35.63-1.77-48.21.63-8.8-1-17.59-1.7-26.39-1.53-17.97-.45-35.02-3.42-52.96Z",fill:"#6c63ff"})),f||(f=O.createElement("path",{d:"M65.36 445.65a35.4 35.4 0 0 0-.12 8.73l2.87 41.27c.27 3.89.54 7.77.9 11.65.69 7.53 1.72 15 3 22.46a4 4 0 0 0 4.1 3.89c12.65 2.68 25.72 2.57 38.63 1.84 19.7-1.1 39.37-3.61 59.1-3.18 5.08.11 11 0 14.08-4s1.29-10.47-2.73-13.7-9.48-4-14.64-4c-6.83-.07-13.66.9-20.47.5-6.25-.37-12.36-1.88-18.42-3.39l-17-4.23c.65-5.15 2.61-10 4.47-14.89 3.34-8.67 6.46-17.63 6.52-26.92s-3.44-19.06-11.05-24.38c-6.26-4.37-14.32-5.18-21.95-5-5.55.16-15.14-1.17-20.21 1-4.01 1.76-6.33 8.42-7.08 12.35Z",fill:"#fbbebe"})),p||(p=O.createElement("path",{d:"M330.79 540.01c3.33-1.27 7-.81 10.57-.33 11.49 1.57 23.15 3.18 33.8 7.77 5 2.14 9.76 5 13.14 9.21 3 3.79 4.75 8.43 6.41 13l3.84 10.52c1.46 4 2.94 8.08 3.35 12.33 1.2 12.59-7.41 24.46-18.24 31s-23.58 8.87-36 11.31-24.89 5.14-37.26 8a150 150 0 0 1-17.53 3.45c-13.24 1.5-27.08-.71-39.66 3.67-5 1.75-9.91 4.35-15.1 5.56a93.93 93.93 0 0 1-10.44 1.59l-23.81 2.72a129.89 129.89 0 0 1-14.6 1.12c-10.4 0-20.63-2.46-30.73-4.92a7.77 7.77 0 0 1-3-1.21c-1.6-1.26-1.95-3.49-2.18-5.51q-1.53-13.41-2.68-26.85c-.24-2.91-.42-6.06 1.17-8.51 2-3 5.9-3.94 9.46-4.52a246.88 246.88 0 0 1 45.68-3.17c5.81-5.81 15.39-5.84 23-9a68.39 68.39 0 0 0 8.11-4.41 106 106 0 0 1 44.53-14.07 41.45 41.45 0 0 0 9.11-1.3c5.89-1.83 11.26-6.81 17.31-5.59.75-2.07 1.27-4.84 3-6.26.86-.73 1.92-1.22 2.71-2 1.67-1.69 1.82-4.35 1.57-6.71s-.81-4.78-.2-7.08a9.79 9.79 0 0 1 1.11-2.47c3-5.18 7.53-7.84 13.56-7.34Z",fill:"#464353"})),E||(E=O.createElement("path",{d:"M330.79 540.01c3.33-1.27 7-.81 10.57-.33 11.49 1.57 23.15 3.18 33.8 7.77 5 2.14 9.76 5 13.14 9.21 3 3.79 4.75 8.43 6.41 13l3.84 10.52c1.46 4 2.94 8.08 3.35 12.33 1.2 12.59-7.41 24.46-18.24 31s-23.58 8.87-36 11.31-24.89 5.14-37.26 8a150 150 0 0 1-17.53 3.45c-13.24 1.5-27.08-.71-39.66 3.67-5 1.75-9.91 4.35-15.1 5.56a93.93 93.93 0 0 1-10.44 1.59l-23.81 2.72a129.89 129.89 0 0 1-14.6 1.12c-10.4 0-20.63-2.46-30.73-4.92a7.77 7.77 0 0 1-3-1.21c-1.6-1.26-1.95-3.49-2.18-5.51q-1.53-13.41-2.68-26.85c-.24-2.91-.42-6.06 1.17-8.51 2-3 5.9-3.94 9.46-4.52a246.88 246.88 0 0 1 45.68-3.17c5.81-5.81 15.39-5.84 23-9a68.39 68.39 0 0 0 8.11-4.41 106 106 0 0 1 44.53-14.07 41.45 41.45 0 0 0 9.11-1.3c5.89-1.83 11.26-6.81 17.31-5.59.75-2.07 1.27-4.84 3-6.26.86-.73 1.92-1.22 2.71-2 1.67-1.69 1.82-4.35 1.57-6.71s-.81-4.78-.2-7.08a9.79 9.79 0 0 1 1.11-2.47c3-5.18 7.53-7.84 13.56-7.34Z",opacity:.05})),y||(y=O.createElement("path",{d:"M134.22 655.72c-6.19 7.17-11.64 9.73-21.33 9.5q-8.94-.21-17.86-.93a100.2 100.2 0 0 0-12.24-.57c-12.34.48-24.25 6.13-36.56 5.14a25.92 25.92 0 0 1-5.37-1 15.63 15.63 0 0 1-7.29-4.42c-2.36-2.67-3.49-6.21-4.14-9.71-3.29-17.94 5.73-37.48 21.52-46.61a15.78 15.78 0 0 1 6.84-2.43 16.21 16.21 0 0 1 6.92 1.52l.15.06A52.33 52.33 0 0 1 82 617.71a9.66 9.66 0 0 0 2.62 2.11 9 9 0 0 0 3.09.58l13.14.83a31.14 31.14 0 0 1 6.6.91 52.46 52.46 0 0 1 6.94 3c7.07 3.16 14.91 4 22.55 5.22a3.37 3.37 0 0 1 2 .8 3.13 3.13 0 0 1 .62 1.3 25.51 25.51 0 0 1-5.34 23.26Z",fill:"#3f3d56"})),u||(u=O.createElement("path",{d:"M64.86 606.28a78.9 78.9 0 0 0-13.15 16.44 82.28 82.28 0 0 0-10.74 32.54 60.4 60.4 0 0 0-.11 12.61 15.63 15.63 0 0 1-7.29-4.42c-2.36-2.67-3.49-6.21-4.14-9.71-3.29-17.94 5.73-37.48 21.52-46.61a15.78 15.78 0 0 1 6.84-2.43 16.21 16.21 0 0 1 6.92 1.52Z",opacity:.1})),b||(b=O.createElement("path",{d:"M319.35 631.16c7.35-.2 15.6-.57 21 4.38 5.15 4.68 5.83 12.4 6.17 19.35l.39 8.07c.12 2.46.22 5-.77 7.28-1.76 4-6.59 5.93-11 5.7s-8.46-2.16-12.49-3.9a175.7 175.7 0 0 0-34-10.71q.57-8.37 1.9-16.66c.61-3.83.71-10.24 3.27-13.42 2.71-3.36 6.24-1.54 9.92-.92a79.63 79.63 0 0 0 15.61.83Z",fill:"#fbbebe"})),Z||(Z=O.createElement("path",{d:"M125.11 550.07c0 1-1.57 0-1.71-1.07-1.1-8.09-7.52-14.76-15-18s-16-3.41-24.1-2.64c-12.25 1.16-26 5.85-30.48 17.3-1.06 2.68-1.54 5.58-2.84 8.15-1.44 2.82-3.79 5.07-5.35 7.81-2.69 4.74-2.8 10.55-1.83 15.91 2.61 14.3 12.39 26.53 24.24 35s25.7 13.53 39.51 18.09a685.19 685.19 0 0 0 112 26.75c6.16.93 12.38 1.79 18.28 3.77 5.28 1.77 10.22 4.42 15.38 6.5 12 4.82 24.91 6.54 37.7 8.23 2.18.28 4.68.48 6.29-1 2.08-1.93 1.39-5.29.8-8.06a43.35 43.35 0 0 1 5.11-30.76c2.14-3.6 4.92-7.29 4.52-11.46-.48-4.86-5.32-8.3-10.14-9.08s-9.72.37-14.56 1c-1.67.22-3.49.36-4.95-.49a9.89 9.89 0 0 1-1.94-1.72 21.93 21.93 0 0 0-25.54-3.57c-1.79 1-4.5-1.23-6.36-2.07l-21.03-9.52c-24.16-10.93-48.44-21.91-74-28.83a15.54 15.54 0 0 1-5.7-2.37c-1.27-1-2.18-2.36-3.35-3.47-2.55-2.41-6.1-3.37-9.16-5.08s-6.49-5.89-5.79-9.32Z",fill:"#464353"})),M||(M=O.createElement("path",{d:"M449.32 680.76c-3.36 6.23-9.88 10.11-16.88 11.71a33.5 33.5 0 0 1-5.34.76c-8.85.55-17.59-1.9-26.12-4.32l-11.58-3.26a36.55 36.55 0 0 0-6.1-1.36 41.86 41.86 0 0 0-8.44.29 149.59 149.59 0 0 1-41-1.84 7.23 7.23 0 0 1-3.17-1.13 15.75 15.75 0 0 1-2.21-2.71c-3.15-3.79-6.54-6-2.81-11 2.15-2.9 6.14-4.35 7.81-7.68s.6-8.06-.39-11.5c-1.35-4.75-5.79-6.8-7.38-11.16-1.19-3.29.81-7.11 3.82-8.9s6.73-1.93 10.2-1.47 6.87 1.44 10.36 1.71c10.26.82 20.75-4.47 30.6-1.49 2.17.66 4.22 1.71 6.42 2.29a21.35 21.35 0 0 0 12.83-1.11c1.44-.54 2.85-1.19 4.25-1.83a34.23 34.23 0 0 1 8.55-3.09c9.61-1.65 18.52 5 25.77 11.49a36.44 36.44 0 0 1 6.55 7.1c2 3.12 3.06 6.75 4 10.33 2.65 9.25 4.84 19.67.26 28.17Z",fill:"#3f3d56"})),x||(x=O.createElement("path",{d:"M449.32 680.76c-3.36 6.23-9.88 10.11-16.88 11.71a32.69 32.69 0 0 0 3.55-17.16c-.6-9.51-4.78-18.47-10.11-26.37a93.4 93.4 0 0 0-11.14-13.57c-3.18-3.2-7.09-5.74-10.51-8.67a34.23 34.23 0 0 1 8.55-3.09c9.61-1.65 18.52 5 25.77 11.49a36.44 36.44 0 0 1 6.55 7.1c2 3.12 3.06 6.75 4 10.33 2.61 9.31 4.8 19.73.22 28.23Z",opacity:.1})),g||(g=O.createElement("path",{d:"M82.11 372.26a10.35 10.35 0 0 0-2.22 3.55 167.86 167.86 0 0 0-14.1 57.62 5.76 5.76 0 0 1-.65 2.79 12.21 12.21 0 0 1-1.47 1.59 5.52 5.52 0 0 0 .94 8c1.65-3.11 5.6-4.12 9.11-4.39 16.81-1.33 33.23 6.49 50.09 5.9-1.19-4.11-2.9-8.06-3.87-12.22-4.29-18.47 6.41-38.58-.15-56.37-1.31-3.56-3.5-7.06-6.95-8.62a18.51 18.51 0 0 0-4.45-1.18c-4.26-.77-12.74-4.06-16.86-2.74-1.52.49-2.12 1.92-3.38 2.78-1.91 1.23-4.45 1.68-6.04 3.29Z",fill:"#6c63ff"})),v||(v=O.createElement("rect",{x:117.57,y:408.66,width:223,height:142,rx:7.97,fill:"#3f3d56"})),w||(w=O.createElement("circle",{cx:228.57,cy:479.66,r:6,fill:"#fff"})),q||(q=O.createElement("path",{d:"M147.29 195.5c-3.36 2.43-5.66 5.92-8 9.27-4.31 6.19-9.19 12.37-16.08 15.82-2.61 1.31-5.59 2.3-7.32 4.58a12.34 12.34 0 0 0-1.95 5.13 101.65 101.65 0 0 0-2.06 19.6c0 3.28.14 6.66 1.59 9.64 1.37 2.8 3.84 5.17 4.35 8.22.39 2.38-.49 4.75-.8 7.14s.23 5.22 2.44 6.36a14.79 14.79 0 0 0 3.7.87c6.65 1.48 8.88 9.28 9.89 15.73 2.26-.13 3.28-2.72 3.75-4.83l6.93-30.81c.75-3.34 2-7.21 5.33-8.38 2.23-.77 4.67-.05 7 .15 9.15.75 16.89-6.32 25.84-8.27a33 33 0 0 1 8.71-.58c7.06.35 15.27 3.25 16.77 9.84.25 1.07.4 2.35 1.4 2.88s2.05.08 3.1 0c4.48-.45 7.12 4.59 8.41 8.71l4.7 15c.7 2.27 1.88 4.94 4.34 5.23 2.27.28 4.2-1.87 4.54-4s-.4-4.34-.89-6.48c-2.21-9.85 1.17-19.93 3.23-29.8s2.43-21.21-4.48-28.81c-2.51-2.75-5.81-4.8-8.15-7.7-2.18-2.72-3.41-6.06-5.67-8.73-6.25-7.37-22.28-13.06-32.11-14-11.23-1.22-29.43 1.63-38.51 8.22Z",fill:"#3f3d56"})),k||(k=O.createElement("g",{opacity:.1},O.createElement("path",{d:"M229.37 279.8c-2.46-.3-3.64-3-4.34-5.23q-2.35-7.51-4.7-15c-1.29-4.13-3.93-9.17-8.41-8.71-1.05.11-2.18.52-3.1 0s-1.15-1.81-1.4-2.88c-1.5-6.6-9.71-9.49-16.77-9.84a33.43 33.43 0 0 0-8.71.57c-8.95 2-16.69 9-25.84 8.27-2.36-.19-4.8-.91-7-.14-3.37 1.16-4.58 5-5.33 8.38l-6.93 30.8c-.47 2.12-1.49 4.71-3.75 4.83-1-6.44-3.24-14.24-9.89-15.72a15.72 15.72 0 0 1-3.7-.87 4.34 4.34 0 0 1-1.93-2.15c-.18.93-.39 1.86-.51 2.79-.3 2.38.23 5.22 2.44 6.36a14.79 14.79 0 0 0 3.7.87c6.65 1.48 8.88 9.28 9.89 15.73 2.26-.13 3.28-2.72 3.75-4.83l6.93-30.81c.75-3.34 2-7.21 5.33-8.38 2.23-.77 4.67-.05 7 .15 9.15.75 16.89-6.32 25.84-8.27a33 33 0 0 1 8.71-.58c7.06.35 15.27 3.25 16.77 9.84.25 1.07.4 2.35 1.4 2.88s2.05.08 3.1 0c4.48-.45 7.12 4.59 8.41 8.71q2.34 7.51 4.7 15c.7 2.27 1.88 4.94 4.34 5.23 2.27.28 4.2-1.87 4.54-4a13.58 13.58 0 0 0-.6-5.31 4.13 4.13 0 0 1-3.94 2.31ZM117.83 260.76c-.51-3.05-3-5.42-4.35-8.22a16.45 16.45 0 0 1-1.48-6c0 1.12-.1 2.24-.11 3.37 0 3.28.14 6.66 1.59 9.64 1.11 2.27 2.94 4.27 3.86 6.58a15.06 15.06 0 0 0 .49-5.37ZM236.25 239.48c-1.82 8.72-4.66 17.6-3.78 26.34.57-6.45 2.45-12.94 3.78-19.34a51 51 0 0 0 1.16-14.83 61.14 61.14 0 0 1-1.16 7.83Z"}))),A||(A=O.createElement("g",{opacity:.8},O.createElement("path",{fill:"none",stroke:"#3f3d56",strokeMiterlimit:10,strokeWidth:3,d:"M330.04 290.49H955.1M385.57 290.48s29.89 4.15 14.41-27.92 42-26 42-26M584.64 290.48s29.89-4.14 14.41 27.93 42 26 42 26M871.27 290.48s-29.9-4.14-14.41 27.93-42 26-42 26M814.86 344.4H649.93"}),O.createElement("circle",{cx:330.04,cy:290.49,r:18.25,fill:"#6c63ff"}),O.createElement("circle",{cx:442.29,cy:236.3,r:18.25,fill:"#3acc6c"}),O.createElement("circle",{cx:442.29,cy:290.49,r:18.25,fill:"#6c63ff"}),O.createElement("circle",{cx:514.73,cy:290.49,r:18.25,fill:"#6c63ff"}),O.createElement("circle",{cx:641.35,cy:344.13,r:18.25,fill:"#ff6584"}),O.createElement("circle",{cx:737.03,cy:344.13,r:18.25,fill:"#ff6584"}),O.createElement("circle",{cx:732.04,cy:290.49,r:18.25,fill:"#6c63ff"}),O.createElement("circle",{cx:950.48,cy:290.49,r:18.25,fill:"#6c63ff"}),O.createElement("circle",{cx:861.12,cy:290.49,r:18.25,fill:"#6c63ff"}),O.createElement("path",{fill:"#6c63ff",d:"M299.38 122.66h61.23v42.2h-61.23z"}),O.createElement("path",{fill:"#3acc6c",d:"M411.9 122.66h61.23v42.2H411.9z"}),O.createElement("path",{fill:"#ff6584",d:"M610.48 122.66h61.23v42.2h-61.23z"}))),B||(B=O.createElement("path",{d:"M86.35 299.36s-74.77-31.44-84.57 25.29c0 0-5.11 8.84 2 16.14 0 0 1.53-3.92 8.75.13a37.17 37.17 0 0 0 8.16 3.32 18.36 18.36 0 0 0 11.62-.62s24.59-1.33 45.27-33.5c0 0 8.87-5.48 9.31-7.54l-14.82 1s1.14 10.85-5 17.36c0 0 5.44-16.84 2.83-17.31-.53-.1-7.83.86-7.83.86s1.89 18.87-8 28.63c0 0 9.18-19.19 5.19-28.29l-10.94 2.11s3 19.85-7.82 31.39c0 0 8.9-20.4 5.46-30.76l-10.47 3.52s2.52 19.41-6.53 29c0 0 7.9-24.61 4.18-28 0 0-9.42 3.82-11.43 6 0 0 1.49 14-4.26 19.05 0 0 3.53-17 1.78-17.7 0 0-10.94 8.24-14.28 15.35 0 0 4.16-10.86 12.91-17 0 0-7.35-1.24-13 1.83 0 0 3.78-7.21 15.65-3.79 0 0 8.79-6.09 10.55-6 0 0-11.23-5-19.34-4.38 0 0 8.7-5 22.08 3.35l10.45-3.77s-14.5-7.43-21.76-7.4c0 0 9.66-3.74 24.47 6.66l10.7-2.18s-12-7.35-20.09-9.06c0 0 9.7-1.54 23.18 8.55l7.31-.61s-8.85-5.22-11.53-6.49-2.56-2.09-2.56-2.09a34.89 34.89 0 0 1 17.14 8.18s15.18-.3 15.24-1.23ZM83.59 243s-26.48-61.27-64.63-33.17c0 0-8.06 2.34-8 10.7 0 0 3.14-1.46 5.13 5.07a30.1 30.1 0 0 0 3 6.61 15 15 0 0 0 7.25 6.25s15.37 13.22 46 5.89c0 0 8.4 1.79 9.83.83l-9.36-7.87s-5.51 7.1-12.89 7.44c0 0 12.83-6.9 11.55-8.67-.26-.36-5.15-3.94-5.15-3.94s-9.62 12.28-21 12.47c0 0 16.39-6.18 19.2-13.85l-7.7-5s-9.71 13.51-22.71 14.21c0 0 16.91-7.05 20.77-15.17l-8.23-3.87s-9.56 13-20.37 13.49c0 0 18.72-10.12 18.43-14.25 0 0-7.77-3.1-10.24-2.92 0 0-7.07 9.15-13.38 8.89 0 0 11.79-8.09 11.15-9.5 0 0-11.2-1.34-17.23 1 0 0 8.66-4.08 17.35-2.74 0 0-3.66-4.93-8.75-6.3 0 0 6.36-2.13 11.46 6.65 0 0 8.68 1.4 9.7 2.44 0 0-3.81-9.39-9-13.62 0 0 8 2 11.2 14.57l8.36 3.71s-4.38-12.68-8.72-16.79c0 0 7.87 3.28 10.75 17.9l7.6 4.79s-2.94-11.2-6.77-16.83c0 0 6.64 4.62 8.89 18.29l4.7 3.8s-2.29-8.14-3.16-10.42-.33-2.7-.33-2.7a28.65 28.65 0 0 1 5.49 14.68s9.24 8.44 9.81 7.93Z",fill:"#6c63ff",opacity:.1})))}},6566:(e,a,t)=>{t.d(a,{Z:()=>m});var c=t(7462),l=t(7294),r=t(6010);const n="features_xdhU",i="featureSvg__8YW";var s=[{title:"Gas-Grain Chemistry",Svg:t(7156).Z,description:l.createElement(l.Fragment,null,"Detailed, consistent treatment of chemistry across the gas phase and both the surface and the bulk of the ice mantles around dust grains.")},{title:"Modular Physics",Svg:t(4503).Z,description:l.createElement(l.Fragment,null,"Flexible, interchangeable modules to model all kinds of astrophysical objects such as molecular clouds, protostellar cores and C/J-type shocks.")},{title:"Active Development",Svg:t(8538).Z,description:l.createElement(l.Fragment,null,"Teams at UCL and Leiden Observatory are working with international collaborators to extend and improve UCLCHEM. Check our ",l.createElement("a",{href:"./blog/index.html"},"blog")," for recent updates.")}];function h(e){var a=e.Svg,t=e.title,c=e.description;return l.createElement("div",{className:(0,r.Z)("col col--4")},l.createElement("div",{className:"text--center"},l.createElement(a,{className:i,alt:t})),l.createElement("div",{className:"text--center padding-horiz--md"},l.createElement("h3",null,t),l.createElement("p",null,c)))}function m(){return l.createElement("section",{className:n},l.createElement("div",{className:"container"},l.createElement("div",{className:"row"},s.map((function(e,a){return l.createElement(h,(0,c.Z)({key:a},e))})))))}},9235:(e,a,t)=>{t.r(a),t.d(a,{default:()=>o});var c=t(7294),l=t(6010),r=t(7961),n=t(9960),i=t(2263),s=t(1207);t(6566);function h(){return c.createElement("div",{className:"mycontainer"},c.createElement("h2",null,"Authors, Contributors and Users"),c.createElement("p",null,"Main author: Thomas G. Bisbas (@tbisbas)."),c.createElement("p",null,"Contributors: Serena Viti, Michael J. Barlow, Jeremy Yates, Tom Bell, Brandt Gaches"),c.createElement("p",null,"You are free to download and use the code for your work provided that you will cite the paper by ",c.createElement("a",{href:"http://adsabs.harvard.edu/abs/2012MNRAS.427.2100B",target:"_blank"},"Bisbas et al., 2012, MNRAS, 427, 2100")),c.createElement("p",null," A number of papers have been using 3D-PDR for studying Photodissociation Regions in 1D and 3D:"),c.createElement("ul",null,c.createElement("li",null,c.createElement("a",{href:"https://ui.adsabs.harvard.edu/abs/2021arXiv211006958G/abstract",target:"_blank"}," Gaches B.A.L., Bisbas T. G., Bialy S. (2022) ")),c.createElement("li",null," ",c.createElement("a",{href:"https://ui.adsabs.harvard.edu/abs/2021MNRAS.502.2701B/abstract",target:"_blank"},"Bisbas T.G., Tan J.C., Tanaka K.E.I (2021)")),c.createElement("li",null," ",c.createElement("a",{href:"https://ui.adsabs.harvard.edu/abs/2020PASJ..tmp..187L/abstract",target:"_blank"},"Lim W., Nakamura F., Wu B., Bisbas T.G. et al. (2020)")),c.createElement("li",null," ",c.createElement("a",{href:"https://ui.adsabs.harvard.edu/abs/2019ApJ...878..105G/abstract",target:"_blank"},"Gaches B.A.L., Offner S.S.R., Bisbas T.G. (2019a)")),c.createElement("li",null," ",c.createElement("a",{href:"https://ui.adsabs.harvard.edu/abs/2019arXiv190806999G/abstract",target:"_blank"},"Gaches B.A.L., Offner S.S.R., Bisbas T.G. (2019b)")),c.createElement("li",null," ",c.createElement("a",{href:"http://adsabs.harvard.edu/abs/2019MNRAS.485.3097B",target:"_blank"},"Bisbas T.G., Schruba A., van Dishoeck E.F. (2019)")),c.createElement("li",null," ",c.createElement("a",{href:"http://adsabs.harvard.edu/abs/2018MNRAS.479.1154B",target:"_blank"},"Banerji M., Jones G.C., Wang J., et al. (2018)")),c.createElement("li",null," ",c.createElement("a",{href:"http://adsabs.harvard.edu/abs/2018MNRAS.478.1716P",target:"_blank"},"Papadopoulos P.P, Bisbas T.G., Zhang Z-Y (2018)")),c.createElement("li",null," ",c.createElement("a",{href:"http://adsabs.harvard.edu/abs/2018MNRAS.478L..54B",target:"_blank"},"Bisbas T.G., Tan J.C., Csengeri T., et al., (2018)")),c.createElement("li",null," ",c.createElement("a",{href:"http://adsabs.harvard.edu/abs/2017ApJ...850...23B",target:"_blank"},"Bisbas T.G., Tanaka, K.E.I., Tan, J.C. et al., (2017)")),c.createElement("li",null," ",c.createElement("a",{href:"http://adsabs.harvard.edu/abs/2017ApJ...839...90B",target:"_blank"},"Bisbas T.G., van Dishoeck E.W., Papadopoulos P.P. et al., (2017)")),c.createElement("li",null," ",c.createElement("a",{href:"http://adsabs.harvard.edu/abs/2017MNRAS.466.2825B",target:"_blank"},"Bothwell M.S., Aguirre J.E., Aravena M., et al., (2017)")),c.createElement("li",null," ",c.createElement("a",{href:"http://adsabs.harvard.edu/abs/2017MNRAS.464.3315A",target:"_blank"},"Accurso G., Saintoge A., Bisbas T.G. and Viti S., (2016)")),c.createElement("li",null," ",c.createElement("a",{href:"http://adsabs.harvard.edu/abs/2016MNRAS.457.3593F",target:"_blank"},"Facchini S., Clarke C. and Bisbas T.G. (2016)")),c.createElement("li",null," ",c.createElement("a",{href:"http://adsabs.harvard.edu/abs/2015MNRAS.454.2828B",target:"_blank"},"Bisbas T.G., Haworth T.J., Barlow M.J., et al., (2015)")),c.createElement("li",null," ",c.createElement("a",{href:"http://adsabs.harvard.edu/abs/2015ApJ...803...37B",target:"_blank"},"Bisbas T.G., Papadopoulos P.P. and Viti S., (2015)")),c.createElement("li",null," ",c.createElement("a",{href:"http://adsabs.harvard.edu/abs/2015ApJ...799..235G",target:"_blank"},"Gaches B.A.L., Offner S.S.R., Rosolowsky E.W. and Bisbas T.G., (2015)")),c.createElement("li",null," ",c.createElement("a",{href:"http://adsabs.harvard.edu/abs/2014MNRAS.440L..81O",target:"_blank"},"Offner S.S.R., Bisbas T.G., Bell T.A. and Viti S. (2014)")),c.createElement("li",null," ",c.createElement("a",{href:"http://adsabs.harvard.edu/abs/2014MNRAS.443..111B",target:"_blank"},"Bisbas T.G., Bell T.A., Viti S., et al., (2014)")),c.createElement("li",null," ",c.createElement("a",{href:"http://adsabs.harvard.edu/abs/2013ApJ...770...49O",target:"_blank"},"Offner S.S.R., Bisbas T.G., Viti S. and Bell T.A. (2013)"))))}function m(){(0,i.Z)().siteConfig;return c.createElement("header",{className:(0,l.Z)("hero hero--primary",s.Z.heroBanner)},c.createElement("div",{className:"container"},c.createElement("h1",{className:"hero__title"},"3D-PDR"),c.createElement("div",{className:"mybuttons"},c.createElement(n.Z,{className:"mybuttons button button--secondary button--lg",to:"https://github.com/uclchem/3D-PDR"},"View on GitHub"),c.createElement(n.Z,{className:"mybuttons button button--secondary button--lg",to:"https://github.com/uclchem/3D-PDR/zipball/master"},"Get a Zip"),c.createElement(n.Z,{className:"mybuttons button button--secondary button--lg",to:"https://github.com/uclchem/3D-PDR/tarball/master"},"Get a Tarball"))))}function d(){return c.createElement("div",{className:"mycontainer"},c.createElement("p",null,"3D-PDR is a three-dimensional photodissociation region code written in Fortran. It uses the Sundials package (written in C) to solve the set of ordinary differential equations and it is the successor of UCL_PDR, a one-dimensional PDR code written at UCL. Using the HEALpix ray-tracing scheme, 3D-PDR solves a three-dimensional escape probability routine and evaluates the attenuation of the far-ultraviolet radiation in the PDR and the propagation of FIR/submm emission lines out of the PDR."),c.createElement("p",null,"The code is parallelized (OpenMP) and can be applied to 1D and 3D problems. The GitHub package includes: the 3D-PDR code, three different chemical networks (33, 58, and 128 species) and molecular data, the Sundials solver, and a set of various 1D uniform density clouds and a uniform density spherical distribution to test the 3D version of the code. To `make' 3D-PDR, you will first need to install the Sundials package and link 3D-PDR with the ODE solver. Please see the ",c.createElement("a",{href:"https://uclchem.github.io/3DPDR_manual.pdf"}," manual ")," for instructions on how to do this step-by-step."),c.createElement("p",null,"(Update: 23/04/2019) The file [3dpdr_cr.tar] that can be found in the main tarball, contains a totally new version of 3D-PDR treating cosmic-ray sources. This version was developed by Brandt Gaches [email: gaches .at. ph1.uni-koeln.de] and is presented in Gaches et al. (2019a). The tarball contains a short additional manual. Please contact Brandt Gaches for any question regarding this version."),c.createElement("p",null,"3D-PDR works with the gfortran version 4.8.4 and the ifort version 14.0.4. Later compiler versions may require adjustments in the code."))}function o(){var e=(0,i.Z)().siteConfig;return c.createElement(r.Z,{title:"3D-PDR - "+e.title,description:"Description will go into a meta tag in "},c.createElement(m,null),c.createElement(d,null),c.createElement(h,null))}},1207:(e,a,t)=>{t.d(a,{Z:()=>c});const c={heroBanner:"heroBanner_qdFl",buttons:"buttons_AeoN"}}}]); \ No newline at end of file diff --git a/assets/js/8f25fbab.4256c0fd.js b/assets/js/8f25fbab.4256c0fd.js deleted file mode 100644 index e8953db6..00000000 --- a/assets/js/8f25fbab.4256c0fd.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9707],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var o=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=o.createContext({}),u=function(e){var t=o.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=u(e.components);return o.createElement(s.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),d=u(n),h=r,m=d["".concat(s,".").concat(h)]||d[h]||p[h]||a;return n?o.createElement(m,i(i({ref:t},c),{},{components:n})):o.createElement(m,i({ref:t},c))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,i=new Array(a);i[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:r,i[1]=l;for(var u=2;u{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>h,frontMatter:()=>l,metadata:()=>u,toc:()=>p});var o=n(7462),r=n(3366),a=(n(7294),n(3905)),i=["components"],l={id:"dev-debugging",title:"Debugging"},s=void 0,u={unversionedId:"dev-debugging",id:"version-v3.2.0/dev-debugging",title:"Debugging",description:"UCLCHEM is a complex code and many things can go wrong. Here, we'll list some of the things that often go wrong when you modify the code as well as a few helpful steps to trace down bugs.",source:"@site/versioned_docs/version-v3.2.0/dev-debugging.md",sourceDirName:".",slug:"/dev-debugging",permalink:"/docs/dev-debugging",tags:[],version:"v3.2.0",frontMatter:{id:"dev-debugging",title:"Debugging"},sidebar:"docs",previous:{title:"Writing The Python Interface",permalink:"/docs/dev-python-wrap"},next:{title:"Maintaining the Website",permalink:"/docs/dev-web"}},c={},p=[{value:"Finding the error",id:"finding-the-error",level:2},{value:"Makefile",id:"makefile",level:3},{value:"Python",id:"python",level:3},{value:"Non-fatal errors",id:"non-fatal-errors",level:2},{value:"Common Error Sources",id:"common-error-sources",level:2},{value:"Variable Reset",id:"variable-reset",level:3}],d={toc:p};function h(e){var t=e.components,n=(0,r.Z)(e,i);return(0,a.kt)("wrapper",(0,o.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"UCLCHEM is a complex code and many things can go wrong. Here, we'll list some of the things that often go wrong when you modify the code as well as a few helpful steps to trace down bugs."),(0,a.kt)("h2",{id:"finding-the-error"},"Finding the error"),(0,a.kt)("p",null,"An unfortunate side effect of the python installation process and running the code in python is that underlying errors can go missing. If you get an error it is often best to go as close to the source as you can. That means compiling the code with the makefile and running it through a python script or, failing that, the binary."),(0,a.kt)("h3",{id:"makefile"},"Makefile"),(0,a.kt)("p",null,"You'll find the source code and makefile in ",(0,a.kt)("inlineCode",{parentName:"p"},"src/fortran_src"),", if you run"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"cd src/fortran_src\nmake clean\nmake python\n")),(0,a.kt)("p",null,"you'll build the python wrap from scratch and you'll get any compilation errors printed to screen directly. These compilation errors should print when ",(0,a.kt)("inlineCode",{parentName:"p"},"pip install .")," fails but they can be lost in the python errors and often won't be as helpfully coloured as the direct output from ",(0,a.kt)("inlineCode",{parentName:"p"},"make"),". You can also go into the Makefile and change the compiler flags. Switching the optimization flags out for debugging flags will make the error easier to find. You'll find them in the Makefile:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-makefile"},"#Unforgiving debugging flags\n#FFLAGS =-g -fbacktrace -Wall -fcheck=all\n#Fast optimizing flags\nFFLAGS = -O3 -fPIC -ffree-line-length-0\n")),(0,a.kt)("p",null,"where you simply switch over which ",(0,a.kt)("inlineCode",{parentName:"p"},"FFLAGS")," is commented out."),(0,a.kt)("p",null,"You can also test for errors that come from the python interface by using ",(0,a.kt)("inlineCode",{parentName:"p"},"make")," instead of ",(0,a.kt)("inlineCode",{parentName:"p"},"make python"),". This will build a uclchem binary which you can simply run with the default parameters,"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"cd src/fortran_src\nmake\ncd ../../\n./uclchem CLOUD examples/phase1.inp\n")),(0,a.kt)("p",null,"Where phase1.inp is a parameter file written in a json like format and CLOUD is the type of model we'd like to run. Better yet, if you use the debugging flags to build this, you can run it in gdb."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"gdb uclchem\nrun CLOUD examples/phase1.inp\n")),(0,a.kt)("p",null,"We can't go into detail on gdb is here but it's a terminal based debugger that can be used to trace down the error. It will often let you look at values of variables at the point where the code broke and give more information than the standard fortran outputs."),(0,a.kt)("h3",{id:"python"},"Python"),(0,a.kt)("p",null,"It's mentioned at several points in the docs but if you habitually run your UCLCHEM codes in jupyter notebooks, you'll find that error messages are often hidden from you. Any debugging should really be done via python script."),(0,a.kt)("h2",{id:"non-fatal-errors"},"Non-fatal errors"),(0,a.kt)("p",null,"Many errors will not stop the code compiling but are catastrophic. For example, you could introduce a new procedure that is valid Fortran but does not do what you want it to do. In these cases, you'll have to hunt the problem down yourself. We recommend running the test cases in ",(0,a.kt)("inlineCode",{parentName:"p"},"scripts/run_uclchem_tests.py")," and comparing the output to the ones in the example using the plot created by ",(0,a.kt)("inlineCode",{parentName:"p"},"scripts/plot_uclchem_tests.py"),". Sometimes, they'll be different because you introduced a change that you know will effect the chemistry. For example, you might have changed a desorption process and find the ice abundances change which is totally fine. However, if you see a change that is unexpected, you can investigate."),(0,a.kt)("p",null,"There's no better way to debug these errors than to simply print a lot of things to screen. It can seem silly but adding a bunch of write statements to your code is often the fastest way to track down what is going wrong."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-fortran"},'IF (myParam .gt. criticalValue) THEN\n write(*,*) "here!"\n !do stuff\nELSE\n write(*,*) "if not trigged because myParam is", myParam\n !do other stuff\nEND IF\n\n!do some processing\nCALL myNewSubroutine\nwrite(*,*) "myParam", myParam, "at code point x"\n\n')),(0,a.kt)("p",null,"Additions to the code like above will check the logic of your code is going the way you expect and that parameters aren't taking surprise values. If you have absolutely no suspicions about which part of your code is going wrong, you can use the subroutine ",(0,a.kt)("inlineCode",{parentName:"p"},"simpleDebug")," which is in the IO module (",(0,a.kt)("inlineCode",{parentName:"p"},"io.f90"),"). That prints a statement of your choice as well as many of the parameters."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-fortran"},'!do some processing\nCALL myNewSubroutine\nCALL simpleDebug("Param values after myNewSubroutine")\n')),(0,a.kt)("h2",{id:"common-error-sources"},"Common Error Sources"),(0,a.kt)("h3",{id:"variable-reset"},"Variable Reset"),(0,a.kt)("p",null,"If you notice errors that only occur when you run the code more than once in a python script, then a common source is the initial value that variables take in the code. Variable initialization done at the declaration stage of a module only happens once. That is why the vast majority of variables that are not fortran parameters (constants) are set to an initial value by defaultparameters.f90 or in the initialization subroutines of the physics-core, chemistry, and physics modules."),(0,a.kt)("p",null,"It's very common when editing the code or adding new variables to forget to do this and then to see unusual behaviour when you run multiple models in a row in python."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8f25fbab.fcac962d.js b/assets/js/8f25fbab.fcac962d.js new file mode 100644 index 00000000..86013da3 --- /dev/null +++ b/assets/js/8f25fbab.fcac962d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9707],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var o=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=o.createContext({}),u=function(e){var t=o.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=u(e.components);return o.createElement(s.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},p=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),p=u(n),h=r,m=p["".concat(s,".").concat(h)]||p[h]||d[h]||a;return n?o.createElement(m,i(i({ref:t},c),{},{components:n})):o.createElement(m,i({ref:t},c))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,i=new Array(a);i[0]=p;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:r,i[1]=l;for(var u=2;u{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>h,frontMatter:()=>l,metadata:()=>u,toc:()=>d});var o=n(7462),r=n(3366),a=(n(7294),n(3905)),i=["components"],l={id:"dev-debugging",title:"Debugging"},s=void 0,u={unversionedId:"dev-debugging",id:"version-v3.2.0/dev-debugging",title:"Debugging",description:"UCLCHEM is a complex code and many things can go wrong. Here, we'll list some of the things that often go wrong when you modify the code as well as a few helpful steps to trace down bugs.",source:"@site/versioned_docs/version-v3.2.0/dev-debugging.md",sourceDirName:".",slug:"/dev-debugging",permalink:"/docs/dev-debugging",draft:!1,tags:[],version:"v3.2.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"dev-debugging",title:"Debugging"},sidebar:"docs",previous:{title:"Writing The Python Interface",permalink:"/docs/dev-python-wrap"},next:{title:"Maintaining the Website",permalink:"/docs/dev-web"}},c={},d=[{value:"Finding the error",id:"finding-the-error",level:2},{value:"Makefile",id:"makefile",level:3},{value:"Python",id:"python",level:3},{value:"Non-fatal errors",id:"non-fatal-errors",level:2},{value:"Common Error Sources",id:"common-error-sources",level:2},{value:"Variable Reset",id:"variable-reset",level:3}],p={toc:d};function h(e){var t=e.components,n=(0,r.Z)(e,i);return(0,a.kt)("wrapper",(0,o.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"UCLCHEM is a complex code and many things can go wrong. Here, we'll list some of the things that often go wrong when you modify the code as well as a few helpful steps to trace down bugs."),(0,a.kt)("h2",{id:"finding-the-error"},"Finding the error"),(0,a.kt)("p",null,"An unfortunate side effect of the python installation process and running the code in python is that underlying errors can go missing. If you get an error it is often best to go as close to the source as you can. That means compiling the code with the makefile and running it through a python script or, failing that, the binary."),(0,a.kt)("h3",{id:"makefile"},"Makefile"),(0,a.kt)("p",null,"You'll find the source code and makefile in ",(0,a.kt)("inlineCode",{parentName:"p"},"src/fortran_src"),", if you run"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"cd src/fortran_src\nmake clean\nmake python\n")),(0,a.kt)("p",null,"you'll build the python wrap from scratch and you'll get any compilation errors printed to screen directly. These compilation errors should print when ",(0,a.kt)("inlineCode",{parentName:"p"},"pip install .")," fails but they can be lost in the python errors and often won't be as helpfully coloured as the direct output from ",(0,a.kt)("inlineCode",{parentName:"p"},"make"),". You can also go into the Makefile and change the compiler flags. Switching the optimization flags out for debugging flags will make the error easier to find. You'll find them in the Makefile:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-makefile"},"#Unforgiving debugging flags\n#FFLAGS =-g -fbacktrace -Wall -fcheck=all\n#Fast optimizing flags\nFFLAGS = -O3 -fPIC -ffree-line-length-0\n")),(0,a.kt)("p",null,"where you simply switch over which ",(0,a.kt)("inlineCode",{parentName:"p"},"FFLAGS")," is commented out."),(0,a.kt)("p",null,"You can also test for errors that come from the python interface by using ",(0,a.kt)("inlineCode",{parentName:"p"},"make")," instead of ",(0,a.kt)("inlineCode",{parentName:"p"},"make python"),". This will build a uclchem binary which you can simply run with the default parameters,"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"cd src/fortran_src\nmake\ncd ../../\n./uclchem CLOUD examples/phase1.inp\n")),(0,a.kt)("p",null,"Where phase1.inp is a parameter file written in a json like format and CLOUD is the type of model we'd like to run. Better yet, if you use the debugging flags to build this, you can run it in gdb."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"gdb uclchem\nrun CLOUD examples/phase1.inp\n")),(0,a.kt)("p",null,"We can't go into detail on gdb is here but it's a terminal based debugger that can be used to trace down the error. It will often let you look at values of variables at the point where the code broke and give more information than the standard fortran outputs."),(0,a.kt)("h3",{id:"python"},"Python"),(0,a.kt)("p",null,"It's mentioned at several points in the docs but if you habitually run your UCLCHEM codes in jupyter notebooks, you'll find that error messages are often hidden from you. Any debugging should really be done via python script."),(0,a.kt)("h2",{id:"non-fatal-errors"},"Non-fatal errors"),(0,a.kt)("p",null,"Many errors will not stop the code compiling but are catastrophic. For example, you could introduce a new procedure that is valid Fortran but does not do what you want it to do. In these cases, you'll have to hunt the problem down yourself. We recommend running the test cases in ",(0,a.kt)("inlineCode",{parentName:"p"},"scripts/run_uclchem_tests.py")," and comparing the output to the ones in the example using the plot created by ",(0,a.kt)("inlineCode",{parentName:"p"},"scripts/plot_uclchem_tests.py"),". Sometimes, they'll be different because you introduced a change that you know will effect the chemistry. For example, you might have changed a desorption process and find the ice abundances change which is totally fine. However, if you see a change that is unexpected, you can investigate."),(0,a.kt)("p",null,"There's no better way to debug these errors than to simply print a lot of things to screen. It can seem silly but adding a bunch of write statements to your code is often the fastest way to track down what is going wrong."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-fortran"},'IF (myParam .gt. criticalValue) THEN\n write(*,*) "here!"\n !do stuff\nELSE\n write(*,*) "if not trigged because myParam is", myParam\n !do other stuff\nEND IF\n\n!do some processing\nCALL myNewSubroutine\nwrite(*,*) "myParam", myParam, "at code point x"\n\n')),(0,a.kt)("p",null,"Additions to the code like above will check the logic of your code is going the way you expect and that parameters aren't taking surprise values. If you have absolutely no suspicions about which part of your code is going wrong, you can use the subroutine ",(0,a.kt)("inlineCode",{parentName:"p"},"simpleDebug")," which is in the IO module (",(0,a.kt)("inlineCode",{parentName:"p"},"io.f90"),"). That prints a statement of your choice as well as many of the parameters."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-fortran"},'!do some processing\nCALL myNewSubroutine\nCALL simpleDebug("Param values after myNewSubroutine")\n')),(0,a.kt)("h2",{id:"common-error-sources"},"Common Error Sources"),(0,a.kt)("h3",{id:"variable-reset"},"Variable Reset"),(0,a.kt)("p",null,"If you notice errors that only occur when you run the code more than once in a python script, then a common source is the initial value that variables take in the code. Variable initialization done at the declaration stage of a module only happens once. That is why the vast majority of variables that are not fortran parameters (constants) are set to an initial value by defaultparameters.f90 or in the initialization subroutines of the physics-core, chemistry, and physics modules."),(0,a.kt)("p",null,"It's very common when editing the code or adding new variables to forget to do this and then to see unusual behaviour when you run multiple models in a row in python."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.8b4fa2a9.js b/assets/js/935f2afb.8b4fa2a9.js new file mode 100644 index 00000000..ae804837 --- /dev/null +++ b/assets/js/935f2afb.8b4fa2a9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Develop \ud83d\udea7","banner":"unreleased","badge":true,"noIndex":false,"className":"docs-version-current","isLast":false,"docsSidebars":{"docs":[{"type":"category","label":"Getting Started","items":[{"type":"link","label":"Installation","href":"/docs/next/","docId":"install"},{"type":"link","label":"Creating a Network","href":"/docs/next/network","docId":"network"},{"type":"link","label":"Model Parameters","href":"/docs/next/parameters","docId":"parameters"},{"type":"link","label":"Python Reference","href":"/docs/next/pythonapi","docId":"pythonapi"}],"collapsed":true,"collapsible":true,"href":"/docs/next/category/getting-started"},{"type":"category","label":"Tutorials","items":[{"type":"link","label":"Running Your First Models","href":"/docs/next/first_model","docId":"first_model"},{"type":"link","label":"Advanced Physical Modelling","href":"/docs/next/modelling_objects","docId":"modelling_objects"},{"type":"link","label":"Running a Grid","href":"/docs/next/running_a_grid","docId":"running_a_grid"},{"type":"link","label":"Chemical Analysis","href":"/docs/next/chemical_analysis","docId":"chemical_analysis"}],"collapsed":true,"collapsible":true,"href":"/docs/next/category/tutorials"},{"type":"category","label":"Troubleshooting","items":[{"type":"link","label":"Compilation Issues","href":"/docs/next/trouble-compile","docId":"trouble-compile"},{"type":"link","label":"Integration","href":"/docs/next/trouble-integration","docId":"trouble-integration"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Physics","items":[{"type":"link","label":"Core Physics","href":"/docs/next/physics-core","docId":"physics-core"},{"type":"link","label":"Cloud Model","href":"/docs/next/physics-cloud","docId":"physics-cloud"},{"type":"link","label":"Hot Core","href":"/docs/next/physics-hotcore","docId":"physics-hotcore"},{"type":"link","label":"Shock Models","href":"/docs/next/physics-shocks","docId":"physics-shocks"},{"type":"link","label":"Collapse Models","href":"/docs/next/physics-collapse","docId":"physics-collapse"}],"collapsed":true,"collapsible":true,"href":"/docs/next/physics-core"},{"type":"category","label":"Chemistry","items":[{"type":"link","label":"Notation","href":"/docs/next/notation","docId":"notation"},{"type":"link","label":"Gas Phase Reactions","href":"/docs/next/gas","docId":"gas"},{"type":"link","label":"Grain Surface Reactions","href":"/docs/next/grain","docId":"grain"},{"type":"link","label":"Adsorption & Desorption Reactions","href":"/docs/next/desorb","docId":"desorb"},{"type":"link","label":"Bulk Ice Processes","href":"/docs/next/bulk","docId":"bulk"}],"collapsed":true,"collapsible":true,"href":"/docs/next/category/chemistry"},{"type":"category","label":"Developer","items":[{"type":"link","label":"Overview of the Code","href":"/docs/next/dev-overview","docId":"dev-overview"},{"type":"link","label":"Writing The Python Interface","href":"/docs/next/dev-python-wrap","docId":"dev-python-wrap"},{"type":"link","label":"Debugging","href":"/docs/next/dev-debugging","docId":"dev-debugging"},{"type":"link","label":"Maintaining the Website","href":"/docs/next/dev-web","docId":"dev-web"}],"collapsed":true,"collapsible":true,"href":"/docs/next/category/developer"}]},"docs":{"bulk":{"id":"bulk","title":"Bulk Ice Processes","description":"For a three phase network, we must include reactions in the bulk and the process by which it is formed. To do this, MakeRates automatically duplicates all LH reactions so that a reaction on the surface and one in the bulk ice exists in the network. We then include two methods by which material can move between the bulk and the surface. First is the accumulation of the bulk as new surface layers are formed and second is the individual swapping of a particle from the bulk with one on the surface. Both of these processes are taken from Garrod & Pauly 2011","sidebar":"docs"},"chemical_analysis":{"id":"chemical_analysis","title":"Chemical Analysis","description":"Chemical networks are complex systems where the interplay between many elements often means that small changes in one aspect of the network can greatly effect the outcome in unexpected ways. Nevertheless, there are cases where a simple chemical explanation can be found for some observed behaviour in the model outputs. This tutorial demonstrates how to use some of the functionality of the UCLCHEM library to analyse model outputs and discover these explanations.","sidebar":"docs"},"desorb":{"id":"desorb","title":"Adsorption & Desorption Reactions","description":"Coupling between the gas and the grain chemistry primarily comes from the freeze out of material from the gas phase onto the dust grains (adsorption) and the sublimation of material from the grains into the gas phase (desorption). The major processes considered by UCLCHEM are listed below. Note that we assume desorption and freeze out occur between the gas and the surface only, bulk material in three phase models does not directly desorb into the gas phase.","sidebar":"docs"},"dev-debugging":{"id":"dev-debugging","title":"Debugging","description":"UCLCHEM is a complex code and many things can go wrong. Here, we\'ll list some of the things that often go wrong when you modify the code as well as a few helpful steps to trace down bugs.","sidebar":"docs"},"dev-overview":{"id":"dev-overview","title":"Overview of the Code","description":"The page is designed to give a brief overview of the code\'s structure. It\'s less about the scientific justification for the various treatments in the code and more about how the code is segmented and where to look for things.","sidebar":"docs"},"dev-python-wrap":{"id":"dev-python-wrap","title":"Writing The Python Interface","description":"The python interface is a relatively complex bit of code, a lot of work is put on the development side to make the user side a smooth experience. Writing the core of UCLCHEM in Fortran gives great performance benefits but compiling it to python with F2PY has its peculiarities. Here, we discuss the steps needed to adjust the code.","sidebar":"docs"},"dev-web":{"id":"dev-web","title":"Maintaining the Website","description":"We use Docusaurus to maintain our website. The upside is that documentation and blog posts can all be created as simple markdown files. The downside is a slightly convoluted workflow which we explain here.","sidebar":"docs"},"first_model":{"id":"first_model","title":"Running Your First Models","description":"In this notebook, we demonstrate the basic use of UCLCHEM\'s python module by running a simple model and then using the analysis functions to examine the output.","sidebar":"docs"},"gas":{"id":"gas","title":"Gas Phase Reactions","description":"Gas phase ODEs","sidebar":"docs"},"grain":{"id":"grain","title":"Grain Surface Reactions","description":"Whilst the basic treatment of gas phase chemistry is well established, grain surface chemistry is more complex. There are three possible ways to treat grain surface chemistry in UCLCHEM. In general we assume that:","sidebar":"docs"},"hydro":{"id":"hydro","title":"Hydro Post Processing","description":"Main Contributors: Jon Holdship"},"install":{"id":"install","title":"Installation","description":"Prerequisites","sidebar":"docs"},"modelling_objects":{"id":"modelling_objects","title":"Advanced Physical Modelling","description":"In the previous tutorial, we simply modelled the chemistry of a static cloud for 1 Myr. This is unlikely to meet everybody\'s modelling needs and UCLCHEM is capable of modelling much more complex environments such as hot cores and shocks. In this tutorial, we model both a hot core and a shock to explore how these models work and to demonstrate the workflow that the UCLCHEM team normally follow.","sidebar":"docs"},"network":{"id":"network","title":"Creating a Network","description":"MakeRates","sidebar":"docs"},"notation":{"id":"notation","title":"Notation","description":"UCLCHEM uses notation, which differentiates between species types. Here, we\'ll give an overview of this notation and associated processes.","sidebar":"docs"},"parameters":{"id":"parameters","title":"Model Parameters","description":"UCLCHEM will default to these values unless they are overridden by user. Users can override these by adding the variable name as written here in the paramdict argument of any UCLCHEM model function. paramdict is not case sensitive.","sidebar":"docs"},"physics-cloud":{"id":"physics-cloud","title":"Cloud Model","description":"Main Contributors: Serena Viti, Jon Holdship","sidebar":"docs"},"physics-collapse":{"id":"physics-collapse","title":"Collapse Models","description":"Main Contributors: Felix Priestley","sidebar":"docs"},"physics-core":{"id":"physics-core","title":"Core Physics","description":"Each of the other physics doc pages details the specifics of a particular physics model. This one gives a general overview of the physics in UCLCHEM, including the core physics routines that are called for all models.","sidebar":"docs"},"physics-hotcore":{"id":"physics-hotcore","title":"Hot Core","description":"Main Contributors: Serena Viti, Jon Holdship","sidebar":"docs"},"physics-shocks":{"id":"physics-shocks","title":"Shock Models","description":"Main Contributors: Izaskun Jimenez-Serra, Tom James, Jon Holdship","sidebar":"docs"},"pythonapi":{"id":"pythonapi","title":"Python Reference","description":"* uclchem","sidebar":"docs"},"running_a_grid":{"id":"running_a_grid","title":"Running a Grid","description":"A common task is to run UCLCHEM over a grid of parameter combinations. This notebook sets up a simple approach to doing so for regular grids.","sidebar":"docs"},"trouble-compile":{"id":"trouble-compile","title":"Compilation Issues","description":"Given that UCLCHEM is supplied as source code, used across many machine types, and is a fairly complex model, things will occasionally go wrong. We\'ve collected here some of the most common problems and hope they resolve most issues.","sidebar":"docs"},"trouble-integration":{"id":"trouble-integration","title":"Integration","description":"My code just keeps running","sidebar":"docs"}}}')}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.b07785f2.js b/assets/js/935f2afb.b07785f2.js deleted file mode 100644 index 26ac5e2a..00000000 --- a/assets/js/935f2afb.b07785f2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Develop \ud83d\udea7","banner":"unreleased","badge":true,"className":"docs-version-current","isLast":false,"docsSidebars":{"docs":[{"type":"category","label":"Getting Started","items":[{"type":"link","label":"Installation","href":"/docs/next/","docId":"install"},{"type":"link","label":"Creating a Network","href":"/docs/next/network","docId":"network"},{"type":"link","label":"Model Parameters","href":"/docs/next/parameters","docId":"parameters"},{"type":"link","label":"Python Reference","href":"/docs/next/pythonapi","docId":"pythonapi"}],"collapsed":true,"collapsible":true,"href":"/docs/next/category/getting-started"},{"type":"category","label":"Tutorials","items":[{"type":"link","label":"Running Your First Models","href":"/docs/next/first_model","docId":"first_model"},{"type":"link","label":"Advanced Physical Modelling","href":"/docs/next/modelling_objects","docId":"modelling_objects"},{"type":"link","label":"Running a Grid","href":"/docs/next/running_a_grid","docId":"running_a_grid"},{"type":"link","label":"Chemical Analysis","href":"/docs/next/chemical_analysis","docId":"chemical_analysis"}],"collapsed":true,"collapsible":true,"href":"/docs/next/category/tutorials"},{"type":"category","label":"Troubleshooting","items":[{"type":"link","label":"Compilation Issues","href":"/docs/next/trouble-compile","docId":"trouble-compile"},{"type":"link","label":"Integration","href":"/docs/next/trouble-integration","docId":"trouble-integration"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Physics","items":[{"type":"link","label":"Core Physics","href":"/docs/next/physics-core","docId":"physics-core"},{"type":"link","label":"Cloud Model","href":"/docs/next/physics-cloud","docId":"physics-cloud"},{"type":"link","label":"Hot Core","href":"/docs/next/physics-hotcore","docId":"physics-hotcore"},{"type":"link","label":"Shock Models","href":"/docs/next/physics-shocks","docId":"physics-shocks"},{"type":"link","label":"Collapse Models","href":"/docs/next/physics-collapse","docId":"physics-collapse"}],"collapsed":true,"collapsible":true,"href":"/docs/next/physics-core"},{"type":"category","label":"Chemistry","items":[{"type":"link","label":"Gas Phase Reactions","href":"/docs/next/gas","docId":"gas"},{"type":"link","label":"Grain Surface Reactions","href":"/docs/next/grain","docId":"grain"},{"type":"link","label":"Adsorption & Desorption Reactions","href":"/docs/next/desorb","docId":"desorb"},{"type":"link","label":"Bulk Ice Processes","href":"/docs/next/bulk","docId":"bulk"}],"collapsed":true,"collapsible":true,"href":"/docs/next/category/chemistry"},{"type":"category","label":"Developer","items":[{"type":"link","label":"Overview of the Code","href":"/docs/next/dev-overview","docId":"dev-overview"},{"type":"link","label":"Writing The Python Interface","href":"/docs/next/dev-python-wrap","docId":"dev-python-wrap"},{"type":"link","label":"Debugging","href":"/docs/next/dev-debugging","docId":"dev-debugging"},{"type":"link","label":"Maintaining the Website","href":"/docs/next/dev-web","docId":"dev-web"}],"collapsed":true,"collapsible":true,"href":"/docs/next/category/developer"}]},"docs":{"bulk":{"id":"bulk","title":"Bulk Ice Processes","description":"For a three phase network, we must include reactions in the bulk and the process by which it is formed. To do this, MakeRates automatically duplicates all LH reactions so that a reaction on the surface and one in the bulk ice exists in the network. We then include two methods by which material can move between the bulk and the surface. First is the accumulation of the bulk as new surface layers are formed and second is the individual swapping of a particle from the bulk with one on the surface. Both of these processes are taken from Garrod & Pauly 2011","sidebar":"docs"},"chemical_analysis":{"id":"chemical_analysis","title":"Chemical Analysis","description":"Chemical networks are complex systems where the interplay between many elements often means that small changes in one aspect of the network can greatly effect the outcome in unexpected ways. Nevertheless, there are cases where a simple chemical explanation can be found for some observed behaviour in the model outputs. This tutorial demonstrates how to use some of the functionality of the UCLCHEM library to analyse model outputs and discover these explanations.","sidebar":"docs"},"desorb":{"id":"desorb","title":"Adsorption & Desorption Reactions","description":"Coupling between the gas and the grain chemistry primarily comes from the freeze out of material from the gas phase onto the dust grains (adsorption) and the sublimation of material from the grains into the gas phase (desorption). The major processes considered by UCLCHEM are listed below. Note that we assume desorption and freeze out occur between the gas and the surface only, bulk material in three phase models does not directly desorb into the gas phase.","sidebar":"docs"},"dev-debugging":{"id":"dev-debugging","title":"Debugging","description":"UCLCHEM is a complex code and many things can go wrong. Here, we\'ll list some of the things that often go wrong when you modify the code as well as a few helpful steps to trace down bugs.","sidebar":"docs"},"dev-overview":{"id":"dev-overview","title":"Overview of the Code","description":"The page is designed to give a brief overview of the code\'s structure. It\'s less about the scientific justification for the various treatments in the code and more about how the code is segmented and where to look for things.","sidebar":"docs"},"dev-python-wrap":{"id":"dev-python-wrap","title":"Writing The Python Interface","description":"The python interface is a relatively complex bit of code, a lot of work is put on the development side to make the user side a smooth experience. Writing the core of UCLCHEM in Fortran gives great performance benefits but compiling it to python with F2PY has its peculiarities. Here, we discuss the steps needed to adjust the code.","sidebar":"docs"},"dev-web":{"id":"dev-web","title":"Maintaining the Website","description":"We use Docusaurus to maintain our website. The upside is that documentation and blog posts can all be created as simple markdown files. The downside is a slightly convoluted workflow which we explain here.","sidebar":"docs"},"first_model":{"id":"first_model","title":"Running Your First Models","description":"In this notebook, we demonstrate the basic use of UCLCHEM\'s python module by running a simple model and then using the analysis functions to examine the output.","sidebar":"docs"},"gas":{"id":"gas","title":"Gas Phase Reactions","description":"Gas phase ODEs","sidebar":"docs"},"grain":{"id":"grain","title":"Grain Surface Reactions","description":"Whilst the basic treatment of gas phase chemistry is well established, grain surface chemistry is more complex. There are three possible ways to treat grain surface chemistry in UCLCHEM. In general we assume that:","sidebar":"docs"},"hydro":{"id":"hydro","title":"Hydro Post Processing","description":"Main Contributors: Jon Holdship"},"install":{"id":"install","title":"Installation","description":"Prerequisites","sidebar":"docs"},"modelling_objects":{"id":"modelling_objects","title":"Advanced Physical Modelling","description":"In the previous tutorial, we simply modelled the chemistry of a static cloud for 1 Myr. This is unlikely to meet everybody\'s modelling needs and UCLCHEM is capable of modelling much more complex environments such as hot cores and shocks. In this tutorial, we model both a hot core and a shock to explore how these models work and to demonstrate the workflow that the UCLCHEM team normally follow.","sidebar":"docs"},"network":{"id":"network","title":"Creating a Network","description":"MakeRates","sidebar":"docs"},"parameters":{"id":"parameters","title":"Model Parameters","description":"UCLCHEM will default to these values unless they are overridden by user. Users can override these by adding the variable name as written here in the paramdict argument of any UCLCHEM model function. paramdict is not case sensitive.","sidebar":"docs"},"physics-cloud":{"id":"physics-cloud","title":"Cloud Model","description":"Main Contributors: Serena Viti, Jon Holdship","sidebar":"docs"},"physics-collapse":{"id":"physics-collapse","title":"Collapse Models","description":"Main Contributors: Felix Priestley","sidebar":"docs"},"physics-core":{"id":"physics-core","title":"Core Physics","description":"Each of the other physics doc pages details the specifics of a particular physics model. This one gives a general overview of the physics in UCLCHEM, including the core physics routines that are called for all models.","sidebar":"docs"},"physics-hotcore":{"id":"physics-hotcore","title":"Hot Core","description":"Main Contributors: Serena Viti, Jon Holdship","sidebar":"docs"},"physics-shocks":{"id":"physics-shocks","title":"Shock Models","description":"Main Contributors: Izaskun Jimenez-Serra, Tom James, Jon Holdship","sidebar":"docs"},"pythonapi":{"id":"pythonapi","title":"Python Reference","description":"* uclchem","sidebar":"docs"},"running_a_grid":{"id":"running_a_grid","title":"Running a Grid","description":"A common task is to run UCLCHEM over a grid of parameter combinations. This notebook sets up a simple approach to doing so for regular grids.","sidebar":"docs"},"trouble-compile":{"id":"trouble-compile","title":"Compilation Issues","description":"Given that UCLCHEM is supplied as source code, used across many machine types, and is a fairly complex model, things will occasionally go wrong. We\'ve collected here some of the most common problems and hope they resolve most issues.","sidebar":"docs"},"trouble-integration":{"id":"trouble-integration","title":"Integration","description":"My code just keeps running","sidebar":"docs"}}}')}}]); \ No newline at end of file diff --git a/assets/js/93b8a6b4.e799db72.js b/assets/js/93b8a6b4.e799db72.js new file mode 100644 index 00000000..8976ff51 --- /dev/null +++ b/assets/js/93b8a6b4.e799db72.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9780],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>p});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),h=u(n),p=o,m=h["".concat(l,".").concat(p)]||h[p]||d[p]||r;return n?a.createElement(m,i(i({ref:t},c),{},{components:n})):a.createElement(m,i({ref:t},c))}));function p(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:o,i[1]=s;for(var u=2;u{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>p,frontMatter:()=>s,metadata:()=>u,toc:()=>d});var a=n(7462),o=n(3366),r=(n(7294),n(3905)),i=["components"],s={id:"dev-web",title:"Maintaining the Website"},l=void 0,u={unversionedId:"dev-web",id:"version-v3.2.0/dev-web",title:"Maintaining the Website",description:"We use Docusaurus to maintain our website. The upside is that documentation and blog posts can all be created as simple markdown files. The downside is a slightly convoluted workflow which we explain here.",source:"@site/versioned_docs/version-v3.2.0/dev-web.md",sourceDirName:".",slug:"/dev-web",permalink:"/docs/dev-web",draft:!1,tags:[],version:"v3.2.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"dev-web",title:"Maintaining the Website"},sidebar:"docs",previous:{title:"Debugging",permalink:"/docs/dev-debugging"}},c={},d=[{value:"Repository Structure",id:"repository-structure",level:2},{value:"Setting Up",id:"setting-up",level:2},{value:"Requirements",id:"requirements",level:3},{value:"Cloning",id:"cloning",level:3},{value:"Making Changes",id:"making-changes",level:2},{value:"Docs",id:"docs",level:3},{value:"Blog",id:"blog",level:3},{value:"Main pages",id:"main-pages",level:3},{value:"Pushing Changes",id:"pushing-changes",level:2}],h={toc:d};function p(e){var t=e.components,n=(0,o.Z)(e,i);return(0,r.kt)("wrapper",(0,a.Z)({},h,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"We use ",(0,r.kt)("a",{parentName:"p",href:"https://docusaurus.io"},"Docusaurus")," to maintain our website. The upside is that documentation and blog posts can all be created as simple markdown files. The downside is a slightly convoluted workflow which we explain here."),(0,r.kt)("h2",{id:"repository-structure"},"Repository Structure"),(0,r.kt)("p",null,"The website is generated from a ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/uclchem/uclchem.github.io"},"dedicated repository")," which has two branches: ",(0,r.kt)("strong",{parentName:"p"},"master")," and ",(0,r.kt)("strong",{parentName:"p"},"docusaurus"),". Master is the branch from which the website is actually served and it is not to be edited by users. Instead, it is automatically generated from the source code by Docusaurus. ",(0,r.kt)("strong",{parentName:"p"},"Users modify the docusaurus branch.")),(0,r.kt)("h2",{id:"setting-up"},"Setting Up"),(0,r.kt)("h3",{id:"requirements"},"Requirements"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"You'll need ",(0,r.kt)("a",{parentName:"li",href:"https://classic.yarnpkg.com/lang/en/docs/install/#debian-stable"},"yarn")," or npm installed to run docusaurus, we'll assume yarn as it's simplest but the ",(0,r.kt)("a",{parentName:"li",href:"https://docusaurus.io/docs"},"docusaurus docs")," explain how to use either."),(0,r.kt)("li",{parentName:"ul"},"You need to set up github to use SSH keys to authenticate your pushes. ",(0,r.kt)("a",{parentName:"li",href:"https://docs.github.com/en/authentication/connecting-to-github-with-ssh"},"The github docs explain this"))),(0,r.kt)("h3",{id:"cloning"},"Cloning"),(0,r.kt)("p",null,"To get a copy of the website and start looking around, you can do the following:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"git clone git@github.com:uclchem/uclchem.github.io.git\ncd uclchem.github.io\ngit checkout docusaurus\n")),(0,r.kt)("p",null,"which will clone the repository and move to the development branch. The parent directory is not particularly useful, most content is in ",(0,r.kt)("inlineCode",{parentName:"p"},"website/"),", users can run the site locally with:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"cd website\nyarn start\n")),(0,r.kt)("h2",{id:"making-changes"},"Making Changes"),(0,r.kt)("h3",{id:"docs"},"Docs"),(0,r.kt)("p",null,"The docs pages are generated from markdown files in ",(0,r.kt)("inlineCode",{parentName:"p"},"website/docs"),". There's a script in the ",(0,r.kt)("inlineCode",{parentName:"p"},"utils")," directory of the main UCLCHEM repository (",(0,r.kt)("inlineCode",{parentName:"p"},"utils/make_python_docs.sh"),") to automatically generate the parameters docs, the Python API reference, and the tutorial pages from the code and tutorial files. You need to supply the path to your uclchem.github.io repository to have it automatically move the files there. If you want to add or modify any other docs, you can just create or edit a markdown file."),(0,r.kt)("p",null,"The only docs that are actually included in the side are those listed in ",(0,r.kt)("inlineCode",{parentName:"p"},"website/sidebars.json"),". There's some structure to it but we define categories in a simple JSON format and then each cateogory has an items list where you can add new pages. If you want to add a completely new category, just compare the category declaration in this file with the docs online. The docs listed in sidebars.json should match the ",(0,r.kt)("inlineCode",{parentName:"p"},"id")," at the top of each markdown file."),(0,r.kt)("h3",{id:"blog"},"Blog"),(0,r.kt)("p",null,"We're attempting to add a blog post for each publication that uses UCLCHEM. Blog posts are again just markdown files which can be found in ",(0,r.kt)("inlineCode",{parentName:"p"},"website/blog"),". Everything in that directory is included in the blog, the date from the file name is used to order them."),(0,r.kt)("h3",{id:"main-pages"},"Main pages"),(0,r.kt)("p",null,"The other pages on the site are either js files in ",(0,r.kt)("inlineCode",{parentName:"p"},"website/src/pages")," or static html files in ",(0,r.kt)("inlineCode",{parentName:"p"},"website/static"),". Docusaurus does not like you to work with the static files so where possible, you should use the js files. We use very simple js where we just put the HTML we would put into a normal webpage into functions and then call the functions in the main part of the file to produce a simple HMTL page. It's best to use existing pages as templates."),(0,r.kt)("h2",{id:"pushing-changes"},"Pushing Changes"),(0,r.kt)("p",null,"Once you've made your edits, you do the following steps:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},'# Let docusaurus update the website\nUSE_SSH=true GIT_USER=gijsvermarien DEPLOYMENT_BRANCH=master yarn deploy\n\n# Push your changes to the docusaurus branch as normal\ngit add . -A\ngit commit -m "useful update message"\ngit push\n\n')),(0,r.kt)("p",null,"If your github is set up with to use private key authentication and ssh (highly recommended), docusaurus will build the website and push it to master for you when you use yarn deploy. You then push to docusaurus branch as normal to make sure others work from your changes."),(0,r.kt)("p",null,"If there is a major release, one should make a new version, which can be done using:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"yarn docusaurus docs:version 3.X\n")),(0,r.kt)("p",null,"Between the patch numbers, the documentation should only change little, so either you can leave the documentation identical, or if changes were made, just supersede the lower patch number and upload the newer documentation. Depending on how many version we support, one can delete older documentation versions or deprecate them."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/93b8a6b4.ecf59d81.js b/assets/js/93b8a6b4.ecf59d81.js deleted file mode 100644 index f247d327..00000000 --- a/assets/js/93b8a6b4.ecf59d81.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9780],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>p});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),h=u(n),p=o,m=h["".concat(l,".").concat(p)]||h[p]||d[p]||r;return n?a.createElement(m,i(i({ref:t},c),{},{components:n})):a.createElement(m,i({ref:t},c))}));function p(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:o,i[1]=s;for(var u=2;u{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>p,frontMatter:()=>s,metadata:()=>u,toc:()=>d});var a=n(7462),o=n(3366),r=(n(7294),n(3905)),i=["components"],s={id:"dev-web",title:"Maintaining the Website"},l=void 0,u={unversionedId:"dev-web",id:"version-v3.2.0/dev-web",title:"Maintaining the Website",description:"We use Docusaurus to maintain our website. The upside is that documentation and blog posts can all be created as simple markdown files. The downside is a slightly convoluted workflow which we explain here.",source:"@site/versioned_docs/version-v3.2.0/dev-web.md",sourceDirName:".",slug:"/dev-web",permalink:"/docs/dev-web",tags:[],version:"v3.2.0",frontMatter:{id:"dev-web",title:"Maintaining the Website"},sidebar:"docs",previous:{title:"Debugging",permalink:"/docs/dev-debugging"}},c={},d=[{value:"Repository Structure",id:"repository-structure",level:2},{value:"Setting Up",id:"setting-up",level:2},{value:"Requirements",id:"requirements",level:3},{value:"Cloning",id:"cloning",level:3},{value:"Making Changes",id:"making-changes",level:2},{value:"Docs",id:"docs",level:3},{value:"Blog",id:"blog",level:3},{value:"Main pages",id:"main-pages",level:3},{value:"Pushing Changes",id:"pushing-changes",level:2}],h={toc:d};function p(e){var t=e.components,n=(0,o.Z)(e,i);return(0,r.kt)("wrapper",(0,a.Z)({},h,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"We use ",(0,r.kt)("a",{parentName:"p",href:"https://docusaurus.io"},"Docusaurus")," to maintain our website. The upside is that documentation and blog posts can all be created as simple markdown files. The downside is a slightly convoluted workflow which we explain here."),(0,r.kt)("h2",{id:"repository-structure"},"Repository Structure"),(0,r.kt)("p",null,"The website is generated from a ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/uclchem/uclchem.github.io"},"dedicated repository")," which has two branches: ",(0,r.kt)("strong",{parentName:"p"},"master")," and ",(0,r.kt)("strong",{parentName:"p"},"docusaurus"),". Master is the branch from which the website is actually served and it is not to be edited by users. Instead, it is automatically generated from the source code by Docusaurus. ",(0,r.kt)("strong",{parentName:"p"},"Users modify the docusaurus branch.")),(0,r.kt)("h2",{id:"setting-up"},"Setting Up"),(0,r.kt)("h3",{id:"requirements"},"Requirements"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"You'll need ",(0,r.kt)("a",{parentName:"li",href:"https://classic.yarnpkg.com/lang/en/docs/install/#debian-stable"},"yarn")," or npm installed to run docusaurus, we'll assume yarn as it's simplest but the ",(0,r.kt)("a",{parentName:"li",href:"https://docusaurus.io/docs"},"docusaurus docs")," explain how to use either."),(0,r.kt)("li",{parentName:"ul"},"You need to set up github to use SSH keys to authenticate your pushes. ",(0,r.kt)("a",{parentName:"li",href:"https://docs.github.com/en/authentication/connecting-to-github-with-ssh"},"The github docs explain this"))),(0,r.kt)("h3",{id:"cloning"},"Cloning"),(0,r.kt)("p",null,"To get a copy of the website and start looking around, you can do the following:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"git clone git@github.com:uclchem/uclchem.github.io.git\ncd uclchem.github.io\ngit checkout docusaurus\n")),(0,r.kt)("p",null,"which will clone the repository and move to the development branch. The parent directory is not particularly useful, most content is in ",(0,r.kt)("inlineCode",{parentName:"p"},"website/"),", users can run the site locally with:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"cd website\nyarn start\n")),(0,r.kt)("h2",{id:"making-changes"},"Making Changes"),(0,r.kt)("h3",{id:"docs"},"Docs"),(0,r.kt)("p",null,"The docs pages are generated from markdown files in ",(0,r.kt)("inlineCode",{parentName:"p"},"website/docs"),". There's a script in the ",(0,r.kt)("inlineCode",{parentName:"p"},"utils")," directory of the main UCLCHEM repository (",(0,r.kt)("inlineCode",{parentName:"p"},"utils/make_python_docs.sh"),") to automatically generate the parameters docs, the Python API reference, and the tutorial pages from the code and tutorial files. You need to supply the path to your uclchem.github.io repository to have it automatically move the files there. If you want to add or modify any other docs, you can just create or edit a markdown file."),(0,r.kt)("p",null,"The only docs that are actually included in the side are those listed in ",(0,r.kt)("inlineCode",{parentName:"p"},"website/sidebars.json"),". There's some structure to it but we define categories in a simple JSON format and then each cateogory has an items list where you can add new pages. If you want to add a completely new category, just compare the category declaration in this file with the docs online. The docs listed in sidebars.json should match the ",(0,r.kt)("inlineCode",{parentName:"p"},"id")," at the top of each markdown file."),(0,r.kt)("h3",{id:"blog"},"Blog"),(0,r.kt)("p",null,"We're attempting to add a blog post for each publication that uses UCLCHEM. Blog posts are again just markdown files which can be found in ",(0,r.kt)("inlineCode",{parentName:"p"},"website/blog"),". Everything in that directory is included in the blog, the date from the file name is used to order them."),(0,r.kt)("h3",{id:"main-pages"},"Main pages"),(0,r.kt)("p",null,"The other pages on the site are either js files in ",(0,r.kt)("inlineCode",{parentName:"p"},"website/src/pages")," or static html files in ",(0,r.kt)("inlineCode",{parentName:"p"},"website/static"),". Docusaurus does not like you to work with the static files so where possible, you should use the js files. We use very simple js where we just put the HTML we would put into a normal webpage into functions and then call the functions in the main part of the file to produce a simple HMTL page. It's best to use existing pages as templates."),(0,r.kt)("h2",{id:"pushing-changes"},"Pushing Changes"),(0,r.kt)("p",null,"Once you've made your edits, you do the following steps:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},'# Let docusaurus update the website\nUSE_SSH=true GIT_USER=gijsvermarien DEPLOYMENT_BRANCH=master yarn deploy\n\n# Push your changes to the docusaurus branch as normal\ngit add . -A\ngit commit -m "useful update message"\ngit push\n\n')),(0,r.kt)("p",null,"If your github is set up with to use private key authentication and ssh (highly recommended), docusaurus will build the website and push it to master for you when you use yarn deploy. You then push to docusaurus branch as normal to make sure others work from your changes."),(0,r.kt)("p",null,"If there is a major release, one should make a new version, which can be done using:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"yarn docusaurus docs:version 3.X\n")),(0,r.kt)("p",null,"Between the patch numbers, the documentation should only change little, so either you can leave the documentation identical, or if changes were made, just supersede the lower patch number and upload the newer documentation. Depending on how many version we support, one can delete older documentation versions or deprecate them."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/950fd243.54f27e48.js b/assets/js/950fd243.54f27e48.js new file mode 100644 index 00000000..8205958f --- /dev/null +++ b/assets/js/950fd243.54f27e48.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2408],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var s=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,s)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=s.createContext({}),p=function(e){var t=s.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},c=function(e){var t=p(e.components);return s.createElement(l.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return s.createElement(s.Fragment,{},t)}},u=s.forwardRef((function(e,t){var a=e.components,n=e.mdxType,r=e.originalType,l=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),u=p(a),h=n,d=u["".concat(l,".").concat(h)]||u[h]||m[h]||r;return a?s.createElement(d,i(i({ref:t},c),{},{components:a})):s.createElement(d,i({ref:t},c))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=a.length,i=new Array(r);i[0]=u;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o.mdxType="string"==typeof e?e:n,i[1]=o;for(var p=2;p{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>o,metadata:()=>p,toc:()=>m});var s=a(7462),n=a(3366),r=(a(7294),a(3905)),i=["components"],o={id:"network",title:"Creating a Network"},l=void 0,p={unversionedId:"network",id:"version-v3.2.0/network",title:"Creating a Network",description:"MakeRates",source:"@site/versioned_docs/version-v3.2.0/start-network.md",sourceDirName:".",slug:"/network",permalink:"/docs/network",draft:!1,tags:[],version:"v3.2.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"network",title:"Creating a Network"},sidebar:"docs",previous:{title:"Installation",permalink:"/docs/"},next:{title:"Model Parameters",permalink:"/docs/parameters"}},c={},m=[{value:"MakeRates",id:"makerates",level:2},{value:"Input",id:"input",level:2},{value:"Default Network",id:"default-network",level:2},{value:"Outputs",id:"outputs",level:2},{value:"What MakeRates Does",id:"what-makerates-does",level:2},{value:"Creating your own Network",id:"creating-your-own-network",level:2},{value:"Species list",id:"species-list",level:4},{value:"Reaction list",id:"reaction-list",level:4},{value:"Three Phase Chemistry",id:"three-phase-chemistry",level:2}],u={toc:m};function h(e){var t=e.components,a=(0,n.Z)(e,i);return(0,r.kt)("wrapper",(0,s.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"makerates"},"MakeRates"),(0,r.kt)("p",null,"In order to make a chemical model flexible, the ability to solve a user supplied chemical network is a must. UCLCHEM uses a preprocessing python script to turn csv lists of species and reactions into fortran files for use in the main code. This script is called MakeRates and can be found in the Makerates subdirectory of the repository. It combines a gas phase reaction database with user supplied lists of species and additional reactions into the necessary Fortran code to run UCLCHEM. It also supplies a number of human readable outputs."),(0,r.kt)("p",null,"In the sections below, we discuss how to build your network and set the inputs for MakeRates but once that is done, you can run MakeRates with the following commands:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"cd MakeRates\npython MakeRates.py\ncd ..\npip install .\n")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Note the pip install at the end of the process. Any output from MakeRates requires that the code be recompiled because MakeRates produces new source code for UCLCHEM!")),(0,r.kt)("h2",{id:"input"},"Input"),(0,r.kt)("p",null,"Makerates is controlled using a yaml file ",(0,r.kt)("inlineCode",{parentName:"p"},"Makerates/user_settings.yaml"),". By changing the values in this file, you can create different networks. The default values of this file are copied below."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"#Your list of all species\nspecies_file : inputFiles/default_species.csv\n\n#core reactions from gas phase database\ndatabase_reaction_file : inputFiles/umist12-ucledit.csv\ndatabase_reaction_type : UMIST\n\n#set of additional reactions: eg grain network\ncustom_reaction_file : inputFiles/default_grain_network.csv\ncustom_reaction_type : UCL\n\n#whether to automatically expand to three phase network\nthree_phase : True\n")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"species_file")," is a csv list of species and their properties. We provide a default list and detailed instructions below."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"database_reaction_file")," is your first reaction file, we expect most users to use UMIST12 or KIDA2014 for this but you could create your own file from an alternative database. Makerates can read files formatted in the same manner as the UMIST or KIDA databases as well as our own simple csv format, the ",(0,r.kt)("inlineCode",{parentName:"p"},"database_reaction_type")," setting lets MakeRates know which and should be set to 'UMIST', 'KIDA', or 'UCL'."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"custom_reaction_file")," is an additional reaction file. In the example file, we include all of our grain surface reactions which is the intended use of this file. "),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"three_phase")," is a toggle that tells MakeRates whether to automatically expand your network into a three phase model."),(0,r.kt)("h2",{id:"default-network"},"Default Network"),(0,r.kt)("p",null,"A basic version of each of the required file is supplied in the repository. The network that MakeRates produces from those files is also include in the source code so that a new user who simply installs UCLCHEM without running MakeRates will be using our default network. These default files serve largely as examples of how the files should be formatted and we also describe each one below so that the user can produce their own network."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"We do not endorse the default network"),", we have simply produced a grain surface network that was relatively up to date in 2018. It produces reasonable ice mantle abundances for major species and ignores larger COMs. We strongly suggest any published work be based on a network in which the user has confidence. However, where the user is not greatly concerned with grain surface chemistry, the default network is a good starting point."),(0,r.kt)("h2",{id:"outputs"},"Outputs"),(0,r.kt)("p",null,"Outputs from MakeRates are automatically moved to the ",(0,r.kt)("inlineCode",{parentName:"p"},"src/")," directory so the user can ",(0,r.kt)("inlineCode",{parentName:"p"},"pip install .")," and update their installation of UCLCHEM to use their new network. However, by adding the parameter ",(0,r.kt)("inlineCode",{parentName:"p"},"output_directory")," to the yaml file, you can have all the files moved to a directory instead without copying them to your UCLCHEM src folder. If you do, the following files will be produced:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"network.f90 - Fortran arrays containing lists of species names and properties (mass, binding energy etc) as well as reaction reactants, products and rate coefficients."),(0,r.kt)("li",{parentName:"ul"},"odes.f90 - Code to calculate the rate of change of each species' abundance for the numerical solver"),(0,r.kt)("li",{parentName:"ul"},"species.csv - A list of all species in the network and their properties. Made for humans not UCLCHEM."),(0,r.kt)("li",{parentName:"ul"},"reactions.csv - A list of all reactions including reactants, products and coefficients. Made for humans not UCLCHEM.")),(0,r.kt)("h2",{id:"what-makerates-does"},"What MakeRates Does"),(0,r.kt)("p",null,"MakeRates does the following:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Combines the two input reaction lists"),(0,r.kt)("li",{parentName:"ul"},"Filters to remove any reactions containing species not in the input species list"),(0,r.kt)("li",{parentName:"ul"},"Adds freeze out and desorption reactions for all species"),(0,r.kt)("li",{parentName:"ul"},"Creates branching reactions for Langmuir-Hinshelwood and Eley-Rideal reactions where products chemically desorb"),(0,r.kt)("li",{parentName:"ul"},"Optionally: creates additional reactions and species needed for a three phase network"),(0,r.kt)("li",{parentName:"ul"},"Does basic network consistency checks and alerts user of problems"),(0,r.kt)("li",{parentName:"ul"},"Writes fortran files for UCLCHEM"),(0,r.kt)("li",{parentName:"ul"},"Writes other output files")),(0,r.kt)("h2",{id:"creating-your-own-network"},"Creating your own Network"),(0,r.kt)("p",null,"To create your own network you need to produce a species list and a reaction list."),(0,r.kt)("h4",{id:"species-list"},"Species list"),(0,r.kt)("p",null,"The species list should simply be a list with one row per species in the network. Each row should contain the species name, mass, binding energy and enthalpy of formation. The latter two are only used for surface species so can be set to zero for the gas phase species. MakeRates will check the mass is correct for each species and alert you of discrepancies."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"C,12,0,0,0,0,0\n#CH4,16,960,0,0.7,0.667,-15.9\n")),(0,r.kt)("p",null,"In the above example, C is a gas phase species so we have set the mass but ignored the other variables. #CH4 is methane in the ice so we have additionally set a binding energy of 960 K and enthalpy of formation of -15.9 kcal/mol. The other three values (0, 0.7, 0.667) are desorption fractions that three phase chemistry networks ignore. For two phase networks, we mimic the multiple desorption events seen in TPD experiments by setting these fractions. See ",(0,r.kt)("a",{parentName:"p",href:"https://ui.adsabs.harvard.edu/abs/2004MNRAS.354.1141V/abstract"},"Viti et al. 2004")," for more information."),(0,r.kt)("p",null,"The enthalpy of formation for essentially any species can be found in chemical databases such as the ",(0,r.kt)("a",{parentName:"p",href:"https://webbook.nist.gov/"},"NIST web book"),". They're usually in kj/mol but the conversion to kcal/mol is easy enough and NIST has an option to switch values to kcal. A fantastic resource for binding energies is ",(0,r.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1016/j.molap.2017.01.002"},"Wakelam et al. 2017")," but these are harder to find in general. In the absolute worse case, you can sum up the binding energies of sub-groups in your molecule but this is pretty inaccurate."),(0,r.kt)("h4",{id:"reaction-list"},"Reaction list"),(0,r.kt)("p",null,"The second reaction list is intended to contain your surface network but can also be used to augment the gas phase databases by including additional gas phase reactions. The reaction list should be a list with one row per reaction and each row should be a comma separated list of 3 reactants, 4 products, three coefficients (alpha,beta,gamma) and a minimum and maximum temperature. Any missing values such as a third reactant can be left blank. In particular, the temperatures are optional but can be useful when you include multiple versions of the same reaction. In that case, UCLCHEM will only use each one within its specified temperature range."),(0,r.kt)("p",null,"The third reactant can be used as a keyword to tell MakeRates what kind of reaction is occuring. In the absence of a keyword, MakeRates and UCLCHEM will treat any reaction as a gas-phase two body reaction. Two keywords the user may wish to use are ER and LH for Eley-Rideal and Langmuir-Hinshelwood reactions respectively (see ",(0,r.kt)("a",{parentName:"p",href:"grain/"},"Grain Chemisty"),"). If a keyword is not added, UCLCHEM will assume a reaction between two surface reactions follows a Kooji-Arrhenius equation."),(0,r.kt)("p",null,"Two other useful reactions types to include are FREEZE and DESORB. Makerates adds freeze out and desorption reactions for every species, assuming they remain unchanged by the process. For example, CO in the gas becomes #CO on the grain. If you would instead like to specify the products, you can include a reaction:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"H3O+,FREEZE,,#H2O,H,,,1,0,0,,,\n#HPN,DESORB,,HPN+,,,,1,0,0,,,\n")),(0,r.kt)("p",null,"which will override the desorption or freeze out products of a species. "),(0,r.kt)("h2",{id:"three-phase-chemistry"},"Three Phase Chemistry"),(0,r.kt)("p",null,"The input ",(0,r.kt)("inlineCode",{parentName:"p"},"three_phase")," controls whether the ices are treated as a single phase or the surface is treated separated to the bulk. If ",(0,r.kt)("inlineCode",{parentName:"p"},"three_phase")," is set to true, the chemical network will have gas, grain surface, and bulk ice chemistry. If ",(0,r.kt)("inlineCode",{parentName:"p"},"three_phase")," is set to false, the chemical network will have gas and grain surface chemistry."),(0,r.kt)("p",null,"When true, MakeRates will create the bulk ice chemistry by duplicating the surface species and reactions in your input files. The difference will be that, unless you specifically override the bulk binding energy, every species in the bulk has a binding energy equal to the H2O binding energy. It will also add terms to the ODEs to allow transfer between the bulk and the surface. See the chemistry sections for more information."),(0,r.kt)("p",null,'You can override the binding energy of material in the bulk by explicitly including the bulk species in your species file rather than allowing MakeRates to automatically add it. Bulk species are designated with an "@". For example, "H2O" is gas phase H',(0,r.kt)("span",{parentName:"p",className:"math math-inline"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("msub",{parentName:"mrow"},(0,r.kt)("mrow",{parentName:"msub"}),(0,r.kt)("mn",{parentName:"msub"},"2"))),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_2")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.45110799999999995em",verticalAlign:"-0.15em"}}),(0,r.kt)("span",{parentName:"span",className:"mord"},(0,r.kt)("span",{parentName:"span"}),(0,r.kt)("span",{parentName:"span",className:"msupsub"},(0,r.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,r.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,r.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,r.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,r.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,r.kt)("span",{parentName:"span"})))))))))),'O, "#H2O" is surface H',(0,r.kt)("span",{parentName:"p",className:"math math-inline"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("msub",{parentName:"mrow"},(0,r.kt)("mrow",{parentName:"msub"}),(0,r.kt)("mn",{parentName:"msub"},"2"))),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_2")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.45110799999999995em",verticalAlign:"-0.15em"}}),(0,r.kt)("span",{parentName:"span",className:"mord"},(0,r.kt)("span",{parentName:"span"}),(0,r.kt)("span",{parentName:"span",className:"msupsub"},(0,r.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,r.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,r.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,r.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,r.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,r.kt)("span",{parentName:"span"})))))))))),'O and "@H2O" is H',(0,r.kt)("span",{parentName:"p",className:"math math-inline"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("msub",{parentName:"mrow"},(0,r.kt)("mrow",{parentName:"msub"}),(0,r.kt)("mn",{parentName:"msub"},"2"))),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_2")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.45110799999999995em",verticalAlign:"-0.15em"}}),(0,r.kt)("span",{parentName:"span",className:"mord"},(0,r.kt)("span",{parentName:"span"}),(0,r.kt)("span",{parentName:"span",className:"msupsub"},(0,r.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,r.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,r.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,r.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,r.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,r.kt)("span",{parentName:"span"})))))))))),'O in the bulk. If you set the binding energy to "Inf", the species will not leave the grains during thermal desorption. This allows you to model refractory species in the bulk.'))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/950fd243.dd597863.js b/assets/js/950fd243.dd597863.js deleted file mode 100644 index 5e6ef98d..00000000 --- a/assets/js/950fd243.dd597863.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2408],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var s=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,s)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=s.createContext({}),p=function(e){var t=s.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},c=function(e){var t=p(e.components);return s.createElement(l.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return s.createElement(s.Fragment,{},t)}},u=s.forwardRef((function(e,t){var a=e.components,n=e.mdxType,r=e.originalType,l=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),u=p(a),h=n,d=u["".concat(l,".").concat(h)]||u[h]||m[h]||r;return a?s.createElement(d,i(i({ref:t},c),{},{components:a})):s.createElement(d,i({ref:t},c))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=a.length,i=new Array(r);i[0]=u;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o.mdxType="string"==typeof e?e:n,i[1]=o;for(var p=2;p{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>o,metadata:()=>p,toc:()=>m});var s=a(7462),n=a(3366),r=(a(7294),a(3905)),i=["components"],o={id:"network",title:"Creating a Network"},l=void 0,p={unversionedId:"network",id:"version-v3.2.0/network",title:"Creating a Network",description:"MakeRates",source:"@site/versioned_docs/version-v3.2.0/start-network.md",sourceDirName:".",slug:"/network",permalink:"/docs/network",tags:[],version:"v3.2.0",frontMatter:{id:"network",title:"Creating a Network"},sidebar:"docs",previous:{title:"Installation",permalink:"/docs/"},next:{title:"Model Parameters",permalink:"/docs/parameters"}},c={},m=[{value:"MakeRates",id:"makerates",level:2},{value:"Input",id:"input",level:2},{value:"Default Network",id:"default-network",level:2},{value:"Outputs",id:"outputs",level:2},{value:"What MakeRates Does",id:"what-makerates-does",level:2},{value:"Creating your own Network",id:"creating-your-own-network",level:2},{value:"Species list",id:"species-list",level:4},{value:"Reaction list",id:"reaction-list",level:4},{value:"Three Phase Chemistry",id:"three-phase-chemistry",level:2}],u={toc:m};function h(e){var t=e.components,a=(0,n.Z)(e,i);return(0,r.kt)("wrapper",(0,s.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"makerates"},"MakeRates"),(0,r.kt)("p",null,"In order to make a chemical model flexible, the ability to solve a user supplied chemical network is a must. UCLCHEM uses a preprocessing python script to turn csv lists of species and reactions into fortran files for use in the main code. This script is called MakeRates and can be found in the Makerates subdirectory of the repository. It combines a gas phase reaction database with user supplied lists of species and additional reactions into the necessary Fortran code to run UCLCHEM. It also supplies a number of human readable outputs."),(0,r.kt)("p",null,"In the sections below, we discuss how to build your network and set the inputs for MakeRates but once that is done, you can run MakeRates with the following commands:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"cd MakeRates\npython MakeRates.py\ncd ..\npip install .\n")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Note the pip install at the end of the process. Any output from MakeRates requires that the code be recompiled because MakeRates produces new source code for UCLCHEM!")),(0,r.kt)("h2",{id:"input"},"Input"),(0,r.kt)("p",null,"Makerates is controlled using a yaml file ",(0,r.kt)("inlineCode",{parentName:"p"},"Makerates/user_settings.yaml"),". By changing the values in this file, you can create different networks. The default values of this file are copied below."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"#Your list of all species\nspecies_file : inputFiles/default_species.csv\n\n#core reactions from gas phase database\ndatabase_reaction_file : inputFiles/umist12-ucledit.csv\ndatabase_reaction_type : UMIST\n\n#set of additional reactions: eg grain network\ncustom_reaction_file : inputFiles/default_grain_network.csv\ncustom_reaction_type : UCL\n\n#whether to automatically expand to three phase network\nthree_phase : True\n")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"species_file")," is a csv list of species and their properties. We provide a default list and detailed instructions below."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"database_reaction_file")," is your first reaction file, we expect most users to use UMIST12 or KIDA2014 for this but you could create your own file from an alternative database. Makerates can read files formatted in the same manner as the UMIST or KIDA databases as well as our own simple csv format, the ",(0,r.kt)("inlineCode",{parentName:"p"},"database_reaction_type")," setting lets MakeRates know which and should be set to 'UMIST', 'KIDA', or 'UCL'."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"custom_reaction_file")," is an additional reaction file. In the example file, we include all of our grain surface reactions which is the intended use of this file. "),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"three_phase")," is a toggle that tells MakeRates whether to automatically expand your network into a three phase model."),(0,r.kt)("h2",{id:"default-network"},"Default Network"),(0,r.kt)("p",null,"A basic version of each of the required file is supplied in the repository. The network that MakeRates produces from those files is also include in the source code so that a new user who simply installs UCLCHEM without running MakeRates will be using our default network. These default files serve largely as examples of how the files should be formatted and we also describe each one below so that the user can produce their own network."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"We do not endorse the default network"),", we have simply produced a grain surface network that was relatively up to date in 2018. It produces reasonable ice mantle abundances for major species and ignores larger COMs. We strongly suggest any published work be based on a network in which the user has confidence. However, where the user is not greatly concerned with grain surface chemistry, the default network is a good starting point."),(0,r.kt)("h2",{id:"outputs"},"Outputs"),(0,r.kt)("p",null,"Outputs from MakeRates are automatically moved to the ",(0,r.kt)("inlineCode",{parentName:"p"},"src/")," directory so the user can ",(0,r.kt)("inlineCode",{parentName:"p"},"pip install .")," and update their installation of UCLCHEM to use their new network. However, by adding the parameter ",(0,r.kt)("inlineCode",{parentName:"p"},"output_directory")," to the yaml file, you can have all the files moved to a directory instead without copying them to your UCLCHEM src folder. If you do, the following files will be produced:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"network.f90 - Fortran arrays containing lists of species names and properties (mass, binding energy etc) as well as reaction reactants, products and rate coefficients."),(0,r.kt)("li",{parentName:"ul"},"odes.f90 - Code to calculate the rate of change of each species' abundance for the numerical solver"),(0,r.kt)("li",{parentName:"ul"},"species.csv - A list of all species in the network and their properties. Made for humans not UCLCHEM."),(0,r.kt)("li",{parentName:"ul"},"reactions.csv - A list of all reactions including reactants, products and coefficients. Made for humans not UCLCHEM.")),(0,r.kt)("h2",{id:"what-makerates-does"},"What MakeRates Does"),(0,r.kt)("p",null,"MakeRates does the following:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Combines the two input reaction lists"),(0,r.kt)("li",{parentName:"ul"},"Filters to remove any reactions containing species not in the input species list"),(0,r.kt)("li",{parentName:"ul"},"Adds freeze out and desorption reactions for all species"),(0,r.kt)("li",{parentName:"ul"},"Creates branching reactions for Langmuir-Hinshelwood and Eley-Rideal reactions where products chemically desorb"),(0,r.kt)("li",{parentName:"ul"},"Optionally: creates additional reactions and species needed for a three phase network"),(0,r.kt)("li",{parentName:"ul"},"Does basic network consistency checks and alerts user of problems"),(0,r.kt)("li",{parentName:"ul"},"Writes fortran files for UCLCHEM"),(0,r.kt)("li",{parentName:"ul"},"Writes other output files")),(0,r.kt)("h2",{id:"creating-your-own-network"},"Creating your own Network"),(0,r.kt)("p",null,"To create your own network you need to produce a species list and a reaction list."),(0,r.kt)("h4",{id:"species-list"},"Species list"),(0,r.kt)("p",null,"The species list should simply be a list with one row per species in the network. Each row should contain the species name, mass, binding energy and enthalpy of formation. The latter two are only used for surface species so can be set to zero for the gas phase species. MakeRates will check the mass is correct for each species and alert you of discrepancies."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"C,12,0,0,0,0,0\n#CH4,16,960,0,0.7,0.667,-15.9\n")),(0,r.kt)("p",null,"In the above example, C is a gas phase species so we have set the mass but ignored the other variables. #CH4 is methane in the ice so we have additionally set a binding energy of 960 K and enthalpy of formation of -15.9 kcal/mol. The other three values (0, 0.7, 0.667) are desorption fractions that three phase chemistry networks ignore. For two phase networks, we mimic the multiple desorption events seen in TPD experiments by setting these fractions. See ",(0,r.kt)("a",{parentName:"p",href:"https://ui.adsabs.harvard.edu/abs/2004MNRAS.354.1141V/abstract"},"Viti et al. 2004")," for more information."),(0,r.kt)("p",null,"The enthalpy of formation for essentially any species can be found in chemical databases such as the ",(0,r.kt)("a",{parentName:"p",href:"https://webbook.nist.gov/"},"NIST web book"),". They're usually in kj/mol but the conversion to kcal/mol is easy enough and NIST has an option to switch values to kcal. A fantastic resource for binding energies is ",(0,r.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1016/j.molap.2017.01.002"},"Wakelam et al. 2017")," but these are harder to find in general. In the absolute worse case, you can sum up the binding energies of sub-groups in your molecule but this is pretty inaccurate."),(0,r.kt)("h4",{id:"reaction-list"},"Reaction list"),(0,r.kt)("p",null,"The second reaction list is intended to contain your surface network but can also be used to augment the gas phase databases by including additional gas phase reactions. The reaction list should be a list with one row per reaction and each row should be a comma separated list of 3 reactants, 4 products, three coefficients (alpha,beta,gamma) and a minimum and maximum temperature. Any missing values such as a third reactant can be left blank. In particular, the temperatures are optional but can be useful when you include multiple versions of the same reaction. In that case, UCLCHEM will only use each one within its specified temperature range."),(0,r.kt)("p",null,"The third reactant can be used as a keyword to tell MakeRates what kind of reaction is occuring. In the absence of a keyword, MakeRates and UCLCHEM will treat any reaction as a gas-phase two body reaction. Two keywords the user may wish to use are ER and LH for Eley-Rideal and Langmuir-Hinshelwood reactions respectively (see ",(0,r.kt)("a",{parentName:"p",href:"grain/"},"Grain Chemisty"),"). If a keyword is not added, UCLCHEM will assume a reaction between two surface reactions follows a Kooji-Arrhenius equation."),(0,r.kt)("p",null,"Two other useful reactions types to include are FREEZE and DESORB. Makerates adds freeze out and desorption reactions for every species, assuming they remain unchanged by the process. For example, CO in the gas becomes #CO on the grain. If you would instead like to specify the products, you can include a reaction:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"H3O+,FREEZE,,#H2O,H,,,1,0,0,,,\n#HPN,DESORB,,HPN+,,,,1,0,0,,,\n")),(0,r.kt)("p",null,"which will override the desorption or freeze out products of a species. "),(0,r.kt)("h2",{id:"three-phase-chemistry"},"Three Phase Chemistry"),(0,r.kt)("p",null,"The input ",(0,r.kt)("inlineCode",{parentName:"p"},"three_phase")," controls whether the ices are treated as a single phase or the surface is treated separated to the bulk. If ",(0,r.kt)("inlineCode",{parentName:"p"},"three_phase")," is set to true, the chemical network will have gas, grain surface, and bulk ice chemistry. If ",(0,r.kt)("inlineCode",{parentName:"p"},"three_phase")," is set to false, the chemical network will have gas and grain surface chemistry."),(0,r.kt)("p",null,"When true, MakeRates will create the bulk ice chemistry by duplicating the surface species and reactions in your input files. The difference will be that, unless you specifically override the bulk binding energy, every species in the bulk has a binding energy equal to the H2O binding energy. It will also add terms to the ODEs to allow transfer between the bulk and the surface. See the chemistry sections for more information."),(0,r.kt)("p",null,'You can override the binding energy of material in the bulk by explicitly including the bulk species in your species file rather than allowing MakeRates to automatically add it. Bulk species are designated with an "@". For example, "H2O" is gas phase H',(0,r.kt)("span",{parentName:"p",className:"math math-inline"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("msub",{parentName:"mrow"},(0,r.kt)("mrow",{parentName:"msub"}),(0,r.kt)("mn",{parentName:"msub"},"2"))),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_2")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.45110799999999995em",verticalAlign:"-0.15em"}}),(0,r.kt)("span",{parentName:"span",className:"mord"},(0,r.kt)("span",{parentName:"span"}),(0,r.kt)("span",{parentName:"span",className:"msupsub"},(0,r.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,r.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,r.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,r.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,r.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,r.kt)("span",{parentName:"span"})))))))))),'O, "#H2O" is surface H',(0,r.kt)("span",{parentName:"p",className:"math math-inline"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("msub",{parentName:"mrow"},(0,r.kt)("mrow",{parentName:"msub"}),(0,r.kt)("mn",{parentName:"msub"},"2"))),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_2")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.45110799999999995em",verticalAlign:"-0.15em"}}),(0,r.kt)("span",{parentName:"span",className:"mord"},(0,r.kt)("span",{parentName:"span"}),(0,r.kt)("span",{parentName:"span",className:"msupsub"},(0,r.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,r.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,r.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,r.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,r.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,r.kt)("span",{parentName:"span"})))))))))),'O and "@H2O" is H',(0,r.kt)("span",{parentName:"p",className:"math math-inline"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("msub",{parentName:"mrow"},(0,r.kt)("mrow",{parentName:"msub"}),(0,r.kt)("mn",{parentName:"msub"},"2"))),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_2")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.45110799999999995em",verticalAlign:"-0.15em"}}),(0,r.kt)("span",{parentName:"span",className:"mord"},(0,r.kt)("span",{parentName:"span"}),(0,r.kt)("span",{parentName:"span",className:"msupsub"},(0,r.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,r.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,r.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,r.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,r.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,r.kt)("span",{parentName:"span"})))))))))),'O in the bulk. If you set the binding energy to "Inf", the species will not leave the grains during thermal desorption. This allows you to model refractory species in the bulk.'))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/957548e4.24ab413d.js b/assets/js/957548e4.22a78f30.js similarity index 52% rename from assets/js/957548e4.24ab413d.js rename to assets/js/957548e4.22a78f30.js index 235a5aec..b6163f77 100644 --- a/assets/js/957548e4.24ab413d.js +++ b/assets/js/957548e4.22a78f30.js @@ -1 +1 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5114],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>u});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),c=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),h=c(r),u=o,m=h["".concat(s,".").concat(u)]||h[u]||d[u]||a;return r?n.createElement(m,i(i({ref:t},p),{},{components:r})):n.createElement(m,i({ref:t},p))}));function u(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=h;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:o,i[1]=l;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>u,frontMatter:()=>l,metadata:()=>c,toc:()=>d});var n=r(7462),o=r(3366),a=(r(7294),r(3905)),i=["components"],l={title:"Chemical modelling of complex organic molecules with peptide-like bonds in star-forming regions",authors:"jonholdship"},s=void 0,c={permalink:"/blog/2018/02/05/david-grains",source:"@site/blog/2018-02-05-david-grains.md",title:"Chemical modelling of complex organic molecules with peptide-like bonds in star-forming regions",description:"David Quenard just published an update to the UCLCHEM with an application to COMs in prestellar cores you can find the paper here and the abstract below.",date:"2018-02-05T00:00:00.000Z",formattedDate:"February 5, 2018",tags:[],readingTime:1.425,truncated:!1,authors:[{name:"Jonathan Holdship",title:"UCLCHEM developer",url:"https://jonholdship.github.io",imageURL:"/img/jon.png",key:"jonholdship"}],frontMatter:{title:"Chemical modelling of complex organic molecules with peptide-like bonds in star-forming regions",authors:"jonholdship"},prevItem:{title:"Chemical modelling of glycolaldehyde and ethylene glycol in star-forming regions",permalink:"/blog/2018/03/27/audrey-coms"}},p={authorsImageUrls:[void 0]},d=[],h={toc:d};function u(e){var t=e.components,r=(0,o.Z)(e,i);return(0,a.kt)("wrapper",(0,n.Z)({},h,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"David Quenard just published an update to the UCLCHEM with an application to COMs in prestellar cores ",(0,a.kt)("a",{parentName:"p",href:"https://arxiv.org/abs/1711.05184"},"you can find the paper here")," and the abstract below."),(0,a.kt)("p",null,"Peptide bonds (N-C = O) play a key role in metabolic processes since they link amino acids into peptide chains or proteins. Recently, several molecules containing peptide-like bonds have been detected across multiple environments in the interstellar medium, growing the need to fully understand their chemistry and their role in forming larger pre-biotic molecules. We present a comprehensive study of the chemistry of three molecules containing peptide-like bonds: HNCO, NH2CHO, and CH3NCO. We also included other CHNO isomers (HCNO, HOCN) and C2H3NO isomers (CH3OCN, CH3CNO) to the study. We have used the UCLCHEM gas-grain chemical code and included in our chemical network all possible formation/destruction pathways of these peptide-like molecules recently investigated either by theoretical calculations or in laboratory experiments. Our predictions are compared to observations obtained towards the proto-star IRAS 16293-2422 and the L1544 pre-stellar core. Our results show that some key reactions involving the CHNO and C2H3NO isomers need to be modified to match the observations. Consistently with recent laboratory findings, hydrogenation is unlikely to produce NH2CHO on grain surfaces, while a combination of radical-radical surface reactions and gas-phase reactions is a better alternative. In addition, better results are obtained for NH2CHO when a slightly higher activation energy of 25 K is considered for the gas-phase reaction NH2 + H2CO \u2192 NH2CHO + H. Finally, our modelling shows that the observed correlation between NH2CHO and HNCO in star-forming regions may come from the fact that HNCO and NH2CHO react to temperature in the same manner rather than from a direct chemical link between the two species."))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5114],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>u});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),c=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),h=c(r),u=o,m=h["".concat(s,".").concat(u)]||h[u]||d[u]||a;return r?n.createElement(m,i(i({ref:t},p),{},{components:r})):n.createElement(m,i({ref:t},p))}));function u(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=h;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:o,i[1]=l;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>u,frontMatter:()=>l,metadata:()=>c,toc:()=>d});var n=r(7462),o=r(3366),a=(r(7294),r(3905)),i=["components"],l={title:"Chemical modelling of complex organic molecules with peptide-like bonds in star-forming regions",authors:"jonholdship"},s=void 0,c={permalink:"/blog/2018/02/05/david-grains",source:"@site/blog/2018-02-05-david-grains.md",title:"Chemical modelling of complex organic molecules with peptide-like bonds in star-forming regions",description:"David Quenard just published an update to the UCLCHEM with an application to COMs in prestellar cores you can find the paper here and the abstract below.",date:"2018-02-05T00:00:00.000Z",formattedDate:"February 5, 2018",tags:[],readingTime:1.425,hasTruncateMarker:!1,authors:[{name:"Jonathan Holdship",title:"UCLCHEM developer",url:"https://jonholdship.github.io",imageURL:"/img/jon.png",key:"jonholdship"}],frontMatter:{title:"Chemical modelling of complex organic molecules with peptide-like bonds in star-forming regions",authors:"jonholdship"},prevItem:{title:"Chemical modelling of glycolaldehyde and ethylene glycol in star-forming regions",permalink:"/blog/2018/03/27/audrey-coms"}},p={authorsImageUrls:[void 0]},d=[],h={toc:d};function u(e){var t=e.components,r=(0,o.Z)(e,i);return(0,a.kt)("wrapper",(0,n.Z)({},h,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"David Quenard just published an update to the UCLCHEM with an application to COMs in prestellar cores ",(0,a.kt)("a",{parentName:"p",href:"https://arxiv.org/abs/1711.05184"},"you can find the paper here")," and the abstract below."),(0,a.kt)("p",null,"Peptide bonds (N-C = O) play a key role in metabolic processes since they link amino acids into peptide chains or proteins. Recently, several molecules containing peptide-like bonds have been detected across multiple environments in the interstellar medium, growing the need to fully understand their chemistry and their role in forming larger pre-biotic molecules. We present a comprehensive study of the chemistry of three molecules containing peptide-like bonds: HNCO, NH2CHO, and CH3NCO. We also included other CHNO isomers (HCNO, HOCN) and C2H3NO isomers (CH3OCN, CH3CNO) to the study. We have used the UCLCHEM gas-grain chemical code and included in our chemical network all possible formation/destruction pathways of these peptide-like molecules recently investigated either by theoretical calculations or in laboratory experiments. Our predictions are compared to observations obtained towards the proto-star IRAS 16293-2422 and the L1544 pre-stellar core. Our results show that some key reactions involving the CHNO and C2H3NO isomers need to be modified to match the observations. Consistently with recent laboratory findings, hydrogenation is unlikely to produce NH2CHO on grain surfaces, while a combination of radical-radical surface reactions and gas-phase reactions is a better alternative. In addition, better results are obtained for NH2CHO when a slightly higher activation energy of 25 K is considered for the gas-phase reaction NH2 + H2CO \u2192 NH2CHO + H. Finally, our modelling shows that the observed correlation between NH2CHO and HNCO in star-forming regions may come from the fact that HNCO and NH2CHO react to temperature in the same manner rather than from a direct chemical link between the two species."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/95c680a9.bf35da4f.js b/assets/js/95c680a9.9e9960f4.js similarity index 55% rename from assets/js/95c680a9.bf35da4f.js rename to assets/js/95c680a9.9e9960f4.js index 38289c10..675e3c3c 100644 --- a/assets/js/95c680a9.bf35da4f.js +++ b/assets/js/95c680a9.9e9960f4.js @@ -1 +1 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5251],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),c=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(r),f=a,m=u["".concat(s,".").concat(f)]||u[f]||d[f]||i;return r?n.createElement(m,o(o({ref:t},p),{},{components:r})):n.createElement(m,o({ref:t},p))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,o=new Array(i);o[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:a,o[1]=l;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>f,frontMatter:()=>l,metadata:()=>c,toc:()=>d});var n=r(7462),a=r(3366),i=(r(7294),r(3905)),o=["components"],l={title:"Ambipolar diffusion and the molecular abundances inprestellar cores",authors:"jonholdship"},s=void 0,c={permalink:"/blog/2019/07/08/felix-ambipolar",source:"@site/blog/2019-07-08-felix-ambipolar.md",title:"Ambipolar diffusion and the molecular abundances inprestellar cores",description:"Felix Priestley has used UCLCHEM in an investigation of the chemical differences caused by the magnetic fields in prestellar cores. You can find the paper here and the abstract below.",date:"2019-07-08T00:00:00.000Z",formattedDate:"July 8, 2019",tags:[],readingTime:.99,truncated:!1,authors:[{name:"Jonathan Holdship",title:"UCLCHEM developer",url:"https://jonholdship.github.io",imageURL:"/img/jon.png",key:"jonholdship"}],frontMatter:{title:"Ambipolar diffusion and the molecular abundances inprestellar cores",authors:"jonholdship"},prevItem:{title:"A chemical study of carbon fractionation in external galaxies",permalink:"/blog/2019/08/13/serena-carbon-frac"},nextItem:{title:"Nitrogen fractionation in external galaxies",permalink:"/blog/2019/04/19/serena-nitrogen-frac"}},p={authorsImageUrls:[void 0]},d=[],u={toc:d};function f(e){var t=e.components,r=(0,a.Z)(e,o);return(0,i.kt)("wrapper",(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"https://fpriestley.github.io/"},"Felix Priestley")," has used UCLCHEM in an investigation of the chemical differences caused by the magnetic fields in prestellar cores. You can find ",(0,i.kt)("a",{parentName:"p",href:"https://arxiv.org/pdf/1907.02736.pdf"},"the paper here")," and the abstract below."),(0,i.kt)("p",null,"We investigate differences in the molecular abundances between magnetically super- and subcritical pre-stellar cores, performing three-dimensional non-ideal magnetohydrodynamical (MHD) simulations with varying densities and magnetic field strengths, and post-processing the results with a time-dependent gas-grain chemical code. Most molecular species show significantly more central depletion in subcritical models, due to the longer duration of collapse. However, the directly observable quantities - the molecule to hydrogen column density ratios - are generally too similar for observational data to discriminate between models. The profiles of N2H+ and HCO+ show qualitative differences between supercritical and subcritical models on scales of 0.01 pc, which may allow the two cases to be distinguished. However, this requires knowledge of the hydrogen column density, which is not directly measureable, and predicted line intensity profiles from radiative transfer modelling are similar for these molecules. Other commonly observed species, such as HCN and CH3OH, have line intensity profiles that differ more strongly between models, and so are more promising as tracers of the mechanism of cloud collapse."))}f.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5251],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),c=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(r),f=a,m=u["".concat(s,".").concat(f)]||u[f]||d[f]||i;return r?n.createElement(m,o(o({ref:t},p),{},{components:r})):n.createElement(m,o({ref:t},p))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,o=new Array(i);o[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:a,o[1]=l;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>f,frontMatter:()=>l,metadata:()=>c,toc:()=>d});var n=r(7462),a=r(3366),i=(r(7294),r(3905)),o=["components"],l={title:"Ambipolar diffusion and the molecular abundances inprestellar cores",authors:"jonholdship"},s=void 0,c={permalink:"/blog/2019/07/08/felix-ambipolar",source:"@site/blog/2019-07-08-felix-ambipolar.md",title:"Ambipolar diffusion and the molecular abundances inprestellar cores",description:"Felix Priestley has used UCLCHEM in an investigation of the chemical differences caused by the magnetic fields in prestellar cores. You can find the paper here and the abstract below.",date:"2019-07-08T00:00:00.000Z",formattedDate:"July 8, 2019",tags:[],readingTime:.99,hasTruncateMarker:!1,authors:[{name:"Jonathan Holdship",title:"UCLCHEM developer",url:"https://jonholdship.github.io",imageURL:"/img/jon.png",key:"jonholdship"}],frontMatter:{title:"Ambipolar diffusion and the molecular abundances inprestellar cores",authors:"jonholdship"},prevItem:{title:"A chemical study of carbon fractionation in external galaxies",permalink:"/blog/2019/08/13/serena-carbon-frac"},nextItem:{title:"Nitrogen fractionation in external galaxies",permalink:"/blog/2019/04/19/serena-nitrogen-frac"}},p={authorsImageUrls:[void 0]},d=[],u={toc:d};function f(e){var t=e.components,r=(0,a.Z)(e,o);return(0,i.kt)("wrapper",(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"https://fpriestley.github.io/"},"Felix Priestley")," has used UCLCHEM in an investigation of the chemical differences caused by the magnetic fields in prestellar cores. You can find ",(0,i.kt)("a",{parentName:"p",href:"https://arxiv.org/pdf/1907.02736.pdf"},"the paper here")," and the abstract below."),(0,i.kt)("p",null,"We investigate differences in the molecular abundances between magnetically super- and subcritical pre-stellar cores, performing three-dimensional non-ideal magnetohydrodynamical (MHD) simulations with varying densities and magnetic field strengths, and post-processing the results with a time-dependent gas-grain chemical code. Most molecular species show significantly more central depletion in subcritical models, due to the longer duration of collapse. However, the directly observable quantities - the molecule to hydrogen column density ratios - are generally too similar for observational data to discriminate between models. The profiles of N2H+ and HCO+ show qualitative differences between supercritical and subcritical models on scales of 0.01 pc, which may allow the two cases to be distinguished. However, this requires knowledge of the hydrogen column density, which is not directly measureable, and predicted line intensity profiles from radiative transfer modelling are similar for these molecules. Other commonly observed species, such as HCN and CH3OH, have line intensity profiles that differ more strongly between models, and so are more promising as tracers of the mechanism of cloud collapse."))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/968bdb06.7bda4ec0.js b/assets/js/968bdb06.7bda4ec0.js new file mode 100644 index 00000000..8495b86e --- /dev/null +++ b/assets/js/968bdb06.7bda4ec0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1859],{3905:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),u=c(r),f=o,y=u["".concat(p,".").concat(f)]||u[f]||d[f]||a;return r?n.createElement(y,i(i({ref:t},l),{},{components:r})):n.createElement(y,i({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=u;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s.mdxType="string"==typeof e?e:o,i[1]=s;for(var c=2;c{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>p,default:()=>f,frontMatter:()=>s,metadata:()=>c,toc:()=>d});var n=r(7462),o=r(3366),a=(r(7294),r(3905)),i=["components"],s={id:"hydro",title:"Hydro Post Processing"},p=void 0,c={unversionedId:"hydro",id:"version-v3.1.0/hydro",title:"Hydro Post Processing",description:"Main Contributors: Jon Holdship",source:"@site/versioned_docs/version-v3.1.0/hydro.md",sourceDirName:".",slug:"/hydro",permalink:"/docs/v3.1.0/hydro",draft:!1,tags:[],version:"v3.1.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"hydro",title:"Hydro Post Processing"}},l={},d=[],u={toc:d};function f(e){var t=e.components,r=(0,o.Z)(e,i);return(0,a.kt)("wrapper",(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Main Contributors"),": Jon Holdship"),(0,a.kt)("p",null,"UCLCHEM includes a post-processing module ",(0,a.kt)("inlineCode",{parentName:"p"},"src/hydro.f90")," which is effectively a template as it necessarily requires user editing. The module reads in a columnated file of physical properties such as the output from a hydrodynamical model and creates interpolation functions."),(0,a.kt)("p",null,"As ",(0,a.kt)("inlineCode",{parentName:"p"},"updatePhysics")," is called by UCLCHEM's main loop, these interpolation functions are called to get the physical properties of the gas at the current simulation time."),(0,a.kt)("p",null,"Whilst the maximum amount of information that can be read from the input file is set by the physical properties UCLCHEM deals with, this is naturally a user dependent process. The input file format and the gas properties that are supplied (eg just density/temperature or density/temperature/Av) depend on the model being post processed. Thus ",(0,a.kt)("inlineCode",{parentName:"p"},"src/hydro.f90")," needs to be edited to account for this."))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/968bdb06.952cc0a3.js b/assets/js/968bdb06.952cc0a3.js deleted file mode 100644 index 68fc0c3d..00000000 --- a/assets/js/968bdb06.952cc0a3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1859],{3905:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,p=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),d=c(r),f=o,y=d["".concat(p,".").concat(f)]||d[f]||u[f]||i;return r?n.createElement(y,a(a({ref:t},l),{},{components:r})):n.createElement(y,a({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=d;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s.mdxType="string"==typeof e?e:o,a[1]=s;for(var c=2;c{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>p,default:()=>f,frontMatter:()=>s,metadata:()=>c,toc:()=>u});var n=r(7462),o=r(3366),i=(r(7294),r(3905)),a=["components"],s={id:"hydro",title:"Hydro Post Processing"},p=void 0,c={unversionedId:"hydro",id:"version-v3.1.0/hydro",title:"Hydro Post Processing",description:"Main Contributors: Jon Holdship",source:"@site/versioned_docs/version-v3.1.0/hydro.md",sourceDirName:".",slug:"/hydro",permalink:"/docs/v3.1.0/hydro",tags:[],version:"v3.1.0",frontMatter:{id:"hydro",title:"Hydro Post Processing"}},l={},u=[],d={toc:u};function f(e){var t=e.components,r=(0,o.Z)(e,a);return(0,i.kt)("wrapper",(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Main Contributors"),": Jon Holdship"),(0,i.kt)("p",null,"UCLCHEM includes a post-processing module ",(0,i.kt)("inlineCode",{parentName:"p"},"src/hydro.f90")," which is effectively a template as it necessarily requires user editing. The module reads in a columnated file of physical properties such as the output from a hydrodynamical model and creates interpolation functions."),(0,i.kt)("p",null,"As ",(0,i.kt)("inlineCode",{parentName:"p"},"updatePhysics")," is called by UCLCHEM's main loop, these interpolation functions are called to get the physical properties of the gas at the current simulation time."),(0,i.kt)("p",null,"Whilst the maximum amount of information that can be read from the input file is set by the physical properties UCLCHEM deals with, this is naturally a user dependent process. The input file format and the gas properties that are supplied (eg just density/temperature or density/temperature/Av) depend on the model being post processed. Thus ",(0,i.kt)("inlineCode",{parentName:"p"},"src/hydro.f90")," needs to be edited to account for this."))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9968756c.5ba385a3.js b/assets/js/9968756c.5ba385a3.js new file mode 100644 index 00000000..f0399488 --- /dev/null +++ b/assets/js/9968756c.5ba385a3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6639],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),d=u(n),h=a,m=d["".concat(l,".").concat(h)]||d[h]||p[h]||o;return n?r.createElement(m,i(i({ref:t},c),{},{components:n})):r.createElement(m,i({ref:t},c))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:a,i[1]=s;for(var u=2;u{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>s,metadata:()=>u,toc:()=>p});var r=n(7462),a=n(3366),o=(n(7294),n(3905)),i=["components"],s={id:"dev-python-wrap",title:"Writing The Python Interface"},l=void 0,u={unversionedId:"dev-python-wrap",id:"version-v3.1.0/dev-python-wrap",title:"Writing The Python Interface",description:"The python interface is a relatively complex bit of code, a lot of work is put on the development side to make the user side a smooth experience. Writing the core of UCLCHEM in Fortran gives great performance benefits but compiling it to python with F2PY has its peculiarities. Here, we discuss the steps needed to adjust the code.",source:"@site/versioned_docs/version-v3.1.0/dev-python-wrap.md",sourceDirName:".",slug:"/dev-python-wrap",permalink:"/docs/v3.1.0/dev-python-wrap",draft:!1,tags:[],version:"v3.1.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"dev-python-wrap",title:"Writing The Python Interface"},sidebar:"docs",previous:{title:"Overview of the Code",permalink:"/docs/v3.1.0/dev-overview"},next:{title:"Debugging",permalink:"/docs/v3.1.0/dev-debugging"}},c={},p=[{value:"The Fortran Side",id:"the-fortran-side",level:2},{value:"The Python Side",id:"the-python-side",level:2},{value:"Tips and Tricks",id:"tips-and-tricks",level:2}],d={toc:p};function h(e){var t=e.components,n=(0,a.Z)(e,i);return(0,o.kt)("wrapper",(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"The python interface is a relatively complex bit of code, a lot of work is put on the development side to make the user side a smooth experience. Writing the core of UCLCHEM in Fortran gives great performance benefits but compiling it to python with F2PY has its peculiarities. Here, we discuss the steps needed to adjust the code."),(0,o.kt)("h2",{id:"the-fortran-side"},"The Fortran Side"),(0,o.kt)("p",null,"The fortran side is the more difficult. We define a module in ",(0,o.kt)("inlineCode",{parentName:"p"},"src/fortran_src/wrap.f90")," which is a Fortran module that F2PY will turn into a python module. Any subroutine declared in ",(0,o.kt)("inlineCode",{parentName:"p"},"wrap.f90")," will become a function in the Python module."),(0,o.kt)("p",null,"The most likely change you'll want to make is to add a physics module so we'll look at cloud as an example. In ",(0,o.kt)("inlineCode",{parentName:"p"},"wrap.f90")," cloud is declared:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-fortran"}," SUBROUTINE cloud(dictionary, outSpeciesIn,abundance_out,successFlag)\n USE cloud_mod\n\n CHARACTER(LEN=*) :: dictionary, outSpeciesIn\n DOUBLE PRECISION :: abundance_out(500)\n INTEGER :: successFlag\n !f2py intent(in) dictionary,outSpeciesIn\n !f2py intent(out) abundance_out,successFlag\n ...\n END SUBROUTINE\n")),(0,o.kt)("p",null,"where we've dropped the bulk of the code since we only care about the declaration. Once compiled, you will be able to call this function using ",(0,o.kt)("inlineCode",{parentName:"p"},"uclchem.wrap.cloud(dictionary,outSpeciesIn)"),"."),(0,o.kt)("p",null,"This works because we've done two things. First, we've declared both the two inputs and the two outputs as arguments in Fortran in the normal way. Both inputs and outputs of a subroutine are declared as arguments in Fortran, usually with an ",(0,o.kt)("inlineCode",{parentName:"p"},"INTENT(IN)")," or ",(0,o.kt)("inlineCode",{parentName:"p"},"INTENT(OUT)")," statement, although that is unnecessary. We then declare the intent of those argument for F2PY using the comments that start ",(0,o.kt)("inlineCode",{parentName:"p"},"!f2py")," to tell F2PY which arguments should be arguments of the corresponding python function and which should be outputs."),(0,o.kt)("h2",{id:"the-python-side"},"The Python Side"),(0,o.kt)("p",null,"We could leave it at that. However, for ease of use, we write pure python functions in the uclchem module which call the underlying wrap functions rather than having users directly access the f2py functions. For example, in ",(0,o.kt)("inlineCode",{parentName:"p"},"uclchem.model"),", we define a cloud function which calls ",(0,o.kt)("inlineCode",{parentName:"p"},"wrap.cloud"),":"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-python"},'\ndef cloud(param_dict=None, out_species=None):\n """Run cloud model from UCLCHEM\n\n Args:\n param_dict (dict,optional): A dictionary of parameters where keys are any of the variables in defaultparameters.f90 and values are value for current run.\n out_species (list, optional): A list of species for which final abundance will be returned. If None, no abundances will be returned.. Defaults to None.\n\n Returns:\n int,list: A integer which is negative if the model failed to run, or a list of abundances of all species in `outSpecies`\n """\n n_out,param_dict,out_species=_reform_inputs(param_dict,out_species)\n abunds, success_flag = wrap.cloud(dictionary=param_dict, outspeciesin=out_species)\n if success_flag < 0 or n_out == 0:\n return success_flag\n else:\n return abunds[: n_out]\n')),(0,o.kt)("p",null,"This allows us to make some arguments optional using python's keyword arguments. It also lets us write docstrings from which we can generate documentation for the functions. Finally, it lets us tidy up the output! For example, arrays passed too and from the Fortran subroutines must be of fixed length so in this function, we cut the output abundance array down to just the elements the user actually wanted."),(0,o.kt)("h2",{id:"tips-and-tricks"},"Tips and Tricks"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Once imported, all values are initialized in UCLCHEM. Calling a subroutine multiple times does not reset variables. That is to say that if your Fortran modules declare variables with an initial value, those variables will not return to those initial values. Instead, you'll notice all our modules reset their variables manually in the initialize functions such as initializePhysics.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Debugging your fortran code can be greatly complicated by the F2PY interface. Consider compiling the fortran source to test any code changes before trying to compile the python version.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Python handles errors much more gracefully than Fortran. We have tried to use ",(0,o.kt)("inlineCode",{parentName:"p"},"successFlag")," as a return from most subroutines as a way to tell Python that the Fortran run failed. It can be a pain to set up the chain of successFlag returns from modules in Fortran but if you use something like Fortran's ",(0,o.kt)("inlineCode",{parentName:"p"},"STOP"),", you'll likely kill your python in a way that won't let you use ",(0,o.kt)("inlineCode",{parentName:"p"},"try:, except:")," statements to handle it."))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9968756c.e9bd4a9e.js b/assets/js/9968756c.e9bd4a9e.js deleted file mode 100644 index 6feaf56d..00000000 --- a/assets/js/9968756c.e9bd4a9e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6639],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),d=u(n),h=o,m=d["".concat(l,".").concat(h)]||d[h]||p[h]||a;return n?r.createElement(m,i(i({ref:t},c),{},{components:n})):r.createElement(m,i({ref:t},c))}));function h(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:o,i[1]=s;for(var u=2;u{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>s,metadata:()=>u,toc:()=>p});var r=n(7462),o=n(3366),a=(n(7294),n(3905)),i=["components"],s={id:"dev-python-wrap",title:"Writing The Python Interface"},l=void 0,u={unversionedId:"dev-python-wrap",id:"version-v3.1.0/dev-python-wrap",title:"Writing The Python Interface",description:"The python interface is a relatively complex bit of code, a lot of work is put on the development side to make the user side a smooth experience. Writing the core of UCLCHEM in Fortran gives great performance benefits but compiling it to python with F2PY has its peculiarities. Here, we discuss the steps needed to adjust the code.",source:"@site/versioned_docs/version-v3.1.0/dev-python-wrap.md",sourceDirName:".",slug:"/dev-python-wrap",permalink:"/docs/v3.1.0/dev-python-wrap",tags:[],version:"v3.1.0",frontMatter:{id:"dev-python-wrap",title:"Writing The Python Interface"},sidebar:"docs",previous:{title:"Overview of the Code",permalink:"/docs/v3.1.0/dev-overview"},next:{title:"Debugging",permalink:"/docs/v3.1.0/dev-debugging"}},c={},p=[{value:"The Fortran Side",id:"the-fortran-side",level:2},{value:"The Python Side",id:"the-python-side",level:2},{value:"Tips and Tricks",id:"tips-and-tricks",level:2}],d={toc:p};function h(e){var t=e.components,n=(0,o.Z)(e,i);return(0,a.kt)("wrapper",(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The python interface is a relatively complex bit of code, a lot of work is put on the development side to make the user side a smooth experience. Writing the core of UCLCHEM in Fortran gives great performance benefits but compiling it to python with F2PY has its peculiarities. Here, we discuss the steps needed to adjust the code."),(0,a.kt)("h2",{id:"the-fortran-side"},"The Fortran Side"),(0,a.kt)("p",null,"The fortran side is the more difficult. We define a module in ",(0,a.kt)("inlineCode",{parentName:"p"},"src/fortran_src/wrap.f90")," which is a Fortran module that F2PY will turn into a python module. Any subroutine declared in ",(0,a.kt)("inlineCode",{parentName:"p"},"wrap.f90")," will become a function in the Python module."),(0,a.kt)("p",null,"The most likely change you'll want to make is to add a physics module so we'll look at cloud as an example. In ",(0,a.kt)("inlineCode",{parentName:"p"},"wrap.f90")," cloud is declared:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-fortran"}," SUBROUTINE cloud(dictionary, outSpeciesIn,abundance_out,successFlag)\n USE cloud_mod\n\n CHARACTER(LEN=*) :: dictionary, outSpeciesIn\n DOUBLE PRECISION :: abundance_out(500)\n INTEGER :: successFlag\n !f2py intent(in) dictionary,outSpeciesIn\n !f2py intent(out) abundance_out,successFlag\n ...\n END SUBROUTINE\n")),(0,a.kt)("p",null,"where we've dropped the bulk of the code since we only care about the declaration. Once compiled, you will be able to call this function using ",(0,a.kt)("inlineCode",{parentName:"p"},"uclchem.wrap.cloud(dictionary,outSpeciesIn)"),"."),(0,a.kt)("p",null,"This works because we've done two things. First, we've declared both the two inputs and the two outputs as arguments in Fortran in the normal way. Both inputs and outputs of a subroutine are declared as arguments in Fortran, usually with an ",(0,a.kt)("inlineCode",{parentName:"p"},"INTENT(IN)")," or ",(0,a.kt)("inlineCode",{parentName:"p"},"INTENT(OUT)")," statement, although that is unnecessary. We then declare the intent of those argument for F2PY using the comments that start ",(0,a.kt)("inlineCode",{parentName:"p"},"!f2py")," to tell F2PY which arguments should be arguments of the corresponding python function and which should be outputs."),(0,a.kt)("h2",{id:"the-python-side"},"The Python Side"),(0,a.kt)("p",null,"We could leave it at that. However, for ease of use, we write pure python functions in the uclchem module which call the underlying wrap functions rather than having users directly access the f2py functions. For example, in ",(0,a.kt)("inlineCode",{parentName:"p"},"uclchem.model"),", we define a cloud function which calls ",(0,a.kt)("inlineCode",{parentName:"p"},"wrap.cloud"),":"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},'\ndef cloud(param_dict=None, out_species=None):\n """Run cloud model from UCLCHEM\n\n Args:\n param_dict (dict,optional): A dictionary of parameters where keys are any of the variables in defaultparameters.f90 and values are value for current run.\n out_species (list, optional): A list of species for which final abundance will be returned. If None, no abundances will be returned.. Defaults to None.\n\n Returns:\n int,list: A integer which is negative if the model failed to run, or a list of abundances of all species in `outSpecies`\n """\n n_out,param_dict,out_species=_reform_inputs(param_dict,out_species)\n abunds, success_flag = wrap.cloud(dictionary=param_dict, outspeciesin=out_species)\n if success_flag < 0 or n_out == 0:\n return success_flag\n else:\n return abunds[: n_out]\n')),(0,a.kt)("p",null,"This allows us to make some arguments optional using python's keyword arguments. It also lets us write docstrings from which we can generate documentation for the functions. Finally, it lets us tidy up the output! For example, arrays passed too and from the Fortran subroutines must be of fixed length so in this function, we cut the output abundance array down to just the elements the user actually wanted."),(0,a.kt)("h2",{id:"tips-and-tricks"},"Tips and Tricks"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Once imported, all values are initialized in UCLCHEM. Calling a subroutine multiple times does not reset variables. That is to say that if your Fortran modules declare variables with an initial value, those variables will not return to those initial values. Instead, you'll notice all our modules reset their variables manually in the initialize functions such as initializePhysics.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Debugging your fortran code can be greatly complicated by the F2PY interface. Consider compiling the fortran source to test any code changes before trying to compile the python version.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Python handles errors much more gracefully than Fortran. We have tried to use ",(0,a.kt)("inlineCode",{parentName:"p"},"successFlag")," as a return from most subroutines as a way to tell Python that the Fortran run failed. It can be a pain to set up the chain of successFlag returns from modules in Fortran but if you use something like Fortran's ",(0,a.kt)("inlineCode",{parentName:"p"},"STOP"),", you'll likely kill your python in a way that won't let you use ",(0,a.kt)("inlineCode",{parentName:"p"},"try:, except:")," statements to handle it."))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9b050cce.0df84596.js b/assets/js/9b050cce.0df84596.js new file mode 100644 index 00000000..d2c98f6d --- /dev/null +++ b/assets/js/9b050cce.0df84596.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[692],{6932:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"v3.1.0","label":"v3.1.0","banner":"unmaintained","badge":true,"noIndex":false,"className":"docs-version-v3.1.0","isLast":false,"docsSidebars":{"docs":[{"type":"category","label":"Getting Started","items":[{"type":"link","label":"Installation","href":"/docs/v3.1.0/","docId":"install"},{"type":"link","label":"Creating a Network","href":"/docs/v3.1.0/network","docId":"network"},{"type":"link","label":"Model Parameters","href":"/docs/v3.1.0/parameters","docId":"parameters"},{"type":"link","label":"Python Reference","href":"/docs/v3.1.0/pythonapi","docId":"pythonapi"}],"collapsed":true,"collapsible":true,"href":"/docs/v3.1.0/category/getting-started"},{"type":"category","label":"Tutorials","items":[{"type":"link","label":"Running Your First Models","href":"/docs/v3.1.0/first_model","docId":"first_model"},{"type":"link","label":"Advanced Physical Modelling","href":"/docs/v3.1.0/modelling_objects","docId":"modelling_objects"},{"type":"link","label":"Running a Grid","href":"/docs/v3.1.0/running_a_grid","docId":"running_a_grid"},{"type":"link","label":"Chemical Analysis","href":"/docs/v3.1.0/chemical_analysis","docId":"chemical_analysis"}],"collapsed":true,"collapsible":true,"href":"/docs/v3.1.0/category/tutorials"},{"type":"category","label":"Troubleshooting","items":[{"type":"link","label":"Compilation Issues","href":"/docs/v3.1.0/trouble-compile","docId":"trouble-compile"},{"type":"link","label":"Integration","href":"/docs/v3.1.0/trouble-integration","docId":"trouble-integration"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Physics","items":[{"type":"link","label":"Core Physics","href":"/docs/v3.1.0/physics-core","docId":"physics-core"},{"type":"link","label":"Cloud Model","href":"/docs/v3.1.0/physics-cloud","docId":"physics-cloud"},{"type":"link","label":"Hot Core","href":"/docs/v3.1.0/physics-hotcore","docId":"physics-hotcore"},{"type":"link","label":"Shock Models","href":"/docs/v3.1.0/physics-shocks","docId":"physics-shocks"},{"type":"link","label":"Collapse Models","href":"/docs/v3.1.0/physics-collapse","docId":"physics-collapse"}],"collapsed":true,"collapsible":true,"href":"/docs/v3.1.0/physics-core"},{"type":"category","label":"Chemistry","items":[{"type":"link","label":"Gas Phase Reactions","href":"/docs/v3.1.0/gas","docId":"gas"},{"type":"link","label":"Grain Surface Reactions","href":"/docs/v3.1.0/grain","docId":"grain"},{"type":"link","label":"Adsorption & Desorption Reactions","href":"/docs/v3.1.0/desorb","docId":"desorb"},{"type":"link","label":"Bulk Ice Processes","href":"/docs/v3.1.0/bulk","docId":"bulk"}],"collapsed":true,"collapsible":true,"href":"/docs/v3.1.0/category/chemistry"},{"type":"category","label":"Developer","items":[{"type":"link","label":"Overview of the Code","href":"/docs/v3.1.0/dev-overview","docId":"dev-overview"},{"type":"link","label":"Writing The Python Interface","href":"/docs/v3.1.0/dev-python-wrap","docId":"dev-python-wrap"},{"type":"link","label":"Debugging","href":"/docs/v3.1.0/dev-debugging","docId":"dev-debugging"},{"type":"link","label":"Maintaining the Website","href":"/docs/v3.1.0/dev-web","docId":"dev-web"}],"collapsed":true,"collapsible":true,"href":"/docs/v3.1.0/category/developer"}]},"docs":{"bulk":{"id":"bulk","title":"Bulk Ice Processes","description":"For a three phase network, we must include reactions in the bulk and the process by which it is formed. To do this, MakeRates automatically duplicates all LH reactions so that a reaction on the surface and one in the bulk ice exists in the network. We then include two methods by which material can move between the bulk and the surface. First is the accumulation of the bulk as new surface layers are formed and second is the individual swapping of a particle from the bulk with one on the surface. Both of these processes are taken from Garrod & Pauly 2011","sidebar":"docs"},"chemical_analysis":{"id":"chemical_analysis","title":"Chemical Analysis","description":"Chemical networks are complex systems where the interplay between many elements often means that small changes in one aspect of the network can greatly effect the outcome in unexpected ways. Nevertheless, there are cases where a simple chemical explanation can be found for some observed behaviour in the model outputs. This tutorial demonstrates how to use some of the functionality of the UCLCHEM library to analyse model outputs and discover these explanations.","sidebar":"docs"},"desorb":{"id":"desorb","title":"Adsorption & Desorption Reactions","description":"Coupling between the gas and the grain chemistry primarily comes from the freeze out of material from the gas phase onto the dust grains (adsorption) and the sublimation of material from the grains into the gas phase (desorption). The major processes considered by UCLCHEM are listed below. Note that we assume desorption and freeze out occur between the gas and the surface only, bulk material in three phase models does not directly desorb into the gas phase.","sidebar":"docs"},"dev-debugging":{"id":"dev-debugging","title":"Debugging","description":"UCLCHEM is a complex code and many things can go wrong. Here, we\'ll list some of the things that often go wrong when you modify the code as well as a few helpful steps to trace down bugs.","sidebar":"docs"},"dev-overview":{"id":"dev-overview","title":"Overview of the Code","description":"The page is designed to give a brief overview of the code\'s structure. It\'s less about the scientific justification for the various treatments in the code and more about how the code is segmented and where to look for things.","sidebar":"docs"},"dev-python-wrap":{"id":"dev-python-wrap","title":"Writing The Python Interface","description":"The python interface is a relatively complex bit of code, a lot of work is put on the development side to make the user side a smooth experience. Writing the core of UCLCHEM in Fortran gives great performance benefits but compiling it to python with F2PY has its peculiarities. Here, we discuss the steps needed to adjust the code.","sidebar":"docs"},"dev-web":{"id":"dev-web","title":"Maintaining the Website","description":"We use Docusaurus to maintain our website. The upside is that documentation and blog posts can all be created as simple markdown files. The downside is a slightly convoluted workflow which we explain here.","sidebar":"docs"},"first_model":{"id":"first_model","title":"Running Your First Models","description":"In this notebook, we demonstrate the basic use of UCLCHEM\'s python module by running a simple model and then using the analysis functions to examine the output.","sidebar":"docs"},"gas":{"id":"gas","title":"Gas Phase Reactions","description":"Gas phase ODEs","sidebar":"docs"},"grain":{"id":"grain","title":"Grain Surface Reactions","description":"Whilst the basic treatment of gas phase chemistry is well established, grain surface chemistry is more complex. There are three possible ways to treat grain surface chemistry in UCLCHEM. In general we assume that:","sidebar":"docs"},"hydro":{"id":"hydro","title":"Hydro Post Processing","description":"Main Contributors: Jon Holdship"},"install":{"id":"install","title":"Installation","description":"Prerequisites","sidebar":"docs"},"modelling_objects":{"id":"modelling_objects","title":"Advanced Physical Modelling","description":"In the previous tutorial, we simply modelled the chemistry of a static cloud for 1 Myr. This is unlikely to meet everybody\'s modelling needs and UCLCHEM is capable of modelling much more complex environments such as hot cores and shocks. In this tutorial, we model both a hot core and a shock to explore how these models work and to demonstrate the workflow that the UCLCHEM team normally follow.","sidebar":"docs"},"network":{"id":"network","title":"Creating a Network","description":"MakeRates","sidebar":"docs"},"parameters":{"id":"parameters","title":"Model Parameters","description":"UCLCHEM will default to these values unless they are overridden by user. Users can override these by adding the variable name as written here in the paramdict argument of any UCLCHEM model function. paramdict is not case sensitive.","sidebar":"docs"},"physics-cloud":{"id":"physics-cloud","title":"Cloud Model","description":"Main Contributors: Serena Viti, Jon Holdship","sidebar":"docs"},"physics-collapse":{"id":"physics-collapse","title":"Collapse Models","description":"Main Contributors: Felix Priestley","sidebar":"docs"},"physics-core":{"id":"physics-core","title":"Core Physics","description":"Each of the other physics doc pages details the specifics of a particular physics model. This one gives a general overview of the physics in UCLCHEM, including the core physics routines that are called for all models.","sidebar":"docs"},"physics-hotcore":{"id":"physics-hotcore","title":"Hot Core","description":"Main Contributors: Serena Viti, Jon Holdship","sidebar":"docs"},"physics-shocks":{"id":"physics-shocks","title":"Shock Models","description":"Main Contributors: Izaskun Jimenez-Serra, Tom James, Jon Holdship","sidebar":"docs"},"pythonapi":{"id":"pythonapi","title":"Python Reference","description":"* uclchem","sidebar":"docs"},"running_a_grid":{"id":"running_a_grid","title":"Running a Grid","description":"A common task is to run UCLCHEM over a grid of parameter combinations. This notebook sets up a simple approach to doing so for regular grids.","sidebar":"docs"},"trouble-compile":{"id":"trouble-compile","title":"Compilation Issues","description":"Given that UCLCHEM is supplied as source code, used across many machine types, and is a fairly complex model, things will occasionally go wrong. We\'ve collected here some of the most common problems and hope they resolve most issues.","sidebar":"docs"},"trouble-integration":{"id":"trouble-integration","title":"Integration","description":"My code just keeps running","sidebar":"docs"}}}')}}]); \ No newline at end of file diff --git a/assets/js/9b050cce.4bb6be1b.js b/assets/js/9b050cce.4bb6be1b.js deleted file mode 100644 index 59105a26..00000000 --- a/assets/js/9b050cce.4bb6be1b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[692],{6932:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"v3.1.0","label":"v3.1.0","banner":"unmaintained","badge":true,"className":"docs-version-v3.1.0","isLast":false,"docsSidebars":{"docs":[{"type":"category","label":"Getting Started","items":[{"type":"link","label":"Installation","href":"/docs/v3.1.0/","docId":"install"},{"type":"link","label":"Creating a Network","href":"/docs/v3.1.0/network","docId":"network"},{"type":"link","label":"Model Parameters","href":"/docs/v3.1.0/parameters","docId":"parameters"},{"type":"link","label":"Python Reference","href":"/docs/v3.1.0/pythonapi","docId":"pythonapi"}],"collapsed":true,"collapsible":true,"href":"/docs/v3.1.0/category/getting-started"},{"type":"category","label":"Tutorials","items":[{"type":"link","label":"Running Your First Models","href":"/docs/v3.1.0/first_model","docId":"first_model"},{"type":"link","label":"Advanced Physical Modelling","href":"/docs/v3.1.0/modelling_objects","docId":"modelling_objects"},{"type":"link","label":"Running a Grid","href":"/docs/v3.1.0/running_a_grid","docId":"running_a_grid"},{"type":"link","label":"Chemical Analysis","href":"/docs/v3.1.0/chemical_analysis","docId":"chemical_analysis"}],"collapsed":true,"collapsible":true,"href":"/docs/v3.1.0/category/tutorials"},{"type":"category","label":"Troubleshooting","items":[{"type":"link","label":"Compilation Issues","href":"/docs/v3.1.0/trouble-compile","docId":"trouble-compile"},{"type":"link","label":"Integration","href":"/docs/v3.1.0/trouble-integration","docId":"trouble-integration"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Physics","items":[{"type":"link","label":"Core Physics","href":"/docs/v3.1.0/physics-core","docId":"physics-core"},{"type":"link","label":"Cloud Model","href":"/docs/v3.1.0/physics-cloud","docId":"physics-cloud"},{"type":"link","label":"Hot Core","href":"/docs/v3.1.0/physics-hotcore","docId":"physics-hotcore"},{"type":"link","label":"Shock Models","href":"/docs/v3.1.0/physics-shocks","docId":"physics-shocks"},{"type":"link","label":"Collapse Models","href":"/docs/v3.1.0/physics-collapse","docId":"physics-collapse"}],"collapsed":true,"collapsible":true,"href":"/docs/v3.1.0/physics-core"},{"type":"category","label":"Chemistry","items":[{"type":"link","label":"Gas Phase Reactions","href":"/docs/v3.1.0/gas","docId":"gas"},{"type":"link","label":"Grain Surface Reactions","href":"/docs/v3.1.0/grain","docId":"grain"},{"type":"link","label":"Adsorption & Desorption Reactions","href":"/docs/v3.1.0/desorb","docId":"desorb"},{"type":"link","label":"Bulk Ice Processes","href":"/docs/v3.1.0/bulk","docId":"bulk"}],"collapsed":true,"collapsible":true,"href":"/docs/v3.1.0/category/chemistry"},{"type":"category","label":"Developer","items":[{"type":"link","label":"Overview of the Code","href":"/docs/v3.1.0/dev-overview","docId":"dev-overview"},{"type":"link","label":"Writing The Python Interface","href":"/docs/v3.1.0/dev-python-wrap","docId":"dev-python-wrap"},{"type":"link","label":"Debugging","href":"/docs/v3.1.0/dev-debugging","docId":"dev-debugging"},{"type":"link","label":"Maintaining the Website","href":"/docs/v3.1.0/dev-web","docId":"dev-web"}],"collapsed":true,"collapsible":true,"href":"/docs/v3.1.0/category/developer"}]},"docs":{"bulk":{"id":"bulk","title":"Bulk Ice Processes","description":"For a three phase network, we must include reactions in the bulk and the process by which it is formed. To do this, MakeRates automatically duplicates all LH reactions so that a reaction on the surface and one in the bulk ice exists in the network. We then include two methods by which material can move between the bulk and the surface. First is the accumulation of the bulk as new surface layers are formed and second is the individual swapping of a particle from the bulk with one on the surface. Both of these processes are taken from Garrod & Pauly 2011","sidebar":"docs"},"chemical_analysis":{"id":"chemical_analysis","title":"Chemical Analysis","description":"Chemical networks are complex systems where the interplay between many elements often means that small changes in one aspect of the network can greatly effect the outcome in unexpected ways. Nevertheless, there are cases where a simple chemical explanation can be found for some observed behaviour in the model outputs. This tutorial demonstrates how to use some of the functionality of the UCLCHEM library to analyse model outputs and discover these explanations.","sidebar":"docs"},"desorb":{"id":"desorb","title":"Adsorption & Desorption Reactions","description":"Coupling between the gas and the grain chemistry primarily comes from the freeze out of material from the gas phase onto the dust grains (adsorption) and the sublimation of material from the grains into the gas phase (desorption). The major processes considered by UCLCHEM are listed below. Note that we assume desorption and freeze out occur between the gas and the surface only, bulk material in three phase models does not directly desorb into the gas phase.","sidebar":"docs"},"dev-debugging":{"id":"dev-debugging","title":"Debugging","description":"UCLCHEM is a complex code and many things can go wrong. Here, we\'ll list some of the things that often go wrong when you modify the code as well as a few helpful steps to trace down bugs.","sidebar":"docs"},"dev-overview":{"id":"dev-overview","title":"Overview of the Code","description":"The page is designed to give a brief overview of the code\'s structure. It\'s less about the scientific justification for the various treatments in the code and more about how the code is segmented and where to look for things.","sidebar":"docs"},"dev-python-wrap":{"id":"dev-python-wrap","title":"Writing The Python Interface","description":"The python interface is a relatively complex bit of code, a lot of work is put on the development side to make the user side a smooth experience. Writing the core of UCLCHEM in Fortran gives great performance benefits but compiling it to python with F2PY has its peculiarities. Here, we discuss the steps needed to adjust the code.","sidebar":"docs"},"dev-web":{"id":"dev-web","title":"Maintaining the Website","description":"We use Docusaurus to maintain our website. The upside is that documentation and blog posts can all be created as simple markdown files. The downside is a slightly convoluted workflow which we explain here.","sidebar":"docs"},"first_model":{"id":"first_model","title":"Running Your First Models","description":"In this notebook, we demonstrate the basic use of UCLCHEM\'s python module by running a simple model and then using the analysis functions to examine the output.","sidebar":"docs"},"gas":{"id":"gas","title":"Gas Phase Reactions","description":"Gas phase ODEs","sidebar":"docs"},"grain":{"id":"grain","title":"Grain Surface Reactions","description":"Whilst the basic treatment of gas phase chemistry is well established, grain surface chemistry is more complex. There are three possible ways to treat grain surface chemistry in UCLCHEM. In general we assume that:","sidebar":"docs"},"hydro":{"id":"hydro","title":"Hydro Post Processing","description":"Main Contributors: Jon Holdship"},"install":{"id":"install","title":"Installation","description":"Prerequisites","sidebar":"docs"},"modelling_objects":{"id":"modelling_objects","title":"Advanced Physical Modelling","description":"In the previous tutorial, we simply modelled the chemistry of a static cloud for 1 Myr. This is unlikely to meet everybody\'s modelling needs and UCLCHEM is capable of modelling much more complex environments such as hot cores and shocks. In this tutorial, we model both a hot core and a shock to explore how these models work and to demonstrate the workflow that the UCLCHEM team normally follow.","sidebar":"docs"},"network":{"id":"network","title":"Creating a Network","description":"MakeRates","sidebar":"docs"},"parameters":{"id":"parameters","title":"Model Parameters","description":"UCLCHEM will default to these values unless they are overridden by user. Users can override these by adding the variable name as written here in the paramdict argument of any UCLCHEM model function. paramdict is not case sensitive.","sidebar":"docs"},"physics-cloud":{"id":"physics-cloud","title":"Cloud Model","description":"Main Contributors: Serena Viti, Jon Holdship","sidebar":"docs"},"physics-collapse":{"id":"physics-collapse","title":"Collapse Models","description":"Main Contributors: Felix Priestley","sidebar":"docs"},"physics-core":{"id":"physics-core","title":"Core Physics","description":"Each of the other physics doc pages details the specifics of a particular physics model. This one gives a general overview of the physics in UCLCHEM, including the core physics routines that are called for all models.","sidebar":"docs"},"physics-hotcore":{"id":"physics-hotcore","title":"Hot Core","description":"Main Contributors: Serena Viti, Jon Holdship","sidebar":"docs"},"physics-shocks":{"id":"physics-shocks","title":"Shock Models","description":"Main Contributors: Izaskun Jimenez-Serra, Tom James, Jon Holdship","sidebar":"docs"},"pythonapi":{"id":"pythonapi","title":"Python Reference","description":"* uclchem","sidebar":"docs"},"running_a_grid":{"id":"running_a_grid","title":"Running a Grid","description":"A common task is to run UCLCHEM over a grid of parameter combinations. This notebook sets up a simple approach to doing so for regular grids.","sidebar":"docs"},"trouble-compile":{"id":"trouble-compile","title":"Compilation Issues","description":"Given that UCLCHEM is supplied as source code, used across many machine types, and is a fairly complex model, things will occasionally go wrong. We\'ve collected here some of the most common problems and hope they resolve most issues.","sidebar":"docs"},"trouble-integration":{"id":"trouble-integration","title":"Integration","description":"My code just keeps running","sidebar":"docs"}}}')}}]); \ No newline at end of file diff --git a/assets/js/9e4087bc.544e341e.js b/assets/js/9e4087bc.92d7df89.js similarity index 69% rename from assets/js/9e4087bc.544e341e.js rename to assets/js/9e4087bc.92d7df89.js index d92c07d3..be58ca11 100644 --- a/assets/js/9e4087bc.544e341e.js +++ b/assets/js/9e4087bc.92d7df89.js @@ -1 +1 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3608],{3012:(e,t,a)=>{a.r(t),a.d(t,{default:()=>o});var r=a(7294),n=a(2600),l=a(9960),c=a(5999),i=a(2662);function m(e){var t=e.year,a=e.posts;return r.createElement(r.Fragment,null,r.createElement("h3",null,t),r.createElement("ul",null,a.map((function(e){return r.createElement("li",{key:e.metadata.date},r.createElement(l.Z,{to:e.metadata.permalink},e.metadata.formattedDate," - ",e.metadata.title))}))))}function s(e){var t=e.years;return r.createElement("section",{className:"margin-vert--lg"},r.createElement("div",{className:"container"},r.createElement("div",{className:"row"},t.map((function(e,t){return r.createElement("div",{key:t,className:"col col--4 margin-vert--lg"},r.createElement(m,e))})))))}function o(e){var t,a,l=e.archive,m=(0,c.I)({id:"theme.blog.archive.title",message:"Archive",description:"The page & hero title of the blog archive page"}),o=(0,c.I)({id:"theme.blog.archive.description",message:"Archive",description:"The page & hero description of the blog archive page"}),u=(t=l.blogPosts,a=t.reduceRight((function(e,t){var a,r=t.metadata.date.split("-")[0],n=null!=(a=e.get(r))?a:[];return e.set(r,[t].concat(n))}),new Map),Array.from(a,(function(e){return{year:e[0],posts:e[1]}})));return r.createElement(r.Fragment,null,r.createElement(i.d,{title:m,description:o}),r.createElement(n.Z,null,r.createElement("header",{className:"hero hero--primary"},r.createElement("div",{className:"container"},r.createElement("h1",{className:"hero__title"},m),r.createElement("p",{className:"hero__subtitle"},o))),r.createElement("main",null,u.length>0&&r.createElement(s,{years:u}))))}}}]); \ No newline at end of file +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3608],{3169:(e,t,a)=>{a.r(t),a.d(t,{default:()=>o});var r=a(7294),n=a(9960),l=a(5999),c=a(1944),i=a(7961);function m(e){var t=e.year,a=e.posts;return r.createElement(r.Fragment,null,r.createElement("h3",null,t),r.createElement("ul",null,a.map((function(e){return r.createElement("li",{key:e.metadata.date},r.createElement(n.Z,{to:e.metadata.permalink},e.metadata.formattedDate," - ",e.metadata.title))}))))}function s(e){var t=e.years;return r.createElement("section",{className:"margin-vert--lg"},r.createElement("div",{className:"container"},r.createElement("div",{className:"row"},t.map((function(e,t){return r.createElement("div",{key:t,className:"col col--4 margin-vert--lg"},r.createElement(m,e))})))))}function o(e){var t,a,n=e.archive,m=(0,l.I)({id:"theme.blog.archive.title",message:"Archive",description:"The page & hero title of the blog archive page"}),o=(0,l.I)({id:"theme.blog.archive.description",message:"Archive",description:"The page & hero description of the blog archive page"}),u=(t=n.blogPosts,a=t.reduceRight((function(e,t){var a,r=t.metadata.date.split("-")[0],n=null!=(a=e.get(r))?a:[];return e.set(r,[t].concat(n))}),new Map),Array.from(a,(function(e){return{year:e[0],posts:e[1]}})));return r.createElement(r.Fragment,null,r.createElement(c.d,{title:m,description:o}),r.createElement(i.Z,null,r.createElement("header",{className:"hero hero--primary"},r.createElement("div",{className:"container"},r.createElement("h1",{className:"hero__title"},m),r.createElement("p",{className:"hero__subtitle"},o))),r.createElement("main",null,u.length>0&&r.createElement(s,{years:u}))))}}}]); \ No newline at end of file diff --git a/assets/js/9faf9bc8.7bf927a6.js b/assets/js/9faf9bc8.7bf927a6.js new file mode 100644 index 00000000..5e241d75 --- /dev/null +++ b/assets/js/9faf9bc8.7bf927a6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1754],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),c=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=c(r),f=o,m=d["".concat(s,".").concat(f)]||d[f]||u[f]||a;return r?n.createElement(m,l(l({ref:t},p),{},{components:r})):n.createElement(m,l({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i.mdxType="string"==typeof e?e:o,l[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>f,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var n=r(7462),o=r(3366),a=(r(7294),r(3905)),l=["components"],i={id:"physics-collapse",title:"Collapse Models"},s=void 0,c={unversionedId:"physics-collapse",id:"version-v3.1.0/physics-collapse",title:"Collapse Models",description:"Main Contributors: Felix Priestley",source:"@site/versioned_docs/version-v3.1.0/physics-collapse.md",sourceDirName:".",slug:"/physics-collapse",permalink:"/docs/v3.1.0/physics-collapse",draft:!1,tags:[],version:"v3.1.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"physics-collapse",title:"Collapse Models"},sidebar:"docs",previous:{title:"Shock Models",permalink:"/docs/v3.1.0/physics-shocks"},next:{title:"Chemistry",permalink:"/docs/v3.1.0/category/chemistry"}},p={},u=[],d={toc:u};function f(e){var t=e.components,r=(0,o.Z)(e,l);return(0,a.kt)("wrapper",(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Main Contributors"),": Felix Priestley"),(0,a.kt)("p",null,"The freefall collapse function used to control the density in most UCLCHEM models is fairly simplistic. ",(0,a.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.3847/1538-3881/aac957"},"Priestley et al. 2018")," created the collapse model which parameterizes the density profile of a collapsing core as a function of time and radius. The following collapse modes are possible:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},'"BE1.1": Bonnor-Ebert sphere, overdensity factor 1.1 (Aikawa+2005)'),(0,a.kt)("li",{parentName:"ul"},'"BE4": Bonnor-Ebert sphere, overdensity factor 4 (Aikawa+2005)'),(0,a.kt)("li",{parentName:"ul"},'"filament": magnetised filament, initially unstable to collapse (Nakamura+1995)'),(0,a.kt)("li",{parentName:"ul"},'"ambipolar": magnetised cloud, initially stable, collapse due to ambipolar diffusion (Fiedler+1993)')))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9faf9bc8.8f044af2.js b/assets/js/9faf9bc8.8f044af2.js deleted file mode 100644 index a58e74e2..00000000 --- a/assets/js/9faf9bc8.8f044af2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1754],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>d});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),c=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),f=c(r),d=o,m=f["".concat(s,".").concat(d)]||f[d]||u[d]||a;return r?n.createElement(m,l(l({ref:t},p),{},{components:r})):n.createElement(m,l({ref:t},p))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=f;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i.mdxType="string"==typeof e?e:o,l[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var n=r(7462),o=r(3366),a=(r(7294),r(3905)),l=["components"],i={id:"physics-collapse",title:"Collapse Models"},s=void 0,c={unversionedId:"physics-collapse",id:"version-v3.1.0/physics-collapse",title:"Collapse Models",description:"Main Contributors: Felix Priestley",source:"@site/versioned_docs/version-v3.1.0/physics-collapse.md",sourceDirName:".",slug:"/physics-collapse",permalink:"/docs/v3.1.0/physics-collapse",tags:[],version:"v3.1.0",frontMatter:{id:"physics-collapse",title:"Collapse Models"},sidebar:"docs",previous:{title:"Shock Models",permalink:"/docs/v3.1.0/physics-shocks"},next:{title:"Chemistry",permalink:"/docs/v3.1.0/category/chemistry"}},p={},u=[],f={toc:u};function d(e){var t=e.components,r=(0,o.Z)(e,l);return(0,a.kt)("wrapper",(0,n.Z)({},f,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Main Contributors"),": Felix Priestley"),(0,a.kt)("p",null,"The freefall collapse function used to control the density in most UCLCHEM models is fairly simplistic. ",(0,a.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.3847/1538-3881/aac957"},"Priestley et al. 2018")," created the collapse model which parameterizes the density profile of a collapsing core as a function of time and radius. The following collapse modes are possible:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},'"BE1.1": Bonnor-Ebert sphere, overdensity factor 1.1 (Aikawa+2005)'),(0,a.kt)("li",{parentName:"ul"},'"BE4": Bonnor-Ebert sphere, overdensity factor 4 (Aikawa+2005)'),(0,a.kt)("li",{parentName:"ul"},'"filament": magnetised filament, initially unstable to collapse (Nakamura+1995)'),(0,a.kt)("li",{parentName:"ul"},'"ambipolar": magnetised cloud, initially stable, collapse due to ambipolar diffusion (Fiedler+1993)')))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a070733c.685f4307.js b/assets/js/a070733c.685f4307.js deleted file mode 100644 index 02953b5e..00000000 --- a/assets/js/a070733c.685f4307.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4621],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var i=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=i.createContext({}),c=function(e){var t=i.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=c(e.components);return i.createElement(s.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},u=i.forwardRef((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(n),h=a,m=u["".concat(s,".").concat(h)]||u[h]||d[h]||r;return n?i.createElement(m,o(o({ref:t},p),{},{components:n})):i.createElement(m,o({ref:t},p))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,o=new Array(r);o[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:a,o[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>h,frontMatter:()=>l,metadata:()=>c,toc:()=>d});var i=n(7462),a=n(3366),r=(n(7294),n(3905)),o=["components"],l={id:"dev-overview",title:"Overview of the Code"},s=void 0,c={unversionedId:"dev-overview",id:"version-v3.1.0/dev-overview",title:"Overview of the Code",description:"The page is designed to give a brief overview of the code's structure. It's less about the scientific justification for the various treatments in the code and more about how the code is segmented and where to look for things.",source:"@site/versioned_docs/version-v3.1.0/dev-overview.md",sourceDirName:".",slug:"/dev-overview",permalink:"/docs/v3.1.0/dev-overview",tags:[],version:"v3.1.0",frontMatter:{id:"dev-overview",title:"Overview of the Code"},sidebar:"docs",previous:{title:"Developer",permalink:"/docs/v3.1.0/category/developer"},next:{title:"Writing The Python Interface",permalink:"/docs/v3.1.0/dev-python-wrap"}},p={},d=[{value:"Basic Algorithm",id:"basic-algorithm",level:2},{value:"Physics",id:"physics",level:2},{value:"Chemistry",id:"chemistry",level:2},{value:"Constants",id:"constants",level:2}],u={toc:d};function h(e){var t=e.components,n=(0,a.Z)(e,o);return(0,r.kt)("wrapper",(0,i.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The page is designed to give a brief overview of the code's structure. It's less about the scientific justification for the various treatments in the code and more about how the code is segmented and where to look for things."),(0,r.kt)("h2",{id:"basic-algorithm"},"Basic Algorithm"),(0,r.kt)("p",null,"Centering the code on the python wrap has made the underlying algorithm more difficult to follow than in older versions of the code. However, you can more or less see the whole procedure of solving the chemical model in ",(0,r.kt)("inlineCode",{parentName:"p"},"solveAbundances")," in ",(0,r.kt)("inlineCode",{parentName:"p"},"src/fortran_src/wrap.f90"),". The steps are:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Set all parameters to defaultparameters.f90 values")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Read parameters from the dictionary input")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Initialize physics variables such as column density and model specific values")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Initialize chemical variables like initial abundances")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"While ",(0,r.kt)("inlineCode",{parentName:"p"},"time < finalTime")," or ",(0,r.kt)("inlineCode",{parentName:"p"},"density")," < ",(0,r.kt)("inlineCode",{parentName:"p"},"finalDens")),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"get a new target time"),(0,r.kt)("li",{parentName:"ul"},"update abundances from current time to target time"),(0,r.kt)("li",{parentName:"ul"},"update physics variables to new time"),(0,r.kt)("li",{parentName:"ul"},"Allow physics modules to affect abundances directly (eg to sputter ices)"),(0,r.kt)("li",{parentName:"ul"},"output parameters"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"output final abundances if ",(0,r.kt)("inlineCode",{parentName:"p"},"abundSaveFile")," set."))),(0,r.kt)("p",null,"Exactly what happens in the initialize physics and update physics sections depends on the physical model in question."),(0,r.kt)("h2",{id:"physics"},"Physics"),(0,r.kt)("p",null,"There are a number of physics modules which all implement the same subroutines in different ways. They also all pull from core-physics.f90, a module that contains all the non-optional physics variables. When we initialize or update physics, we first call the initialize/update subroutine from core-physics.f90 and then call it from the physics module. This is achieved by passing the relevant physics module's subroutines to ",(0,r.kt)("inlineCode",{parentName:"p"},"solveAbundances")," from each of the various subroutines in wrap.f90."),(0,r.kt)("p",null,"If you'd like to implement your own physics model, you should try as closely as possible to follow this structure. Since core-physics is always updated first, you can override it with your module. For example, core-physics will calculate the Av and column density in the standard way but you could recalculate your column density in your updatePhysics subroutine to get new behaviour."),(0,r.kt)("h2",{id:"chemistry"},"Chemistry"),(0,r.kt)("p",null,"A large number of the fortran files make up the chemistry module. There's:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"chemistry.f90")," which contains the core chemistry routines and variables."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"rates.f90")," which is actually directly included in ",(0,r.kt)("inlineCode",{parentName:"li"},"chemistry.f90")," and just contains most of the reaction rate calculations"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"surfacereactions.f90")," and ",(0,r.kt)("inlineCode",{parentName:"li"},"photoreactions.f90")," which each contain a lot of the surface or photon chemistry related variables and subroutines. These are often so involved that we just separated them out to avoid overfilling ",(0,r.kt)("inlineCode",{parentName:"li"},"rates.f90"),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"odes.f90")," which is generated by MakeRates and is a huge file of ordinary differential equations."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"network.f90")," is also generated by MakeRates and contains lists of things like species names, reaction types, the index of the species that is the nth reactant of each reaction, etc. ",(0,r.kt)("strong",{parentName:"li"},"If you want to store something like the index of a species or reaction, consider having MakeRates add to this file."))),(0,r.kt)("h2",{id:"constants"},"Constants"),(0,r.kt)("p",null,"All constants are defined in ",(0,r.kt)("inlineCode",{parentName:"p"},"constants.f90")," and are accessed by the ",(0,r.kt)("inlineCode",{parentName:"p"},"constants")," module. If you need a physical constant, it's best check if it's here before defining it. There should be no harm at all in importing this module into any other code as it compiles first and nothing is modifiable (eg you can't overwrite the value of ",(0,r.kt)("inlineCode",{parentName:"p"},"PI")," defined in constants.f90)."),(0,r.kt)("p",null,"It's also where we declare ",(0,r.kt)("inlineCode",{parentName:"p"},"dp"),", which allows us to declare real64 variables in the iso standard way. All the ",(0,r.kt)("inlineCode",{parentName:"p"},"real(dp)")," variables you see declared in the code come from this."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a070733c.7f9a401a.js b/assets/js/a070733c.7f9a401a.js new file mode 100644 index 00000000..d7be554a --- /dev/null +++ b/assets/js/a070733c.7f9a401a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4621],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var i=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=i.createContext({}),c=function(e){var t=i.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=c(e.components);return i.createElement(l.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},u=i.forwardRef((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=c(n),h=a,m=u["".concat(l,".").concat(h)]||u[h]||d[h]||r;return n?i.createElement(m,o(o({ref:t},p),{},{components:n})):i.createElement(m,o({ref:t},p))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,o=new Array(r);o[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:a,o[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>h,frontMatter:()=>s,metadata:()=>c,toc:()=>d});var i=n(7462),a=n(3366),r=(n(7294),n(3905)),o=["components"],s={id:"dev-overview",title:"Overview of the Code"},l=void 0,c={unversionedId:"dev-overview",id:"version-v3.1.0/dev-overview",title:"Overview of the Code",description:"The page is designed to give a brief overview of the code's structure. It's less about the scientific justification for the various treatments in the code and more about how the code is segmented and where to look for things.",source:"@site/versioned_docs/version-v3.1.0/dev-overview.md",sourceDirName:".",slug:"/dev-overview",permalink:"/docs/v3.1.0/dev-overview",draft:!1,tags:[],version:"v3.1.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"dev-overview",title:"Overview of the Code"},sidebar:"docs",previous:{title:"Developer",permalink:"/docs/v3.1.0/category/developer"},next:{title:"Writing The Python Interface",permalink:"/docs/v3.1.0/dev-python-wrap"}},p={},d=[{value:"Basic Algorithm",id:"basic-algorithm",level:2},{value:"Physics",id:"physics",level:2},{value:"Chemistry",id:"chemistry",level:2},{value:"Constants",id:"constants",level:2}],u={toc:d};function h(e){var t=e.components,n=(0,a.Z)(e,o);return(0,r.kt)("wrapper",(0,i.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The page is designed to give a brief overview of the code's structure. It's less about the scientific justification for the various treatments in the code and more about how the code is segmented and where to look for things."),(0,r.kt)("h2",{id:"basic-algorithm"},"Basic Algorithm"),(0,r.kt)("p",null,"Centering the code on the python wrap has made the underlying algorithm more difficult to follow than in older versions of the code. However, you can more or less see the whole procedure of solving the chemical model in ",(0,r.kt)("inlineCode",{parentName:"p"},"solveAbundances")," in ",(0,r.kt)("inlineCode",{parentName:"p"},"src/fortran_src/wrap.f90"),". The steps are:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Set all parameters to defaultparameters.f90 values")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Read parameters from the dictionary input")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Initialize physics variables such as column density and model specific values")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Initialize chemical variables like initial abundances")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"While ",(0,r.kt)("inlineCode",{parentName:"p"},"time < finalTime")," or ",(0,r.kt)("inlineCode",{parentName:"p"},"density")," < ",(0,r.kt)("inlineCode",{parentName:"p"},"finalDens")),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"get a new target time"),(0,r.kt)("li",{parentName:"ul"},"update abundances from current time to target time"),(0,r.kt)("li",{parentName:"ul"},"update physics variables to new time"),(0,r.kt)("li",{parentName:"ul"},"Allow physics modules to affect abundances directly (eg to sputter ices)"),(0,r.kt)("li",{parentName:"ul"},"output parameters"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"output final abundances if ",(0,r.kt)("inlineCode",{parentName:"p"},"abundSaveFile")," set."))),(0,r.kt)("p",null,"Exactly what happens in the initialize physics and update physics sections depends on the physical model in question."),(0,r.kt)("h2",{id:"physics"},"Physics"),(0,r.kt)("p",null,"There are a number of physics modules which all implement the same subroutines in different ways. They also all pull from core-physics.f90, a module that contains all the non-optional physics variables. When we initialize or update physics, we first call the initialize/update subroutine from core-physics.f90 and then call it from the physics module. This is achieved by passing the relevant physics module's subroutines to ",(0,r.kt)("inlineCode",{parentName:"p"},"solveAbundances")," from each of the various subroutines in wrap.f90."),(0,r.kt)("p",null,"If you'd like to implement your own physics model, you should try as closely as possible to follow this structure. Since core-physics is always updated first, you can override it with your module. For example, core-physics will calculate the Av and column density in the standard way but you could recalculate your column density in your updatePhysics subroutine to get new behaviour."),(0,r.kt)("h2",{id:"chemistry"},"Chemistry"),(0,r.kt)("p",null,"A large number of the fortran files make up the chemistry module. There's:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"chemistry.f90")," which contains the core chemistry routines and variables."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"rates.f90")," which is actually directly included in ",(0,r.kt)("inlineCode",{parentName:"li"},"chemistry.f90")," and just contains most of the reaction rate calculations"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"surfacereactions.f90")," and ",(0,r.kt)("inlineCode",{parentName:"li"},"photoreactions.f90")," which each contain a lot of the surface or photon chemistry related variables and subroutines. These are often so involved that we just separated them out to avoid overfilling ",(0,r.kt)("inlineCode",{parentName:"li"},"rates.f90"),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"odes.f90")," which is generated by MakeRates and is a huge file of ordinary differential equations."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"network.f90")," is also generated by MakeRates and contains lists of things like species names, reaction types, the index of the species that is the nth reactant of each reaction, etc. ",(0,r.kt)("strong",{parentName:"li"},"If you want to store something like the index of a species or reaction, consider having MakeRates add to this file."))),(0,r.kt)("h2",{id:"constants"},"Constants"),(0,r.kt)("p",null,"All constants are defined in ",(0,r.kt)("inlineCode",{parentName:"p"},"constants.f90")," and are accessed by the ",(0,r.kt)("inlineCode",{parentName:"p"},"constants")," module. If you need a physical constant, it's best check if it's here before defining it. There should be no harm at all in importing this module into any other code as it compiles first and nothing is modifiable (eg you can't overwrite the value of ",(0,r.kt)("inlineCode",{parentName:"p"},"PI")," defined in constants.f90)."),(0,r.kt)("p",null,"It's also where we declare ",(0,r.kt)("inlineCode",{parentName:"p"},"dp"),", which allows us to declare real64 variables in the iso standard way. All the ",(0,r.kt)("inlineCode",{parentName:"p"},"real(dp)")," variables you see declared in the code come from this."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a30e1db8.0e40c625.js b/assets/js/a30e1db8.0e40c625.js new file mode 100644 index 00000000..6a06888d --- /dev/null +++ b/assets/js/a30e1db8.0e40c625.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8585],{3905:(a,e,s)=>{s.d(e,{Zo:()=>i,kt:()=>k});var t=s(7294);function n(a,e,s){return e in a?Object.defineProperty(a,e,{value:s,enumerable:!0,configurable:!0,writable:!0}):a[e]=s,a}function m(a,e){var s=Object.keys(a);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(a);e&&(t=t.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),s.push.apply(s,t)}return s}function p(a){for(var e=1;e=0||(n[s]=a[s]);return n}(a,e);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(a);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(a,s)&&(n[s]=a[s])}return n}var l=t.createContext({}),N=function(a){var e=t.useContext(l),s=e;return a&&(s="function"==typeof a?a(e):p(p({},e),a)),s},i=function(a){var e=N(a.components);return t.createElement(l.Provider,{value:e},a.children)},c={inlineCode:"code",wrapper:function(a){var e=a.children;return t.createElement(t.Fragment,{},e)}},o=t.forwardRef((function(a,e){var s=a.components,n=a.mdxType,m=a.originalType,l=a.parentName,i=r(a,["components","mdxType","originalType","parentName"]),o=N(s),k=n,h=o["".concat(l,".").concat(k)]||o[k]||c[k]||m;return s?t.createElement(h,p(p({ref:e},i),{},{components:s})):t.createElement(h,p({ref:e},i))}));function k(a,e){var s=arguments,n=e&&e.mdxType;if("string"==typeof a||n){var m=s.length,p=new Array(m);p[0]=o;var r={};for(var l in e)hasOwnProperty.call(e,l)&&(r[l]=e[l]);r.originalType=a,r.mdxType="string"==typeof a?a:n,p[1]=r;for(var N=2;N{s.r(e),s.d(e,{assets:()=>i,contentTitle:()=>l,default:()=>k,frontMatter:()=>r,metadata:()=>N,toc:()=>c});var t=s(7462),n=s(3366),m=(s(7294),s(3905)),p=["components"],r={id:"physics-core",title:"Core Physics"},l=void 0,N={unversionedId:"physics-core",id:"physics-core",title:"Core Physics",description:"Each of the other physics doc pages details the specifics of a particular physics model. This one gives a general overview of the physics in UCLCHEM, including the core physics routines that are called for all models.",source:"@site/docs/physics-core.md",sourceDirName:".",slug:"/physics-core",permalink:"/docs/next/physics-core",draft:!1,tags:[],version:"current",lastUpdatedBy:"jonholdship",lastUpdatedAt:1652862908,formattedLastUpdatedAt:"May 18, 2022",frontMatter:{id:"physics-core",title:"Core Physics"},sidebar:"docs",previous:{title:"Integration",permalink:"/docs/next/trouble-integration"},next:{title:"Core Physics",permalink:"/docs/next/physics-core"}},i={},c=[{value:"Model dimensions",id:"model-dimensions",level:2},{value:"Core Physics Processes",id:"core-physics-processes",level:2},{value:"Freefall",id:"freefall",level:3},{value:"Column density",id:"column-density",level:3}],o={toc:c};function k(a){var e=a.components,s=(0,n.Z)(a,p);return(0,m.kt)("wrapper",(0,t.Z)({},o,s,{components:e,mdxType:"MDXLayout"}),(0,m.kt)("p",null,"Each of the other physics doc pages details the specifics of a particular physics model. This one gives a general overview of the physics in UCLCHEM, including the core physics routines that are called for all models."),(0,m.kt)("h2",{id:"model-dimensions"},"Model dimensions"),(0,m.kt)("p",null,"Whilst it is most often used to model a single point, UCLCHEM is a 1D model. For most models, you provide the size of some cloud of gas (",(0,m.kt)("inlineCode",{parentName:"p"},"rout"),") and the number of positions along a 1D cut through this cloud you'd like to model (",(0,m.kt)("inlineCode",{parentName:"p"},"points"),"). UCLCHEM then divides the cloud up into the required number of equally sized segments and then models a point at the inner edge of each segment. In the image below, the user has specified that they would like to model six points between some rin and rout. The cloud has been split into six segments and the dots indicate the exact position at which"),(0,m.kt)("img",{src:"/img/cloud_points.png",width:"600","margin-left":"40%"}),(0,m.kt)("p",null,'The reason we have to specify the exact position of the "point" at which UCLCHEM evaluates the abundances is that it affects the column densities. We start our calculation at the edge (hence point 1 is closest to rout) and use the width of a single segment to calculate the column densities of H2, CO, and C as well as the total column density. This affects the photo-chemistry through UV attenuation and self-shielding. However, it is unlikely a user will model enough points to properly follow the UV chemistry in the low A',(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msub"}),(0,m.kt)("mi",{parentName:"msub"},"V"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_V")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.47833099999999995em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.22222em"}},"V")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," parts of the cloud, especially since the time dependent nature of the code means it could take some time. If a full 1D calculation becomes really important to you, you may wish to consider a more purpose built PDR solver such as ",(0,m.kt)("a",{parentName:"p",href:"https://uclchem.github.io/3dpdr"},"3D-PDR"),"."),(0,m.kt)("p",null,"A a result, we typically use UCLCHEM to model the cloud as a single point. Once we are far enough into the cloud that the A",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msub"}),(0,m.kt)("mi",{parentName:"msub"},"V"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_V")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.47833099999999995em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.22222em"}},"V")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is very high, the entire cloud tends to become homogenous in 1D models. Effectively, you can model the entire cloud with Av greater than about 5 as a single point and assume those abundances hold for the entire UV shielded region of the cloud. However, our 1D set up is useful for things like hot cores where the temperature and chemistry is really dominated by the central heating source, for which we treat the radial dependence quite well. You can then get a radial view of the chemistry with just a few points."),(0,m.kt)("h2",{id:"core-physics-processes"},"Core Physics Processes"),(0,m.kt)("h3",{id:"freefall"},"Freefall"),(0,m.kt)("p",null,"Many, but not all, models allow you to allow the gas to increase in density as if the gas begins to collapse under freefall from being stationary at the intial density. You turn this on with the ",(0,m.kt)("inlineCode",{parentName:"p"},"freefall")," toggle and the analytical equation for this is"),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"mrow"},"d"),(0,m.kt)("mi",{parentName:"mrow"},"n")),(0,m.kt)("mrow",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"mrow"},"d"),(0,m.kt)("mi",{parentName:"mrow"},"t"))),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"b"),(0,m.kt)("mi",{parentName:"msub"},"c")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow",fence:"true"},"("),(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("msup",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"msup"},"n"),(0,m.kt)("mn",{parentName:"msup"},"4")),(0,m.kt)("msub",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"msub"},"n"),(0,m.kt)("mn",{parentName:"msub"},"0"))),(0,m.kt)("mo",{parentName:"mrow",fence:"true"},")")),(0,m.kt)("mfrac",{parentName:"msup"},(0,m.kt)("mn",{parentName:"mfrac"},"1"),(0,m.kt)("mn",{parentName:"mfrac"},"3"))),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow",fence:"true"},"["),(0,m.kt)("mn",{parentName:"mrow"},"24"),(0,m.kt)("mi",{parentName:"mrow"},"\u03c0"),(0,m.kt)("mi",{parentName:"mrow"},"G"),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"m"),(0,m.kt)("mi",{parentName:"msub"},"H")),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"n"),(0,m.kt)("mn",{parentName:"msub"},"0")),(0,m.kt)("mrow",{parentName:"mrow"},(0,m.kt)("mo",{parentName:"mrow",fence:"true"},"("),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow",fence:"true"},"("),(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"mfrac"},"n"),(0,m.kt)("msub",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"msub"},"n"),(0,m.kt)("mn",{parentName:"msub"},"0"))),(0,m.kt)("mo",{parentName:"mrow",fence:"true"},")")),(0,m.kt)("mfrac",{parentName:"msup"},(0,m.kt)("mn",{parentName:"mfrac"},"1"),(0,m.kt)("mn",{parentName:"mfrac"},"3"))),(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("mo",{parentName:"mrow",fence:"true"},")")),(0,m.kt)("mo",{parentName:"mrow",fence:"true"},"]")),(0,m.kt)("mfrac",{parentName:"msup"},(0,m.kt)("mn",{parentName:"mfrac"},"1"),(0,m.kt)("mn",{parentName:"mfrac"},"2")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dn}{dt} = b_c \\left(\\frac{n^4}{n_0}\\right)^{\\frac{1}{3}}\\left[24\\pi Gm_Hn_0\\left(\\left(\\frac{n}{n_0}\\right)^{\\frac{1}{3}}-1\\right)\\right]^{\\frac{1}{2}}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"2.05744em",verticalAlign:"-0.686em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"3.3878700000000004em",verticalAlign:"-1.25003em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"b"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"mopen delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size3"},"(")),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.491108em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"4"))))))))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,m.kt)("span",{parentName:"span",className:"mclose delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size3"},")"))),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.8350280000000003em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-4.244008000000001em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter sizing reset-size3 size6"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8443142857142858em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.656em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.2255000000000003em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line mtight",style:{borderBottomWidth:"0.049em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.384em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.344em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter sizing reset-size3 size6"})))))))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"mopen delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size4"},"[")),(0,m.kt)("span",{parentName:"span",className:"mord"},"2"),(0,m.kt)("span",{parentName:"span",className:"mord"},"4"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"\u03c0"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"G"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"m"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"mopen delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size4"},"(")),(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"mopen delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size3"},"(")),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.10756em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,m.kt)("span",{parentName:"span",className:"mclose delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size3"},")"))),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.7939200000000002em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-4.2029000000000005em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter sizing reset-size3 size6"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8443142857142858em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.656em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.2255000000000003em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line mtight",style:{borderBottomWidth:"0.049em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.384em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.344em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter sizing reset-size3 size6"})))))))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mbin"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mclose delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size4"},")"))),(0,m.kt)("span",{parentName:"span",className:"mclose delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size4"},"]"))),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"2.1378400000000006em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-4.54682em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter sizing reset-size3 size6"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8443142857142858em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.656em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.2255000000000003em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line mtight",style:{borderBottomWidth:"0.049em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.384em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.344em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter sizing reset-size3 size6"}))))))))))))))),(0,m.kt)("p",null,"this is the rate of change of the number density of H nuclei (that is our density unit) which is passed to the integrator to be intregrated over time along with the abundances. ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"b"),(0,m.kt)("mi",{parentName:"msub"},"c"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"b_c")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.84444em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"b"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is ",(0,m.kt)("inlineCode",{parentName:"p"},"freefallFactor")," in the parameters, a factor used to slow the collapse. ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"n"),(0,m.kt)("mn",{parentName:"msub"},"0"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_0")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is the code's ",(0,m.kt)("inlineCode",{parentName:"p"},"initialDens")," parameter. We stop this collapse at ",(0,m.kt)("inlineCode",{parentName:"p"},"finalDens")," even if the model continues."),(0,m.kt)("h3",{id:"column-density"},"Column density"),(0,m.kt)("p",null,"We calculate the column density for a single point model or for the position closest to the cloud edge in 1D models, by dividing the total size of the cloud by the number of points and multiplying by density."),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"N"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"T"),(0,m.kt)("mi",{parentName:"mrow"},"o"),(0,m.kt)("mi",{parentName:"mrow"},"t"))),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("msub",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"msub"},"r"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"c"),(0,m.kt)("mi",{parentName:"mrow"},"l"),(0,m.kt)("mi",{parentName:"mrow"},"o"),(0,m.kt)("mi",{parentName:"mrow"},"u"),(0,m.kt)("mi",{parentName:"mrow"},"d"))),(0,m.kt)("msub",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"msub"},"N"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"p"),(0,m.kt)("mi",{parentName:"mrow"},"o"),(0,m.kt)("mi",{parentName:"mrow"},"i"),(0,m.kt)("mi",{parentName:"mrow"},"n"),(0,m.kt)("mi",{parentName:"mrow"},"t"),(0,m.kt)("mi",{parentName:"mrow"},"s")))),(0,m.kt)("mi",{parentName:"mrow"},"n"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,m.kt)("mi",{parentName:"mrow"},"r"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"N_{Tot} = \\frac{r_{cloud}}{N_{points}} n(r)")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.13889em"}},"T"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"2.079668em",verticalAlign:"-0.972108em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.1075599999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"p"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"n"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,m.kt)("span",{parentName:"span"})))))))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"r"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.02778em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.01968em"}},"l"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"u"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.972108em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"mopen"},"("),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"r"),(0,m.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,m.kt)("p",null,"For points further in, we simply do the same calculation but then add the column density of the previous point. If we work in from the edge (point 1) to the centre (point N), then we get the cumulative column density. A similar process is followed for the column densities of CO, H2 and C."),(0,m.kt)("p",null,"We can then calculate the Av,"),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"A"),(0,m.kt)("mi",{parentName:"mrow"},"v"),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("mi",{parentName:"mrow"},"A"),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"v"),(0,m.kt)("mn",{parentName:"msub"},"0")),(0,m.kt)("mo",{parentName:"mrow"},"+"),(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("msub",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"msub"},"N"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"T"),(0,m.kt)("mi",{parentName:"mrow"},"o"),(0,m.kt)("mi",{parentName:"mrow"},"t"))),(0,m.kt)("mrow",{parentName:"mfrac"},(0,m.kt)("mn",{parentName:"mrow"},"1.6"),(0,m.kt)("mo",{parentName:"mrow"},"\xd7"),(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"21")),(0,m.kt)("mi",{parentName:"mrow"},"c"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"m"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"2")))))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"Av = Av_0 + \\frac{N_{Tot}}{1.6 \\times 10^{21} cm^{-2}}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.68333em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"v"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"v"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03588em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mbin"},"+"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"2.1296600000000003em",verticalAlign:"-0.7693300000000001em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},"."),(0,m.kt)("span",{parentName:"span",className:"mord"},"6"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mbin"},"\xd7"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.740108em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.9890000000000003em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"c"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"m"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.740108em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.989em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2"))))))))))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.13889em"}},"T"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.7693300000000001em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"}))))))),(0,m.kt)("p",null,"where ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"A"),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"v"),(0,m.kt)("mn",{parentName:"msub"},"0"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"Av_0")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"v"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03588em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is the code's ",(0,m.kt)("inlineCode",{parentName:"p"},"baseAv")," parameter."))}k.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a30e1db8.d2c1a7d5.js b/assets/js/a30e1db8.d2c1a7d5.js deleted file mode 100644 index 73432536..00000000 --- a/assets/js/a30e1db8.d2c1a7d5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8585],{3905:(a,e,s)=>{s.d(e,{Zo:()=>i,kt:()=>k});var t=s(7294);function n(a,e,s){return e in a?Object.defineProperty(a,e,{value:s,enumerable:!0,configurable:!0,writable:!0}):a[e]=s,a}function m(a,e){var s=Object.keys(a);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(a);e&&(t=t.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),s.push.apply(s,t)}return s}function p(a){for(var e=1;e=0||(n[s]=a[s]);return n}(a,e);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(a);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(a,s)&&(n[s]=a[s])}return n}var l=t.createContext({}),N=function(a){var e=t.useContext(l),s=e;return a&&(s="function"==typeof a?a(e):p(p({},e),a)),s},i=function(a){var e=N(a.components);return t.createElement(l.Provider,{value:e},a.children)},c={inlineCode:"code",wrapper:function(a){var e=a.children;return t.createElement(t.Fragment,{},e)}},o=t.forwardRef((function(a,e){var s=a.components,n=a.mdxType,m=a.originalType,l=a.parentName,i=r(a,["components","mdxType","originalType","parentName"]),o=N(s),k=n,h=o["".concat(l,".").concat(k)]||o[k]||c[k]||m;return s?t.createElement(h,p(p({ref:e},i),{},{components:s})):t.createElement(h,p({ref:e},i))}));function k(a,e){var s=arguments,n=e&&e.mdxType;if("string"==typeof a||n){var m=s.length,p=new Array(m);p[0]=o;var r={};for(var l in e)hasOwnProperty.call(e,l)&&(r[l]=e[l]);r.originalType=a,r.mdxType="string"==typeof a?a:n,p[1]=r;for(var N=2;N{s.r(e),s.d(e,{assets:()=>i,contentTitle:()=>l,default:()=>k,frontMatter:()=>r,metadata:()=>N,toc:()=>c});var t=s(7462),n=s(3366),m=(s(7294),s(3905)),p=["components"],r={id:"physics-core",title:"Core Physics"},l=void 0,N={unversionedId:"physics-core",id:"physics-core",title:"Core Physics",description:"Each of the other physics doc pages details the specifics of a particular physics model. This one gives a general overview of the physics in UCLCHEM, including the core physics routines that are called for all models.",source:"@site/docs/physics-core.md",sourceDirName:".",slug:"/physics-core",permalink:"/docs/next/physics-core",tags:[],version:"current",lastUpdatedBy:"jonholdship",lastUpdatedAt:1652862908,formattedLastUpdatedAt:"5/18/2022",frontMatter:{id:"physics-core",title:"Core Physics"},sidebar:"docs",previous:{title:"Integration",permalink:"/docs/next/trouble-integration"},next:{title:"Core Physics",permalink:"/docs/next/physics-core"}},i={},c=[{value:"Model dimensions",id:"model-dimensions",level:2},{value:"Core Physics Processes",id:"core-physics-processes",level:2},{value:"Freefall",id:"freefall",level:3},{value:"Column density",id:"column-density",level:3}],o={toc:c};function k(a){var e=a.components,s=(0,n.Z)(a,p);return(0,m.kt)("wrapper",(0,t.Z)({},o,s,{components:e,mdxType:"MDXLayout"}),(0,m.kt)("p",null,"Each of the other physics doc pages details the specifics of a particular physics model. This one gives a general overview of the physics in UCLCHEM, including the core physics routines that are called for all models."),(0,m.kt)("h2",{id:"model-dimensions"},"Model dimensions"),(0,m.kt)("p",null,"Whilst it is most often used to model a single point, UCLCHEM is a 1D model. For most models, you provide the size of some cloud of gas (",(0,m.kt)("inlineCode",{parentName:"p"},"rout"),") and the number of positions along a 1D cut through this cloud you'd like to model (",(0,m.kt)("inlineCode",{parentName:"p"},"points"),"). UCLCHEM then divides the cloud up into the required number of equally sized segments and then models a point at the inner edge of each segment. In the image below, the user has specified that they would like to model six points between some rin and rout. The cloud has been split into six segments and the dots indicate the exact position at which"),(0,m.kt)("img",{src:"/img/cloud_points.png",width:"600","margin-left":"40%"}),(0,m.kt)("p",null,'The reason we have to specify the exact position of the "point" at which UCLCHEM evaluates the abundances is that it affects the column densities. We start our calculation at the edge (hence point 1 is closest to rout) and use the width of a single segment to calculate the column densities of H2, CO, and C as well as the total column density. This affects the photo-chemistry through UV attenuation and self-shielding. However, it is unlikely a user will model enough points to properly follow the UV chemistry in the low A',(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msub"}),(0,m.kt)("mi",{parentName:"msub"},"V"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_V")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.47833099999999995em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.22222em"}},"V")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," parts of the cloud, especially since the time dependent nature of the code means it could take some time. If a full 1D calculation becomes really important to you, you may wish to consider a more purpose built PDR solver such as ",(0,m.kt)("a",{parentName:"p",href:"https://uclchem.github.io/3dpdr"},"3D-PDR"),"."),(0,m.kt)("p",null,"A a result, we typically use UCLCHEM to model the cloud as a single point. Once we are far enough into the cloud that the A",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msub"}),(0,m.kt)("mi",{parentName:"msub"},"V"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_V")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.47833099999999995em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.22222em"}},"V")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is very high, the entire cloud tends to become homogenous in 1D models. Effectively, you can model the entire cloud with Av greater than about 5 as a single point and assume those abundances hold for the entire UV shielded region of the cloud. However, our 1D set up is useful for things like hot cores where the temperature and chemistry is really dominated by the central heating source, for which we treat the radial dependence quite well. You can then get a radial view of the chemistry with just a few points."),(0,m.kt)("h2",{id:"core-physics-processes"},"Core Physics Processes"),(0,m.kt)("h3",{id:"freefall"},"Freefall"),(0,m.kt)("p",null,"Many, but not all, models allow you to allow the gas to increase in density as if the gas begins to collapse under freefall from being stationary at the intial density. You turn this on with the ",(0,m.kt)("inlineCode",{parentName:"p"},"freefall")," toggle and the analytical equation for this is"),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"mrow"},"d"),(0,m.kt)("mi",{parentName:"mrow"},"n")),(0,m.kt)("mrow",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"mrow"},"d"),(0,m.kt)("mi",{parentName:"mrow"},"t"))),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"b"),(0,m.kt)("mi",{parentName:"msub"},"c")),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow",fence:"true"},"("),(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("msup",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"msup"},"n"),(0,m.kt)("mn",{parentName:"msup"},"4")),(0,m.kt)("msub",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"msub"},"n"),(0,m.kt)("mn",{parentName:"msub"},"0"))),(0,m.kt)("mo",{parentName:"mrow",fence:"true"},")")),(0,m.kt)("mfrac",{parentName:"msup"},(0,m.kt)("mn",{parentName:"mfrac"},"1"),(0,m.kt)("mn",{parentName:"mfrac"},"3"))),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow",fence:"true"},"["),(0,m.kt)("mn",{parentName:"mrow"},"24"),(0,m.kt)("mi",{parentName:"mrow"},"\u03c0"),(0,m.kt)("mi",{parentName:"mrow"},"G"),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"m"),(0,m.kt)("mi",{parentName:"msub"},"H")),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"n"),(0,m.kt)("mn",{parentName:"msub"},"0")),(0,m.kt)("mrow",{parentName:"mrow"},(0,m.kt)("mo",{parentName:"mrow",fence:"true"},"("),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow",fence:"true"},"("),(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"mfrac"},"n"),(0,m.kt)("msub",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"msub"},"n"),(0,m.kt)("mn",{parentName:"msub"},"0"))),(0,m.kt)("mo",{parentName:"mrow",fence:"true"},")")),(0,m.kt)("mfrac",{parentName:"msup"},(0,m.kt)("mn",{parentName:"mfrac"},"1"),(0,m.kt)("mn",{parentName:"mfrac"},"3"))),(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("mo",{parentName:"mrow",fence:"true"},")")),(0,m.kt)("mo",{parentName:"mrow",fence:"true"},"]")),(0,m.kt)("mfrac",{parentName:"msup"},(0,m.kt)("mn",{parentName:"mfrac"},"1"),(0,m.kt)("mn",{parentName:"mfrac"},"2")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dn}{dt} = b_c \\left(\\frac{n^4}{n_0}\\right)^{\\frac{1}{3}}\\left[24\\pi Gm_Hn_0\\left(\\left(\\frac{n}{n_0}\\right)^{\\frac{1}{3}}-1\\right)\\right]^{\\frac{1}{2}}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"2.05744em",verticalAlign:"-0.686em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"3.3878700000000004em",verticalAlign:"-1.25003em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"b"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"mopen delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size3"},"(")),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.491108em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"4"))))))))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,m.kt)("span",{parentName:"span",className:"mclose delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size3"},")"))),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.8350280000000003em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-4.244008000000001em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter sizing reset-size3 size6"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8443142857142858em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.656em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.2255000000000003em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line mtight",style:{borderBottomWidth:"0.049em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.384em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.344em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter sizing reset-size3 size6"})))))))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"mopen delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size4"},"[")),(0,m.kt)("span",{parentName:"span",className:"mord"},"2"),(0,m.kt)("span",{parentName:"span",className:"mord"},"4"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"\u03c0"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"G"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"m"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"mopen delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size4"},"(")),(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"minner"},(0,m.kt)("span",{parentName:"span",className:"mopen delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size3"},"(")),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.10756em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,m.kt)("span",{parentName:"span",className:"mclose delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size3"},")"))),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.7939200000000002em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-4.2029000000000005em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter sizing reset-size3 size6"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8443142857142858em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.656em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.2255000000000003em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line mtight",style:{borderBottomWidth:"0.049em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.384em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.344em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter sizing reset-size3 size6"})))))))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mbin"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mclose delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size4"},")"))),(0,m.kt)("span",{parentName:"span",className:"mclose delimcenter",style:{top:"0em"}},(0,m.kt)("span",{parentName:"span",className:"delimsizing size4"},"]"))),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"2.1378400000000006em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-4.54682em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter sizing reset-size3 size6"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8443142857142858em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.656em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.2255000000000003em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line mtight",style:{borderBottomWidth:"0.049em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.384em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.344em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter sizing reset-size3 size6"}))))))))))))))),(0,m.kt)("p",null,"this is the rate of change of the number density of H nuclei (that is our density unit) which is passed to the integrator to be intregrated over time along with the abundances. ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"b"),(0,m.kt)("mi",{parentName:"msub"},"c"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"b_c")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.84444em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"b"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is ",(0,m.kt)("inlineCode",{parentName:"p"},"freefallFactor")," in the parameters, a factor used to slow the collapse. ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"n"),(0,m.kt)("mn",{parentName:"msub"},"0"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_0")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is the code's ",(0,m.kt)("inlineCode",{parentName:"p"},"initialDens")," parameter. We stop this collapse at ",(0,m.kt)("inlineCode",{parentName:"p"},"finalDens")," even if the model continues."),(0,m.kt)("h3",{id:"column-density"},"Column density"),(0,m.kt)("p",null,"We calculate the column density for a single point model or for the position closest to the cloud edge in 1D models, by dividing the total size of the cloud by the number of points and multiplying by density."),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"N"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"T"),(0,m.kt)("mi",{parentName:"mrow"},"o"),(0,m.kt)("mi",{parentName:"mrow"},"t"))),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("msub",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"msub"},"r"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"c"),(0,m.kt)("mi",{parentName:"mrow"},"l"),(0,m.kt)("mi",{parentName:"mrow"},"o"),(0,m.kt)("mi",{parentName:"mrow"},"u"),(0,m.kt)("mi",{parentName:"mrow"},"d"))),(0,m.kt)("msub",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"msub"},"N"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"p"),(0,m.kt)("mi",{parentName:"mrow"},"o"),(0,m.kt)("mi",{parentName:"mrow"},"i"),(0,m.kt)("mi",{parentName:"mrow"},"n"),(0,m.kt)("mi",{parentName:"mrow"},"t"),(0,m.kt)("mi",{parentName:"mrow"},"s")))),(0,m.kt)("mi",{parentName:"mrow"},"n"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,m.kt)("mi",{parentName:"mrow"},"r"),(0,m.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"N_{Tot} = \\frac{r_{cloud}}{N_{points}} n(r)")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.13889em"}},"T"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"2.079668em",verticalAlign:"-0.972108em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.1075599999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"p"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"n"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,m.kt)("span",{parentName:"span"})))))))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"r"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.02778em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.01968em"}},"l"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"u"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.972108em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,m.kt)("span",{parentName:"span",className:"mopen"},"("),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.02778em"}},"r"),(0,m.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,m.kt)("p",null,"For points further in, we simply do the same calculation but then add the column density of the previous point. If we work in from the edge (point 1) to the centre (point N), then we get the cumulative column density. A similar process is followed for the column densities of CO, H2 and C."),(0,m.kt)("p",null,"We can then calculate the Av,"),(0,m.kt)("div",{className:"math math-display"},(0,m.kt)("span",{parentName:"div",className:"katex-display"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"A"),(0,m.kt)("mi",{parentName:"mrow"},"v"),(0,m.kt)("mo",{parentName:"mrow"},"="),(0,m.kt)("mi",{parentName:"mrow"},"A"),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"v"),(0,m.kt)("mn",{parentName:"msub"},"0")),(0,m.kt)("mo",{parentName:"mrow"},"+"),(0,m.kt)("mfrac",{parentName:"mrow"},(0,m.kt)("msub",{parentName:"mfrac"},(0,m.kt)("mi",{parentName:"msub"},"N"),(0,m.kt)("mrow",{parentName:"msub"},(0,m.kt)("mi",{parentName:"mrow"},"T"),(0,m.kt)("mi",{parentName:"mrow"},"o"),(0,m.kt)("mi",{parentName:"mrow"},"t"))),(0,m.kt)("mrow",{parentName:"mfrac"},(0,m.kt)("mn",{parentName:"mrow"},"1.6"),(0,m.kt)("mo",{parentName:"mrow"},"\xd7"),(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"21")),(0,m.kt)("mi",{parentName:"mrow"},"c"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"m"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"2")))))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"Av = Av_0 + \\frac{N_{Tot}}{1.6 \\times 10^{21} cm^{-2}}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.68333em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"v"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"="),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"v"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03588em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"})))))),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mbin"},"+"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"2.1296600000000003em",verticalAlign:"-0.7693300000000001em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,m.kt)("span",{parentName:"span",className:"mfrac"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},"."),(0,m.kt)("span",{parentName:"span",className:"mord"},"6"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mbin"},"\xd7"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2222222222222222em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.740108em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.9890000000000003em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"c"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"m"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.740108em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.989em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2"))))))))))),(0,m.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,m.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.13889em"}},"T"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.7693300000000001em"}},(0,m.kt)("span",{parentName:"span"}))))),(0,m.kt)("span",{parentName:"span",className:"mclose nulldelimiter"}))))))),(0,m.kt)("p",null,"where ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mi",{parentName:"mrow"},"A"),(0,m.kt)("msub",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msub"},"v"),(0,m.kt)("mn",{parentName:"msub"},"0"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"Av_0")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"A"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"v"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03588em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"0")))),(0,m.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,m.kt)("span",{parentName:"span"}))))))))))," is the code's ",(0,m.kt)("inlineCode",{parentName:"p"},"baseAv")," parameter."))}k.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a392f71d.52b3ffdd.js b/assets/js/a392f71d.52b3ffdd.js deleted file mode 100644 index e6a9c45a..00000000 --- a/assets/js/a392f71d.52b3ffdd.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7561],{3905:(a,e,t)=>{t.d(e,{Zo:()=>i,kt:()=>o});var s=t(7294);function m(a,e,t){return e in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function n(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.push.apply(t,s)}return t}function p(a){for(var e=1;e=0||(m[t]=a[t]);return m}(a,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(a);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(a,t)&&(m[t]=a[t])}return m}var l=s.createContext({}),N=function(a){var e=s.useContext(l),t=e;return a&&(t="function"==typeof a?a(e):p(p({},e),a)),t},i=function(a){var e=N(a.components);return s.createElement(l.Provider,{value:e},a.children)},k={inlineCode:"code",wrapper:function(a){var e=a.children;return s.createElement(s.Fragment,{},e)}},c=s.forwardRef((function(a,e){var t=a.components,m=a.mdxType,n=a.originalType,l=a.parentName,i=r(a,["components","mdxType","originalType","parentName"]),c=N(t),o=m,h=c["".concat(l,".").concat(o)]||c[o]||k[o]||n;return t?s.createElement(h,p(p({ref:e},i),{},{components:t})):s.createElement(h,p({ref:e},i))}));function o(a,e){var t=arguments,m=e&&e.mdxType;if("string"==typeof a||m){var n=t.length,p=new Array(n);p[0]=c;var r={};for(var l in e)hasOwnProperty.call(e,l)&&(r[l]=e[l]);r.originalType=a,r.mdxType="string"==typeof a?a:m,p[1]=r;for(var N=2;N{t.r(e),t.d(e,{assets:()=>i,contentTitle:()=>l,default:()=>o,frontMatter:()=>r,metadata:()=>N,toc:()=>k});var s=t(7462),m=t(3366),n=(t(7294),t(3905)),p=["components"],r={id:"bulk",title:"Bulk Ice Processes"},l=void 0,N={unversionedId:"bulk",id:"version-v3.2.0/bulk",title:"Bulk Ice Processes",description:"For a three phase network, we must include reactions in the bulk and the process by which it is formed. To do this, MakeRates automatically duplicates all LH reactions so that a reaction on the surface and one in the bulk ice exists in the network. We then include two methods by which material can move between the bulk and the surface. First is the accumulation of the bulk as new surface layers are formed and second is the individual swapping of a particle from the bulk with one on the surface. Both of these processes are taken from Garrod & Pauly 2011",source:"@site/versioned_docs/version-v3.2.0/chem-bulk.md",sourceDirName:".",slug:"/bulk",permalink:"/docs/bulk",tags:[],version:"v3.2.0",frontMatter:{id:"bulk",title:"Bulk Ice Processes"},sidebar:"docs",previous:{title:"Adsorption & Desorption Reactions",permalink:"/docs/desorb"},next:{title:"Developer",permalink:"/docs/category/developer"}},i={},k=[{value:"Surface Transfer",id:"surface-transfer",level:2},{value:"Individual Swapping",id:"individual-swapping",level:2}],c={toc:k};function o(a){var e=a.components,t=(0,m.Z)(a,p);return(0,n.kt)("wrapper",(0,s.Z)({},c,t,{components:e,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"For a three phase network, we must include reactions in the bulk and the process by which it is formed. To do this, MakeRates automatically duplicates all LH reactions so that a reaction on the surface and one in the bulk ice exists in the network. We then include two methods by which material can move between the bulk and the surface. First is the accumulation of the bulk as new surface layers are formed and second is the individual swapping of a particle from the bulk with one on the surface. Both of these processes are taken from ",(0,n.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1088/0004-637X/735/1/15"},"Garrod & Pauly 2011")),(0,n.kt)("h2",{id:"surface-transfer"},"Surface Transfer"),(0,n.kt)("p",null,"Once the surface layer of an ice mantle is full, any further material deposited will form a new layer and the old one becomes part of the bulk. Likewise, if any suface is removed then some of the bulk becomes surface. Therefore, we calculate the total rate of change of all species on the surface ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"["),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"n"),(0,n.kt)("mi",{parentName:"mrow"},"s")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"]")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"[\\frac{dns}{dt}]")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"1.2251079999999999em",verticalAlign:"-0.345em"}}),(0,n.kt)("span",{parentName:"span",className:"mopen"},"["),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8801079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.6550000000000002em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t")))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.394em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"n"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.345em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},"]")))))," ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"msub"}),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"c"),(0,n.kt)("mi",{parentName:"mrow"},"h"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"m")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_{chem}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.486108em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span"}),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"h"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"m"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," due to chemistry, freeze out and desorption and use it to calculate the rate of surface to bulk transfer for each species."),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"\u03b1"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"c"),(0,n.kt)("mi",{parentName:"mrow"},"c"))),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"["),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"n"),(0,n.kt)("mi",{parentName:"mrow"},"s")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mo",{parentName:"msub",stretchy:"false"},"]"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"c"),(0,n.kt)("mi",{parentName:"mrow"},"h"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"m"))),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("msub",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dn_s(i)}{dt} = \\alpha_{acc}[\\frac{dns}{dt}]_{chem} \\frac{n_s(i)}{n_s}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.263em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.0037em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"["),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},(0,n.kt)("span",{parentName:"span",className:"mclose"},"]"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"h"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"m"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"}))))))),(0,n.kt)("p",null,"where the first two terms give the total rate of surface to bulk transfer and the final fraction divides this amongst the species on the surface. We subtract this ODE from each surface species and add it to the equivalent bulk species. If the rate of change of the surface is negative, the bulk is transferred to the surface."),(0,n.kt)("h2",{id:"individual-swapping"},"Individual Swapping"),(0,n.kt)("p",null,"Any species in the bulk has the possibilty of diffusing to the surface. It will then displace a surface particle (which will join the bulk) and become part of the surface. We follow Ruaud et al. 2016 by first calculating the rate at which bulk species diffuse to the surface,"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"K"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"w"),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"p"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mn",{parentName:"mfrac"},"1"),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"t"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"h"),(0,n.kt)("mi",{parentName:"mrow"},"o"),(0,n.kt)("mi",{parentName:"mrow"},"p"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"l"),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"y")))))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"K_{swap} = \\frac{1}{t_{hop} N_{lay}}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.969438em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15139200000000003em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07153em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.02691em"}},"w"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"p"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.293548em",verticalAlign:"-0.972108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.32144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"h"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"p"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.01968em"}},"l"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03588em"}},"y"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"1")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.972108em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"}))))))),(0,n.kt)("p",null,"where ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"t"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"h"),(0,n.kt)("mi",{parentName:"mrow"},"o"),(0,n.kt)("mi",{parentName:"mrow"},"p")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"t_{hop}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.9011879999999999em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"h"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"p"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is our usual diffusion timescale and ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"l"),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"y")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"N_{lay}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.969438em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.01968em"}},"l"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03588em"}},"y"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the number of mantle layers with a minimum of 1. This gives a simple ODE"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"K"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"w"),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"p"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"b")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dX_s(i)}{dt} = K_{swap}X_b(i)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"1.036108em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15139200000000003em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07153em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.02691em"}},"w"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"p"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"b")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,"and we get the rate at which things move from the surface to the bulk by summing this rate of change over all mantle species to get a total rate of swapping from the bulk to the surface. We then divide that by the fraction of the surface which is made up of a species to get its rate of swapping to the bulk."),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"m")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub",mathvariant:"normal"},"\u03a3"),(0,n.kt)("mi",{parentName:"msub"},"j")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"K"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"w"),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"p"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"j"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"b")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("msub",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dX_m(i)}{dt} = \\Sigma_j K_{swap,j}X_b(j) \\frac{X_s(i)}{X_s}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"m")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.263em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"\u03a3"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07153em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.02691em"}},"w"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"p"),(0,n.kt)("span",{parentName:"span",className:"mpunct mtight"},","),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"b")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"}))))))),(0,n.kt)("p",null,"This ensures that the net movement between the surface and the bulk from this process is zero."))}o.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a392f71d.5bca2a48.js b/assets/js/a392f71d.5bca2a48.js new file mode 100644 index 00000000..19735a70 --- /dev/null +++ b/assets/js/a392f71d.5bca2a48.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7561],{3905:(a,e,t)=>{t.d(e,{Zo:()=>i,kt:()=>o});var s=t(7294);function m(a,e,t){return e in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function n(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.push.apply(t,s)}return t}function p(a){for(var e=1;e=0||(m[t]=a[t]);return m}(a,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(a);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(a,t)&&(m[t]=a[t])}return m}var l=s.createContext({}),N=function(a){var e=s.useContext(l),t=e;return a&&(t="function"==typeof a?a(e):p(p({},e),a)),t},i=function(a){var e=N(a.components);return s.createElement(l.Provider,{value:e},a.children)},k={inlineCode:"code",wrapper:function(a){var e=a.children;return s.createElement(s.Fragment,{},e)}},c=s.forwardRef((function(a,e){var t=a.components,m=a.mdxType,n=a.originalType,l=a.parentName,i=r(a,["components","mdxType","originalType","parentName"]),c=N(t),o=m,h=c["".concat(l,".").concat(o)]||c[o]||k[o]||n;return t?s.createElement(h,p(p({ref:e},i),{},{components:t})):s.createElement(h,p({ref:e},i))}));function o(a,e){var t=arguments,m=e&&e.mdxType;if("string"==typeof a||m){var n=t.length,p=new Array(n);p[0]=c;var r={};for(var l in e)hasOwnProperty.call(e,l)&&(r[l]=e[l]);r.originalType=a,r.mdxType="string"==typeof a?a:m,p[1]=r;for(var N=2;N{t.r(e),t.d(e,{assets:()=>i,contentTitle:()=>l,default:()=>o,frontMatter:()=>r,metadata:()=>N,toc:()=>k});var s=t(7462),m=t(3366),n=(t(7294),t(3905)),p=["components"],r={id:"bulk",title:"Bulk Ice Processes"},l=void 0,N={unversionedId:"bulk",id:"version-v3.2.0/bulk",title:"Bulk Ice Processes",description:"For a three phase network, we must include reactions in the bulk and the process by which it is formed. To do this, MakeRates automatically duplicates all LH reactions so that a reaction on the surface and one in the bulk ice exists in the network. We then include two methods by which material can move between the bulk and the surface. First is the accumulation of the bulk as new surface layers are formed and second is the individual swapping of a particle from the bulk with one on the surface. Both of these processes are taken from Garrod & Pauly 2011",source:"@site/versioned_docs/version-v3.2.0/chem-bulk.md",sourceDirName:".",slug:"/bulk",permalink:"/docs/bulk",draft:!1,tags:[],version:"v3.2.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"bulk",title:"Bulk Ice Processes"},sidebar:"docs",previous:{title:"Adsorption & Desorption Reactions",permalink:"/docs/desorb"},next:{title:"Developer",permalink:"/docs/category/developer"}},i={},k=[{value:"Surface Transfer",id:"surface-transfer",level:2},{value:"Individual Swapping",id:"individual-swapping",level:2}],c={toc:k};function o(a){var e=a.components,t=(0,m.Z)(a,p);return(0,n.kt)("wrapper",(0,s.Z)({},c,t,{components:e,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"For a three phase network, we must include reactions in the bulk and the process by which it is formed. To do this, MakeRates automatically duplicates all LH reactions so that a reaction on the surface and one in the bulk ice exists in the network. We then include two methods by which material can move between the bulk and the surface. First is the accumulation of the bulk as new surface layers are formed and second is the individual swapping of a particle from the bulk with one on the surface. Both of these processes are taken from ",(0,n.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1088/0004-637X/735/1/15"},"Garrod & Pauly 2011")),(0,n.kt)("h2",{id:"surface-transfer"},"Surface Transfer"),(0,n.kt)("p",null,"Once the surface layer of an ice mantle is full, any further material deposited will form a new layer and the old one becomes part of the bulk. Likewise, if any suface is removed then some of the bulk becomes surface. Therefore, we calculate the total rate of change of all species on the surface ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"["),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"n"),(0,n.kt)("mi",{parentName:"mrow"},"s")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"]")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"[\\frac{dns}{dt}]")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"1.2251079999999999em",verticalAlign:"-0.345em"}}),(0,n.kt)("span",{parentName:"span",className:"mopen"},"["),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8801079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.6550000000000002em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t")))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.394em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"n"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.345em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},"]")))))," ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"msub"}),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"c"),(0,n.kt)("mi",{parentName:"mrow"},"h"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"m")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_{chem}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.486108em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span"}),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"h"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"m"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," due to chemistry, freeze out and desorption and use it to calculate the rate of surface to bulk transfer for each species."),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"\u03b1"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"c"),(0,n.kt)("mi",{parentName:"mrow"},"c"))),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"["),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"n"),(0,n.kt)("mi",{parentName:"mrow"},"s")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mo",{parentName:"msub",stretchy:"false"},"]"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"c"),(0,n.kt)("mi",{parentName:"mrow"},"h"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"m"))),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("msub",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dn_s(i)}{dt} = \\alpha_{acc}[\\frac{dns}{dt}]_{chem} \\frac{n_s(i)}{n_s}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.263em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.0037em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"["),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},(0,n.kt)("span",{parentName:"span",className:"mclose"},"]"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"h"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"m"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"}))))))),(0,n.kt)("p",null,"where the first two terms give the total rate of surface to bulk transfer and the final fraction divides this amongst the species on the surface. We subtract this ODE from each surface species and add it to the equivalent bulk species. If the rate of change of the surface is negative, the bulk is transferred to the surface."),(0,n.kt)("h2",{id:"individual-swapping"},"Individual Swapping"),(0,n.kt)("p",null,"Any species in the bulk has the possibilty of diffusing to the surface. It will then displace a surface particle (which will join the bulk) and become part of the surface. We follow Ruaud et al. 2016 by first calculating the rate at which bulk species diffuse to the surface,"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"K"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"w"),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"p"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mn",{parentName:"mfrac"},"1"),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"t"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"h"),(0,n.kt)("mi",{parentName:"mrow"},"o"),(0,n.kt)("mi",{parentName:"mrow"},"p"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"l"),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"y")))))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"K_{swap} = \\frac{1}{t_{hop} N_{lay}}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.969438em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15139200000000003em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07153em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.02691em"}},"w"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"p"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.293548em",verticalAlign:"-0.972108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.32144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"h"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"p"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.01968em"}},"l"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03588em"}},"y"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"1")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.972108em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"}))))))),(0,n.kt)("p",null,"where ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"t"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"h"),(0,n.kt)("mi",{parentName:"mrow"},"o"),(0,n.kt)("mi",{parentName:"mrow"},"p")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"t_{hop}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.9011879999999999em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"h"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"p"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is our usual diffusion timescale and ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"l"),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"y")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"N_{lay}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.969438em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.01968em"}},"l"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03588em"}},"y"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the number of mantle layers with a minimum of 1. This gives a simple ODE"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"K"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"w"),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"p"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"b")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dX_s(i)}{dt} = K_{swap}X_b(i)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"1.036108em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15139200000000003em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07153em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.02691em"}},"w"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"p"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"b")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,"and we get the rate at which things move from the surface to the bulk by summing this rate of change over all mantle species to get a total rate of swapping from the bulk to the surface. We then divide that by the fraction of the surface which is made up of a species to get its rate of swapping to the bulk."),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"m")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub",mathvariant:"normal"},"\u03a3"),(0,n.kt)("mi",{parentName:"msub"},"j")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"K"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"w"),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"p"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"j"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"b")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("msub",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dX_m(i)}{dt} = \\Sigma_j K_{swap,j}X_b(j) \\frac{X_s(i)}{X_s}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"m")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.263em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"\u03a3"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07153em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.02691em"}},"w"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"p"),(0,n.kt)("span",{parentName:"span",className:"mpunct mtight"},","),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"b")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"}))))))),(0,n.kt)("p",null,"This ensures that the net movement between the surface and the bulk from this process is zero."))}o.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a6aa9e1f.0a1441d6.js b/assets/js/a6aa9e1f.0a1441d6.js deleted file mode 100644 index 509553df..00000000 --- a/assets/js/a6aa9e1f.0a1441d6.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3089],{8665:(e,t,a)=>{a.d(t,{Z:()=>b});var r=a(3366),l=a(7294),n=a(6010),i=a(2600),m=a(9960);const s="sidebar_a9qW",o="sidebarItemTitle_uKok",c="sidebarItemList_Kvuv",d="sidebarItem_CF0Q",g="sidebarItemLink_miNk",u="sidebarItemLinkActive_RRTD";var p=a(5999);function v(e){var t=e.sidebar;return 0===t.items.length?null:l.createElement("nav",{className:(0,n.Z)(s,"thin-scrollbar"),"aria-label":(0,p.I)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"})},l.createElement("div",{className:(0,n.Z)(o,"margin-bottom--md")},t.title),l.createElement("ul",{className:c},t.items.map((function(e){return l.createElement("li",{key:e.permalink,className:d},l.createElement(m.Z,{isNavLink:!0,to:e.permalink,className:g,activeClassName:u},e.title))}))))}var E=["sidebar","toc","children"];function b(e){var t=e.sidebar,a=e.toc,m=e.children,s=(0,r.Z)(e,E),o=t&&t.items.length>0;return l.createElement(i.Z,s,l.createElement("div",{className:"container margin-vert--lg"},l.createElement("div",{className:"row"},o&&l.createElement("aside",{className:"col col--3"},l.createElement(v,{sidebar:t})),l.createElement("main",{className:(0,n.Z)("col",{"col--7":o,"col--9 col--offset-1":!o}),itemScope:!0,itemType:"http://schema.org/Blog"},m),a&&l.createElement("div",{className:"col col--2"},a))))}},2754:(e,t,a)=>{a.r(t),a.d(t,{default:()=>v});var r=a(7294),l=a(2263),n=a(8665),i=a(8561),m=a(5999),s=a(1750);function o(e){var t=e.metadata,a=t.previousPage,l=t.nextPage;return r.createElement("nav",{className:"pagination-nav","aria-label":(0,m.I)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"})},r.createElement("div",{className:"pagination-nav__item"},a&&r.createElement(s.Z,{permalink:a,title:r.createElement(m.Z,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)"},"Newer Entries")})),r.createElement("div",{className:"pagination-nav__item pagination-nav__item--next"},l&&r.createElement(s.Z,{permalink:l,title:r.createElement(m.Z,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)"},"Older Entries")})))}var c=a(2662),d=a(4739),g=a(6010);function u(e){var t=e.metadata,a=(0,l.Z)().siteConfig.title,n=t.blogDescription,i=t.blogTitle,m="/"===t.permalink?a:i;return r.createElement(r.Fragment,null,r.createElement(c.d,{title:m,description:n}),r.createElement(d.Z,{tag:"blog_posts_list"}))}function p(e){var t=e.metadata,a=e.items,l=e.sidebar;return r.createElement(n.Z,{sidebar:l},a.map((function(e){var t=e.content;return r.createElement(i.Z,{key:t.metadata.permalink,frontMatter:t.frontMatter,assets:t.assets,metadata:t.metadata,truncated:t.metadata.truncated},r.createElement(t,null))})),r.createElement(o,{metadata:t}))}function v(e){return r.createElement(c.FG,{className:(0,g.Z)(c.kM.wrapper.blogPages,c.kM.page.blogListPage)},r.createElement(u,e),r.createElement(p,e))}},8561:(e,t,a)=>{a.d(t,{Z:()=>k});var r=a(7294),l=a(6010),n=a(5999),i=a(9960),m=a(4996),s=a(2662),o=a(8780),c=a(2708),d=a(6753);const g="blogPostTitle_rzP5",u="blogPostData_Zg1s",p="blogPostDetailsFull_h6_j";var v=a(8727);const E="image_o0gy";function b(e){return e.href?r.createElement(i.Z,e):r.createElement(r.Fragment,null,e.children)}function h(e){var t=e.author,a=t.name,l=t.title,n=t.url,i=t.imageURL,m=t.email,s=n||m&&"mailto:"+m||void 0;return r.createElement("div",{className:"avatar margin-bottom--sm"},i&&r.createElement("span",{className:"avatar__photo-link avatar__photo"},r.createElement(b,{href:s},r.createElement("img",{className:E,src:i,alt:a}))),a&&r.createElement("div",{className:"avatar__intro",itemProp:"author",itemScope:!0,itemType:"https://schema.org/Person"},r.createElement("div",{className:"avatar__name"},r.createElement(b,{href:s,itemProp:"url"},r.createElement("span",{itemProp:"name"},a))),l&&r.createElement("small",{className:"avatar__subtitle",itemProp:"description"},l)))}const f="authorCol_FlmR",N="imageOnlyAuthorRow_trpF",_="imageOnlyAuthorCol_S2np";function Z(e){var t=e.authors,a=e.assets;if(0===t.length)return null;var n=t.every((function(e){return!e.name}));return r.createElement("div",{className:(0,l.Z)("margin-top--md margin-bottom--sm",n?N:"row")},t.map((function(e,t){var i;return r.createElement("div",{className:(0,l.Z)(!n&&"col col--6",n?_:f),key:t},r.createElement(h,{author:Object.assign({},e,{imageURL:null!=(i=a.authorsImageUrls[t])?i:e.imageURL})}))})))}function k(e){var t,a,E=(a=(0,s.c2)().selectMessage,function(e){var t=Math.ceil(e);return a(t,(0,n.I)({id:"theme.blog.post.readingTime.plurals",description:'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One min read|{readingTime} min read"},{readingTime:t}))}),b=(0,m.C)().withBaseUrl,h=e.children,f=e.frontMatter,N=e.assets,_=e.metadata,k=e.truncated,P=e.isBlogPostPage,T=void 0!==P&&P,w=_.date,I=_.formattedDate,y=_.permalink,R=_.tags,A=_.readingTime,L=_.title,M=_.editUrl,C=_.authors,x=null!=(t=N.image)?t:f.image,F=!T&&k,U=R.length>0,B=T?"h1":"h2";return r.createElement("article",{className:T?void 0:"margin-bottom--xl",itemProp:"blogPost",itemScope:!0,itemType:"http://schema.org/BlogPosting"},r.createElement("header",null,r.createElement(B,{className:g,itemProp:"headline"},T?L:r.createElement(i.Z,{itemProp:"url",to:y},L)),r.createElement("div",{className:(0,l.Z)(u,"margin-vert--md")},r.createElement("time",{dateTime:w,itemProp:"datePublished"},I),void 0!==A&&r.createElement(r.Fragment,null," \xb7 ",E(A))),r.createElement(Z,{authors:C,assets:N})),x&&r.createElement("meta",{itemProp:"image",content:b(x,{absolute:!0})}),r.createElement("div",{id:T?o.blogPostContainerID:void 0,className:"markdown",itemProp:"articleBody"},r.createElement(c.Z,null,h)),(U||k)&&r.createElement("footer",{className:(0,l.Z)("row docusaurus-mt-lg",T&&p)},U&&r.createElement("div",{className:(0,l.Z)("col",{"col--9":F})},r.createElement(v.Z,{tags:R})),T&&M&&r.createElement("div",{className:"col margin-top--sm"},r.createElement(d.Z,{editUrl:M})),F&&r.createElement("div",{className:(0,l.Z)("col text--right",{"col--3":U})},r.createElement(i.Z,{to:_.permalink,"aria-label":(0,n.I)({message:"Read more about {title}",id:"theme.blog.post.readMoreLabel",description:"The ARIA label for the link to full blog posts from excerpts"},{title:L})},r.createElement("b",null,r.createElement(n.Z,{id:"theme.blog.post.readMore",description:"The label used in blog post item excerpts to link to full blog posts"},"Read More"))))))}}}]); \ No newline at end of file diff --git a/assets/js/a6aa9e1f.245d6124.js b/assets/js/a6aa9e1f.245d6124.js new file mode 100644 index 00000000..f715bc04 --- /dev/null +++ b/assets/js/a6aa9e1f.245d6124.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3089],{6167:(e,t,a)=>{a.r(t),a.d(t,{default:()=>h});var n=a(7294),r=a(6010),l=a(2263),i=a(1944),o=a(5281),s=a(9058),m=a(5999),c=a(2244);function g(e){var t=e.metadata,a=t.previousPage,r=t.nextPage;return n.createElement("nav",{className:"pagination-nav","aria-label":(0,m.I)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"})},a&&n.createElement(c.Z,{permalink:a,title:n.createElement(m.Z,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)"},"Newer Entries")}),r&&n.createElement(c.Z,{permalink:r,title:n.createElement(m.Z,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)"},"Older Entries"),isNext:!0}))}var p=a(197),u=a(9460),d=a(756);function E(e){var t=e.items,a=e.component,r=void 0===a?d.Z:a;return n.createElement(n.Fragment,null,t.map((function(e){var t=e.content;return n.createElement(u.n,{key:t.metadata.permalink,content:t},n.createElement(r,null,n.createElement(t,null)))})))}function b(e){var t=e.metadata,a=(0,l.Z)().siteConfig.title,r=t.blogDescription,o=t.blogTitle,s="/"===t.permalink?a:o;return n.createElement(n.Fragment,null,n.createElement(i.d,{title:s,description:r}),n.createElement(p.Z,{tag:"blog_posts_list"}))}function v(e){var t=e.metadata,a=e.items,r=e.sidebar;return n.createElement(s.Z,{sidebar:r},n.createElement(E,{items:a}),n.createElement(g,{metadata:t}))}function h(e){return n.createElement(i.FG,{className:(0,r.Z)(o.k.wrapper.blogPages,o.k.page.blogListPage)},n.createElement(b,e),n.createElement(v,e))}}}]); \ No newline at end of file diff --git a/assets/js/a6d620e2.4e12dd72.js b/assets/js/a6d620e2.4e12dd72.js deleted file mode 100644 index c9e4fe10..00000000 --- a/assets/js/a6d620e2.4e12dd72.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6357],{3769:e=>{e.exports=JSON.parse('{"plugin":{"name":"docusaurus-plugin-content-docs","id":"default"}}')}}]); \ No newline at end of file diff --git a/assets/js/a6d620e2.80e32fb4.js b/assets/js/a6d620e2.80e32fb4.js new file mode 100644 index 00000000..7eafeabd --- /dev/null +++ b/assets/js/a6d620e2.80e32fb4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6357],{3769:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/a9bdb9a1.71124b43.js b/assets/js/a9bdb9a1.71124b43.js new file mode 100644 index 00000000..159def5c --- /dev/null +++ b/assets/js/a9bdb9a1.71124b43.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9445],{3905:(e,t,r)=>{r.d(t,{Zo:()=>h,kt:()=>m});var o=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=o.createContext({}),p=function(e){var t=o.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},h=function(e){var t=p(e.components);return o.createElement(c.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},u=o.forwardRef((function(e,t){var r=e.components,a=e.mdxType,n=e.originalType,c=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),u=p(r),m=a,f=u["".concat(c,".").concat(m)]||u[m]||l[m]||n;return r?o.createElement(f,i(i({ref:t},h),{},{components:r})):o.createElement(f,i({ref:t},h))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var n=r.length,i=new Array(n);i[0]=u;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:a,i[1]=s;for(var p=2;p{r.r(t),r.d(t,{assets:()=>h,contentTitle:()=>c,default:()=>m,frontMatter:()=>s,metadata:()=>p,toc:()=>l});var o=r(7462),a=r(3366),n=(r(7294),r(3905)),i=["components"],s={title:"Tracing shock type with chemical diagnostics - an application to L1157",author:"Tomas James",authorURL:"https://github.com/tomasjames",authorImageURL:"https://i.ibb.co/8KhFwwN/IMG-1783.jpg"},c=void 0,p={permalink:"/blog/2019/12/10/tom-shock",source:"@site/blog/2019-12-10-tom-shock.md",title:"Tracing shock type with chemical diagnostics - an application to L1157",description:"The physical structure of a shock wave may take a form unique to its shock type, implying that the chemistry of each shock type is unique as well. In our recent paper, we investigate the different chemistries of J-type and C-type shocks using parameterised forms of their physical structures in order to identify unique molecular tracers of both shock types. We apply these diagnostics to the protostellar outflow L1157 to establish whether the B2 clump could host shocks exhibiting type-specific behaviour.",date:"2019-12-10T00:00:00.000Z",formattedDate:"December 10, 2019",tags:[],readingTime:.77,hasTruncateMarker:!1,authors:[{name:"Tomas James",url:"https://github.com/tomasjames",imageURL:"https://i.ibb.co/8KhFwwN/IMG-1783.jpg"}],frontMatter:{title:"Tracing shock type with chemical diagnostics - an application to L1157",author:"Tomas James",authorURL:"https://github.com/tomasjames",authorImageURL:"https://i.ibb.co/8KhFwwN/IMG-1783.jpg"},prevItem:{title:"New Website",permalink:"/blog/2020/02/14/New-Website"},nextItem:{title:"A chemical study of carbon fractionation in external galaxies",permalink:"/blog/2019/08/13/serena-carbon-frac"}},h={authorsImageUrls:[void 0]},l=[],u={toc:l};function m(e){var t=e.components,r=(0,a.Z)(e,i);return(0,n.kt)("wrapper",(0,o.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"The physical structure of a shock wave may take a form unique to its shock type, implying that the chemistry of each shock type is unique as well. ",(0,n.kt)("a",{parentName:"p",href:"https://arxiv.org/pdf/1912.03721.pdf"},"In our recent paper"),", we investigate the different chemistries of J-type and C-type shocks using parameterised forms of their physical structures in order to identify unique molecular tracers of both shock types. We apply these diagnostics to the protostellar outflow L1157 to establish whether the B2 clump could host shocks exhibiting type-specific behaviour. "),(0,n.kt)("p",null,"We find that a range of molecules including H2O and HCN have unique behaviour specific to a J-type shock, but that such differences in behaviour are only evident at low velocity and low density. We find that CH3OH is enhanced by shocks and is a reliable probe of the pre-shock gas density and is shock-type agnostic. Additionally, the fractional abundances within the B2 region are consistent with both C-type and J-type shock emission."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a9bdb9a1.81d96602.js b/assets/js/a9bdb9a1.81d96602.js deleted file mode 100644 index 40bec2b0..00000000 --- a/assets/js/a9bdb9a1.81d96602.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9445],{3905:(e,t,r)=>{r.d(t,{Zo:()=>h,kt:()=>m});var o=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var c=o.createContext({}),p=function(e){var t=o.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},h=function(e){var t=p(e.components);return o.createElement(c.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},u=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,c=e.parentName,h=s(e,["components","mdxType","originalType","parentName"]),u=p(r),m=n,f=u["".concat(c,".").concat(m)]||u[m]||l[m]||a;return r?o.createElement(f,i(i({ref:t},h),{},{components:r})):o.createElement(f,i({ref:t},h))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=u;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:n,i[1]=s;for(var p=2;p{r.r(t),r.d(t,{assets:()=>h,contentTitle:()=>c,default:()=>m,frontMatter:()=>s,metadata:()=>p,toc:()=>l});var o=r(7462),n=r(3366),a=(r(7294),r(3905)),i=["components"],s={title:"Tracing shock type with chemical diagnostics - an application to L1157",author:"Tomas James",authorURL:"https://github.com/tomasjames",authorImageURL:"https://i.ibb.co/8KhFwwN/IMG-1783.jpg"},c=void 0,p={permalink:"/blog/2019/12/10/tom-shock",source:"@site/blog/2019-12-10-tom-shock.md",title:"Tracing shock type with chemical diagnostics - an application to L1157",description:"The physical structure of a shock wave may take a form unique to its shock type, implying that the chemistry of each shock type is unique as well. In our recent paper, we investigate the different chemistries of J-type and C-type shocks using parameterised forms of their physical structures in order to identify unique molecular tracers of both shock types. We apply these diagnostics to the protostellar outflow L1157 to establish whether the B2 clump could host shocks exhibiting type-specific behaviour.",date:"2019-12-10T00:00:00.000Z",formattedDate:"December 10, 2019",tags:[],readingTime:.77,truncated:!1,authors:[{name:"Tomas James",url:"https://github.com/tomasjames",imageURL:"https://i.ibb.co/8KhFwwN/IMG-1783.jpg"}],frontMatter:{title:"Tracing shock type with chemical diagnostics - an application to L1157",author:"Tomas James",authorURL:"https://github.com/tomasjames",authorImageURL:"https://i.ibb.co/8KhFwwN/IMG-1783.jpg"},prevItem:{title:"New Website",permalink:"/blog/2020/02/14/New-Website"},nextItem:{title:"A chemical study of carbon fractionation in external galaxies",permalink:"/blog/2019/08/13/serena-carbon-frac"}},h={authorsImageUrls:[void 0]},l=[],u={toc:l};function m(e){var t=e.components,r=(0,n.Z)(e,i);return(0,a.kt)("wrapper",(0,o.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The physical structure of a shock wave may take a form unique to its shock type, implying that the chemistry of each shock type is unique as well. ",(0,a.kt)("a",{parentName:"p",href:"https://arxiv.org/pdf/1912.03721.pdf"},"In our recent paper"),", we investigate the different chemistries of J-type and C-type shocks using parameterised forms of their physical structures in order to identify unique molecular tracers of both shock types. We apply these diagnostics to the protostellar outflow L1157 to establish whether the B2 clump could host shocks exhibiting type-specific behaviour. "),(0,a.kt)("p",null,"We find that a range of molecules including H2O and HCN have unique behaviour specific to a J-type shock, but that such differences in behaviour are only evident at low velocity and low density. We find that CH3OH is enhanced by shocks and is a reliable probe of the pre-shock gas density and is shock-type agnostic. Additionally, the fractional abundances within the B2 region are consistent with both C-type and J-type shock emission."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b2effb50.0c3dc39a.js b/assets/js/b2effb50.0c3dc39a.js deleted file mode 100644 index 34baa695..00000000 --- a/assets/js/b2effb50.0c3dc39a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5626],{943:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"v3.2.0","label":"v3.2.0","banner":null,"badge":true,"className":"docs-version-v3.2.0","isLast":true,"docsSidebars":{"docs":[{"type":"category","label":"Getting Started","items":[{"type":"link","label":"Installation","href":"/docs/","docId":"install"},{"type":"link","label":"Creating a Network","href":"/docs/network","docId":"network"},{"type":"link","label":"Model Parameters","href":"/docs/parameters","docId":"parameters"},{"type":"link","label":"Python Reference","href":"/docs/pythonapi","docId":"pythonapi"}],"collapsed":true,"collapsible":true,"href":"/docs/category/getting-started"},{"type":"category","label":"Tutorials","items":[{"type":"link","label":"Running Your First Models","href":"/docs/first_model","docId":"first_model"},{"type":"link","label":"Advanced Physical Modelling","href":"/docs/modelling_objects","docId":"modelling_objects"},{"type":"link","label":"Running a Grid","href":"/docs/running_a_grid","docId":"running_a_grid"},{"type":"link","label":"Chemical Analysis","href":"/docs/chemical_analysis","docId":"chemical_analysis"}],"collapsed":true,"collapsible":true,"href":"/docs/category/tutorials"},{"type":"category","label":"Troubleshooting","items":[{"type":"link","label":"Compilation Issues","href":"/docs/trouble-compile","docId":"trouble-compile"},{"type":"link","label":"Integration","href":"/docs/trouble-integration","docId":"trouble-integration"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Physics","items":[{"type":"link","label":"Core Physics","href":"/docs/physics-core","docId":"physics-core"},{"type":"link","label":"Cloud Model","href":"/docs/physics-cloud","docId":"physics-cloud"},{"type":"link","label":"Hot Core","href":"/docs/physics-hotcore","docId":"physics-hotcore"},{"type":"link","label":"Shock Models","href":"/docs/physics-shocks","docId":"physics-shocks"},{"type":"link","label":"Collapse Models","href":"/docs/physics-collapse","docId":"physics-collapse"}],"collapsed":true,"collapsible":true,"href":"/docs/physics-core"},{"type":"category","label":"Chemistry","items":[{"type":"link","label":"Gas Phase Reactions","href":"/docs/gas","docId":"gas"},{"type":"link","label":"Grain Surface Reactions","href":"/docs/grain","docId":"grain"},{"type":"link","label":"Adsorption & Desorption Reactions","href":"/docs/desorb","docId":"desorb"},{"type":"link","label":"Bulk Ice Processes","href":"/docs/bulk","docId":"bulk"}],"collapsed":true,"collapsible":true,"href":"/docs/category/chemistry"},{"type":"category","label":"Developer","items":[{"type":"link","label":"Overview of the Code","href":"/docs/dev-overview","docId":"dev-overview"},{"type":"link","label":"Writing The Python Interface","href":"/docs/dev-python-wrap","docId":"dev-python-wrap"},{"type":"link","label":"Debugging","href":"/docs/dev-debugging","docId":"dev-debugging"},{"type":"link","label":"Maintaining the Website","href":"/docs/dev-web","docId":"dev-web"}],"collapsed":true,"collapsible":true,"href":"/docs/category/developer"}]},"docs":{"bulk":{"id":"bulk","title":"Bulk Ice Processes","description":"For a three phase network, we must include reactions in the bulk and the process by which it is formed. To do this, MakeRates automatically duplicates all LH reactions so that a reaction on the surface and one in the bulk ice exists in the network. We then include two methods by which material can move between the bulk and the surface. First is the accumulation of the bulk as new surface layers are formed and second is the individual swapping of a particle from the bulk with one on the surface. Both of these processes are taken from Garrod & Pauly 2011","sidebar":"docs"},"chemical_analysis":{"id":"chemical_analysis","title":"Chemical Analysis","description":"Chemical networks are complex systems where the interplay between many elements often means that small changes in one aspect of the network can greatly effect the outcome in unexpected ways. Nevertheless, there are cases where a simple chemical explanation can be found for some observed behaviour in the model outputs. This tutorial demonstrates how to use some of the functionality of the UCLCHEM library to analyse model outputs and discover these explanations.","sidebar":"docs"},"desorb":{"id":"desorb","title":"Adsorption & Desorption Reactions","description":"Coupling between the gas and the grain chemistry primarily comes from the freeze out of material from the gas phase onto the dust grains (adsorption) and the sublimation of material from the grains into the gas phase (desorption). The major processes considered by UCLCHEM are listed below. Note that we assume desorption and freeze out occur between the gas and the surface only, bulk material in three phase models does not directly desorb into the gas phase.","sidebar":"docs"},"dev-debugging":{"id":"dev-debugging","title":"Debugging","description":"UCLCHEM is a complex code and many things can go wrong. Here, we\'ll list some of the things that often go wrong when you modify the code as well as a few helpful steps to trace down bugs.","sidebar":"docs"},"dev-overview":{"id":"dev-overview","title":"Overview of the Code","description":"The page is designed to give a brief overview of the code\'s structure. It\'s less about the scientific justification for the various treatments in the code and more about how the code is segmented and where to look for things.","sidebar":"docs"},"dev-python-wrap":{"id":"dev-python-wrap","title":"Writing The Python Interface","description":"The python interface is a relatively complex bit of code, a lot of work is put on the development side to make the user side a smooth experience. Writing the core of UCLCHEM in Fortran gives great performance benefits but compiling it to python with F2PY has its peculiarities. Here, we discuss the steps needed to adjust the code.","sidebar":"docs"},"dev-web":{"id":"dev-web","title":"Maintaining the Website","description":"We use Docusaurus to maintain our website. The upside is that documentation and blog posts can all be created as simple markdown files. The downside is a slightly convoluted workflow which we explain here.","sidebar":"docs"},"first_model":{"id":"first_model","title":"Running Your First Models","description":"In this notebook, we demonstrate the basic use of UCLCHEM\'s python module by running a simple model and then using the analysis functions to examine the output.","sidebar":"docs"},"gas":{"id":"gas","title":"Gas Phase Reactions","description":"Gas phase ODEs","sidebar":"docs"},"grain":{"id":"grain","title":"Grain Surface Reactions","description":"Whilst the basic treatment of gas phase chemistry is well established, grain surface chemistry is more complex. There are three possible ways to treat grain surface chemistry in UCLCHEM. In general we assume that:","sidebar":"docs"},"hydro":{"id":"hydro","title":"Hydro Post Processing","description":"Main Contributors: Jon Holdship"},"install":{"id":"install","title":"Installation","description":"Prerequisites","sidebar":"docs"},"modelling_objects":{"id":"modelling_objects","title":"Advanced Physical Modelling","description":"In the previous tutorial, we simply modelled the chemistry of a static cloud for 1 Myr. This is unlikely to meet everybody\'s modelling needs and UCLCHEM is capable of modelling much more complex environments such as hot cores and shocks. In this tutorial, we model both a hot core and a shock to explore how these models work and to demonstrate the workflow that the UCLCHEM team normally follow.","sidebar":"docs"},"network":{"id":"network","title":"Creating a Network","description":"MakeRates","sidebar":"docs"},"parameters":{"id":"parameters","title":"Model Parameters","description":"UCLCHEM will default to these values unless they are overridden by user. Users can override these by adding the variable name as written here in the paramdict argument of any UCLCHEM model function. paramdict is not case sensitive.","sidebar":"docs"},"physics-cloud":{"id":"physics-cloud","title":"Cloud Model","description":"Main Contributors: Serena Viti, Jon Holdship","sidebar":"docs"},"physics-collapse":{"id":"physics-collapse","title":"Collapse Models","description":"Main Contributors: Felix Priestley","sidebar":"docs"},"physics-core":{"id":"physics-core","title":"Core Physics","description":"Each of the other physics doc pages details the specifics of a particular physics model. This one gives a general overview of the physics in UCLCHEM, including the core physics routines that are called for all models.","sidebar":"docs"},"physics-hotcore":{"id":"physics-hotcore","title":"Hot Core","description":"Main Contributors: Serena Viti, Jon Holdship","sidebar":"docs"},"physics-shocks":{"id":"physics-shocks","title":"Shock Models","description":"Main Contributors: Izaskun Jimenez-Serra, Tom James, Jon Holdship","sidebar":"docs"},"pythonapi":{"id":"pythonapi","title":"Python Reference","description":"* uclchem","sidebar":"docs"},"running_a_grid":{"id":"running_a_grid","title":"Running a Grid","description":"A common task is to run UCLCHEM over a grid of parameter combinations. This notebook sets up a simple approach to doing so for regular grids.","sidebar":"docs"},"trouble-compile":{"id":"trouble-compile","title":"Compilation Issues","description":"Given that UCLCHEM is supplied as source code, used across many machine types, and is a fairly complex model, things will occasionally go wrong. We\'ve collected here some of the most common problems and hope they resolve most issues.","sidebar":"docs"},"trouble-integration":{"id":"trouble-integration","title":"Integration","description":"My code just keeps running","sidebar":"docs"}}}')}}]); \ No newline at end of file diff --git a/assets/js/b2effb50.ba855c97.js b/assets/js/b2effb50.ba855c97.js new file mode 100644 index 00000000..1b0cb2b0 --- /dev/null +++ b/assets/js/b2effb50.ba855c97.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5626],{943:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"v3.2.0","label":"v3.2.0","banner":null,"badge":true,"noIndex":false,"className":"docs-version-v3.2.0","isLast":true,"docsSidebars":{"docs":[{"type":"category","label":"Getting Started","items":[{"type":"link","label":"Installation","href":"/docs/","docId":"install"},{"type":"link","label":"Creating a Network","href":"/docs/network","docId":"network"},{"type":"link","label":"Model Parameters","href":"/docs/parameters","docId":"parameters"},{"type":"link","label":"Python Reference","href":"/docs/pythonapi","docId":"pythonapi"}],"collapsed":true,"collapsible":true,"href":"/docs/category/getting-started"},{"type":"category","label":"Tutorials","items":[{"type":"link","label":"Running Your First Models","href":"/docs/first_model","docId":"first_model"},{"type":"link","label":"Advanced Physical Modelling","href":"/docs/modelling_objects","docId":"modelling_objects"},{"type":"link","label":"Running a Grid","href":"/docs/running_a_grid","docId":"running_a_grid"},{"type":"link","label":"Chemical Analysis","href":"/docs/chemical_analysis","docId":"chemical_analysis"}],"collapsed":true,"collapsible":true,"href":"/docs/category/tutorials"},{"type":"category","label":"Troubleshooting","items":[{"type":"link","label":"Compilation Issues","href":"/docs/trouble-compile","docId":"trouble-compile"},{"type":"link","label":"Integration","href":"/docs/trouble-integration","docId":"trouble-integration"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Physics","items":[{"type":"link","label":"Core Physics","href":"/docs/physics-core","docId":"physics-core"},{"type":"link","label":"Cloud Model","href":"/docs/physics-cloud","docId":"physics-cloud"},{"type":"link","label":"Hot Core","href":"/docs/physics-hotcore","docId":"physics-hotcore"},{"type":"link","label":"Shock Models","href":"/docs/physics-shocks","docId":"physics-shocks"},{"type":"link","label":"Collapse Models","href":"/docs/physics-collapse","docId":"physics-collapse"}],"collapsed":true,"collapsible":true,"href":"/docs/physics-core"},{"type":"category","label":"Chemistry","items":[{"type":"link","label":"Gas Phase Reactions","href":"/docs/gas","docId":"gas"},{"type":"link","label":"Grain Surface Reactions","href":"/docs/grain","docId":"grain"},{"type":"link","label":"Adsorption & Desorption Reactions","href":"/docs/desorb","docId":"desorb"},{"type":"link","label":"Bulk Ice Processes","href":"/docs/bulk","docId":"bulk"}],"collapsed":true,"collapsible":true,"href":"/docs/category/chemistry"},{"type":"category","label":"Developer","items":[{"type":"link","label":"Overview of the Code","href":"/docs/dev-overview","docId":"dev-overview"},{"type":"link","label":"Writing The Python Interface","href":"/docs/dev-python-wrap","docId":"dev-python-wrap"},{"type":"link","label":"Debugging","href":"/docs/dev-debugging","docId":"dev-debugging"},{"type":"link","label":"Maintaining the Website","href":"/docs/dev-web","docId":"dev-web"}],"collapsed":true,"collapsible":true,"href":"/docs/category/developer"}]},"docs":{"bulk":{"id":"bulk","title":"Bulk Ice Processes","description":"For a three phase network, we must include reactions in the bulk and the process by which it is formed. To do this, MakeRates automatically duplicates all LH reactions so that a reaction on the surface and one in the bulk ice exists in the network. We then include two methods by which material can move between the bulk and the surface. First is the accumulation of the bulk as new surface layers are formed and second is the individual swapping of a particle from the bulk with one on the surface. Both of these processes are taken from Garrod & Pauly 2011","sidebar":"docs"},"chemical_analysis":{"id":"chemical_analysis","title":"Chemical Analysis","description":"Chemical networks are complex systems where the interplay between many elements often means that small changes in one aspect of the network can greatly effect the outcome in unexpected ways. Nevertheless, there are cases where a simple chemical explanation can be found for some observed behaviour in the model outputs. This tutorial demonstrates how to use some of the functionality of the UCLCHEM library to analyse model outputs and discover these explanations.","sidebar":"docs"},"desorb":{"id":"desorb","title":"Adsorption & Desorption Reactions","description":"Coupling between the gas and the grain chemistry primarily comes from the freeze out of material from the gas phase onto the dust grains (adsorption) and the sublimation of material from the grains into the gas phase (desorption). The major processes considered by UCLCHEM are listed below. Note that we assume desorption and freeze out occur between the gas and the surface only, bulk material in three phase models does not directly desorb into the gas phase.","sidebar":"docs"},"dev-debugging":{"id":"dev-debugging","title":"Debugging","description":"UCLCHEM is a complex code and many things can go wrong. Here, we\'ll list some of the things that often go wrong when you modify the code as well as a few helpful steps to trace down bugs.","sidebar":"docs"},"dev-overview":{"id":"dev-overview","title":"Overview of the Code","description":"The page is designed to give a brief overview of the code\'s structure. It\'s less about the scientific justification for the various treatments in the code and more about how the code is segmented and where to look for things.","sidebar":"docs"},"dev-python-wrap":{"id":"dev-python-wrap","title":"Writing The Python Interface","description":"The python interface is a relatively complex bit of code, a lot of work is put on the development side to make the user side a smooth experience. Writing the core of UCLCHEM in Fortran gives great performance benefits but compiling it to python with F2PY has its peculiarities. Here, we discuss the steps needed to adjust the code.","sidebar":"docs"},"dev-web":{"id":"dev-web","title":"Maintaining the Website","description":"We use Docusaurus to maintain our website. The upside is that documentation and blog posts can all be created as simple markdown files. The downside is a slightly convoluted workflow which we explain here.","sidebar":"docs"},"first_model":{"id":"first_model","title":"Running Your First Models","description":"In this notebook, we demonstrate the basic use of UCLCHEM\'s python module by running a simple model and then using the analysis functions to examine the output.","sidebar":"docs"},"gas":{"id":"gas","title":"Gas Phase Reactions","description":"Gas phase ODEs","sidebar":"docs"},"grain":{"id":"grain","title":"Grain Surface Reactions","description":"Whilst the basic treatment of gas phase chemistry is well established, grain surface chemistry is more complex. There are three possible ways to treat grain surface chemistry in UCLCHEM. In general we assume that:","sidebar":"docs"},"hydro":{"id":"hydro","title":"Hydro Post Processing","description":"Main Contributors: Jon Holdship"},"install":{"id":"install","title":"Installation","description":"Prerequisites","sidebar":"docs"},"modelling_objects":{"id":"modelling_objects","title":"Advanced Physical Modelling","description":"In the previous tutorial, we simply modelled the chemistry of a static cloud for 1 Myr. This is unlikely to meet everybody\'s modelling needs and UCLCHEM is capable of modelling much more complex environments such as hot cores and shocks. In this tutorial, we model both a hot core and a shock to explore how these models work and to demonstrate the workflow that the UCLCHEM team normally follow.","sidebar":"docs"},"network":{"id":"network","title":"Creating a Network","description":"MakeRates","sidebar":"docs"},"parameters":{"id":"parameters","title":"Model Parameters","description":"UCLCHEM will default to these values unless they are overridden by user. Users can override these by adding the variable name as written here in the paramdict argument of any UCLCHEM model function. paramdict is not case sensitive.","sidebar":"docs"},"physics-cloud":{"id":"physics-cloud","title":"Cloud Model","description":"Main Contributors: Serena Viti, Jon Holdship","sidebar":"docs"},"physics-collapse":{"id":"physics-collapse","title":"Collapse Models","description":"Main Contributors: Felix Priestley","sidebar":"docs"},"physics-core":{"id":"physics-core","title":"Core Physics","description":"Each of the other physics doc pages details the specifics of a particular physics model. This one gives a general overview of the physics in UCLCHEM, including the core physics routines that are called for all models.","sidebar":"docs"},"physics-hotcore":{"id":"physics-hotcore","title":"Hot Core","description":"Main Contributors: Serena Viti, Jon Holdship","sidebar":"docs"},"physics-shocks":{"id":"physics-shocks","title":"Shock Models","description":"Main Contributors: Izaskun Jimenez-Serra, Tom James, Jon Holdship","sidebar":"docs"},"pythonapi":{"id":"pythonapi","title":"Python Reference","description":"* uclchem","sidebar":"docs"},"running_a_grid":{"id":"running_a_grid","title":"Running a Grid","description":"A common task is to run UCLCHEM over a grid of parameter combinations. This notebook sets up a simple approach to doing so for regular grids.","sidebar":"docs"},"trouble-compile":{"id":"trouble-compile","title":"Compilation Issues","description":"Given that UCLCHEM is supplied as source code, used across many machine types, and is a fairly complex model, things will occasionally go wrong. We\'ve collected here some of the most common problems and hope they resolve most issues.","sidebar":"docs"},"trouble-integration":{"id":"trouble-integration","title":"Integration","description":"My code just keeps running","sidebar":"docs"}}}')}}]); \ No newline at end of file diff --git a/assets/js/b2f554cd.94574eb3.js b/assets/js/b2f554cd.94574eb3.js deleted file mode 100644 index 634ae2ec..00000000 --- a/assets/js/b2f554cd.94574eb3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1477],{10:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"/2022/04/29/uclchem-v3","metadata":{"permalink":"/blog/2022/04/29/uclchem-v3","source":"@site/blog/2022-04-29-uclchem-v3.md","title":"UCLCHEM v3.0","description":"UCLCHEM has had a major update! The new version is v3.0 and has many changes. Here are some of the key updates:","date":"2022-04-29T00:00:00.000Z","formattedDate":"April 29, 2022","tags":[],"readingTime":0.465,"truncated":false,"authors":[{"name":"Jonathan Holdship","title":"UCLCHEM developer","url":"https://jonholdship.github.io","imageURL":"/img/jon.png","key":"jonholdship"}],"frontMatter":{"title":"UCLCHEM v3.0","authors":"jonholdship"},"nextItem":{"title":"The Cosmic-ray Ionization Rate in NGC 253","permalink":"/blog/2022/04/14/crir-ngc253"}},"content":"UCLCHEM has had a major update! The new version is v3.0 and has many changes. Here are some of the key updates:\\n\\n- UCLCHEM is now entirely python-centric and pip installable.\\n- MakeRates is smarter than ever and does much more of the work of building a network for you.\\n- Three phase chemistry is now the default and well bug tested.\\n- You no longer have to recompile the code to change physics modules.\\n\\nCheck out our docs pages for all the updates and tutorials on how to use the new version."},{"id":"/2022/04/14/crir-ngc253","metadata":{"permalink":"/blog/2022/04/14/crir-ngc253","source":"@site/blog/2022-04-14-crir-ngc253.md","title":"The Cosmic-ray Ionization Rate in NGC 253","description":"NGC 253 is a nearby starburst galaxy which hosts several large clouds of gas in its central molecular zone. These clouds are similar to GMCs but orders of magnitude more massive and much hotter, where the star formation rate is very high. The temperature of this gas is important because the star formation efficiency will be determined by how much internal energy that gas has.","date":"2022-04-14T00:00:00.000Z","formattedDate":"April 14, 2022","tags":[],"readingTime":0.895,"truncated":false,"authors":[{"name":"Jonathan Holdship","title":"UCLCHEM developer","url":"https://jonholdship.github.io","imageURL":"/img/jon.png","key":"jonholdship"}],"frontMatter":{"title":"The Cosmic-ray Ionization Rate in NGC 253","authors":"jonholdship"},"prevItem":{"title":"UCLCHEM v3.0","permalink":"/blog/2022/04/29/uclchem-v3"},"nextItem":{"title":"HITs - History Independent Tracers","permalink":"/blog/2022/02/06/holdship-hits"}},"content":"NGC 253 is a nearby starburst galaxy which hosts several large clouds of gas in its central molecular zone. These clouds are similar to GMCs but orders of magnitude more massive and much hotter, where the star formation rate is very high. The temperature of this gas is important because the star formation efficiency will be determined by how much internal energy that gas has.\\n\\nMany mechanisms could be heating this gas including mechanical heating due to turbulent shocks, UV photons, X-ray photons, and cosmic-rays. Whilst all are reasonable suspects in the CMZ of NGC 253, previous studies have shown [1](https://ui.adsabs.harvard.edu/abs/2021A%26A...654A..55H/abstract) [2](https://ui.adsabs.harvard.edu/abs/2021ApJ...923...24H/abstract) that the cosmic-ray ionization rate (CRIR) is likely to be very high.\\n\\nIn [a recent piece of work](https://ui.adsabs.harvard.edu/abs/2022arXiv220403668H/abstract) we have used UCLCHEM to show that the ratio of SO and H_3O^+ is a powerful probe of the CRIR. We model ALMA observations of emission from these molecules using UCLCHEM and [SpectralRadex](https://spectralradex.readthedocs.io/en/latest/) to infer the CRIR. We find that regardless of the temperature of the gas, the CRIR is around 10^4 times larger than in the Milky Way."},{"id":"/2022/02/06/holdship-hits","metadata":{"permalink":"/blog/2022/02/06/holdship-hits","source":"@site/blog/2022-02-06-holdship-hits.md","title":"HITs - History Independent Tracers","description":"Interpreting molecular observations through chemical and radiative transfer models is a common but complex practice. Whilst many uncertainties affect chemical models, one in particular is addressed in this work: the issue of time dependence. When modelling a molecular cloud or protostellar disk, how do we initialize the abundances? When is an appropriate time to compare our model to the observed object? Our paper on History Independent Tracers (HITs) side steps this issue by producing a list of molecules which are insensitive to the chemical history of the gas, essentially reaching steady state very quickly across a very wide range of gas conditions.","date":"2022-02-06T00:00:00.000Z","formattedDate":"February 6, 2022","tags":[],"readingTime":1.285,"truncated":false,"authors":[{"name":"Jonathan Holdship","title":"UCLCHEM developer","url":"https://jonholdship.github.io","imageURL":"/img/jon.png","key":"jonholdship"}],"frontMatter":{"title":"HITs - History Independent Tracers","authors":"jonholdship"},"prevItem":{"title":"The Cosmic-ray Ionization Rate in NGC 253","permalink":"/blog/2022/04/14/crir-ngc253"},"nextItem":{"title":"First measurement of nitrogen fractionation in shocked clumps of the L1157 protostellar outflow. SOLIS XI","permalink":"/blog/2020/12/07/milena-nitrogen-solis"}},"content":"Interpreting molecular observations through chemical and radiative transfer models is a common but complex practice. Whilst many uncertainties affect chemical models, one in particular is addressed in this work: the issue of time dependence. When modelling a molecular cloud or protostellar disk, how do we initialize the abundances? When is an appropriate time to compare our model to the observed object? Our paper on [History Independent Tracers (HITs)](https://ui.adsabs.harvard.edu/abs/2022A%26A...658A.103H/abstract) side steps this issue by producing a list of molecules which are insensitive to the chemical history of the gas, essentially reaching steady state very quickly across a very wide range of gas conditions.\\n\\nHowever, having a list of molecules that are easy to model is only first step towards making useful inferences. We then use our HITs to determine which observables are the most informative about various physical parameters. We do this by producing a large dataset of synthetic observations using UCLCHEM and RADEX to produce line intensities for every transition of every HIT under a wide range of physical conditions. We then calculate the [mutual information](https://en.wikipedia.org/wiki/Mutual_information) between each molecular transition and each physical parameter and use these to rank the transitions. The information scores are all available on the [HITs website](https://hits.strw.leidenuniv.nl) which can be used to plan observations.\\n\\nBy choosing transitions of a HIT that have a high mutual information with your physical parameter of interest, you can obtain the best possible constraint on that parameter. Moreover, as a HIT, the chemical modelling of this species will not be subject to much uncertainty from the gas history."},{"id":"/2020/12/07/milena-nitrogen-solis","metadata":{"permalink":"/blog/2020/12/07/milena-nitrogen-solis","source":"@site/blog/2020-12-07-milena-nitrogen-solis.md","title":"First measurement of nitrogen fractionation in shocked clumps of the L1157 protostellar outflow. SOLIS XI","description":"As part of the SOLIS observational programme, various isotopologues of HCN were observed towards L1157 in order to study the nitrogen fractionation in a protostellar outflow. The modelling work for this study was done using UCLCHEM. You can find the paper here and the abstract below.","date":"2020-12-07T00:00:00.000Z","formattedDate":"December 7, 2020","tags":[],"readingTime":1.89,"truncated":false,"authors":[{"name":"Serena Viti","title":"UCLCHEM PI","url":"https://home.strw.leidenuniv.nl/~viti/","imageURL":"/img/viti.jpg","key":"serena"}],"frontMatter":{"title":"First measurement of nitrogen fractionation in shocked clumps of the L1157 protostellar outflow. SOLIS XI","authors":"serena"},"prevItem":{"title":"HITs - History Independent Tracers","permalink":"/blog/2022/02/06/holdship-hits"},"nextItem":{"title":"New Website","permalink":"/blog/2020/02/14/New-Website"}},"content":"As part of the SOLIS observational programme, various isotopologues of HCN were observed towards L1157 in order to study the nitrogen fractionation in a protostellar outflow. The modelling work for this study was done using UCLCHEM. You can find [the paper here](https://arxiv.org/pdf/2011.14882.pdf) and the abstract below.\\n\\nThe isotopic ratio of nitrogen presents a wide range of values in the Solar System and in star forming system whose origin is still unclear. Chemical reactions in the gas phase are one of the possible processes that could modify the 14 N/ 15 N ratio. We aim at investigating if and how the passage of a shock wave in the interstellar medium, can affect the relative fraction of nitrogen isotopes. The ideal place for such a study is the L1157 outflow, where several shocked clumps are present. We present the first measurement of the 14 N/ 15 N ratio in the two shocked clumps, B1 and B0, of the protostellar outflow L1157, derived from the interferomteric maps of the H 13 CN(1-0) and the HC 15 N(1-0) lines. In B1, we find that the H 13 CN(1-0) and HC 15 N(1-0) emission traces the front of the clump, with averaged column density of N (H 13 CN) \u223c 7 \xd7 10 12 cm \u22122 and N (HC 15 N) \u223c 2 \xd7 10 12 cm \u22122 . In this region the ratio H 13 CN(1-0)/HC 15 N(1-0) is quite uniform with an average value of \u223c 5 \xb1 1. The same average value is also measured in the smaller clump B0e. Assuming the standard 12 C/ 13 C = 68, we obtain 14 N/ 15 N = 340 \xb1 70, similar to those usually found in prestellar cores and protostars. We analysed the prediction of a chemical shock model for several shock conditions and we found that the nitrogen and carbon fractionations do not vary much for the first period after the shock. The observed H 13 CN/HC 15 N can be reproduced by a non-dissociative, C-type shock with parameters in agreement with previous modelling of L1157-B1. Both observations and chemical models indicate that the shock propagation does not affect the nitrogen isotopic ratio that remains similar to that measured in lower temperature gas in prestellar cores and in protostellar envelopes."},{"id":"/2020/02/14/New-Website","metadata":{"permalink":"/blog/2020/02/14/New-Website","source":"@site/blog/2020-02-14-New-Website.md","title":"New Website","description":"We\'re replacing our old website! The old site was essentially just a poster for UCLCHEM with some github links. The new website has a similar landing page but importantly, we\'ve moved all the documentation for UCLCHEM online. We\'ll keep that up to date and are open to comments from users as we\'re keen to make UCLCHEM as easy to use as possible.","date":"2020-02-14T00:00:00.000Z","formattedDate":"February 14, 2020","tags":[],"readingTime":0.715,"truncated":false,"authors":[{"name":"Jonathan Holdship","title":"UCLCHEM developer","url":"https://jonholdship.github.io","imageURL":"/img/jon.png","key":"jonholdship"}],"frontMatter":{"title":"New Website","authors":"jonholdship"},"prevItem":{"title":"First measurement of nitrogen fractionation in shocked clumps of the L1157 protostellar outflow. SOLIS XI","permalink":"/blog/2020/12/07/milena-nitrogen-solis"},"nextItem":{"title":"Tracing shock type with chemical diagnostics - an application to L1157","permalink":"/blog/2019/12/10/tom-shock"}},"content":"We\'re replacing our old website! The old site was essentially just a poster for UCLCHEM with some github links. The new website has a similar landing page but importantly, we\'ve moved all the documentation for UCLCHEM online. We\'ll keep that up to date and are open to comments from users as we\'re keen to make UCLCHEM as easy to use as possible.\\n\\nWe\'ll also keep this blog updated with any major updates to UCLCHEM. As a rule, we\'ll push minor tweaks, bug fixes and background changes that won\'t affect how the user interacts with the code regularly. However, major changes, feature improvements and changes that will change how you interact with the code will be published as a new version on github and come with an explanatory blog post. Come back if your latest git pull leaves you wondering what happened to UCLCHEM!"},{"id":"/2019/12/10/tom-shock","metadata":{"permalink":"/blog/2019/12/10/tom-shock","source":"@site/blog/2019-12-10-tom-shock.md","title":"Tracing shock type with chemical diagnostics - an application to L1157","description":"The physical structure of a shock wave may take a form unique to its shock type, implying that the chemistry of each shock type is unique as well. In our recent paper, we investigate the different chemistries of J-type and C-type shocks using parameterised forms of their physical structures in order to identify unique molecular tracers of both shock types. We apply these diagnostics to the protostellar outflow L1157 to establish whether the B2 clump could host shocks exhibiting type-specific behaviour.","date":"2019-12-10T00:00:00.000Z","formattedDate":"December 10, 2019","tags":[],"readingTime":0.77,"truncated":false,"authors":[{"name":"Tomas James","url":"https://github.com/tomasjames","imageURL":"https://i.ibb.co/8KhFwwN/IMG-1783.jpg"}],"frontMatter":{"title":"Tracing shock type with chemical diagnostics - an application to L1157","author":"Tomas James","authorURL":"https://github.com/tomasjames","authorImageURL":"https://i.ibb.co/8KhFwwN/IMG-1783.jpg"},"prevItem":{"title":"New Website","permalink":"/blog/2020/02/14/New-Website"},"nextItem":{"title":"A chemical study of carbon fractionation in external galaxies","permalink":"/blog/2019/08/13/serena-carbon-frac"}},"content":"The physical structure of a shock wave may take a form unique to its shock type, implying that the chemistry of each shock type is unique as well. [In our recent paper](https://arxiv.org/pdf/1912.03721.pdf), we investigate the different chemistries of J-type and C-type shocks using parameterised forms of their physical structures in order to identify unique molecular tracers of both shock types. We apply these diagnostics to the protostellar outflow L1157 to establish whether the B2 clump could host shocks exhibiting type-specific behaviour. \\n\\nWe find that a range of molecules including H2O and HCN have unique behaviour specific to a J-type shock, but that such differences in behaviour are only evident at low velocity and low density. We find that CH3OH is enhanced by shocks and is a reliable probe of the pre-shock gas density and is shock-type agnostic. Additionally, the fractional abundances within the B2 region are consistent with both C-type and J-type shock emission."},{"id":"/2019/08/13/serena-carbon-frac","metadata":{"permalink":"/blog/2019/08/13/serena-carbon-frac","source":"@site/blog/2019-08-13-serena-carbon-frac.md","title":"A chemical study of carbon fractionation in external galaxies","description":"UCLCHEM has recently been used to study carbon fractionation in external galaxies. You can find the paper here and the abstract below.","date":"2019-08-13T00:00:00.000Z","formattedDate":"August 13, 2019","tags":[],"readingTime":0.825,"truncated":false,"authors":[{"name":"Serena Viti","title":"UCLCHEM PI","url":"https://home.strw.leidenuniv.nl/~viti/","imageURL":"/img/viti.jpg","key":"serena"}],"frontMatter":{"title":"A chemical study of carbon fractionation in external galaxies","authors":"serena"},"prevItem":{"title":"Tracing shock type with chemical diagnostics - an application to L1157","permalink":"/blog/2019/12/10/tom-shock"},"nextItem":{"title":"Ambipolar diffusion and the molecular abundances inprestellar cores","permalink":"/blog/2019/07/08/felix-ambipolar"}},"content":"UCLCHEM has recently been used to study carbon fractionation in external galaxies. You can find [the paper here](https://arxiv.org/pdf/2007.12405.pdf) and the abstract below.\\n\\nIn the interstellar medium carbon exists in the form of two stable isotopes 12C and 13C and their ratio is a good indicator of nucleosynthesis in galaxies. However, chemical fractionation can potentially significantly alter this ratio and in fact observations of carbon fractionation within the same galaxy has been found to vary from species to species. In this paper, we theoretically investigate the carbon fractionation for selected abundant carbon-bearing species in order to determine the conditions that may lead to a spread of the 12C/13C ratio in external galaxies. We find that carbon fractionation is sensitive to almost all the physical conditions we investigated, it strongly varies with time for all species but CO, and shows pronounced differences across species. Finally, we discuss our theoretical results in the context of the few observations of the 12C/13C in both local and higher redshift galaxies."},{"id":"/2019/07/08/felix-ambipolar","metadata":{"permalink":"/blog/2019/07/08/felix-ambipolar","source":"@site/blog/2019-07-08-felix-ambipolar.md","title":"Ambipolar diffusion and the molecular abundances inprestellar cores","description":"Felix Priestley has used UCLCHEM in an investigation of the chemical differences caused by the magnetic fields in prestellar cores. You can find the paper here and the abstract below.","date":"2019-07-08T00:00:00.000Z","formattedDate":"July 8, 2019","tags":[],"readingTime":0.99,"truncated":false,"authors":[{"name":"Jonathan Holdship","title":"UCLCHEM developer","url":"https://jonholdship.github.io","imageURL":"/img/jon.png","key":"jonholdship"}],"frontMatter":{"title":"Ambipolar diffusion and the molecular abundances inprestellar cores","authors":"jonholdship"},"prevItem":{"title":"A chemical study of carbon fractionation in external galaxies","permalink":"/blog/2019/08/13/serena-carbon-frac"},"nextItem":{"title":"Nitrogen fractionation in external galaxies","permalink":"/blog/2019/04/19/serena-nitrogen-frac"}},"content":"[Felix Priestley](https://fpriestley.github.io/) has used UCLCHEM in an investigation of the chemical differences caused by the magnetic fields in prestellar cores. You can find [the paper here](https://arxiv.org/pdf/1907.02736.pdf) and the abstract below.\\n\\nWe investigate differences in the molecular abundances between magnetically super- and subcritical pre-stellar cores, performing three-dimensional non-ideal magnetohydrodynamical (MHD) simulations with varying densities and magnetic field strengths, and post-processing the results with a time-dependent gas-grain chemical code. Most molecular species show significantly more central depletion in subcritical models, due to the longer duration of collapse. However, the directly observable quantities - the molecule to hydrogen column density ratios - are generally too similar for observational data to discriminate between models. The profiles of N2H+ and HCO+ show qualitative differences between supercritical and subcritical models on scales of 0.01 pc, which may allow the two cases to be distinguished. However, this requires knowledge of the hydrogen column density, which is not directly measureable, and predicted line intensity profiles from radiative transfer modelling are similar for these molecules. Other commonly observed species, such as HCN and CH3OH, have line intensity profiles that differ more strongly between models, and so are more promising as tracers of the mechanism of cloud collapse."},{"id":"/2019/04/19/serena-nitrogen-frac","metadata":{"permalink":"/blog/2019/04/19/serena-nitrogen-frac","source":"@site/blog/2019-04-19-serena-nitrogen-frac.md","title":"Nitrogen fractionation in external galaxies","description":"UCLCHEM has recently been used to study nitrogen fractionation in external galaxies. You can find the paper here and the abstract below.","date":"2019-04-19T00:00:00.000Z","formattedDate":"April 19, 2019","tags":[],"readingTime":0.81,"truncated":false,"authors":[{"name":"Serena Viti","title":"UCLCHEM PI","url":"https://home.strw.leidenuniv.nl/~viti/","imageURL":"/img/viti.jpg","key":"serena"}],"frontMatter":{"title":"Nitrogen fractionation in external galaxies","authors":"serena"},"prevItem":{"title":"Ambipolar diffusion and the molecular abundances inprestellar cores","permalink":"/blog/2019/07/08/felix-ambipolar"},"nextItem":{"title":"Collapsing Prestellar Cores - a new physics module","permalink":"/blog/2018/07/12/felix-collapse"}},"content":"UCLCHEM has recently been used to study nitrogen fractionation in external galaxies. You can find [the paper here](https://arxiv.org/pdf/1904.11725.pdf) and the abstract below.\\n\\nIn star-forming regions in our own Galaxy, the 14N/15N ratio is found to vary from \u223c100 in meteorites, comets, and protoplanetary discs up to \u223c1000 in pre-stellar and star-forming cores, while in external galaxies the very few single-dish large-scale measurements of this ratio lead to values of 100-450. The extent of the contribution of isotopic fractionation to these variations is, to date, unknown. In this paper, we present a theoretical chemical study of nitrogen fractionation in external galaxies in order to determine the physical conditions that may lead to a spread of the 14N/15N ratio from the solar value of \u223c440 and hence evaluate the contribution of chemical reactions in the interstellar medium (ISM) to nitrogen fractionation. We find that the main cause of ISM enrichment of nitrogen fractionation is high gas densities, aided by high fluxes of cosmic rays."},{"id":"/2018/07/12/felix-collapse","metadata":{"permalink":"/blog/2018/07/12/felix-collapse","source":"@site/blog/2018-07-12-felix-collapse.md","title":"Collapsing Prestellar Cores - a new physics module","description":"Felix Priestley has used UCLCHEM to study the collapse of prestellar cores. In the process, he\'s created a new physics module collapse.f90 which follows a sphere of gas collapsing in different ways. The paper can be found here and the abstract is below.","date":"2018-07-12T00:00:00.000Z","formattedDate":"July 12, 2018","tags":[],"readingTime":1.505,"truncated":false,"authors":[{"name":"jonholdship"}],"frontMatter":{"title":"Collapsing Prestellar Cores - a new physics module","author":"jonholdship"},"prevItem":{"title":"Nitrogen fractionation in external galaxies","permalink":"/blog/2019/04/19/serena-nitrogen-frac"},"nextItem":{"title":"The Chemistry of Phosphorus-bearing Molecules under Energetic Phenomena","permalink":"/blog/2018/06/20/izaskun-phosphorus"}},"content":"[Felix Priestley](https://fpriestley.github.io/) has used UCLCHEM to study the collapse of prestellar cores. In the process, he\'s created a new physics module `collapse.f90` which follows a sphere of gas collapsing in different ways. The [paper can be found here](https://arxiv.org/pdf/1806.01699.pdf) and the abstract is below.\\n\\nPeptide bonds (N-C = O) play a key role in metabolic processes since they link amino acids into peptide chains or proteins. Recently, several molecules containing peptide-like bonds have been detected across multiple environments in the interstellar medium, growing the need to fully understand their chemistry and their role in forming larger pre-biotic molecules. We present a comprehensive study of the chemistry of three molecules containing peptide-like bonds: HNCO, NH2CHO, and CH3NCO. We also included other CHNO isomers (HCNO, HOCN) and C2H3NO isomers (CH3OCN, CH3CNO) to the study. We have used the UCLCHEM gas-grain chemical code and included in our chemical network all possible formation/destruction pathways of these peptide-like molecules recently investigated either by theoretical calculations or in laboratory experiments. Our predictions are compared to observations obtained towards the proto-star IRAS 16293-2422 and the L1544 pre-stellar core. Our results show that some key reactions involving the CHNO and C2H3NO isomers need to be modified to match the observations. Consistently with recent laboratory findings, hydrogenation is unlikely to produce NH2CHO on grain surfaces, while a combination of radical-radical surface reactions and gas-phase reactions is a better alternative. In addition, better results are obtained for NH2CHO when a slightly higher activation energy of 25 K is considered for the gas-phase reaction NH2 + H2CO \u2192 NH2CHO + H. Finally, our modelling shows that the observed correlation between NH2CHO and HNCO in star-forming regions may come from the fact that HNCO and NH2CHO react to temperature in the same manner rather than from a direct chemical link between the two species."},{"id":"/2018/06/20/izaskun-phosphorus","metadata":{"permalink":"/blog/2018/06/20/izaskun-phosphorus","source":"@site/blog/2018-06-20-izaskun-phosphorus.md","title":"The Chemistry of Phosphorus-bearing Molecules under Energetic Phenomena","description":"Izaskun Jimenez-Serra has published a study of the chemistry of phosophorus bearing species using UCLCHEM. The paper can be found here and the abstract is below.","date":"2018-06-20T00:00:00.000Z","formattedDate":"June 20, 2018","tags":[],"readingTime":1.3,"truncated":false,"authors":[{"name":"jonholdship"}],"frontMatter":{"title":"The Chemistry of Phosphorus-bearing Molecules under Energetic Phenomena","author":"jonholdship"},"prevItem":{"title":"Collapsing Prestellar Cores - a new physics module","permalink":"/blog/2018/07/12/felix-collapse"},"nextItem":{"title":"Chemical modelling of glycolaldehyde and ethylene glycol in star-forming regions","permalink":"/blog/2018/03/27/audrey-coms"}},"content":"Izaskun Jimenez-Serra has published a study of the chemistry of phosophorus bearing species using UCLCHEM. The [paper can be found here](https://arxiv.org/pdf/1806.07281.pdf) and the abstract is below.\\n\\nFor decades, the detection of phosphorus-bearing molecules in the interstellar medium was restricted to high-mass star-forming regions (e.g., SgrB2 and Orion KL) and the circumstellar envelopes of evolved stars. However, recent higher-sensitivity observations have revealed that molecules such as PN and PO are present not only toward cold massive cores and low-mass star-forming regions with PO/PN ratios \u22651 but also toward the giant molecular clouds in the Galactic center known to be exposed to highly energetic phenomena such as intense UV radiation fields, shock waves, and cosmic rays. In this paper, we carry out a comprehensive study of the chemistry of phosphorus-bearing molecules across different astrophysical environments that cover a range of physical conditions (cold molecular dark clouds, warm clouds, and hot cores/hot corinos) and are exposed to different physical processes and energetic phenomena (proto-stellar heating, shock waves, intense UV radiation, and cosmic rays). We show how the measured PO/PN ratio (either \u22651, as in, e.g., hot molecular cores, or \u22641, as in UV strongly illuminated environments) can provide constraints on the physical conditions and energetic processing of the source. We propose that the reaction P + OH \u2192 PO + H, not included in previous works, could be an efficient gas-phase PO formation route in shocks. Our modeling provides a template with which to study the detectability of P-bearing species not only in regions in our own Galaxy but also in extragalactic sources."},{"id":"/2018/03/27/audrey-coms","metadata":{"permalink":"/blog/2018/03/27/audrey-coms","source":"@site/blog/2018-03-27-audrey-coms.md","title":"Chemical modelling of glycolaldehyde and ethylene glycol in star-forming regions","description":"Audrey Coutens has published modelling work on glycoaldehyde and ethylene glycol using UCLCHEM. You can find the paper here and the abstract below.","date":"2018-03-27T00:00:00.000Z","formattedDate":"March 27, 2018","tags":[],"readingTime":1.405,"truncated":false,"authors":[{"name":"Jonathan Holdship","title":"UCLCHEM developer","url":"https://jonholdship.github.io","imageURL":"/img/jon.png","key":"jonholdship"}],"frontMatter":{"title":"Chemical modelling of glycolaldehyde and ethylene glycol in star-forming regions","authors":"jonholdship"},"prevItem":{"title":"The Chemistry of Phosphorus-bearing Molecules under Energetic Phenomena","permalink":"/blog/2018/06/20/izaskun-phosphorus"},"nextItem":{"title":"Chemical modelling of complex organic molecules with peptide-like bonds in star-forming regions","permalink":"/blog/2018/02/05/david-grains"}},"content":"Audrey Coutens has published modelling work on glycoaldehyde and ethylene glycol using UCLCHEM. You can find [the paper here](https://arxiv.org/abs/1712.08778) and the abstract below.\\n\\nPeptide bonds (N-C = O) play a key role in metabolic processes since they link amino acids into peptide chains or proteins. Recently, several molecules containing peptide-like bonds have been detected across multiple environments in the interstellar medium, growing the need to fully understand their chemistry and their role in forming larger pre-biotic molecules. We present a comprehensive study of the chemistry of three molecules containing peptide-like bonds: HNCO, NH2CHO, and CH3NCO. We also included other CHNO isomers (HCNO, HOCN) and C2H3NO isomers (CH3OCN, CH3CNO) to the study. We have used the UCLCHEM gas-grain chemical code and included in our chemical network all possible formation/destruction pathways of these peptide-like molecules recently investigated either by theoretical calculations or in laboratory experiments. Our predictions are compared to observations obtained towards the proto-star IRAS 16293-2422 and the L1544 pre-stellar core. Our results show that some key reactions involving the CHNO and C2H3NO isomers need to be modified to match the observations. Consistently with recent laboratory findings, hydrogenation is unlikely to produce NH2CHO on grain surfaces, while a combination of radical-radical surface reactions and gas-phase reactions is a better alternative. In addition, better results are obtained for NH2CHO when a slightly higher activation energy of 25 K is considered for the gas-phase reaction NH2 + H2CO \u2192 NH2CHO + H. Finally, our modelling shows that the observed correlation between NH2CHO and HNCO in star-forming regions may come from the fact that HNCO and NH2CHO react to temperature in the same manner rather than from a direct chemical link between the two species."},{"id":"/2018/02/05/david-grains","metadata":{"permalink":"/blog/2018/02/05/david-grains","source":"@site/blog/2018-02-05-david-grains.md","title":"Chemical modelling of complex organic molecules with peptide-like bonds in star-forming regions","description":"David Quenard just published an update to the UCLCHEM with an application to COMs in prestellar cores you can find the paper here and the abstract below.","date":"2018-02-05T00:00:00.000Z","formattedDate":"February 5, 2018","tags":[],"readingTime":1.425,"truncated":false,"authors":[{"name":"Jonathan Holdship","title":"UCLCHEM developer","url":"https://jonholdship.github.io","imageURL":"/img/jon.png","key":"jonholdship"}],"frontMatter":{"title":"Chemical modelling of complex organic molecules with peptide-like bonds in star-forming regions","authors":"jonholdship"},"prevItem":{"title":"Chemical modelling of glycolaldehyde and ethylene glycol in star-forming regions","permalink":"/blog/2018/03/27/audrey-coms"}},"content":"David Quenard just published an update to the UCLCHEM with an application to COMs in prestellar cores [you can find the paper here](https://arxiv.org/abs/1711.05184) and the abstract below.\\n\\nPeptide bonds (N-C = O) play a key role in metabolic processes since they link amino acids into peptide chains or proteins. Recently, several molecules containing peptide-like bonds have been detected across multiple environments in the interstellar medium, growing the need to fully understand their chemistry and their role in forming larger pre-biotic molecules. We present a comprehensive study of the chemistry of three molecules containing peptide-like bonds: HNCO, NH2CHO, and CH3NCO. We also included other CHNO isomers (HCNO, HOCN) and C2H3NO isomers (CH3OCN, CH3CNO) to the study. We have used the UCLCHEM gas-grain chemical code and included in our chemical network all possible formation/destruction pathways of these peptide-like molecules recently investigated either by theoretical calculations or in laboratory experiments. Our predictions are compared to observations obtained towards the proto-star IRAS 16293-2422 and the L1544 pre-stellar core. Our results show that some key reactions involving the CHNO and C2H3NO isomers need to be modified to match the observations. Consistently with recent laboratory findings, hydrogenation is unlikely to produce NH2CHO on grain surfaces, while a combination of radical-radical surface reactions and gas-phase reactions is a better alternative. In addition, better results are obtained for NH2CHO when a slightly higher activation energy of 25 K is considered for the gas-phase reaction NH2 + H2CO \u2192 NH2CHO + H. Finally, our modelling shows that the observed correlation between NH2CHO and HNCO in star-forming regions may come from the fact that HNCO and NH2CHO react to temperature in the same manner rather than from a direct chemical link between the two species."}]}')}}]); \ No newline at end of file diff --git a/assets/js/b2f554cd.cd875265.js b/assets/js/b2f554cd.cd875265.js new file mode 100644 index 00000000..8250e7fb --- /dev/null +++ b/assets/js/b2f554cd.cd875265.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1477],{10:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"/2022/04/29/uclchem-v3","metadata":{"permalink":"/blog/2022/04/29/uclchem-v3","source":"@site/blog/2022-04-29-uclchem-v3.md","title":"UCLCHEM v3.0","description":"UCLCHEM has had a major update! The new version is v3.0 and has many changes. Here are some of the key updates:","date":"2022-04-29T00:00:00.000Z","formattedDate":"April 29, 2022","tags":[],"readingTime":0.465,"hasTruncateMarker":false,"authors":[{"name":"Jonathan Holdship","title":"UCLCHEM developer","url":"https://jonholdship.github.io","imageURL":"/img/jon.png","key":"jonholdship"}],"frontMatter":{"title":"UCLCHEM v3.0","authors":"jonholdship"},"nextItem":{"title":"The Cosmic-ray Ionization Rate in NGC 253","permalink":"/blog/2022/04/14/crir-ngc253"}},"content":"UCLCHEM has had a major update! The new version is v3.0 and has many changes. Here are some of the key updates:\\n\\n- UCLCHEM is now entirely python-centric and pip installable.\\n- MakeRates is smarter than ever and does much more of the work of building a network for you.\\n- Three phase chemistry is now the default and well bug tested.\\n- You no longer have to recompile the code to change physics modules.\\n\\nCheck out our docs pages for all the updates and tutorials on how to use the new version."},{"id":"/2022/04/14/crir-ngc253","metadata":{"permalink":"/blog/2022/04/14/crir-ngc253","source":"@site/blog/2022-04-14-crir-ngc253.md","title":"The Cosmic-ray Ionization Rate in NGC 253","description":"NGC 253 is a nearby starburst galaxy which hosts several large clouds of gas in its central molecular zone. These clouds are similar to GMCs but orders of magnitude more massive and much hotter, where the star formation rate is very high. The temperature of this gas is important because the star formation efficiency will be determined by how much internal energy that gas has.","date":"2022-04-14T00:00:00.000Z","formattedDate":"April 14, 2022","tags":[],"readingTime":0.895,"hasTruncateMarker":false,"authors":[{"name":"Jonathan Holdship","title":"UCLCHEM developer","url":"https://jonholdship.github.io","imageURL":"/img/jon.png","key":"jonholdship"}],"frontMatter":{"title":"The Cosmic-ray Ionization Rate in NGC 253","authors":"jonholdship"},"prevItem":{"title":"UCLCHEM v3.0","permalink":"/blog/2022/04/29/uclchem-v3"},"nextItem":{"title":"HITs - History Independent Tracers","permalink":"/blog/2022/02/06/holdship-hits"}},"content":"NGC 253 is a nearby starburst galaxy which hosts several large clouds of gas in its central molecular zone. These clouds are similar to GMCs but orders of magnitude more massive and much hotter, where the star formation rate is very high. The temperature of this gas is important because the star formation efficiency will be determined by how much internal energy that gas has.\\n\\nMany mechanisms could be heating this gas including mechanical heating due to turbulent shocks, UV photons, X-ray photons, and cosmic-rays. Whilst all are reasonable suspects in the CMZ of NGC 253, previous studies have shown [1](https://ui.adsabs.harvard.edu/abs/2021A%26A...654A..55H/abstract) [2](https://ui.adsabs.harvard.edu/abs/2021ApJ...923...24H/abstract) that the cosmic-ray ionization rate (CRIR) is likely to be very high.\\n\\nIn [a recent piece of work](https://ui.adsabs.harvard.edu/abs/2022arXiv220403668H/abstract) we have used UCLCHEM to show that the ratio of SO and H_3O^+ is a powerful probe of the CRIR. We model ALMA observations of emission from these molecules using UCLCHEM and [SpectralRadex](https://spectralradex.readthedocs.io/en/latest/) to infer the CRIR. We find that regardless of the temperature of the gas, the CRIR is around 10^4 times larger than in the Milky Way."},{"id":"/2022/02/06/holdship-hits","metadata":{"permalink":"/blog/2022/02/06/holdship-hits","source":"@site/blog/2022-02-06-holdship-hits.md","title":"HITs - History Independent Tracers","description":"Interpreting molecular observations through chemical and radiative transfer models is a common but complex practice. Whilst many uncertainties affect chemical models, one in particular is addressed in this work: the issue of time dependence. When modelling a molecular cloud or protostellar disk, how do we initialize the abundances? When is an appropriate time to compare our model to the observed object? Our paper on History Independent Tracers (HITs) side steps this issue by producing a list of molecules which are insensitive to the chemical history of the gas, essentially reaching steady state very quickly across a very wide range of gas conditions.","date":"2022-02-06T00:00:00.000Z","formattedDate":"February 6, 2022","tags":[],"readingTime":1.285,"hasTruncateMarker":false,"authors":[{"name":"Jonathan Holdship","title":"UCLCHEM developer","url":"https://jonholdship.github.io","imageURL":"/img/jon.png","key":"jonholdship"}],"frontMatter":{"title":"HITs - History Independent Tracers","authors":"jonholdship"},"prevItem":{"title":"The Cosmic-ray Ionization Rate in NGC 253","permalink":"/blog/2022/04/14/crir-ngc253"},"nextItem":{"title":"First measurement of nitrogen fractionation in shocked clumps of the L1157 protostellar outflow. SOLIS XI","permalink":"/blog/2020/12/07/milena-nitrogen-solis"}},"content":"Interpreting molecular observations through chemical and radiative transfer models is a common but complex practice. Whilst many uncertainties affect chemical models, one in particular is addressed in this work: the issue of time dependence. When modelling a molecular cloud or protostellar disk, how do we initialize the abundances? When is an appropriate time to compare our model to the observed object? Our paper on [History Independent Tracers (HITs)](https://ui.adsabs.harvard.edu/abs/2022A%26A...658A.103H/abstract) side steps this issue by producing a list of molecules which are insensitive to the chemical history of the gas, essentially reaching steady state very quickly across a very wide range of gas conditions.\\n\\nHowever, having a list of molecules that are easy to model is only first step towards making useful inferences. We then use our HITs to determine which observables are the most informative about various physical parameters. We do this by producing a large dataset of synthetic observations using UCLCHEM and RADEX to produce line intensities for every transition of every HIT under a wide range of physical conditions. We then calculate the [mutual information](https://en.wikipedia.org/wiki/Mutual_information) between each molecular transition and each physical parameter and use these to rank the transitions. The information scores are all available on the [HITs website](https://hits.strw.leidenuniv.nl) which can be used to plan observations.\\n\\nBy choosing transitions of a HIT that have a high mutual information with your physical parameter of interest, you can obtain the best possible constraint on that parameter. Moreover, as a HIT, the chemical modelling of this species will not be subject to much uncertainty from the gas history."},{"id":"/2020/12/07/milena-nitrogen-solis","metadata":{"permalink":"/blog/2020/12/07/milena-nitrogen-solis","source":"@site/blog/2020-12-07-milena-nitrogen-solis.md","title":"First measurement of nitrogen fractionation in shocked clumps of the L1157 protostellar outflow. SOLIS XI","description":"As part of the SOLIS observational programme, various isotopologues of HCN were observed towards L1157 in order to study the nitrogen fractionation in a protostellar outflow. The modelling work for this study was done using UCLCHEM. You can find the paper here and the abstract below.","date":"2020-12-07T00:00:00.000Z","formattedDate":"December 7, 2020","tags":[],"readingTime":1.89,"hasTruncateMarker":false,"authors":[{"name":"Serena Viti","title":"UCLCHEM PI","url":"https://home.strw.leidenuniv.nl/~viti/","imageURL":"/img/viti.jpg","key":"serena"}],"frontMatter":{"title":"First measurement of nitrogen fractionation in shocked clumps of the L1157 protostellar outflow. SOLIS XI","authors":"serena"},"prevItem":{"title":"HITs - History Independent Tracers","permalink":"/blog/2022/02/06/holdship-hits"},"nextItem":{"title":"New Website","permalink":"/blog/2020/02/14/New-Website"}},"content":"As part of the SOLIS observational programme, various isotopologues of HCN were observed towards L1157 in order to study the nitrogen fractionation in a protostellar outflow. The modelling work for this study was done using UCLCHEM. You can find [the paper here](https://arxiv.org/pdf/2011.14882.pdf) and the abstract below.\\n\\nThe isotopic ratio of nitrogen presents a wide range of values in the Solar System and in star forming system whose origin is still unclear. Chemical reactions in the gas phase are one of the possible processes that could modify the 14 N/ 15 N ratio. We aim at investigating if and how the passage of a shock wave in the interstellar medium, can affect the relative fraction of nitrogen isotopes. The ideal place for such a study is the L1157 outflow, where several shocked clumps are present. We present the first measurement of the 14 N/ 15 N ratio in the two shocked clumps, B1 and B0, of the protostellar outflow L1157, derived from the interferomteric maps of the H 13 CN(1-0) and the HC 15 N(1-0) lines. In B1, we find that the H 13 CN(1-0) and HC 15 N(1-0) emission traces the front of the clump, with averaged column density of N (H 13 CN) \u223c 7 \xd7 10 12 cm \u22122 and N (HC 15 N) \u223c 2 \xd7 10 12 cm \u22122 . In this region the ratio H 13 CN(1-0)/HC 15 N(1-0) is quite uniform with an average value of \u223c 5 \xb1 1. The same average value is also measured in the smaller clump B0e. Assuming the standard 12 C/ 13 C = 68, we obtain 14 N/ 15 N = 340 \xb1 70, similar to those usually found in prestellar cores and protostars. We analysed the prediction of a chemical shock model for several shock conditions and we found that the nitrogen and carbon fractionations do not vary much for the first period after the shock. The observed H 13 CN/HC 15 N can be reproduced by a non-dissociative, C-type shock with parameters in agreement with previous modelling of L1157-B1. Both observations and chemical models indicate that the shock propagation does not affect the nitrogen isotopic ratio that remains similar to that measured in lower temperature gas in prestellar cores and in protostellar envelopes."},{"id":"/2020/02/14/New-Website","metadata":{"permalink":"/blog/2020/02/14/New-Website","source":"@site/blog/2020-02-14-New-Website.md","title":"New Website","description":"We\'re replacing our old website! The old site was essentially just a poster for UCLCHEM with some github links. The new website has a similar landing page but importantly, we\'ve moved all the documentation for UCLCHEM online. We\'ll keep that up to date and are open to comments from users as we\'re keen to make UCLCHEM as easy to use as possible.","date":"2020-02-14T00:00:00.000Z","formattedDate":"February 14, 2020","tags":[],"readingTime":0.715,"hasTruncateMarker":false,"authors":[{"name":"Jonathan Holdship","title":"UCLCHEM developer","url":"https://jonholdship.github.io","imageURL":"/img/jon.png","key":"jonholdship"}],"frontMatter":{"title":"New Website","authors":"jonholdship"},"prevItem":{"title":"First measurement of nitrogen fractionation in shocked clumps of the L1157 protostellar outflow. SOLIS XI","permalink":"/blog/2020/12/07/milena-nitrogen-solis"},"nextItem":{"title":"Tracing shock type with chemical diagnostics - an application to L1157","permalink":"/blog/2019/12/10/tom-shock"}},"content":"We\'re replacing our old website! The old site was essentially just a poster for UCLCHEM with some github links. The new website has a similar landing page but importantly, we\'ve moved all the documentation for UCLCHEM online. We\'ll keep that up to date and are open to comments from users as we\'re keen to make UCLCHEM as easy to use as possible.\\n\\nWe\'ll also keep this blog updated with any major updates to UCLCHEM. As a rule, we\'ll push minor tweaks, bug fixes and background changes that won\'t affect how the user interacts with the code regularly. However, major changes, feature improvements and changes that will change how you interact with the code will be published as a new version on github and come with an explanatory blog post. Come back if your latest git pull leaves you wondering what happened to UCLCHEM!"},{"id":"/2019/12/10/tom-shock","metadata":{"permalink":"/blog/2019/12/10/tom-shock","source":"@site/blog/2019-12-10-tom-shock.md","title":"Tracing shock type with chemical diagnostics - an application to L1157","description":"The physical structure of a shock wave may take a form unique to its shock type, implying that the chemistry of each shock type is unique as well. In our recent paper, we investigate the different chemistries of J-type and C-type shocks using parameterised forms of their physical structures in order to identify unique molecular tracers of both shock types. We apply these diagnostics to the protostellar outflow L1157 to establish whether the B2 clump could host shocks exhibiting type-specific behaviour.","date":"2019-12-10T00:00:00.000Z","formattedDate":"December 10, 2019","tags":[],"readingTime":0.77,"hasTruncateMarker":false,"authors":[{"name":"Tomas James","url":"https://github.com/tomasjames","imageURL":"https://i.ibb.co/8KhFwwN/IMG-1783.jpg"}],"frontMatter":{"title":"Tracing shock type with chemical diagnostics - an application to L1157","author":"Tomas James","authorURL":"https://github.com/tomasjames","authorImageURL":"https://i.ibb.co/8KhFwwN/IMG-1783.jpg"},"prevItem":{"title":"New Website","permalink":"/blog/2020/02/14/New-Website"},"nextItem":{"title":"A chemical study of carbon fractionation in external galaxies","permalink":"/blog/2019/08/13/serena-carbon-frac"}},"content":"The physical structure of a shock wave may take a form unique to its shock type, implying that the chemistry of each shock type is unique as well. [In our recent paper](https://arxiv.org/pdf/1912.03721.pdf), we investigate the different chemistries of J-type and C-type shocks using parameterised forms of their physical structures in order to identify unique molecular tracers of both shock types. We apply these diagnostics to the protostellar outflow L1157 to establish whether the B2 clump could host shocks exhibiting type-specific behaviour. \\n\\nWe find that a range of molecules including H2O and HCN have unique behaviour specific to a J-type shock, but that such differences in behaviour are only evident at low velocity and low density. We find that CH3OH is enhanced by shocks and is a reliable probe of the pre-shock gas density and is shock-type agnostic. Additionally, the fractional abundances within the B2 region are consistent with both C-type and J-type shock emission."},{"id":"/2019/08/13/serena-carbon-frac","metadata":{"permalink":"/blog/2019/08/13/serena-carbon-frac","source":"@site/blog/2019-08-13-serena-carbon-frac.md","title":"A chemical study of carbon fractionation in external galaxies","description":"UCLCHEM has recently been used to study carbon fractionation in external galaxies. You can find the paper here and the abstract below.","date":"2019-08-13T00:00:00.000Z","formattedDate":"August 13, 2019","tags":[],"readingTime":0.825,"hasTruncateMarker":false,"authors":[{"name":"Serena Viti","title":"UCLCHEM PI","url":"https://home.strw.leidenuniv.nl/~viti/","imageURL":"/img/viti.jpg","key":"serena"}],"frontMatter":{"title":"A chemical study of carbon fractionation in external galaxies","authors":"serena"},"prevItem":{"title":"Tracing shock type with chemical diagnostics - an application to L1157","permalink":"/blog/2019/12/10/tom-shock"},"nextItem":{"title":"Ambipolar diffusion and the molecular abundances inprestellar cores","permalink":"/blog/2019/07/08/felix-ambipolar"}},"content":"UCLCHEM has recently been used to study carbon fractionation in external galaxies. You can find [the paper here](https://arxiv.org/pdf/2007.12405.pdf) and the abstract below.\\n\\nIn the interstellar medium carbon exists in the form of two stable isotopes 12C and 13C and their ratio is a good indicator of nucleosynthesis in galaxies. However, chemical fractionation can potentially significantly alter this ratio and in fact observations of carbon fractionation within the same galaxy has been found to vary from species to species. In this paper, we theoretically investigate the carbon fractionation for selected abundant carbon-bearing species in order to determine the conditions that may lead to a spread of the 12C/13C ratio in external galaxies. We find that carbon fractionation is sensitive to almost all the physical conditions we investigated, it strongly varies with time for all species but CO, and shows pronounced differences across species. Finally, we discuss our theoretical results in the context of the few observations of the 12C/13C in both local and higher redshift galaxies."},{"id":"/2019/07/08/felix-ambipolar","metadata":{"permalink":"/blog/2019/07/08/felix-ambipolar","source":"@site/blog/2019-07-08-felix-ambipolar.md","title":"Ambipolar diffusion and the molecular abundances inprestellar cores","description":"Felix Priestley has used UCLCHEM in an investigation of the chemical differences caused by the magnetic fields in prestellar cores. You can find the paper here and the abstract below.","date":"2019-07-08T00:00:00.000Z","formattedDate":"July 8, 2019","tags":[],"readingTime":0.99,"hasTruncateMarker":false,"authors":[{"name":"Jonathan Holdship","title":"UCLCHEM developer","url":"https://jonholdship.github.io","imageURL":"/img/jon.png","key":"jonholdship"}],"frontMatter":{"title":"Ambipolar diffusion and the molecular abundances inprestellar cores","authors":"jonholdship"},"prevItem":{"title":"A chemical study of carbon fractionation in external galaxies","permalink":"/blog/2019/08/13/serena-carbon-frac"},"nextItem":{"title":"Nitrogen fractionation in external galaxies","permalink":"/blog/2019/04/19/serena-nitrogen-frac"}},"content":"[Felix Priestley](https://fpriestley.github.io/) has used UCLCHEM in an investigation of the chemical differences caused by the magnetic fields in prestellar cores. You can find [the paper here](https://arxiv.org/pdf/1907.02736.pdf) and the abstract below.\\n\\nWe investigate differences in the molecular abundances between magnetically super- and subcritical pre-stellar cores, performing three-dimensional non-ideal magnetohydrodynamical (MHD) simulations with varying densities and magnetic field strengths, and post-processing the results with a time-dependent gas-grain chemical code. Most molecular species show significantly more central depletion in subcritical models, due to the longer duration of collapse. However, the directly observable quantities - the molecule to hydrogen column density ratios - are generally too similar for observational data to discriminate between models. The profiles of N2H+ and HCO+ show qualitative differences between supercritical and subcritical models on scales of 0.01 pc, which may allow the two cases to be distinguished. However, this requires knowledge of the hydrogen column density, which is not directly measureable, and predicted line intensity profiles from radiative transfer modelling are similar for these molecules. Other commonly observed species, such as HCN and CH3OH, have line intensity profiles that differ more strongly between models, and so are more promising as tracers of the mechanism of cloud collapse."},{"id":"/2019/04/19/serena-nitrogen-frac","metadata":{"permalink":"/blog/2019/04/19/serena-nitrogen-frac","source":"@site/blog/2019-04-19-serena-nitrogen-frac.md","title":"Nitrogen fractionation in external galaxies","description":"UCLCHEM has recently been used to study nitrogen fractionation in external galaxies. You can find the paper here and the abstract below.","date":"2019-04-19T00:00:00.000Z","formattedDate":"April 19, 2019","tags":[],"readingTime":0.81,"hasTruncateMarker":false,"authors":[{"name":"Serena Viti","title":"UCLCHEM PI","url":"https://home.strw.leidenuniv.nl/~viti/","imageURL":"/img/viti.jpg","key":"serena"}],"frontMatter":{"title":"Nitrogen fractionation in external galaxies","authors":"serena"},"prevItem":{"title":"Ambipolar diffusion and the molecular abundances inprestellar cores","permalink":"/blog/2019/07/08/felix-ambipolar"},"nextItem":{"title":"Collapsing Prestellar Cores - a new physics module","permalink":"/blog/2018/07/12/felix-collapse"}},"content":"UCLCHEM has recently been used to study nitrogen fractionation in external galaxies. You can find [the paper here](https://arxiv.org/pdf/1904.11725.pdf) and the abstract below.\\n\\nIn star-forming regions in our own Galaxy, the 14N/15N ratio is found to vary from \u223c100 in meteorites, comets, and protoplanetary discs up to \u223c1000 in pre-stellar and star-forming cores, while in external galaxies the very few single-dish large-scale measurements of this ratio lead to values of 100-450. The extent of the contribution of isotopic fractionation to these variations is, to date, unknown. In this paper, we present a theoretical chemical study of nitrogen fractionation in external galaxies in order to determine the physical conditions that may lead to a spread of the 14N/15N ratio from the solar value of \u223c440 and hence evaluate the contribution of chemical reactions in the interstellar medium (ISM) to nitrogen fractionation. We find that the main cause of ISM enrichment of nitrogen fractionation is high gas densities, aided by high fluxes of cosmic rays."},{"id":"/2018/07/12/felix-collapse","metadata":{"permalink":"/blog/2018/07/12/felix-collapse","source":"@site/blog/2018-07-12-felix-collapse.md","title":"Collapsing Prestellar Cores - a new physics module","description":"Felix Priestley has used UCLCHEM to study the collapse of prestellar cores. In the process, he\'s created a new physics module collapse.f90 which follows a sphere of gas collapsing in different ways. The paper can be found here and the abstract is below.","date":"2018-07-12T00:00:00.000Z","formattedDate":"July 12, 2018","tags":[],"readingTime":1.505,"hasTruncateMarker":false,"authors":[{"name":"jonholdship"}],"frontMatter":{"title":"Collapsing Prestellar Cores - a new physics module","author":"jonholdship"},"prevItem":{"title":"Nitrogen fractionation in external galaxies","permalink":"/blog/2019/04/19/serena-nitrogen-frac"},"nextItem":{"title":"The Chemistry of Phosphorus-bearing Molecules under Energetic Phenomena","permalink":"/blog/2018/06/20/izaskun-phosphorus"}},"content":"[Felix Priestley](https://fpriestley.github.io/) has used UCLCHEM to study the collapse of prestellar cores. In the process, he\'s created a new physics module `collapse.f90` which follows a sphere of gas collapsing in different ways. The [paper can be found here](https://arxiv.org/pdf/1806.01699.pdf) and the abstract is below.\\n\\nPeptide bonds (N-C = O) play a key role in metabolic processes since they link amino acids into peptide chains or proteins. Recently, several molecules containing peptide-like bonds have been detected across multiple environments in the interstellar medium, growing the need to fully understand their chemistry and their role in forming larger pre-biotic molecules. We present a comprehensive study of the chemistry of three molecules containing peptide-like bonds: HNCO, NH2CHO, and CH3NCO. We also included other CHNO isomers (HCNO, HOCN) and C2H3NO isomers (CH3OCN, CH3CNO) to the study. We have used the UCLCHEM gas-grain chemical code and included in our chemical network all possible formation/destruction pathways of these peptide-like molecules recently investigated either by theoretical calculations or in laboratory experiments. Our predictions are compared to observations obtained towards the proto-star IRAS 16293-2422 and the L1544 pre-stellar core. Our results show that some key reactions involving the CHNO and C2H3NO isomers need to be modified to match the observations. Consistently with recent laboratory findings, hydrogenation is unlikely to produce NH2CHO on grain surfaces, while a combination of radical-radical surface reactions and gas-phase reactions is a better alternative. In addition, better results are obtained for NH2CHO when a slightly higher activation energy of 25 K is considered for the gas-phase reaction NH2 + H2CO \u2192 NH2CHO + H. Finally, our modelling shows that the observed correlation between NH2CHO and HNCO in star-forming regions may come from the fact that HNCO and NH2CHO react to temperature in the same manner rather than from a direct chemical link between the two species."},{"id":"/2018/06/20/izaskun-phosphorus","metadata":{"permalink":"/blog/2018/06/20/izaskun-phosphorus","source":"@site/blog/2018-06-20-izaskun-phosphorus.md","title":"The Chemistry of Phosphorus-bearing Molecules under Energetic Phenomena","description":"Izaskun Jimenez-Serra has published a study of the chemistry of phosophorus bearing species using UCLCHEM. The paper can be found here and the abstract is below.","date":"2018-06-20T00:00:00.000Z","formattedDate":"June 20, 2018","tags":[],"readingTime":1.3,"hasTruncateMarker":false,"authors":[{"name":"jonholdship"}],"frontMatter":{"title":"The Chemistry of Phosphorus-bearing Molecules under Energetic Phenomena","author":"jonholdship"},"prevItem":{"title":"Collapsing Prestellar Cores - a new physics module","permalink":"/blog/2018/07/12/felix-collapse"},"nextItem":{"title":"Chemical modelling of glycolaldehyde and ethylene glycol in star-forming regions","permalink":"/blog/2018/03/27/audrey-coms"}},"content":"Izaskun Jimenez-Serra has published a study of the chemistry of phosophorus bearing species using UCLCHEM. The [paper can be found here](https://arxiv.org/pdf/1806.07281.pdf) and the abstract is below.\\n\\nFor decades, the detection of phosphorus-bearing molecules in the interstellar medium was restricted to high-mass star-forming regions (e.g., SgrB2 and Orion KL) and the circumstellar envelopes of evolved stars. However, recent higher-sensitivity observations have revealed that molecules such as PN and PO are present not only toward cold massive cores and low-mass star-forming regions with PO/PN ratios \u22651 but also toward the giant molecular clouds in the Galactic center known to be exposed to highly energetic phenomena such as intense UV radiation fields, shock waves, and cosmic rays. In this paper, we carry out a comprehensive study of the chemistry of phosphorus-bearing molecules across different astrophysical environments that cover a range of physical conditions (cold molecular dark clouds, warm clouds, and hot cores/hot corinos) and are exposed to different physical processes and energetic phenomena (proto-stellar heating, shock waves, intense UV radiation, and cosmic rays). We show how the measured PO/PN ratio (either \u22651, as in, e.g., hot molecular cores, or \u22641, as in UV strongly illuminated environments) can provide constraints on the physical conditions and energetic processing of the source. We propose that the reaction P + OH \u2192 PO + H, not included in previous works, could be an efficient gas-phase PO formation route in shocks. Our modeling provides a template with which to study the detectability of P-bearing species not only in regions in our own Galaxy but also in extragalactic sources."},{"id":"/2018/03/27/audrey-coms","metadata":{"permalink":"/blog/2018/03/27/audrey-coms","source":"@site/blog/2018-03-27-audrey-coms.md","title":"Chemical modelling of glycolaldehyde and ethylene glycol in star-forming regions","description":"Audrey Coutens has published modelling work on glycoaldehyde and ethylene glycol using UCLCHEM. You can find the paper here and the abstract below.","date":"2018-03-27T00:00:00.000Z","formattedDate":"March 27, 2018","tags":[],"readingTime":1.405,"hasTruncateMarker":false,"authors":[{"name":"Jonathan Holdship","title":"UCLCHEM developer","url":"https://jonholdship.github.io","imageURL":"/img/jon.png","key":"jonholdship"}],"frontMatter":{"title":"Chemical modelling of glycolaldehyde and ethylene glycol in star-forming regions","authors":"jonholdship"},"prevItem":{"title":"The Chemistry of Phosphorus-bearing Molecules under Energetic Phenomena","permalink":"/blog/2018/06/20/izaskun-phosphorus"},"nextItem":{"title":"Chemical modelling of complex organic molecules with peptide-like bonds in star-forming regions","permalink":"/blog/2018/02/05/david-grains"}},"content":"Audrey Coutens has published modelling work on glycoaldehyde and ethylene glycol using UCLCHEM. You can find [the paper here](https://arxiv.org/abs/1712.08778) and the abstract below.\\n\\nPeptide bonds (N-C = O) play a key role in metabolic processes since they link amino acids into peptide chains or proteins. Recently, several molecules containing peptide-like bonds have been detected across multiple environments in the interstellar medium, growing the need to fully understand their chemistry and their role in forming larger pre-biotic molecules. We present a comprehensive study of the chemistry of three molecules containing peptide-like bonds: HNCO, NH2CHO, and CH3NCO. We also included other CHNO isomers (HCNO, HOCN) and C2H3NO isomers (CH3OCN, CH3CNO) to the study. We have used the UCLCHEM gas-grain chemical code and included in our chemical network all possible formation/destruction pathways of these peptide-like molecules recently investigated either by theoretical calculations or in laboratory experiments. Our predictions are compared to observations obtained towards the proto-star IRAS 16293-2422 and the L1544 pre-stellar core. Our results show that some key reactions involving the CHNO and C2H3NO isomers need to be modified to match the observations. Consistently with recent laboratory findings, hydrogenation is unlikely to produce NH2CHO on grain surfaces, while a combination of radical-radical surface reactions and gas-phase reactions is a better alternative. In addition, better results are obtained for NH2CHO when a slightly higher activation energy of 25 K is considered for the gas-phase reaction NH2 + H2CO \u2192 NH2CHO + H. Finally, our modelling shows that the observed correlation between NH2CHO and HNCO in star-forming regions may come from the fact that HNCO and NH2CHO react to temperature in the same manner rather than from a direct chemical link between the two species."},{"id":"/2018/02/05/david-grains","metadata":{"permalink":"/blog/2018/02/05/david-grains","source":"@site/blog/2018-02-05-david-grains.md","title":"Chemical modelling of complex organic molecules with peptide-like bonds in star-forming regions","description":"David Quenard just published an update to the UCLCHEM with an application to COMs in prestellar cores you can find the paper here and the abstract below.","date":"2018-02-05T00:00:00.000Z","formattedDate":"February 5, 2018","tags":[],"readingTime":1.425,"hasTruncateMarker":false,"authors":[{"name":"Jonathan Holdship","title":"UCLCHEM developer","url":"https://jonholdship.github.io","imageURL":"/img/jon.png","key":"jonholdship"}],"frontMatter":{"title":"Chemical modelling of complex organic molecules with peptide-like bonds in star-forming regions","authors":"jonholdship"},"prevItem":{"title":"Chemical modelling of glycolaldehyde and ethylene glycol in star-forming regions","permalink":"/blog/2018/03/27/audrey-coms"}},"content":"David Quenard just published an update to the UCLCHEM with an application to COMs in prestellar cores [you can find the paper here](https://arxiv.org/abs/1711.05184) and the abstract below.\\n\\nPeptide bonds (N-C = O) play a key role in metabolic processes since they link amino acids into peptide chains or proteins. Recently, several molecules containing peptide-like bonds have been detected across multiple environments in the interstellar medium, growing the need to fully understand their chemistry and their role in forming larger pre-biotic molecules. We present a comprehensive study of the chemistry of three molecules containing peptide-like bonds: HNCO, NH2CHO, and CH3NCO. We also included other CHNO isomers (HCNO, HOCN) and C2H3NO isomers (CH3OCN, CH3CNO) to the study. We have used the UCLCHEM gas-grain chemical code and included in our chemical network all possible formation/destruction pathways of these peptide-like molecules recently investigated either by theoretical calculations or in laboratory experiments. Our predictions are compared to observations obtained towards the proto-star IRAS 16293-2422 and the L1544 pre-stellar core. Our results show that some key reactions involving the CHNO and C2H3NO isomers need to be modified to match the observations. Consistently with recent laboratory findings, hydrogenation is unlikely to produce NH2CHO on grain surfaces, while a combination of radical-radical surface reactions and gas-phase reactions is a better alternative. In addition, better results are obtained for NH2CHO when a slightly higher activation energy of 25 K is considered for the gas-phase reaction NH2 + H2CO \u2192 NH2CHO + H. Finally, our modelling shows that the observed correlation between NH2CHO and HNCO in star-forming regions may come from the fact that HNCO and NH2CHO react to temperature in the same manner rather than from a direct chemical link between the two species."}]}')}}]); \ No newline at end of file diff --git a/assets/js/b4779a4a.0d3a2136.js b/assets/js/b4779a4a.0d3a2136.js deleted file mode 100644 index 359981d0..00000000 --- a/assets/js/b4779a4a.0d3a2136.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1299],{3905:(e,t,o)=>{o.d(t,{Zo:()=>d,kt:()=>h});var n=o(7294);function r(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function i(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function a(e){for(var t=1;t=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}var l=n.createContext({}),c=function(e){var t=n.useContext(l),o=t;return e&&(o="function"==typeof e?e(t):a(a({},t),e)),o},d=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var o=e.components,r=e.mdxType,i=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=c(o),h=r,m=u["".concat(l,".").concat(h)]||u[h]||p[h]||i;return o?n.createElement(m,a(a({ref:t},d),{},{components:o})):n.createElement(m,a({ref:t},d))}));function h(e,t){var o=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=o.length,a=new Array(i);a[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:r,a[1]=s;for(var c=2;c{o.r(t),o.d(t,{assets:()=>d,contentTitle:()=>l,default:()=>h,frontMatter:()=>s,metadata:()=>c,toc:()=>p});var n=o(7462),r=o(3366),i=(o(7294),o(3905)),a=["components"],s={id:"physics-cloud",title:"Cloud Model",author:"Jon Holdship"},l=void 0,c={unversionedId:"physics-cloud",id:"version-v3.2.0/physics-cloud",title:"Cloud Model",description:"Main Contributors: Serena Viti, Jon Holdship",source:"@site/versioned_docs/version-v3.2.0/physics-cloud.md",sourceDirName:".",slug:"/physics-cloud",permalink:"/docs/physics-cloud",tags:[],version:"v3.2.0",frontMatter:{id:"physics-cloud",title:"Cloud Model",author:"Jon Holdship"},sidebar:"docs",previous:{title:"Core Physics",permalink:"/docs/physics-core"},next:{title:"Hot Core",permalink:"/docs/physics-hotcore"}},d={},p=[],u={toc:p};function h(e){var t=e.components,o=(0,r.Z)(e,a);return(0,i.kt)("wrapper",(0,n.Z)({},u,o,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Main Contributors"),": Serena Viti, Jon Holdship"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Source"),": src/fortran_src/cloud.f90"),(0,i.kt)("p",null,"The cloud model is our simplest physical model and is intended to model spherical clouds of gas with constant physical conditions. The exception to this is the density which can be modified using the ",(0,i.kt)("inlineCode",{parentName:"p"},"freefall")," parameter. "),(0,i.kt)("p",null,"Cloud is a 1D model that models positions through the cloud that are evenly spaced between some inner radius ",(0,i.kt)("inlineCode",{parentName:"p"},"rin")," and the outer radius ",(0,i.kt)("inlineCode",{parentName:"p"},"rout"),". The number of positions is set by the ",(0,i.kt)("inlineCode",{parentName:"p"},"points")," parameter and each position is treated almost independently with no transfer of material between them. The one interaction they have is that positions closer to the edge of the cloud (rout) are used to calculate column densities for the positions further into the cloud. Since UCLCHEM treats self-shielding of H2, C and CO, it does a fair job of properly modelling UV processes in a 1D cloud."),(0,i.kt)("p",null,"However, we caution UCLCHEM's cloud is not a PDR model. It does not consider heating and cooling and uses a fixed temperature for all positions. Moreover, it is unlikely one will model enough positions in the low Av parts of the cloud to properly capture the self-shielding. Therefore, we recommend using ",(0,i.kt)("a",{parentName:"p",href:"https://uclchem.github.io/3dpdr"},"3D-PDR")," for your PDR modelling needs."),(0,i.kt)("p",null,"Cloud is more suitable for studing the UV shielded parts of molecular clouds. If we assume the only depth dependent effect on the chemistry in these clouds is the UV radiation, it becomes reasonable to assume the UV shielded parts of the cloud are homogeneous and can be modelled with a single point code. Thus, most users will use cloud with ",(0,i.kt)("inlineCode",{parentName:"p"},"points=1")," and some combination of ",(0,i.kt)("inlineCode",{parentName:"p"},"rout"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"baseAv"),", and density that produce a large Av."),(0,i.kt)("img",{src:"/img/dark_cloud.png",width:"600","margin-left":"40%"}),(0,i.kt)("p",null,"The other major use of cloud is to model a simple cloud of gas in order to calculate reasonable starting abundances for another model. We may wish to run a hot core or shock model for some investigation and require reasonable initial conditions for the gas. We do this by starting a cloud model with a low density gas of atoms and ions with no molecules or ices. We then allow it to collapse using the ",(0,i.kt)("inlineCode",{parentName:"p"},"freefall")," parameter to reach the density of the gas in our science model. Whatever abundances are reached are then used as the starting abundances in the science model."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b4779a4a.8a7acfb5.js b/assets/js/b4779a4a.8a7acfb5.js new file mode 100644 index 00000000..e96beb6f --- /dev/null +++ b/assets/js/b4779a4a.8a7acfb5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1299],{3905:(e,t,o)=>{o.d(t,{Zo:()=>c,kt:()=>h});var n=o(7294);function r(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function i(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function a(e){for(var t=1;t=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}var l=n.createContext({}),d=function(e){var t=n.useContext(l),o=t;return e&&(o="function"==typeof e?e(t):a(a({},t),e)),o},c=function(e){var t=d(e.components);return n.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var o=e.components,r=e.mdxType,i=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),u=d(o),h=r,m=u["".concat(l,".").concat(h)]||u[h]||p[h]||i;return o?n.createElement(m,a(a({ref:t},c),{},{components:o})):n.createElement(m,a({ref:t},c))}));function h(e,t){var o=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=o.length,a=new Array(i);a[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:r,a[1]=s;for(var d=2;d{o.r(t),o.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>s,metadata:()=>d,toc:()=>p});var n=o(7462),r=o(3366),i=(o(7294),o(3905)),a=["components"],s={id:"physics-cloud",title:"Cloud Model",author:"Jon Holdship"},l=void 0,d={unversionedId:"physics-cloud",id:"version-v3.2.0/physics-cloud",title:"Cloud Model",description:"Main Contributors: Serena Viti, Jon Holdship",source:"@site/versioned_docs/version-v3.2.0/physics-cloud.md",sourceDirName:".",slug:"/physics-cloud",permalink:"/docs/physics-cloud",draft:!1,tags:[],version:"v3.2.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"physics-cloud",title:"Cloud Model",author:"Jon Holdship"},sidebar:"docs",previous:{title:"Core Physics",permalink:"/docs/physics-core"},next:{title:"Hot Core",permalink:"/docs/physics-hotcore"}},c={},p=[],u={toc:p};function h(e){var t=e.components,o=(0,r.Z)(e,a);return(0,i.kt)("wrapper",(0,n.Z)({},u,o,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Main Contributors"),": Serena Viti, Jon Holdship"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Source"),": src/fortran_src/cloud.f90"),(0,i.kt)("p",null,"The cloud model is our simplest physical model and is intended to model spherical clouds of gas with constant physical conditions. The exception to this is the density which can be modified using the ",(0,i.kt)("inlineCode",{parentName:"p"},"freefall")," parameter. "),(0,i.kt)("p",null,"Cloud is a 1D model that models positions through the cloud that are evenly spaced between some inner radius ",(0,i.kt)("inlineCode",{parentName:"p"},"rin")," and the outer radius ",(0,i.kt)("inlineCode",{parentName:"p"},"rout"),". The number of positions is set by the ",(0,i.kt)("inlineCode",{parentName:"p"},"points")," parameter and each position is treated almost independently with no transfer of material between them. The one interaction they have is that positions closer to the edge of the cloud (rout) are used to calculate column densities for the positions further into the cloud. Since UCLCHEM treats self-shielding of H2, C and CO, it does a fair job of properly modelling UV processes in a 1D cloud."),(0,i.kt)("p",null,"However, we caution UCLCHEM's cloud is not a PDR model. It does not consider heating and cooling and uses a fixed temperature for all positions. Moreover, it is unlikely one will model enough positions in the low Av parts of the cloud to properly capture the self-shielding. Therefore, we recommend using ",(0,i.kt)("a",{parentName:"p",href:"https://uclchem.github.io/3dpdr"},"3D-PDR")," for your PDR modelling needs."),(0,i.kt)("p",null,"Cloud is more suitable for studing the UV shielded parts of molecular clouds. If we assume the only depth dependent effect on the chemistry in these clouds is the UV radiation, it becomes reasonable to assume the UV shielded parts of the cloud are homogeneous and can be modelled with a single point code. Thus, most users will use cloud with ",(0,i.kt)("inlineCode",{parentName:"p"},"points=1")," and some combination of ",(0,i.kt)("inlineCode",{parentName:"p"},"rout"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"baseAv"),", and density that produce a large Av."),(0,i.kt)("img",{src:"/img/dark_cloud.png",width:"600","margin-left":"40%"}),(0,i.kt)("p",null,"The other major use of cloud is to model a simple cloud of gas in order to calculate reasonable starting abundances for another model. We may wish to run a hot core or shock model for some investigation and require reasonable initial conditions for the gas. We do this by starting a cloud model with a low density gas of atoms and ions with no molecules or ices. We then allow it to collapse using the ",(0,i.kt)("inlineCode",{parentName:"p"},"freefall")," parameter to reach the density of the gas in our science model. Whatever abundances are reached are then used as the starting abundances in the science model."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ba4d4e72.484bd9f0.js b/assets/js/ba4d4e72.484bd9f0.js deleted file mode 100644 index 5229c617..00000000 --- a/assets/js/ba4d4e72.484bd9f0.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7209],{3905:(t,a,e)=>{e.d(a,{Zo:()=>s,kt:()=>N});var n=e(7294);function r(t,a,e){return a in t?Object.defineProperty(t,a,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[a]=e,t}function l(t,a){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);a&&(n=n.filter((function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable}))),e.push.apply(e,n)}return e}function i(t){for(var a=1;a=0||(r[e]=t[e]);return r}(t,a);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,e)&&(r[e]=t[e])}return r}var p=n.createContext({}),o=function(t){var a=n.useContext(p),e=a;return t&&(e="function"==typeof t?t(a):i(i({},a),t)),e},s=function(t){var a=o(t.components);return n.createElement(p.Provider,{value:a},t.children)},d={inlineCode:"code",wrapper:function(t){var a=t.children;return n.createElement(n.Fragment,{},a)}},u=n.forwardRef((function(t,a){var e=t.components,r=t.mdxType,l=t.originalType,p=t.parentName,s=m(t,["components","mdxType","originalType","parentName"]),u=o(e),N=r,k=u["".concat(p,".").concat(N)]||u[N]||d[N]||l;return e?n.createElement(k,i(i({ref:a},s),{},{components:e})):n.createElement(k,i({ref:a},s))}));function N(t,a){var e=arguments,r=a&&a.mdxType;if("string"==typeof t||r){var l=e.length,i=new Array(l);i[0]=u;var m={};for(var p in a)hasOwnProperty.call(a,p)&&(m[p]=a[p]);m.originalType=t,m.mdxType="string"==typeof t?t:r,i[1]=m;for(var o=2;o{e.r(a),e.d(a,{assets:()=>s,contentTitle:()=>p,default:()=>N,frontMatter:()=>m,metadata:()=>o,toc:()=>d});var n=e(7462),r=e(3366),l=(e(7294),e(3905)),i=["components"],m={id:"parameters",title:"Model Parameters"},p=void 0,o={unversionedId:"parameters",id:"version-v3.1.0/parameters",title:"Model Parameters",description:"UCLCHEM will default to these values unless they are overridden by user. Users can override these by adding the variable name as written here in the paramdict argument of any UCLCHEM model function. paramdict is not case sensitive.",source:"@site/versioned_docs/version-v3.1.0/start-parameters.md",sourceDirName:".",slug:"/parameters",permalink:"/docs/v3.1.0/parameters",tags:[],version:"v3.1.0",frontMatter:{id:"parameters",title:"Model Parameters"},sidebar:"docs",previous:{title:"Creating a Network",permalink:"/docs/v3.1.0/network"},next:{title:"Python Reference",permalink:"/docs/v3.1.0/pythonapi"}},s={},d=[{value:"Physical Variables",id:"physical-variables",level:2},{value:"Behavioural Controls",id:"behavioural-controls",level:2},{value:"Input and Output",id:"input-and-output",level:2},{value:"Initial Abundances",id:"initial-abundances",level:2},{value:"Integration Controls",id:"integration-controls",level:2},{value:"Here be Dragons",id:"here-be-dragons",level:2}],u={toc:d};function N(t){var a=t.components,e=(0,r.Z)(t,i);return(0,l.kt)("wrapper",(0,n.Z)({},u,e,{components:a,mdxType:"MDXLayout"}),(0,l.kt)("p",null,"UCLCHEM will default to these values unless they are overridden by user. Users can override these by adding the variable name as written here in the param_dict argument of any UCLCHEM model function. param_dict is not case sensitive."),(0,l.kt)("h2",{id:"physical-variables"},"Physical Variables"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Parameter"),(0,l.kt)("th",{parentName:"tr",align:null},"Default Value"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"initialTemp"),(0,l.kt)("td",{parentName:"tr",align:null},"10.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Initial gas temperature in Kelvin for all gas parcels in model.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"initialDens"),(0,l.kt)("td",{parentName:"tr",align:null},"1.00d2"),(0,l.kt)("td",{parentName:"tr",align:null},"Initial gas density in H nuclei per cm",(0,l.kt)("span",{parentName:"td",className:"math math-inline"},(0,l.kt)("span",{parentName:"span",className:"katex"},(0,l.kt)("span",{parentName:"span",className:"katex-mathml"},(0,l.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,l.kt)("semantics",{parentName:"math"},(0,l.kt)("mrow",{parentName:"semantics"},(0,l.kt)("msup",{parentName:"mrow"},(0,l.kt)("mrow",{parentName:"msup"}),(0,l.kt)("mrow",{parentName:"msup"},(0,l.kt)("mo",{parentName:"mrow"},"\u2212"),(0,l.kt)("mn",{parentName:"mrow"},"3")))),(0,l.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-3}")))),(0,l.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,l.kt)("span",{parentName:"span",className:"base"},(0,l.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,l.kt)("span",{parentName:"span",className:"mord"},(0,l.kt)("span",{parentName:"span"}),(0,l.kt)("span",{parentName:"span",className:"msupsub"},(0,l.kt)("span",{parentName:"span",className:"vlist-t"},(0,l.kt)("span",{parentName:"span",className:"vlist-r"},(0,l.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,l.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,l.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,l.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,l.kt)("span",{parentName:"span",className:"mord mtight"},(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"3")))))))))))))," for all gas parcels in model.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"finalDens"),(0,l.kt)("td",{parentName:"tr",align:null},"1.00d5"),(0,l.kt)("td",{parentName:"tr",align:null},"Final gas density achieved via freefall.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"currentTime"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Time at start of model in years.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"finalTime"),(0,l.kt)("td",{parentName:"tr",align:null},"5.0d6"),(0,l.kt)("td",{parentName:"tr",align:null},"Time to stop model in years, if not using ",(0,l.kt)("inlineCode",{parentName:"td"},"endAtFinalDensity")," below.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"radfield"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Interstellar radiation field in Habing")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"zeta"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Cosmic ray ionisation rate as multiple of ",(0,l.kt)("span",{parentName:"td",className:"math math-inline"},(0,l.kt)("span",{parentName:"span",className:"katex"},(0,l.kt)("span",{parentName:"span",className:"katex-mathml"},(0,l.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,l.kt)("semantics",{parentName:"math"},(0,l.kt)("mrow",{parentName:"semantics"},(0,l.kt)("mn",{parentName:"mrow"},"1.31"),(0,l.kt)("msup",{parentName:"mrow"},(0,l.kt)("mn",{parentName:"msup"},"0"),(0,l.kt)("mrow",{parentName:"msup"},(0,l.kt)("mo",{parentName:"mrow"},"\u2212"),(0,l.kt)("mn",{parentName:"mrow"},"17"))),(0,l.kt)("msup",{parentName:"mrow"},(0,l.kt)("mi",{parentName:"msup"},"s"),(0,l.kt)("mrow",{parentName:"msup"},(0,l.kt)("mo",{parentName:"mrow"},"\u2212"),(0,l.kt)("mn",{parentName:"mrow"},"1")))),(0,l.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"1.3 10^{-17} s^{-1}")))),(0,l.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,l.kt)("span",{parentName:"span",className:"base"},(0,l.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,l.kt)("span",{parentName:"span",className:"mord"},"1"),(0,l.kt)("span",{parentName:"span",className:"mord"},"."),(0,l.kt)("span",{parentName:"span",className:"mord"},"3"),(0,l.kt)("span",{parentName:"span",className:"mord"},"1"),(0,l.kt)("span",{parentName:"span",className:"mord"},(0,l.kt)("span",{parentName:"span",className:"mord"},"0"),(0,l.kt)("span",{parentName:"span",className:"msupsub"},(0,l.kt)("span",{parentName:"span",className:"vlist-t"},(0,l.kt)("span",{parentName:"span",className:"vlist-r"},(0,l.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,l.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,l.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,l.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,l.kt)("span",{parentName:"span",className:"mord mtight"},(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"1"),(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"7"))))))))),(0,l.kt)("span",{parentName:"span",className:"mord"},(0,l.kt)("span",{parentName:"span",className:"mord mathnormal"},"s"),(0,l.kt)("span",{parentName:"span",className:"msupsub"},(0,l.kt)("span",{parentName:"span",className:"vlist-t"},(0,l.kt)("span",{parentName:"span",className:"vlist-r"},(0,l.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,l.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,l.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,l.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,l.kt)("span",{parentName:"span",className:"mord mtight"},(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))))))))))))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"rout"),(0,l.kt)("td",{parentName:"tr",align:null},"0.05"),(0,l.kt)("td",{parentName:"tr",align:null},"Outer radius of cloud being modelled in pc.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"rin"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Minimum radial distance from cloud centre to consider.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"baseAv"),(0,l.kt)("td",{parentName:"tr",align:null},"2.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Extinction at cloud edge, Av of a parcel at rout.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"points"),(0,l.kt)("td",{parentName:"tr",align:null},"1"),(0,l.kt)("td",{parentName:"tr",align:null},"Number of gas parcels equally spaced between rin to rout to consider")))),(0,l.kt)("h2",{id:"behavioural-controls"},"Behavioural Controls"),(0,l.kt)("p",null,(0,l.kt)("em",{parentName:"p"},"The following parameters generally turn on or off features of the model. If a parameter is set to ",(0,l.kt)("inlineCode",{parentName:"em"},"True"),", then it is turned on. If it is set to ",(0,l.kt)("inlineCode",{parentName:"em"},"False"),", then it is turned off.")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Parameter"),(0,l.kt)("th",{parentName:"tr",align:null},"Default Value"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"freezeFactor"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Modify freeze out rate of gas parcels by this factor.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"endAtFinalDensity"),(0,l.kt)("td",{parentName:"tr",align:null},".False."),(0,l.kt)("td",{parentName:"tr",align:null},"Choose to end model at final density, otherwise end at final time.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"freefall"),(0,l.kt)("td",{parentName:"tr",align:null},".False."),(0,l.kt)("td",{parentName:"tr",align:null},"Controls whether models density increaes following freefall equation.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"freefallFactor"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Modify freefall rate by factor, usually to slow it.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"desorb"),(0,l.kt)("td",{parentName:"tr",align:null},".True."),(0,l.kt)("td",{parentName:"tr",align:null},"Toggles all non-thermal desoprtion processes on or off.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"h2desorb"),(0,l.kt)("td",{parentName:"tr",align:null},".True."),(0,l.kt)("td",{parentName:"tr",align:null},"Individually toggle non-thermal desorption due to H2 formation.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"crdesorb"),(0,l.kt)("td",{parentName:"tr",align:null},".True."),(0,l.kt)("td",{parentName:"tr",align:null},"Individually toggle non-thermal desorption due to cosmic rays.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"uvdesorb"),(0,l.kt)("td",{parentName:"tr",align:null},".True."),(0,l.kt)("td",{parentName:"tr",align:null},"Individually toggle non-thermal desorption due to uv photons.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"thermdesorb"),(0,l.kt)("td",{parentName:"tr",align:null},".True."),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle continuous thermal desorption.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"instantSublimation"),(0,l.kt)("td",{parentName:"tr",align:null},".False."),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle instantaneous sublimation of the ices at t")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"cosmicRayAttenuation"),(0,l.kt)("td",{parentName:"tr",align:null},".False."),(0,l.kt)("td",{parentName:"tr",align:null},"Use column density to attenuate cosmic ray ionisation rate following ",(0,l.kt)("a",{parentName:"td",href:"https://arxiv.org/abs/1803.09348"},"Padovani et al. 2018"),".")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ionModel"),(0,l.kt)("td",{parentName:"tr",align:null},"'L'"),(0,l.kt)("td",{parentName:"tr",align:null},"L/H model for cosmic ray attenuation ",(0,l.kt)("a",{parentName:"td",href:"https://arxiv.org/abs/1803.09348"},"Padovani et al. 2018"),".")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"improvedH2CRPDissociation"),(0,l.kt)("td",{parentName:"tr",align:null},".False."),(0,l.kt)("td",{parentName:"tr",align:null},"Use H2 CRP dissociation rate from ",(0,l.kt)("a",{parentName:"td",href:"https://arxiv.org/abs/1809.04168"},"Padovani et al. 2018b"),".")))),(0,l.kt)("h2",{id:"input-and-output"},"Input and Output"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Parameter"),(0,l.kt)("th",{parentName:"tr",align:null},"Default Value"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"outputFile"),(0,l.kt)("td",{parentName:"tr",align:null},'"output/full.dat"'),(0,l.kt)("td",{parentName:"tr",align:null},"File to write full output of UCLCHEM. This includes physical parameter values and all abundances at every time step.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"columnFile"),(0,l.kt)("td",{parentName:"tr",align:null},'"output/column.dat"'),(0,l.kt)("td",{parentName:"tr",align:null},"File to write specific species abundances, see outSpecies.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"writeStep"),(0,l.kt)("td",{parentName:"tr",align:null},"1"),(0,l.kt)("td",{parentName:"tr",align:null},"Writing to columnFile only happens every writeStep timesteps.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"abundSaveFile"),(0,l.kt)("td",{parentName:"tr",align:null},"None"),(0,l.kt)("td",{parentName:"tr",align:null},"File to store final abundances at the end of the model so future models can use them as the initial abundances. If not provided, no file will be produced.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"abundLoadFile"),(0,l.kt)("td",{parentName:"tr",align:null},"None"),(0,l.kt)("td",{parentName:"tr",align:null},"File from which to load initial abundances for the model, created through ",(0,l.kt)("inlineCode",{parentName:"td"},"abundSaveFile"),". If not provided, the model starts from elemental gas.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"outSpecies"),(0,l.kt)("td",{parentName:"tr",align:null},"None"),(0,l.kt)("td",{parentName:"tr",align:null},"A space separated list of species to output to columnFile. Supplied as a separate list argument to most python functions, see python API docs.")))),(0,l.kt)("h2",{id:"initial-abundances"},"Initial Abundances"),(0,l.kt)("p",null,(0,l.kt)("em",{parentName:"p"},"Unless otherwise specified, we take all abundances from Jenkins et al. 2009, using the heavily depleted case from Table 4.")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Parameter"),(0,l.kt)("th",{parentName:"tr",align:null},"Default Value"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"metallicity"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Scale the abundances of all elements heavier than He by this factor.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ion"),(0,l.kt)("td",{parentName:"tr",align:null},"2"),(0,l.kt)("td",{parentName:"tr",align:null},"Sets how much elemental C is initially atomic (0")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fh"),(0,l.kt)("td",{parentName:"tr",align:null},"0.5"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of H is always 1 by definition because abundances are relative to number of H nuclei. Use fh to set how much to initially put in atomic H, the rest goes to H2.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fhe"),(0,l.kt)("td",{parentName:"tr",align:null},"0.1"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of He.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fc"),(0,l.kt)("td",{parentName:"tr",align:null},"1.77d-04"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of C.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fo"),(0,l.kt)("td",{parentName:"tr",align:null},"3.34d-04"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of O.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fn"),(0,l.kt)("td",{parentName:"tr",align:null},"6.18d-05"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of N.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fs"),(0,l.kt)("td",{parentName:"tr",align:null},"3.51d-6"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of S.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fmg"),(0,l.kt)("td",{parentName:"tr",align:null},"2.256d-07"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of Mg.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fsi"),(0,l.kt)("td",{parentName:"tr",align:null},"1.78d-06"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of Si.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fcl"),(0,l.kt)("td",{parentName:"tr",align:null},"3.39d-08"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of Cl.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fp"),(0,l.kt)("td",{parentName:"tr",align:null},"7.78d-08"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of P.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ffe"),(0,l.kt)("td",{parentName:"tr",align:null},"2.01d-7"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of Fe.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ff"),(0,l.kt)("td",{parentName:"tr",align:null},"3.6d-08"),(0,l.kt)("td",{parentName:"tr",align:null},"fp depleted 1/100 of solar from Asplund 2009.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fd"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"The following elements are not typically used. We do not recommend any particular value.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fli"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of Li.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fna"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of Na.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fpah"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Total initial abundance of PAHs.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"f15n"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Total initial abundance of 15N.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"f13c"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Total initial abundance of 13C.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"f18O"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Total initial abundance of 18O.")))),(0,l.kt)("h2",{id:"integration-controls"},"Integration Controls"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Parameter"),(0,l.kt)("th",{parentName:"tr",align:null},"Default Value"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"reltol"),(0,l.kt)("td",{parentName:"tr",align:null},"1d-8"),(0,l.kt)("td",{parentName:"tr",align:null},"Relative tolerance for integration, see ",(0,l.kt)("a",{parentName:"td",href:"/docs/trouble-integration"},"integration docs")," for advice.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"abstol_factor"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0d-14"),(0,l.kt)("td",{parentName:"tr",align:null},"Absolute tolerance for integration is calculated by multiplying species abundance by this factor.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"abstol_min"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0d-25"),(0,l.kt)("td",{parentName:"tr",align:null},"Minimum value absolute tolerances can take.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"MXSTEP"),(0,l.kt)("td",{parentName:"tr",align:null},"10000"),(0,l.kt)("td",{parentName:"tr",align:null},"Maximum steps allowed in integration before warning is thrown.")))),(0,l.kt)("h2",{id:"here-be-dragons"},"Here be Dragons"),(0,l.kt)("p",null,(0,l.kt)("em",{parentName:"p"},"These are not recommended to be changed unless you know what you are doing")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Parameter"),(0,l.kt)("th",{parentName:"tr",align:null},"Default Value"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ebmaxh2"),(0,l.kt)("td",{parentName:"tr",align:null},"1.21d3"),(0,l.kt)("td",{parentName:"tr",align:null},"Maximum binding energy of species desorbed by H2 formation.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ebmaxcr"),(0,l.kt)("td",{parentName:"tr",align:null},"1.21d3"),(0,l.kt)("td",{parentName:"tr",align:null},"Maximum binding energy of species desorbed by cosmic ray ionisation.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ebmaxuvcr"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0d4"),(0,l.kt)("td",{parentName:"tr",align:null},"Maximum binding energy of species desorbed by UV photons.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"epsilon"),(0,l.kt)("td",{parentName:"tr",align:null},"0.01"),(0,l.kt)("td",{parentName:"tr",align:null},"Number of molecules desorbed per H2 formation.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"uv_yield"),(0,l.kt)("td",{parentName:"tr",align:null},"0.1"),(0,l.kt)("td",{parentName:"tr",align:null},"Number of molecules desorbed per UV photon.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"phi"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0d5"),(0,l.kt)("td",{parentName:"tr",align:null},"Number of molecules desorbed per cosmic ray ionisation.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"uvcreff"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0d-3"),(0,l.kt)("td",{parentName:"tr",align:null},"Ratio of CR induced UV photons to ISRF UV photons.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"omega"),(0,l.kt)("td",{parentName:"tr",align:null},"0.5"),(0,l.kt)("td",{parentName:"tr",align:null},"Dust grain albedo.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"alpha"),(0,l.kt)("td",{parentName:"tr",align:null},"{1:0.0,2:0.0}"),(0,l.kt)("td",{parentName:"tr",align:null},"Set alpha coeffecients of reactions using a python dictionary where keys are reaction numbers and values are the coefficients. Once you do this, you cannot return to the default value in the same python script or without restarting the kernel in iPython. See the chemistry docs for how alpha is used for each reaction type.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"beta"),(0,l.kt)("td",{parentName:"tr",align:null},"{1:0.0,2:0.0}"),(0,l.kt)("td",{parentName:"tr",align:null},"Set beta coeffecients of reactions using a python dictionary where keys are reaction numbers and values are the coefficients. Once you do this, you cannot return to the default value in the same python script or without restarting the kernel in iPython. See the chemistry docs for how beta is used for each reaction type.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"gama"),(0,l.kt)("td",{parentName:"tr",align:null},"{1:0.0,2:0.0}"),(0,l.kt)("td",{parentName:"tr",align:null},"Set gama coeffecients of reactions using a python dictionary where keys are reaction numbers and values are the coefficients. Once you do this, you cannot return to the default value in the same python script or without restarting the kernel in iPython. See the chemistry docs for how gama is used for each reaction type.")))))}N.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ba4d4e72.9145b23e.js b/assets/js/ba4d4e72.9145b23e.js new file mode 100644 index 00000000..c51ddc9f --- /dev/null +++ b/assets/js/ba4d4e72.9145b23e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7209],{3905:(t,a,e)=>{e.d(a,{Zo:()=>s,kt:()=>N});var n=e(7294);function r(t,a,e){return a in t?Object.defineProperty(t,a,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[a]=e,t}function l(t,a){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);a&&(n=n.filter((function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable}))),e.push.apply(e,n)}return e}function i(t){for(var a=1;a=0||(r[e]=t[e]);return r}(t,a);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,e)&&(r[e]=t[e])}return r}var p=n.createContext({}),o=function(t){var a=n.useContext(p),e=a;return t&&(e="function"==typeof t?t(a):i(i({},a),t)),e},s=function(t){var a=o(t.components);return n.createElement(p.Provider,{value:a},t.children)},d={inlineCode:"code",wrapper:function(t){var a=t.children;return n.createElement(n.Fragment,{},a)}},u=n.forwardRef((function(t,a){var e=t.components,r=t.mdxType,l=t.originalType,p=t.parentName,s=m(t,["components","mdxType","originalType","parentName"]),u=o(e),N=r,k=u["".concat(p,".").concat(N)]||u[N]||d[N]||l;return e?n.createElement(k,i(i({ref:a},s),{},{components:e})):n.createElement(k,i({ref:a},s))}));function N(t,a){var e=arguments,r=a&&a.mdxType;if("string"==typeof t||r){var l=e.length,i=new Array(l);i[0]=u;var m={};for(var p in a)hasOwnProperty.call(a,p)&&(m[p]=a[p]);m.originalType=t,m.mdxType="string"==typeof t?t:r,i[1]=m;for(var o=2;o{e.r(a),e.d(a,{assets:()=>s,contentTitle:()=>p,default:()=>N,frontMatter:()=>m,metadata:()=>o,toc:()=>d});var n=e(7462),r=e(3366),l=(e(7294),e(3905)),i=["components"],m={id:"parameters",title:"Model Parameters"},p=void 0,o={unversionedId:"parameters",id:"version-v3.1.0/parameters",title:"Model Parameters",description:"UCLCHEM will default to these values unless they are overridden by user. Users can override these by adding the variable name as written here in the paramdict argument of any UCLCHEM model function. paramdict is not case sensitive.",source:"@site/versioned_docs/version-v3.1.0/start-parameters.md",sourceDirName:".",slug:"/parameters",permalink:"/docs/v3.1.0/parameters",draft:!1,tags:[],version:"v3.1.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"parameters",title:"Model Parameters"},sidebar:"docs",previous:{title:"Creating a Network",permalink:"/docs/v3.1.0/network"},next:{title:"Python Reference",permalink:"/docs/v3.1.0/pythonapi"}},s={},d=[{value:"Physical Variables",id:"physical-variables",level:2},{value:"Behavioural Controls",id:"behavioural-controls",level:2},{value:"Input and Output",id:"input-and-output",level:2},{value:"Initial Abundances",id:"initial-abundances",level:2},{value:"Integration Controls",id:"integration-controls",level:2},{value:"Here be Dragons",id:"here-be-dragons",level:2}],u={toc:d};function N(t){var a=t.components,e=(0,r.Z)(t,i);return(0,l.kt)("wrapper",(0,n.Z)({},u,e,{components:a,mdxType:"MDXLayout"}),(0,l.kt)("p",null,"UCLCHEM will default to these values unless they are overridden by user. Users can override these by adding the variable name as written here in the param_dict argument of any UCLCHEM model function. param_dict is not case sensitive."),(0,l.kt)("h2",{id:"physical-variables"},"Physical Variables"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Parameter"),(0,l.kt)("th",{parentName:"tr",align:null},"Default Value"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"initialTemp"),(0,l.kt)("td",{parentName:"tr",align:null},"10.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Initial gas temperature in Kelvin for all gas parcels in model.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"initialDens"),(0,l.kt)("td",{parentName:"tr",align:null},"1.00d2"),(0,l.kt)("td",{parentName:"tr",align:null},"Initial gas density in H nuclei per cm",(0,l.kt)("span",{parentName:"td",className:"math math-inline"},(0,l.kt)("span",{parentName:"span",className:"katex"},(0,l.kt)("span",{parentName:"span",className:"katex-mathml"},(0,l.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,l.kt)("semantics",{parentName:"math"},(0,l.kt)("mrow",{parentName:"semantics"},(0,l.kt)("msup",{parentName:"mrow"},(0,l.kt)("mrow",{parentName:"msup"}),(0,l.kt)("mrow",{parentName:"msup"},(0,l.kt)("mo",{parentName:"mrow"},"\u2212"),(0,l.kt)("mn",{parentName:"mrow"},"3")))),(0,l.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-3}")))),(0,l.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,l.kt)("span",{parentName:"span",className:"base"},(0,l.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,l.kt)("span",{parentName:"span",className:"mord"},(0,l.kt)("span",{parentName:"span"}),(0,l.kt)("span",{parentName:"span",className:"msupsub"},(0,l.kt)("span",{parentName:"span",className:"vlist-t"},(0,l.kt)("span",{parentName:"span",className:"vlist-r"},(0,l.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,l.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,l.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,l.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,l.kt)("span",{parentName:"span",className:"mord mtight"},(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"3")))))))))))))," for all gas parcels in model.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"finalDens"),(0,l.kt)("td",{parentName:"tr",align:null},"1.00d5"),(0,l.kt)("td",{parentName:"tr",align:null},"Final gas density achieved via freefall.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"currentTime"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Time at start of model in years.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"finalTime"),(0,l.kt)("td",{parentName:"tr",align:null},"5.0d6"),(0,l.kt)("td",{parentName:"tr",align:null},"Time to stop model in years, if not using ",(0,l.kt)("inlineCode",{parentName:"td"},"endAtFinalDensity")," below.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"radfield"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Interstellar radiation field in Habing")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"zeta"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Cosmic ray ionisation rate as multiple of ",(0,l.kt)("span",{parentName:"td",className:"math math-inline"},(0,l.kt)("span",{parentName:"span",className:"katex"},(0,l.kt)("span",{parentName:"span",className:"katex-mathml"},(0,l.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,l.kt)("semantics",{parentName:"math"},(0,l.kt)("mrow",{parentName:"semantics"},(0,l.kt)("mn",{parentName:"mrow"},"1.31"),(0,l.kt)("msup",{parentName:"mrow"},(0,l.kt)("mn",{parentName:"msup"},"0"),(0,l.kt)("mrow",{parentName:"msup"},(0,l.kt)("mo",{parentName:"mrow"},"\u2212"),(0,l.kt)("mn",{parentName:"mrow"},"17"))),(0,l.kt)("msup",{parentName:"mrow"},(0,l.kt)("mi",{parentName:"msup"},"s"),(0,l.kt)("mrow",{parentName:"msup"},(0,l.kt)("mo",{parentName:"mrow"},"\u2212"),(0,l.kt)("mn",{parentName:"mrow"},"1")))),(0,l.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"1.3 10^{-17} s^{-1}")))),(0,l.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,l.kt)("span",{parentName:"span",className:"base"},(0,l.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,l.kt)("span",{parentName:"span",className:"mord"},"1"),(0,l.kt)("span",{parentName:"span",className:"mord"},"."),(0,l.kt)("span",{parentName:"span",className:"mord"},"3"),(0,l.kt)("span",{parentName:"span",className:"mord"},"1"),(0,l.kt)("span",{parentName:"span",className:"mord"},(0,l.kt)("span",{parentName:"span",className:"mord"},"0"),(0,l.kt)("span",{parentName:"span",className:"msupsub"},(0,l.kt)("span",{parentName:"span",className:"vlist-t"},(0,l.kt)("span",{parentName:"span",className:"vlist-r"},(0,l.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,l.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,l.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,l.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,l.kt)("span",{parentName:"span",className:"mord mtight"},(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"1"),(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"7"))))))))),(0,l.kt)("span",{parentName:"span",className:"mord"},(0,l.kt)("span",{parentName:"span",className:"mord mathnormal"},"s"),(0,l.kt)("span",{parentName:"span",className:"msupsub"},(0,l.kt)("span",{parentName:"span",className:"vlist-t"},(0,l.kt)("span",{parentName:"span",className:"vlist-r"},(0,l.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,l.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,l.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,l.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,l.kt)("span",{parentName:"span",className:"mord mtight"},(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,l.kt)("span",{parentName:"span",className:"mord mtight"},"1"))))))))))))))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"rout"),(0,l.kt)("td",{parentName:"tr",align:null},"0.05"),(0,l.kt)("td",{parentName:"tr",align:null},"Outer radius of cloud being modelled in pc.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"rin"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Minimum radial distance from cloud centre to consider.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"baseAv"),(0,l.kt)("td",{parentName:"tr",align:null},"2.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Extinction at cloud edge, Av of a parcel at rout.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"points"),(0,l.kt)("td",{parentName:"tr",align:null},"1"),(0,l.kt)("td",{parentName:"tr",align:null},"Number of gas parcels equally spaced between rin to rout to consider")))),(0,l.kt)("h2",{id:"behavioural-controls"},"Behavioural Controls"),(0,l.kt)("p",null,(0,l.kt)("em",{parentName:"p"},"The following parameters generally turn on or off features of the model. If a parameter is set to ",(0,l.kt)("inlineCode",{parentName:"em"},"True"),", then it is turned on. If it is set to ",(0,l.kt)("inlineCode",{parentName:"em"},"False"),", then it is turned off.")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Parameter"),(0,l.kt)("th",{parentName:"tr",align:null},"Default Value"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"freezeFactor"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Modify freeze out rate of gas parcels by this factor.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"endAtFinalDensity"),(0,l.kt)("td",{parentName:"tr",align:null},".False."),(0,l.kt)("td",{parentName:"tr",align:null},"Choose to end model at final density, otherwise end at final time.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"freefall"),(0,l.kt)("td",{parentName:"tr",align:null},".False."),(0,l.kt)("td",{parentName:"tr",align:null},"Controls whether models density increaes following freefall equation.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"freefallFactor"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Modify freefall rate by factor, usually to slow it.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"desorb"),(0,l.kt)("td",{parentName:"tr",align:null},".True."),(0,l.kt)("td",{parentName:"tr",align:null},"Toggles all non-thermal desoprtion processes on or off.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"h2desorb"),(0,l.kt)("td",{parentName:"tr",align:null},".True."),(0,l.kt)("td",{parentName:"tr",align:null},"Individually toggle non-thermal desorption due to H2 formation.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"crdesorb"),(0,l.kt)("td",{parentName:"tr",align:null},".True."),(0,l.kt)("td",{parentName:"tr",align:null},"Individually toggle non-thermal desorption due to cosmic rays.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"uvdesorb"),(0,l.kt)("td",{parentName:"tr",align:null},".True."),(0,l.kt)("td",{parentName:"tr",align:null},"Individually toggle non-thermal desorption due to uv photons.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"thermdesorb"),(0,l.kt)("td",{parentName:"tr",align:null},".True."),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle continuous thermal desorption.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"instantSublimation"),(0,l.kt)("td",{parentName:"tr",align:null},".False."),(0,l.kt)("td",{parentName:"tr",align:null},"Toggle instantaneous sublimation of the ices at t")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"cosmicRayAttenuation"),(0,l.kt)("td",{parentName:"tr",align:null},".False."),(0,l.kt)("td",{parentName:"tr",align:null},"Use column density to attenuate cosmic ray ionisation rate following ",(0,l.kt)("a",{parentName:"td",href:"https://arxiv.org/abs/1803.09348"},"Padovani et al. 2018"),".")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ionModel"),(0,l.kt)("td",{parentName:"tr",align:null},"'L'"),(0,l.kt)("td",{parentName:"tr",align:null},"L/H model for cosmic ray attenuation ",(0,l.kt)("a",{parentName:"td",href:"https://arxiv.org/abs/1803.09348"},"Padovani et al. 2018"),".")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"improvedH2CRPDissociation"),(0,l.kt)("td",{parentName:"tr",align:null},".False."),(0,l.kt)("td",{parentName:"tr",align:null},"Use H2 CRP dissociation rate from ",(0,l.kt)("a",{parentName:"td",href:"https://arxiv.org/abs/1809.04168"},"Padovani et al. 2018b"),".")))),(0,l.kt)("h2",{id:"input-and-output"},"Input and Output"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Parameter"),(0,l.kt)("th",{parentName:"tr",align:null},"Default Value"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"outputFile"),(0,l.kt)("td",{parentName:"tr",align:null},'"output/full.dat"'),(0,l.kt)("td",{parentName:"tr",align:null},"File to write full output of UCLCHEM. This includes physical parameter values and all abundances at every time step.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"columnFile"),(0,l.kt)("td",{parentName:"tr",align:null},'"output/column.dat"'),(0,l.kt)("td",{parentName:"tr",align:null},"File to write specific species abundances, see outSpecies.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"writeStep"),(0,l.kt)("td",{parentName:"tr",align:null},"1"),(0,l.kt)("td",{parentName:"tr",align:null},"Writing to columnFile only happens every writeStep timesteps.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"abundSaveFile"),(0,l.kt)("td",{parentName:"tr",align:null},"None"),(0,l.kt)("td",{parentName:"tr",align:null},"File to store final abundances at the end of the model so future models can use them as the initial abundances. If not provided, no file will be produced.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"abundLoadFile"),(0,l.kt)("td",{parentName:"tr",align:null},"None"),(0,l.kt)("td",{parentName:"tr",align:null},"File from which to load initial abundances for the model, created through ",(0,l.kt)("inlineCode",{parentName:"td"},"abundSaveFile"),". If not provided, the model starts from elemental gas.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"outSpecies"),(0,l.kt)("td",{parentName:"tr",align:null},"None"),(0,l.kt)("td",{parentName:"tr",align:null},"A space separated list of species to output to columnFile. Supplied as a separate list argument to most python functions, see python API docs.")))),(0,l.kt)("h2",{id:"initial-abundances"},"Initial Abundances"),(0,l.kt)("p",null,(0,l.kt)("em",{parentName:"p"},"Unless otherwise specified, we take all abundances from Jenkins et al. 2009, using the heavily depleted case from Table 4.")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Parameter"),(0,l.kt)("th",{parentName:"tr",align:null},"Default Value"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"metallicity"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Scale the abundances of all elements heavier than He by this factor.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ion"),(0,l.kt)("td",{parentName:"tr",align:null},"2"),(0,l.kt)("td",{parentName:"tr",align:null},"Sets how much elemental C is initially atomic (0")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fh"),(0,l.kt)("td",{parentName:"tr",align:null},"0.5"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of H is always 1 by definition because abundances are relative to number of H nuclei. Use fh to set how much to initially put in atomic H, the rest goes to H2.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fhe"),(0,l.kt)("td",{parentName:"tr",align:null},"0.1"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of He.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fc"),(0,l.kt)("td",{parentName:"tr",align:null},"1.77d-04"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of C.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fo"),(0,l.kt)("td",{parentName:"tr",align:null},"3.34d-04"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of O.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fn"),(0,l.kt)("td",{parentName:"tr",align:null},"6.18d-05"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of N.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fs"),(0,l.kt)("td",{parentName:"tr",align:null},"3.51d-6"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of S.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fmg"),(0,l.kt)("td",{parentName:"tr",align:null},"2.256d-07"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of Mg.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fsi"),(0,l.kt)("td",{parentName:"tr",align:null},"1.78d-06"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of Si.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fcl"),(0,l.kt)("td",{parentName:"tr",align:null},"3.39d-08"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of Cl.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fp"),(0,l.kt)("td",{parentName:"tr",align:null},"7.78d-08"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of P.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ffe"),(0,l.kt)("td",{parentName:"tr",align:null},"2.01d-7"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of Fe.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ff"),(0,l.kt)("td",{parentName:"tr",align:null},"3.6d-08"),(0,l.kt)("td",{parentName:"tr",align:null},"fp depleted 1/100 of solar from Asplund 2009.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fd"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"The following elements are not typically used. We do not recommend any particular value.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fli"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of Li.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fna"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Total elemental abundance of Na.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"fpah"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Total initial abundance of PAHs.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"f15n"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Total initial abundance of 15N.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"f13c"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Total initial abundance of 13C.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"f18O"),(0,l.kt)("td",{parentName:"tr",align:null},"0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"Total initial abundance of 18O.")))),(0,l.kt)("h2",{id:"integration-controls"},"Integration Controls"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Parameter"),(0,l.kt)("th",{parentName:"tr",align:null},"Default Value"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"reltol"),(0,l.kt)("td",{parentName:"tr",align:null},"1d-8"),(0,l.kt)("td",{parentName:"tr",align:null},"Relative tolerance for integration, see ",(0,l.kt)("a",{parentName:"td",href:"/docs/trouble-integration"},"integration docs")," for advice.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"abstol_factor"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0d-14"),(0,l.kt)("td",{parentName:"tr",align:null},"Absolute tolerance for integration is calculated by multiplying species abundance by this factor.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"abstol_min"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0d-25"),(0,l.kt)("td",{parentName:"tr",align:null},"Minimum value absolute tolerances can take.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"MXSTEP"),(0,l.kt)("td",{parentName:"tr",align:null},"10000"),(0,l.kt)("td",{parentName:"tr",align:null},"Maximum steps allowed in integration before warning is thrown.")))),(0,l.kt)("h2",{id:"here-be-dragons"},"Here be Dragons"),(0,l.kt)("p",null,(0,l.kt)("em",{parentName:"p"},"These are not recommended to be changed unless you know what you are doing")),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Parameter"),(0,l.kt)("th",{parentName:"tr",align:null},"Default Value"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ebmaxh2"),(0,l.kt)("td",{parentName:"tr",align:null},"1.21d3"),(0,l.kt)("td",{parentName:"tr",align:null},"Maximum binding energy of species desorbed by H2 formation.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ebmaxcr"),(0,l.kt)("td",{parentName:"tr",align:null},"1.21d3"),(0,l.kt)("td",{parentName:"tr",align:null},"Maximum binding energy of species desorbed by cosmic ray ionisation.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ebmaxuvcr"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0d4"),(0,l.kt)("td",{parentName:"tr",align:null},"Maximum binding energy of species desorbed by UV photons.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"epsilon"),(0,l.kt)("td",{parentName:"tr",align:null},"0.01"),(0,l.kt)("td",{parentName:"tr",align:null},"Number of molecules desorbed per H2 formation.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"uv_yield"),(0,l.kt)("td",{parentName:"tr",align:null},"0.1"),(0,l.kt)("td",{parentName:"tr",align:null},"Number of molecules desorbed per UV photon.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"phi"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0d5"),(0,l.kt)("td",{parentName:"tr",align:null},"Number of molecules desorbed per cosmic ray ionisation.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"uvcreff"),(0,l.kt)("td",{parentName:"tr",align:null},"1.0d-3"),(0,l.kt)("td",{parentName:"tr",align:null},"Ratio of CR induced UV photons to ISRF UV photons.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"omega"),(0,l.kt)("td",{parentName:"tr",align:null},"0.5"),(0,l.kt)("td",{parentName:"tr",align:null},"Dust grain albedo.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"alpha"),(0,l.kt)("td",{parentName:"tr",align:null},"{1:0.0,2:0.0}"),(0,l.kt)("td",{parentName:"tr",align:null},"Set alpha coeffecients of reactions using a python dictionary where keys are reaction numbers and values are the coefficients. Once you do this, you cannot return to the default value in the same python script or without restarting the kernel in iPython. See the chemistry docs for how alpha is used for each reaction type.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"beta"),(0,l.kt)("td",{parentName:"tr",align:null},"{1:0.0,2:0.0}"),(0,l.kt)("td",{parentName:"tr",align:null},"Set beta coeffecients of reactions using a python dictionary where keys are reaction numbers and values are the coefficients. Once you do this, you cannot return to the default value in the same python script or without restarting the kernel in iPython. See the chemistry docs for how beta is used for each reaction type.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"gama"),(0,l.kt)("td",{parentName:"tr",align:null},"{1:0.0,2:0.0}"),(0,l.kt)("td",{parentName:"tr",align:null},"Set gama coeffecients of reactions using a python dictionary where keys are reaction numbers and values are the coefficients. Once you do this, you cannot return to the default value in the same python script or without restarting the kernel in iPython. See the chemistry docs for how gama is used for each reaction type.")))))}N.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/bef14caa.7a386ea5.js b/assets/js/bef14caa.7a386ea5.js deleted file mode 100644 index ccfd963d..00000000 --- a/assets/js/bef14caa.7a386ea5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9697],{4469:e=>{e.exports=JSON.parse('{"plugin":{"name":"docusaurus-plugin-content-blog","id":"default"}}')}}]); \ No newline at end of file diff --git a/assets/js/bef14caa.daa4453f.js b/assets/js/bef14caa.daa4453f.js new file mode 100644 index 00000000..e86dd80b --- /dev/null +++ b/assets/js/bef14caa.daa4453f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9697],{4469:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-blog","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/c17a6496.246e6d83.js b/assets/js/c17a6496.246e6d83.js new file mode 100644 index 00000000..bb87d4f6 --- /dev/null +++ b/assets/js/c17a6496.246e6d83.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5401],{3905:(e,t,l)=>{l.d(t,{Zo:()=>d,kt:()=>m});var n=l(7294);function r(e,t,l){return t in e?Object.defineProperty(e,t,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[t]=l,e}function a(e,t){var l=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),l.push.apply(l,n)}return l}function o(e){for(var t=1;t=0||(r[l]=e[l]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,l)&&(r[l]=e[l])}return r}var u=n.createContext({}),i=function(e){var t=n.useContext(u),l=t;return e&&(l="function"==typeof e?e(t):o(o({},t),e)),l},d=function(e){var t=i(e.components);return n.createElement(u.Provider,{value:t},e.children)},c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var l=e.components,r=e.mdxType,a=e.originalType,u=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=i(l),m=r,k=p["".concat(u,".").concat(m)]||p[m]||c[m]||a;return l?n.createElement(k,o(o({ref:t},d),{},{components:l})):n.createElement(k,o({ref:t},d))}));function m(e,t){var l=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=l.length,o=new Array(a);o[0]=p;var s={};for(var u in t)hasOwnProperty.call(t,u)&&(s[u]=t[u]);s.originalType=e,s.mdxType="string"==typeof e?e:r,o[1]=s;for(var i=2;i{l.r(t),l.d(t,{assets:()=>d,contentTitle:()=>u,default:()=>m,frontMatter:()=>s,metadata:()=>i,toc:()=>c});var n=l(7462),r=l(3366),a=(l(7294),l(3905)),o=["components"],s={},u="Running a Grid",i={unversionedId:"running_a_grid",id:"version-v3.2.0/running_a_grid",title:"Running a Grid",description:"A common task is to run UCLCHEM over a grid of parameter combinations. This notebook sets up a simple approach to doing so for regular grids.",source:"@site/versioned_docs/version-v3.2.0/running_a_grid.md",sourceDirName:".",slug:"/running_a_grid",permalink:"/docs/running_a_grid",draft:!1,tags:[],version:"v3.2.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{},sidebar:"docs",previous:{title:"Advanced Physical Modelling",permalink:"/docs/modelling_objects"},next:{title:"Chemical Analysis",permalink:"/docs/chemical_analysis"}},d={},c=[{value:"A Simple Grid",id:"a-simple-grid",level:2},{value:"Define Parameter Space",id:"define-parameter-space",level:3},{value:"Set up the model",id:"set-up-the-model",level:3},{value:"Run Grid",id:"run-grid",level:3},{value:"The Simple Way",id:"the-simple-way",level:4},{value:"The Fast Way",id:"the-fast-way",level:4},{value:"Checking Your Grid",id:"checking-your-grid",level:2},{value:"Complex Grid",id:"complex-grid",level:2},{value:"Summary",id:"summary",level:2}],p={toc:c};function m(e){var t=e.components,l=(0,r.Z)(e,o);return(0,a.kt)("wrapper",(0,n.Z)({},p,l,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"running-a-grid"},"Running a Grid"),(0,a.kt)("p",null,"A common task is to run UCLCHEM over a grid of parameter combinations. This notebook sets up a simple approach to doing so for regular grids."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"import uclchem\nimport numpy as np\nimport pandas as pd\nfrom multiprocessing import Pool\nimport os\n")),(0,a.kt)("h2",{id:"a-simple-grid"},"A Simple Grid"),(0,a.kt)("h3",{id:"define-parameter-space"},"Define Parameter Space"),(0,a.kt)("p",null,"First, we define our parameter space. We do this by using numpy and pandas to produce a table of all possible combinations of some parameters of interest."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},'# This part can be substituted with any choice of grid\n#here we just vary the density, temperature and zeta \ntemperatures = np.linspace(10, 50, 3)\ndensities = np.logspace(4,6,3)\nzetas = np.logspace(1, 3, 3)\n\n#meshgrid will give all combinations, then we shape into columns and put into a table\nparameterSpace = np.asarray(np.meshgrid(temperatures,densities,zetas)).reshape(3, -1)\nmodel_table=pd.DataFrame(parameterSpace.T, columns=[\'temperature\',\'density\',\'zeta\'])\n\n#keep track of where each model output will be saved and make sure that folder exists\nmodel_table["outputFile"]=model_table.apply(lambda row: f"../grid_folder/{row.temperature}_{row.density}_{row.zeta}.csv", axis=1)\nprint(f"{model_table.shape[0]} models to run")\nif not os.path.exists("../grid_folder"):\n os.makedirs("../grid_folder")\n')),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"27 models to run\n")),(0,a.kt)("h3",{id:"set-up-the-model"},"Set up the model"),(0,a.kt)("p",null,"Next, we need a function that will run our model. We write a quick function that takes a row from our dataframe and uses it to populate a parameter dictionary for UCLCHEM and then run a cloud model. We can then map our dataframe to that function."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},'def run_model(row):\n #basic set of parameters we\'ll use for this grid. \n ParameterDictionary = {"endatfinaldensity":False,\n "freefall": False,\n "initialDens": row.density,\n "initialTemp": row.temperature,\n "zeta": row.zeta,\n "outputFile": row.outputFile,\n "finalTime":1.0e6,\n "baseAv":10}\n result = uclchem.model.cloud(param_dict=ParameterDictionary)\n return result[0]#just the integer error code\n')),(0,a.kt)("h3",{id:"run-grid"},"Run Grid"),(0,a.kt)("h4",{id:"the-simple-way"},"The Simple Way"),(0,a.kt)("p",null,"We can use pandas apply to simply pass each row to our helper function in turn. This will take some time since we're running the models one by one. I'll use the ",(0,a.kt)("inlineCode",{parentName:"p"},"head")," function just to run five rows as an example here."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"result=model_table.head().apply(run_model, axis=1)\n")),(0,a.kt)("h4",{id:"the-fast-way"},"The Fast Way"),(0,a.kt)("p",null,"Alternatively, we can use multiprocessing to run the models in parallel. That will allow us to run many models simulataneously and make use of all the cores available on our machine."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"def pool_func(x):\n i,row=x\n return run_model(row)\n\nwith Pool(processes=6) as pool:\n results = pool.map(pool_func, model_table.iterrows())\n")),(0,a.kt)("h2",{id:"checking-your-grid"},"Checking Your Grid"),(0,a.kt)("p",null,"After running, we should do two things. First, let's add ",(0,a.kt)("inlineCode",{parentName:"p"},"results")," to our dataframe as a new column. Positive results mean a successful UCLCHEM run and negative ones are unsuccessful. Then we can run each model through ",(0,a.kt)("inlineCode",{parentName:"p"},"check_element_conservation")," to check the integration was successful. We'll use both these things to flag models that failed in some way."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"def element_check(output_file):\n df=uclchem.analysis.read_output_file(output_file)\n #get conservation values\n conserves=uclchem.analysis.check_element_conservation(df)\n #check if any error is greater than 1%\n return all([float(x[:-1])<1 for x in conserves.values()])\n")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},'model_table["run_result"]=results\nmodel_table["elements_conserved"]=model_table["outputFile"].map(element_check)\n#check both conditions are met\nmodel_table["Successful"]=(model_table.run_result>=0) & (model_table.elements_conserved)\n')),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"model_table.head()\n")),(0,a.kt)("div",null,(0,a.kt)("table",{border:"1",class:"dataframe"},(0,a.kt)("thead",null,(0,a.kt)("tr",null,(0,a.kt)("th",null),(0,a.kt)("th",null,"temperature"),(0,a.kt)("th",null,"density"),(0,a.kt)("th",null,"zeta"),(0,a.kt)("th",null,"outputFile"),(0,a.kt)("th",null,"run_result"),(0,a.kt)("th",null,"elements_conserved"),(0,a.kt)("th",null,"Successful"))),(0,a.kt)("tbody",null,(0,a.kt)("tr",null,(0,a.kt)("th",null,"0"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"../grid_folder/10.0_10000.0_10.0.csv"),(0,a.kt)("td",null,"1"),(0,a.kt)("td",null,"True"),(0,a.kt)("td",null,"True")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"1"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"100.0"),(0,a.kt)("td",null,"../grid_folder/10.0_10000.0_100.0.csv"),(0,a.kt)("td",null,"1"),(0,a.kt)("td",null,"True"),(0,a.kt)("td",null,"True")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"2"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"1000.0"),(0,a.kt)("td",null,"../grid_folder/10.0_10000.0_1000.0.csv"),(0,a.kt)("td",null,"1"),(0,a.kt)("td",null,"True"),(0,a.kt)("td",null,"True")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"3"),(0,a.kt)("td",null,"30.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"../grid_folder/30.0_10000.0_10.0.csv"),(0,a.kt)("td",null,"1"),(0,a.kt)("td",null,"True"),(0,a.kt)("td",null,"True")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"4"),(0,a.kt)("td",null,"30.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"100.0"),(0,a.kt)("td",null,"../grid_folder/30.0_10000.0_100.0.csv"),(0,a.kt)("td",null,"1"),(0,a.kt)("td",null,"True"),(0,a.kt)("td",null,"True"))))),(0,a.kt)("h2",{id:"complex-grid"},"Complex Grid"),(0,a.kt)("p",null,"The above was straightforward enough but what about a modelling a grid of shocks? Not only do we want to loop over relevant parameters, we also need to run a few preliminary models to give ourselves starting abundances. We'll start by defining two helper functions, one to run our preliminary cloud and one to run the shock."),(0,a.kt)("p",null,"Let's further imagine that we want to obtain the abundances of several species at the end of the model. We can use the ",(0,a.kt)("inlineCode",{parentName:"p"},"out_species")," parameter to specify which species we want to track and return them to our dataframe."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},'out_species=["CO","H2O","CH3OH"]\n\ndef run_prelim(density):\n #basic set of parameters we\'ll use for this grid. \n ParameterDictionary = {"endatfinaldensity":True,\n "freefall": True,\n "initialDens":1e2,\n "finalDens": density,\n "initialTemp": 10.0,\n "abundSaveFile": f"../grid_folder/starts/{density:.0f}.csv",\n "baseAv":1}\n result = uclchem.model.cloud(param_dict=ParameterDictionary)\n return result\n\ndef run_model(row):\n i,row=row # we know we\'re receiving the iterrows() tuple\n #basic set of parameters we\'ll use for this grid. \n ParameterDictionary = {"endatfinaldensity":False,\n "freefall": False,\n "initialDens": row.density,\n "initialTemp": 10.0,\n "outputFile": row.outputFile,\n "abundLoadFile": f"../grid_folder/starts/{row.density:.0f}.csv",\n "finalTime":1.0e5,\n "abstol_factor":1e-18,\n "reltol":1e-12,\n "baseAv":1}\n result = uclchem.model.cshock(row.shock_velocity,param_dict=ParameterDictionary,out_species=out_species)\n #First check UCLCHEM\'s result flag to seeif it\'s positive, if it is return the abundances\n if result[0]>0:\n return result[:]\n #if not, return NaNs because model failed\n else:\n return([np.nan]*len(out_species))\n')),(0,a.kt)("p",null,"Then we define our parameter space again. We'll create two folders, one to store a set of initial abundances for each starting density in our model and another to store our shock outputs."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},'# This part can be substituted with any choice of grid\n# here we just combine various initial and final densities into an easily iterable array\nshock_velocities = np.linspace(10, 50, 3)\ndensities = np.logspace(4,6,3)\n\nparameterSpace = np.asarray(np.meshgrid(shock_velocities,densities)).reshape(2, -1)\nmodel_table=pd.DataFrame(parameterSpace.T, columns=[\'shock_velocity\',\'density\'])\nmodel_table["outputFile"]=model_table.apply(lambda row: f"../grid_folder/shocks/{row.shock_velocity}_{row.density}.csv", axis=1)\nprint(f"{model_table.shape[0]} models to run")\n\nfor folder in ["starts","shocks"]:\n if not os.path.exists(f"../grid_folder/{folder}"):\n os.makedirs(f"../grid_folder/{folder}")\n')),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"9 models to run\n")),(0,a.kt)("p",null,"We can then run our preliminary models followed by our science models. The science models will return the abundances at the final time step of each run so we can unpack those directly to our dataframe."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"with Pool(processes=3) as pool:\n results = pool.map(run_prelim, densities)\n")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},'with Pool(processes=6) as pool:\n results = pool.map(run_model, model_table.iterrows())\nmodel_table[["Result","Dissipation Time"]+out_species]=results\n')),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"model_table\n")),(0,a.kt)("div",null,(0,a.kt)("table",{border:"1",class:"dataframe"},(0,a.kt)("thead",null,(0,a.kt)("tr",null,(0,a.kt)("th",null),(0,a.kt)("th",null,"shock_velocity"),(0,a.kt)("th",null,"density"),(0,a.kt)("th",null,"outputFile"),(0,a.kt)("th",null,"Result"),(0,a.kt)("th",null,"Dissipation Time"),(0,a.kt)("th",null,"CO"),(0,a.kt)("th",null,"H2O"),(0,a.kt)("th",null,"CH3OH"))),(0,a.kt)("tbody",null,(0,a.kt)("tr",null,(0,a.kt)("th",null,"0"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/10.0_10000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"1171.898734"),(0,a.kt)("td",null,"7.316441e-05"),(0,a.kt)("td",null,"4.355495e-06"),(0,a.kt)("td",null,"4.624479e-07")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"1"),(0,a.kt)("td",null,"30.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/30.0_10000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"1171.898734"),(0,a.kt)("td",null,"2.591790e-05"),(0,a.kt)("td",null,"2.113885e-05"),(0,a.kt)("td",null,"1.196330e-07")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"2"),(0,a.kt)("td",null,"50.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/50.0_10000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"1171.898734"),(0,a.kt)("td",null,"1.320822e-05"),(0,a.kt)("td",null,"8.126066e-06"),(0,a.kt)("td",null,"1.989081e-08")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"3"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"100000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/10.0_100000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"117.189873"),(0,a.kt)("td",null,"1.082083e-07"),(0,a.kt)("td",null,"1.158740e-09"),(0,a.kt)("td",null,"3.697607e-10")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"4"),(0,a.kt)("td",null,"30.0"),(0,a.kt)("td",null,"100000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/30.0_100000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"117.189873"),(0,a.kt)("td",null,"1.121259e-10"),(0,a.kt)("td",null,"3.789106e-10"),(0,a.kt)("td",null,"4.907284e-10")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"5"),(0,a.kt)("td",null,"50.0"),(0,a.kt)("td",null,"100000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/50.0_100000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"117.189873"),(0,a.kt)("td",null,"2.454392e-10"),(0,a.kt)("td",null,"3.443643e-10"),(0,a.kt)("td",null,"6.454671e-10")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"6"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"1000000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/10.0_1000000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"11.718987"),(0,a.kt)("td",null,"1.084005e-10"),(0,a.kt)("td",null,"3.565914e-11"),(0,a.kt)("td",null,"4.816630e-11")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"7"),(0,a.kt)("td",null,"30.0"),(0,a.kt)("td",null,"1000000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/30.0_1000000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"11.718987"),(0,a.kt)("td",null,"1.897782e-10"),(0,a.kt)("td",null,"6.498499e-11"),(0,a.kt)("td",null,"7.847277e-12")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"8"),(0,a.kt)("td",null,"50.0"),(0,a.kt)("td",null,"1000000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/50.0_1000000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"11.718987"),(0,a.kt)("td",null,"2.167651e-10"),(0,a.kt)("td",null,"6.600196e-12"),(0,a.kt)("td",null,"3.412340e-12"))))),(0,a.kt)("h2",{id:"summary"},"Summary"),(0,a.kt)("p",null,"There are many ways to run grids of models and users will naturally develop their own methods. This notebook is just a simple example of how to run UCLCHEM for many parameter combinations whilst producing a useful output (the model_table) to keep track of all the combinations that were run. In a real script, we'd save the model file to csv at the end."),(0,a.kt)("p",null,"For much larger grids, it's recommended that you find a way to make your script robust to failure. Over a huge range of parameters, it is quite likely UCLCHEM will hit integration trouble for at least a few parameter combinations. Very occasionally, UCLCHEM will get caught in a loop where it fails to integrate and cannot adjust its strategy to manage it. This isn't a problem for small grids as the model can be stopped and the tolerances adjusted. However, for very large grids, you may end up locking all threads as they each get stuck on a different model. The best solution we've found for this case is to add a check so that models in your dataframe are skipped if their file already exists, this allows you to stop and restart the grid script as needed."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c17a6496.d93e17a5.js b/assets/js/c17a6496.d93e17a5.js deleted file mode 100644 index 305e8d02..00000000 --- a/assets/js/c17a6496.d93e17a5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5401],{3905:(e,t,l)=>{l.d(t,{Zo:()=>d,kt:()=>m});var n=l(7294);function r(e,t,l){return t in e?Object.defineProperty(e,t,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[t]=l,e}function a(e,t){var l=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),l.push.apply(l,n)}return l}function o(e){for(var t=1;t=0||(r[l]=e[l]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,l)&&(r[l]=e[l])}return r}var u=n.createContext({}),i=function(e){var t=n.useContext(u),l=t;return e&&(l="function"==typeof e?e(t):o(o({},t),e)),l},d=function(e){var t=i(e.components);return n.createElement(u.Provider,{value:t},e.children)},c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var l=e.components,r=e.mdxType,a=e.originalType,u=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=i(l),m=r,k=p["".concat(u,".").concat(m)]||p[m]||c[m]||a;return l?n.createElement(k,o(o({ref:t},d),{},{components:l})):n.createElement(k,o({ref:t},d))}));function m(e,t){var l=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=l.length,o=new Array(a);o[0]=p;var s={};for(var u in t)hasOwnProperty.call(t,u)&&(s[u]=t[u]);s.originalType=e,s.mdxType="string"==typeof e?e:r,o[1]=s;for(var i=2;i{l.r(t),l.d(t,{assets:()=>d,contentTitle:()=>u,default:()=>m,frontMatter:()=>s,metadata:()=>i,toc:()=>c});var n=l(7462),r=l(3366),a=(l(7294),l(3905)),o=["components"],s={},u="Running a Grid",i={unversionedId:"running_a_grid",id:"version-v3.2.0/running_a_grid",title:"Running a Grid",description:"A common task is to run UCLCHEM over a grid of parameter combinations. This notebook sets up a simple approach to doing so for regular grids.",source:"@site/versioned_docs/version-v3.2.0/running_a_grid.md",sourceDirName:".",slug:"/running_a_grid",permalink:"/docs/running_a_grid",tags:[],version:"v3.2.0",frontMatter:{},sidebar:"docs",previous:{title:"Advanced Physical Modelling",permalink:"/docs/modelling_objects"},next:{title:"Chemical Analysis",permalink:"/docs/chemical_analysis"}},d={},c=[{value:"A Simple Grid",id:"a-simple-grid",level:2},{value:"Define Parameter Space",id:"define-parameter-space",level:3},{value:"Set up the model",id:"set-up-the-model",level:3},{value:"Run Grid",id:"run-grid",level:3},{value:"The Simple Way",id:"the-simple-way",level:4},{value:"The Fast Way",id:"the-fast-way",level:4},{value:"Checking Your Grid",id:"checking-your-grid",level:2},{value:"Complex Grid",id:"complex-grid",level:2},{value:"Summary",id:"summary",level:2}],p={toc:c};function m(e){var t=e.components,l=(0,r.Z)(e,o);return(0,a.kt)("wrapper",(0,n.Z)({},p,l,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"running-a-grid"},"Running a Grid"),(0,a.kt)("p",null,"A common task is to run UCLCHEM over a grid of parameter combinations. This notebook sets up a simple approach to doing so for regular grids."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"import uclchem\nimport numpy as np\nimport pandas as pd\nfrom multiprocessing import Pool\nimport os\n")),(0,a.kt)("h2",{id:"a-simple-grid"},"A Simple Grid"),(0,a.kt)("h3",{id:"define-parameter-space"},"Define Parameter Space"),(0,a.kt)("p",null,"First, we define our parameter space. We do this by using numpy and pandas to produce a table of all possible combinations of some parameters of interest."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},'# This part can be substituted with any choice of grid\n#here we just vary the density, temperature and zeta \ntemperatures = np.linspace(10, 50, 3)\ndensities = np.logspace(4,6,3)\nzetas = np.logspace(1, 3, 3)\n\n#meshgrid will give all combinations, then we shape into columns and put into a table\nparameterSpace = np.asarray(np.meshgrid(temperatures,densities,zetas)).reshape(3, -1)\nmodel_table=pd.DataFrame(parameterSpace.T, columns=[\'temperature\',\'density\',\'zeta\'])\n\n#keep track of where each model output will be saved and make sure that folder exists\nmodel_table["outputFile"]=model_table.apply(lambda row: f"../grid_folder/{row.temperature}_{row.density}_{row.zeta}.csv", axis=1)\nprint(f"{model_table.shape[0]} models to run")\nif not os.path.exists("../grid_folder"):\n os.makedirs("../grid_folder")\n')),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"27 models to run\n")),(0,a.kt)("h3",{id:"set-up-the-model"},"Set up the model"),(0,a.kt)("p",null,"Next, we need a function that will run our model. We write a quick function that takes a row from our dataframe and uses it to populate a parameter dictionary for UCLCHEM and then run a cloud model. We can then map our dataframe to that function."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},'def run_model(row):\n #basic set of parameters we\'ll use for this grid. \n ParameterDictionary = {"endatfinaldensity":False,\n "freefall": False,\n "initialDens": row.density,\n "initialTemp": row.temperature,\n "zeta": row.zeta,\n "outputFile": row.outputFile,\n "finalTime":1.0e6,\n "baseAv":10}\n result = uclchem.model.cloud(param_dict=ParameterDictionary)\n return result[0]#just the integer error code\n')),(0,a.kt)("h3",{id:"run-grid"},"Run Grid"),(0,a.kt)("h4",{id:"the-simple-way"},"The Simple Way"),(0,a.kt)("p",null,"We can use pandas apply to simply pass each row to our helper function in turn. This will take some time since we're running the models one by one. I'll use the ",(0,a.kt)("inlineCode",{parentName:"p"},"head")," function just to run five rows as an example here."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"result=model_table.head().apply(run_model, axis=1)\n")),(0,a.kt)("h4",{id:"the-fast-way"},"The Fast Way"),(0,a.kt)("p",null,"Alternatively, we can use multiprocessing to run the models in parallel. That will allow us to run many models simulataneously and make use of all the cores available on our machine."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"def pool_func(x):\n i,row=x\n return run_model(row)\n\nwith Pool(processes=6) as pool:\n results = pool.map(pool_func, model_table.iterrows())\n")),(0,a.kt)("h2",{id:"checking-your-grid"},"Checking Your Grid"),(0,a.kt)("p",null,"After running, we should do two things. First, let's add ",(0,a.kt)("inlineCode",{parentName:"p"},"results")," to our dataframe as a new column. Positive results mean a successful UCLCHEM run and negative ones are unsuccessful. Then we can run each model through ",(0,a.kt)("inlineCode",{parentName:"p"},"check_element_conservation")," to check the integration was successful. We'll use both these things to flag models that failed in some way."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"def element_check(output_file):\n df=uclchem.analysis.read_output_file(output_file)\n #get conservation values\n conserves=uclchem.analysis.check_element_conservation(df)\n #check if any error is greater than 1%\n return all([float(x[:-1])<1 for x in conserves.values()])\n")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},'model_table["run_result"]=results\nmodel_table["elements_conserved"]=model_table["outputFile"].map(element_check)\n#check both conditions are met\nmodel_table["Successful"]=(model_table.run_result>=0) & (model_table.elements_conserved)\n')),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"model_table.head()\n")),(0,a.kt)("div",null,(0,a.kt)("table",{border:"1",class:"dataframe"},(0,a.kt)("thead",null,(0,a.kt)("tr",null,(0,a.kt)("th",null),(0,a.kt)("th",null,"temperature"),(0,a.kt)("th",null,"density"),(0,a.kt)("th",null,"zeta"),(0,a.kt)("th",null,"outputFile"),(0,a.kt)("th",null,"run_result"),(0,a.kt)("th",null,"elements_conserved"),(0,a.kt)("th",null,"Successful"))),(0,a.kt)("tbody",null,(0,a.kt)("tr",null,(0,a.kt)("th",null,"0"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"../grid_folder/10.0_10000.0_10.0.csv"),(0,a.kt)("td",null,"1"),(0,a.kt)("td",null,"True"),(0,a.kt)("td",null,"True")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"1"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"100.0"),(0,a.kt)("td",null,"../grid_folder/10.0_10000.0_100.0.csv"),(0,a.kt)("td",null,"1"),(0,a.kt)("td",null,"True"),(0,a.kt)("td",null,"True")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"2"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"1000.0"),(0,a.kt)("td",null,"../grid_folder/10.0_10000.0_1000.0.csv"),(0,a.kt)("td",null,"1"),(0,a.kt)("td",null,"True"),(0,a.kt)("td",null,"True")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"3"),(0,a.kt)("td",null,"30.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"../grid_folder/30.0_10000.0_10.0.csv"),(0,a.kt)("td",null,"1"),(0,a.kt)("td",null,"True"),(0,a.kt)("td",null,"True")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"4"),(0,a.kt)("td",null,"30.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"100.0"),(0,a.kt)("td",null,"../grid_folder/30.0_10000.0_100.0.csv"),(0,a.kt)("td",null,"1"),(0,a.kt)("td",null,"True"),(0,a.kt)("td",null,"True"))))),(0,a.kt)("h2",{id:"complex-grid"},"Complex Grid"),(0,a.kt)("p",null,"The above was straightforward enough but what about a modelling a grid of shocks? Not only do we want to loop over relevant parameters, we also need to run a few preliminary models to give ourselves starting abundances. We'll start by defining two helper functions, one to run our preliminary cloud and one to run the shock."),(0,a.kt)("p",null,"Let's further imagine that we want to obtain the abundances of several species at the end of the model. We can use the ",(0,a.kt)("inlineCode",{parentName:"p"},"out_species")," parameter to specify which species we want to track and return them to our dataframe."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},'out_species=["CO","H2O","CH3OH"]\n\ndef run_prelim(density):\n #basic set of parameters we\'ll use for this grid. \n ParameterDictionary = {"endatfinaldensity":True,\n "freefall": True,\n "initialDens":1e2,\n "finalDens": density,\n "initialTemp": 10.0,\n "abundSaveFile": f"../grid_folder/starts/{density:.0f}.csv",\n "baseAv":1}\n result = uclchem.model.cloud(param_dict=ParameterDictionary)\n return result\n\ndef run_model(row):\n i,row=row # we know we\'re receiving the iterrows() tuple\n #basic set of parameters we\'ll use for this grid. \n ParameterDictionary = {"endatfinaldensity":False,\n "freefall": False,\n "initialDens": row.density,\n "initialTemp": 10.0,\n "outputFile": row.outputFile,\n "abundLoadFile": f"../grid_folder/starts/{row.density:.0f}.csv",\n "finalTime":1.0e5,\n "abstol_factor":1e-18,\n "reltol":1e-12,\n "baseAv":1}\n result = uclchem.model.cshock(row.shock_velocity,param_dict=ParameterDictionary,out_species=out_species)\n #First check UCLCHEM\'s result flag to seeif it\'s positive, if it is return the abundances\n if result[0]>0:\n return result[:]\n #if not, return NaNs because model failed\n else:\n return([np.nan]*len(out_species))\n')),(0,a.kt)("p",null,"Then we define our parameter space again. We'll create two folders, one to store a set of initial abundances for each starting density in our model and another to store our shock outputs."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},'# This part can be substituted with any choice of grid\n# here we just combine various initial and final densities into an easily iterable array\nshock_velocities = np.linspace(10, 50, 3)\ndensities = np.logspace(4,6,3)\n\nparameterSpace = np.asarray(np.meshgrid(shock_velocities,densities)).reshape(2, -1)\nmodel_table=pd.DataFrame(parameterSpace.T, columns=[\'shock_velocity\',\'density\'])\nmodel_table["outputFile"]=model_table.apply(lambda row: f"../grid_folder/shocks/{row.shock_velocity}_{row.density}.csv", axis=1)\nprint(f"{model_table.shape[0]} models to run")\n\nfor folder in ["starts","shocks"]:\n if not os.path.exists(f"../grid_folder/{folder}"):\n os.makedirs(f"../grid_folder/{folder}")\n')),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"9 models to run\n")),(0,a.kt)("p",null,"We can then run our preliminary models followed by our science models. The science models will return the abundances at the final time step of each run so we can unpack those directly to our dataframe."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"with Pool(processes=3) as pool:\n results = pool.map(run_prelim, densities)\n")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},'with Pool(processes=6) as pool:\n results = pool.map(run_model, model_table.iterrows())\nmodel_table[["Result","Dissipation Time"]+out_species]=results\n')),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"model_table\n")),(0,a.kt)("div",null,(0,a.kt)("table",{border:"1",class:"dataframe"},(0,a.kt)("thead",null,(0,a.kt)("tr",null,(0,a.kt)("th",null),(0,a.kt)("th",null,"shock_velocity"),(0,a.kt)("th",null,"density"),(0,a.kt)("th",null,"outputFile"),(0,a.kt)("th",null,"Result"),(0,a.kt)("th",null,"Dissipation Time"),(0,a.kt)("th",null,"CO"),(0,a.kt)("th",null,"H2O"),(0,a.kt)("th",null,"CH3OH"))),(0,a.kt)("tbody",null,(0,a.kt)("tr",null,(0,a.kt)("th",null,"0"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/10.0_10000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"1171.898734"),(0,a.kt)("td",null,"7.316441e-05"),(0,a.kt)("td",null,"4.355495e-06"),(0,a.kt)("td",null,"4.624479e-07")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"1"),(0,a.kt)("td",null,"30.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/30.0_10000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"1171.898734"),(0,a.kt)("td",null,"2.591790e-05"),(0,a.kt)("td",null,"2.113885e-05"),(0,a.kt)("td",null,"1.196330e-07")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"2"),(0,a.kt)("td",null,"50.0"),(0,a.kt)("td",null,"10000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/50.0_10000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"1171.898734"),(0,a.kt)("td",null,"1.320822e-05"),(0,a.kt)("td",null,"8.126066e-06"),(0,a.kt)("td",null,"1.989081e-08")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"3"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"100000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/10.0_100000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"117.189873"),(0,a.kt)("td",null,"1.082083e-07"),(0,a.kt)("td",null,"1.158740e-09"),(0,a.kt)("td",null,"3.697607e-10")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"4"),(0,a.kt)("td",null,"30.0"),(0,a.kt)("td",null,"100000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/30.0_100000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"117.189873"),(0,a.kt)("td",null,"1.121259e-10"),(0,a.kt)("td",null,"3.789106e-10"),(0,a.kt)("td",null,"4.907284e-10")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"5"),(0,a.kt)("td",null,"50.0"),(0,a.kt)("td",null,"100000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/50.0_100000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"117.189873"),(0,a.kt)("td",null,"2.454392e-10"),(0,a.kt)("td",null,"3.443643e-10"),(0,a.kt)("td",null,"6.454671e-10")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"6"),(0,a.kt)("td",null,"10.0"),(0,a.kt)("td",null,"1000000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/10.0_1000000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"11.718987"),(0,a.kt)("td",null,"1.084005e-10"),(0,a.kt)("td",null,"3.565914e-11"),(0,a.kt)("td",null,"4.816630e-11")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"7"),(0,a.kt)("td",null,"30.0"),(0,a.kt)("td",null,"1000000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/30.0_1000000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"11.718987"),(0,a.kt)("td",null,"1.897782e-10"),(0,a.kt)("td",null,"6.498499e-11"),(0,a.kt)("td",null,"7.847277e-12")),(0,a.kt)("tr",null,(0,a.kt)("th",null,"8"),(0,a.kt)("td",null,"50.0"),(0,a.kt)("td",null,"1000000.0"),(0,a.kt)("td",null,"../grid_folder/shocks/50.0_1000000.0.csv"),(0,a.kt)("td",null,"1.0"),(0,a.kt)("td",null,"11.718987"),(0,a.kt)("td",null,"2.167651e-10"),(0,a.kt)("td",null,"6.600196e-12"),(0,a.kt)("td",null,"3.412340e-12"))))),(0,a.kt)("h2",{id:"summary"},"Summary"),(0,a.kt)("p",null,"There are many ways to run grids of models and users will naturally develop their own methods. This notebook is just a simple example of how to run UCLCHEM for many parameter combinations whilst producing a useful output (the model_table) to keep track of all the combinations that were run. In a real script, we'd save the model file to csv at the end."),(0,a.kt)("p",null,"For much larger grids, it's recommended that you find a way to make your script robust to failure. Over a huge range of parameters, it is quite likely UCLCHEM will hit integration trouble for at least a few parameter combinations. Very occasionally, UCLCHEM will get caught in a loop where it fails to integrate and cannot adjust its strategy to manage it. This isn't a problem for small grids as the model can be stopped and the tolerances adjusted. However, for very large grids, you may end up locking all threads as they each get stuck on a different model. The best solution we've found for this case is to add a check so that models in your dataframe are skipped if their file already exists, this allows you to stop and restart the grid script as needed."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c2a99c14.2788a81d.js b/assets/js/c2a99c14.2788a81d.js new file mode 100644 index 00000000..b095dad9 --- /dev/null +++ b/assets/js/c2a99c14.2788a81d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9217],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var o=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=o.createContext({}),u=function(e){var t=o.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=u(e.components);return o.createElement(s.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},p=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),p=u(n),h=r,m=p["".concat(s,".").concat(h)]||p[h]||d[h]||a;return n?o.createElement(m,i(i({ref:t},c),{},{components:n})):o.createElement(m,i({ref:t},c))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,i=new Array(a);i[0]=p;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:r,i[1]=l;for(var u=2;u{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>h,frontMatter:()=>l,metadata:()=>u,toc:()=>d});var o=n(7462),r=n(3366),a=(n(7294),n(3905)),i=["components"],l={id:"dev-debugging",title:"Debugging"},s=void 0,u={unversionedId:"dev-debugging",id:"version-v3.1.0/dev-debugging",title:"Debugging",description:"UCLCHEM is a complex code and many things can go wrong. Here, we'll list some of the things that often go wrong when you modify the code as well as a few helpful steps to trace down bugs.",source:"@site/versioned_docs/version-v3.1.0/dev-debugging.md",sourceDirName:".",slug:"/dev-debugging",permalink:"/docs/v3.1.0/dev-debugging",draft:!1,tags:[],version:"v3.1.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"dev-debugging",title:"Debugging"},sidebar:"docs",previous:{title:"Writing The Python Interface",permalink:"/docs/v3.1.0/dev-python-wrap"},next:{title:"Maintaining the Website",permalink:"/docs/v3.1.0/dev-web"}},c={},d=[{value:"Finding the error",id:"finding-the-error",level:2},{value:"Makefile",id:"makefile",level:3},{value:"Python",id:"python",level:3},{value:"Non-fatal errors",id:"non-fatal-errors",level:2},{value:"Common Error Sources",id:"common-error-sources",level:2},{value:"Variable Reset",id:"variable-reset",level:3}],p={toc:d};function h(e){var t=e.components,n=(0,r.Z)(e,i);return(0,a.kt)("wrapper",(0,o.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"UCLCHEM is a complex code and many things can go wrong. Here, we'll list some of the things that often go wrong when you modify the code as well as a few helpful steps to trace down bugs."),(0,a.kt)("h2",{id:"finding-the-error"},"Finding the error"),(0,a.kt)("p",null,"An unfortunate side effect of the python installation process and running the code in python is that underlying errors can go missing. If you get an error it is often best to go as close to the source as you can. That means compiling the code with the makefile and running it through a python script or, failing that, the binary."),(0,a.kt)("h3",{id:"makefile"},"Makefile"),(0,a.kt)("p",null,"You'll find the source code and makefile in ",(0,a.kt)("inlineCode",{parentName:"p"},"src/fortran_src"),", if you run"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"cd src/fortran_src\nmake clean\nmake python\n")),(0,a.kt)("p",null,"you'll build the python wrap from scratch and you'll get any compilation errors printed to screen directly. These compilation errors should print when ",(0,a.kt)("inlineCode",{parentName:"p"},"pip install .")," fails but they can be lost in the python errors and often won't be as helpfully coloured as the direct output from ",(0,a.kt)("inlineCode",{parentName:"p"},"make"),". You can also go into the Makefile and change the compiler flags. Switching the optimization flags out for debugging flags will make the error easier to find. You'll find them in the Makefile:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-makefile"},"#Unforgiving debugging flags\n#FFLAGS =-g -fbacktrace -Wall -fcheck=all\n#Fast optimizing flags\nFFLAGS = -O3 -fPIC -ffree-line-length-0\n")),(0,a.kt)("p",null,"where you simply switch over which ",(0,a.kt)("inlineCode",{parentName:"p"},"FFLAGS")," is commented out."),(0,a.kt)("p",null,"You can also test for errors that come from the python interface by using ",(0,a.kt)("inlineCode",{parentName:"p"},"make")," instead of ",(0,a.kt)("inlineCode",{parentName:"p"},"make python"),". This will build a uclchem binary which you can simply run with the default parameters,"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"cd src/fortran_src\nmake\ncd ../../\n./uclchem CLOUD examples/phase1.inp\n")),(0,a.kt)("p",null,"Where phase1.inp is a parameter file written in a json like format and CLOUD is the type of model we'd like to run. Better yet, if you use the debugging flags to build this, you can run it in gdb."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"gdb uclchem\nrun CLOUD examples/phase1.inp\n")),(0,a.kt)("p",null,"We can't go into detail on gdb is here but it's a terminal based debugger that can be used to trace down the error. It will often let you look at values of variables at the point where the code broke and give more information than the standard fortran outputs."),(0,a.kt)("h3",{id:"python"},"Python"),(0,a.kt)("p",null,"It's mentioned at several points in the docs but if you habitually run your UCLCHEM codes in jupyter notebooks, you'll find that error messages are often hidden from you. Any debugging should really be done via python script."),(0,a.kt)("h2",{id:"non-fatal-errors"},"Non-fatal errors"),(0,a.kt)("p",null,"Many errors will not stop the code compiling but are catastrophic. For example, you could introduce a new procedure that is valid Fortran but does not do what you want it to do. In these cases, you'll have to hunt the problem down yourself. We recommend running the test cases in ",(0,a.kt)("inlineCode",{parentName:"p"},"scripts/run_uclchem_tests.py")," and comparing the output to the ones in the example using the plot created by ",(0,a.kt)("inlineCode",{parentName:"p"},"scripts/plot_uclchem_tests.py"),". Sometimes, they'll be different because you introduced a change that you know will effect the chemistry. For example, you might have changed a desorption process and find the ice abundances change which is totally fine. However, if you see a change that is unexpected, you can investigate."),(0,a.kt)("p",null,"There's no better way to debug these errors than to simply print a lot of things to screen. It can seem silly but adding a bunch of write statements to your code is often the fastest way to track down what is going wrong."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-fortran"},'IF (myParam .gt. criticalValue) THEN\n write(*,*) "here!"\n !do stuff\nELSE\n write(*,*) "if not trigged because myParam is", myParam\n !do other stuff\nEND IF\n\n!do some processing\nCALL myNewSubroutine\nwrite(*,*) "myParam", myParam, "at code point x"\n\n')),(0,a.kt)("p",null,"Additions to the code like above will check the logic of your code is going the way you expect and that parameters aren't taking surprise values. If you have absolutely no suspicions about which part of your code is going wrong, you can use the subroutine ",(0,a.kt)("inlineCode",{parentName:"p"},"simpleDebug")," which is in the IO module (",(0,a.kt)("inlineCode",{parentName:"p"},"io.f90"),"). That prints a statement of your choice as well as many of the parameters."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-fortran"},'!do some processing\nCALL myNewSubroutine\nCALL simpleDebug("Param values after myNewSubroutine")\n')),(0,a.kt)("h2",{id:"common-error-sources"},"Common Error Sources"),(0,a.kt)("h3",{id:"variable-reset"},"Variable Reset"),(0,a.kt)("p",null,"If you notice errors that only occur when you run the code more than once in a python script, then a common source is the initial value that variables take in the code. Variable initialization done at the declaration stage of a module only happens once. That is why the vast majority of variables that are not fortran parameters (constants) are set to an initial value by defaultparameters.f90 or in the initialization subroutines of the physics-core, chemistry, and physics modules."),(0,a.kt)("p",null,"It's very common when editing the code or adding new variables to forget to do this and then to see unusual behaviour when you run multiple models in a row in python."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c2a99c14.85ef2525.js b/assets/js/c2a99c14.85ef2525.js deleted file mode 100644 index 460f5d71..00000000 --- a/assets/js/c2a99c14.85ef2525.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9217],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var o=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=o.createContext({}),u=function(e){var t=o.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=u(e.components);return o.createElement(s.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),d=u(n),h=r,m=d["".concat(s,".").concat(h)]||d[h]||p[h]||a;return n?o.createElement(m,i(i({ref:t},c),{},{components:n})):o.createElement(m,i({ref:t},c))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,i=new Array(a);i[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:r,i[1]=l;for(var u=2;u{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>h,frontMatter:()=>l,metadata:()=>u,toc:()=>p});var o=n(7462),r=n(3366),a=(n(7294),n(3905)),i=["components"],l={id:"dev-debugging",title:"Debugging"},s=void 0,u={unversionedId:"dev-debugging",id:"version-v3.1.0/dev-debugging",title:"Debugging",description:"UCLCHEM is a complex code and many things can go wrong. Here, we'll list some of the things that often go wrong when you modify the code as well as a few helpful steps to trace down bugs.",source:"@site/versioned_docs/version-v3.1.0/dev-debugging.md",sourceDirName:".",slug:"/dev-debugging",permalink:"/docs/v3.1.0/dev-debugging",tags:[],version:"v3.1.0",frontMatter:{id:"dev-debugging",title:"Debugging"},sidebar:"docs",previous:{title:"Writing The Python Interface",permalink:"/docs/v3.1.0/dev-python-wrap"},next:{title:"Maintaining the Website",permalink:"/docs/v3.1.0/dev-web"}},c={},p=[{value:"Finding the error",id:"finding-the-error",level:2},{value:"Makefile",id:"makefile",level:3},{value:"Python",id:"python",level:3},{value:"Non-fatal errors",id:"non-fatal-errors",level:2},{value:"Common Error Sources",id:"common-error-sources",level:2},{value:"Variable Reset",id:"variable-reset",level:3}],d={toc:p};function h(e){var t=e.components,n=(0,r.Z)(e,i);return(0,a.kt)("wrapper",(0,o.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"UCLCHEM is a complex code and many things can go wrong. Here, we'll list some of the things that often go wrong when you modify the code as well as a few helpful steps to trace down bugs."),(0,a.kt)("h2",{id:"finding-the-error"},"Finding the error"),(0,a.kt)("p",null,"An unfortunate side effect of the python installation process and running the code in python is that underlying errors can go missing. If you get an error it is often best to go as close to the source as you can. That means compiling the code with the makefile and running it through a python script or, failing that, the binary."),(0,a.kt)("h3",{id:"makefile"},"Makefile"),(0,a.kt)("p",null,"You'll find the source code and makefile in ",(0,a.kt)("inlineCode",{parentName:"p"},"src/fortran_src"),", if you run"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"cd src/fortran_src\nmake clean\nmake python\n")),(0,a.kt)("p",null,"you'll build the python wrap from scratch and you'll get any compilation errors printed to screen directly. These compilation errors should print when ",(0,a.kt)("inlineCode",{parentName:"p"},"pip install .")," fails but they can be lost in the python errors and often won't be as helpfully coloured as the direct output from ",(0,a.kt)("inlineCode",{parentName:"p"},"make"),". You can also go into the Makefile and change the compiler flags. Switching the optimization flags out for debugging flags will make the error easier to find. You'll find them in the Makefile:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-makefile"},"#Unforgiving debugging flags\n#FFLAGS =-g -fbacktrace -Wall -fcheck=all\n#Fast optimizing flags\nFFLAGS = -O3 -fPIC -ffree-line-length-0\n")),(0,a.kt)("p",null,"where you simply switch over which ",(0,a.kt)("inlineCode",{parentName:"p"},"FFLAGS")," is commented out."),(0,a.kt)("p",null,"You can also test for errors that come from the python interface by using ",(0,a.kt)("inlineCode",{parentName:"p"},"make")," instead of ",(0,a.kt)("inlineCode",{parentName:"p"},"make python"),". This will build a uclchem binary which you can simply run with the default parameters,"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"cd src/fortran_src\nmake\ncd ../../\n./uclchem CLOUD examples/phase1.inp\n")),(0,a.kt)("p",null,"Where phase1.inp is a parameter file written in a json like format and CLOUD is the type of model we'd like to run. Better yet, if you use the debugging flags to build this, you can run it in gdb."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-bash"},"gdb uclchem\nrun CLOUD examples/phase1.inp\n")),(0,a.kt)("p",null,"We can't go into detail on gdb is here but it's a terminal based debugger that can be used to trace down the error. It will often let you look at values of variables at the point where the code broke and give more information than the standard fortran outputs."),(0,a.kt)("h3",{id:"python"},"Python"),(0,a.kt)("p",null,"It's mentioned at several points in the docs but if you habitually run your UCLCHEM codes in jupyter notebooks, you'll find that error messages are often hidden from you. Any debugging should really be done via python script."),(0,a.kt)("h2",{id:"non-fatal-errors"},"Non-fatal errors"),(0,a.kt)("p",null,"Many errors will not stop the code compiling but are catastrophic. For example, you could introduce a new procedure that is valid Fortran but does not do what you want it to do. In these cases, you'll have to hunt the problem down yourself. We recommend running the test cases in ",(0,a.kt)("inlineCode",{parentName:"p"},"scripts/run_uclchem_tests.py")," and comparing the output to the ones in the example using the plot created by ",(0,a.kt)("inlineCode",{parentName:"p"},"scripts/plot_uclchem_tests.py"),". Sometimes, they'll be different because you introduced a change that you know will effect the chemistry. For example, you might have changed a desorption process and find the ice abundances change which is totally fine. However, if you see a change that is unexpected, you can investigate."),(0,a.kt)("p",null,"There's no better way to debug these errors than to simply print a lot of things to screen. It can seem silly but adding a bunch of write statements to your code is often the fastest way to track down what is going wrong."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-fortran"},'IF (myParam .gt. criticalValue) THEN\n write(*,*) "here!"\n !do stuff\nELSE\n write(*,*) "if not trigged because myParam is", myParam\n !do other stuff\nEND IF\n\n!do some processing\nCALL myNewSubroutine\nwrite(*,*) "myParam", myParam, "at code point x"\n\n')),(0,a.kt)("p",null,"Additions to the code like above will check the logic of your code is going the way you expect and that parameters aren't taking surprise values. If you have absolutely no suspicions about which part of your code is going wrong, you can use the subroutine ",(0,a.kt)("inlineCode",{parentName:"p"},"simpleDebug")," which is in the IO module (",(0,a.kt)("inlineCode",{parentName:"p"},"io.f90"),"). That prints a statement of your choice as well as many of the parameters."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-fortran"},'!do some processing\nCALL myNewSubroutine\nCALL simpleDebug("Param values after myNewSubroutine")\n')),(0,a.kt)("h2",{id:"common-error-sources"},"Common Error Sources"),(0,a.kt)("h3",{id:"variable-reset"},"Variable Reset"),(0,a.kt)("p",null,"If you notice errors that only occur when you run the code more than once in a python script, then a common source is the initial value that variables take in the code. Variable initialization done at the declaration stage of a module only happens once. That is why the vast majority of variables that are not fortran parameters (constants) are set to an initial value by defaultparameters.f90 or in the initialization subroutines of the physics-core, chemistry, and physics modules."),(0,a.kt)("p",null,"It's very common when editing the code or adding new variables to forget to do this and then to see unusual behaviour when you run multiple models in a row in python."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c491cf8e.93ad4f1b.js b/assets/js/c491cf8e.93ad4f1b.js deleted file mode 100644 index 94a46756..00000000 --- a/assets/js/c491cf8e.93ad4f1b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6152],{5745:e=>{e.exports=JSON.parse('{"plugin":{"name":"docusaurus-plugin-content-pages","id":"default"}}')}}]); \ No newline at end of file diff --git a/assets/js/c491cf8e.c25b0188.js b/assets/js/c491cf8e.c25b0188.js new file mode 100644 index 00000000..31057a8c --- /dev/null +++ b/assets/js/c491cf8e.c25b0188.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6152],{5745:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-pages","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/c4e6c98a.6137838d.js b/assets/js/c4e6c98a.6137838d.js new file mode 100644 index 00000000..a284cd40 --- /dev/null +++ b/assets/js/c4e6c98a.6137838d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9011],{3905:(a,e,t)=>{t.d(e,{Zo:()=>o,kt:()=>N});var s=t(7294);function n(a,e,t){return e in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function m(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.push.apply(t,s)}return t}function p(a){for(var e=1;e=0||(n[t]=a[t]);return n}(a,e);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(a);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(a,t)&&(n[t]=a[t])}return n}var l=s.createContext({}),i=function(a){var e=s.useContext(l),t=e;return a&&(t="function"==typeof a?a(e):p(p({},e),a)),t},o=function(a){var e=i(a.components);return s.createElement(l.Provider,{value:e},a.children)},c={inlineCode:"code",wrapper:function(a){var e=a.children;return s.createElement(s.Fragment,{},e)}},h=s.forwardRef((function(a,e){var t=a.components,n=a.mdxType,m=a.originalType,l=a.parentName,o=r(a,["components","mdxType","originalType","parentName"]),h=i(t),N=n,k=h["".concat(l,".").concat(N)]||h[N]||c[N]||m;return t?s.createElement(k,p(p({ref:e},o),{},{components:t})):s.createElement(k,p({ref:e},o))}));function N(a,e){var t=arguments,n=e&&e.mdxType;if("string"==typeof a||n){var m=t.length,p=new Array(m);p[0]=h;var r={};for(var l in e)hasOwnProperty.call(e,l)&&(r[l]=e[l]);r.originalType=a,r.mdxType="string"==typeof a?a:n,p[1]=r;for(var i=2;i{t.r(e),t.d(e,{assets:()=>o,contentTitle:()=>l,default:()=>N,frontMatter:()=>r,metadata:()=>i,toc:()=>c});var s=t(7462),n=t(3366),m=(t(7294),t(3905)),p=["components"],r={},l="Advanced Physical Modelling",i={unversionedId:"modelling_objects",id:"version-v3.2.0/modelling_objects",title:"Advanced Physical Modelling",description:"In the previous tutorial, we simply modelled the chemistry of a static cloud for 1 Myr. This is unlikely to meet everybody's modelling needs and UCLCHEM is capable of modelling much more complex environments such as hot cores and shocks. In this tutorial, we model both a hot core and a shock to explore how these models work and to demonstrate the workflow that the UCLCHEM team normally follow.",source:"@site/versioned_docs/version-v3.2.0/modelling_objects.md",sourceDirName:".",slug:"/modelling_objects",permalink:"/docs/modelling_objects",draft:!1,tags:[],version:"v3.2.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{},sidebar:"docs",previous:{title:"Running Your First Models",permalink:"/docs/first_model"},next:{title:"Running a Grid",permalink:"/docs/running_a_grid"}},o={},c=[{value:"The Hot Core",id:"the-hot-core",level:2},{value:"Initial Conditions (Phase 1)",id:"initial-conditions-phase-1",level:3},{value:"Running the Science Model (Phase 2)",id:"running-the-science-model-phase-2",level:3},{value:"Checking the Result",id:"checking-the-result",level:3},{value:"Shocks",id:"shocks",level:2},{value:"C-shock",id:"c-shock",level:3},{value:"J-shock",id:"j-shock",level:3}],h={toc:c};function N(a){var e=a.components,r=(0,n.Z)(a,p);return(0,m.kt)("wrapper",(0,s.Z)({},h,r,{components:e,mdxType:"MDXLayout"}),(0,m.kt)("h1",{id:"advanced-physical-modelling"},"Advanced Physical Modelling"),(0,m.kt)("p",null,"In the previous tutorial, we simply modelled the chemistry of a static cloud for 1 Myr. This is unlikely to meet everybody's modelling needs and UCLCHEM is capable of modelling much more complex environments such as hot cores and shocks. In this tutorial, we model both a hot core and a shock to explore how these models work and to demonstrate the workflow that the UCLCHEM team normally follow."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},"import uclchem\nimport matplotlib.pyplot as plt\n")),(0,m.kt)("h2",{id:"the-hot-core"},"The Hot Core"),(0,m.kt)("h3",{id:"initial-conditions-phase-1"},"Initial Conditions (Phase 1)"),(0,m.kt)("p",null,"UCLCHEM typically starts with the gas in atomic/ionic form with no molecules. However, this clearly is not appropriate when modelling an object such as a hot core. In these objects, the gas is already evolved and there should be molecules in the gas phase as well as ice mantles on the dust. To allow for this, one must provide some initial abundances to the model. There are many ways to do this but we typically chose to run a preliminary model to produce our abundances. In many UCLCHEM papers, we refer to the preliminary model as ",(0,m.kt)("em",{parentName:"p"},"phase 1")," and the science model as ",(0,m.kt)("em",{parentName:"p"},"phase 2"),". Phase 1 simply models a collapsing cloud and phase 2 models the object in question."),(0,m.kt)("p",null,"To do this, we will use ",(0,m.kt)("inlineCode",{parentName:"p"},"uclchem.model.cloud()")," to run a model where a cloud of gas collapses from a density of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"2")),(0,m.kt)("mi",{parentName:"mrow"},"c"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"m"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"3")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"10^2 cm^{-3}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"c"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"m"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))))))))))))," to our hot core density of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"6")),(0,m.kt)("mi",{parentName:"mrow"},"c"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"m"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"3")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"10^6 cm^{-3}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"6")))))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"c"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"m"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3"))))))))))))),", keeping all other parameters constant. During this collapse, chemistry will occur and we can assume the final abundances of this model will be reasonable starting abundances for the hot core. "),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'# set a parameter dictionary for cloud collapse model\nparam_dict = {\n "endAtFinalDensity": False,#stop at finalTime\n "freefall": True,#increase density in freefall\n "initialDens": 1e2, #starting density\n "finalDens":1e6, #final density\n "initialTemp": 10.0,#temperature of gas\n "finalTime": 6.0e6, #final time\n "rout":0.1, #radius of cloud in pc\n "baseAv":1.0, #visual extinction at cloud edge.\n "abundSaveFile": "../examples/test-output/startcollapse.dat",#save final abundances to file\n "outputFile":"../examples/test-output/phase1-full.dat"\n\n}\nresult = uclchem.model.cloud(param_dict=param_dict)\nprint(result)\n')),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"[1]\n")),(0,m.kt)("p",null,"With that done, we now have a file containing the final abundances of a cloud of gas after this collapse: ",(0,m.kt)("inlineCode",{parentName:"p"},'param_dict["abundSaveFile"]')," we can pass this to our hot core model to use those abundances as our initial abundances."),(0,m.kt)("h3",{id:"running-the-science-model-phase-2"},"Running the Science Model (Phase 2)"),(0,m.kt)("p",null,"We need to change just a few things in ",(0,m.kt)("inlineCode",{parentName:"p"},"param_dict")," to set up the hot core model. The key one is that UCLCHEM saves final abundances to ",(0,m.kt)("inlineCode",{parentName:"p"},"abundSaveFile")," but loads them from ",(0,m.kt)("inlineCode",{parentName:"p"},"abundLoadFile")," so we need to swap that key over to make the abundances we just produced our initial abundances. "),(0,m.kt)("p",null,"We also want to turn off freefall and change how long the model runs for."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'#change other bits of input to set up phase 2\nparam_dict["initialDens"]=1e6\nparam_dict["finalTime"]=1e6\nparam_dict["freefall"]=False\n\n#freeze out is completely overwhelmed by thermal desorption\n#so turning it off has no effect on abundances but speeds up integrator.\nparam_dict["freezeFactor"]=0.0\n\nparam_dict["abstol_factor"]=1e-18\nparam_dict["reltol"]=1e-12\n\n#pop is dangerous, it removes the original key so you can\'t rerun this cell.\nparam_dict["abundLoadFile"]=param_dict.pop("abundSaveFile") \nparam_dict["outputFile"]="../examples/test-output/phase2-full.dat"\n\nresult=uclchem.model.hot_core(temp_indx=3,max_temperature=300.0,param_dict=param_dict)\n')),(0,m.kt)("p",null,"Note that we've changed made two changes to the parameters here which aren't strictly necessary but can be helpful in certain situations."),(0,m.kt)("p",null,"Since the gas temperature increases throughout a hot core model, freeze out is much slower than thermal desorption for all but the first few time steps. Turning it off doesn't affect the abundances but will speed up the solution."),(0,m.kt)("p",null,"We also change abstol and reltol here, largely to demonstrate their use. They control the integrator accuracy and whilst making them smaller does slow down successful runs, it can make runs complete that stall completely otherwise or give correct solutions where lower tolerances allow issues like element conservation failure to sneak in. If your code does not complete or element conservation fails, you can change them."),(0,m.kt)("h3",{id:"checking-the-result"},"Checking the Result"),(0,m.kt)("p",null,"With a successful run, we can check the output. We first load the file and check the abundance conservation, then we can plot it up."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'phase2_df=uclchem.analysis.read_output_file("../examples/test-output/phase2-full.dat")\nuclchem.analysis.check_element_conservation(phase2_df)\n')),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"{'H': '0.002%', 'N': '0.000%', 'C': '0.000%', 'O': '0.000%'}\n")),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'species=["CO","H2O","CH3OH","#CO","#H2O","#CH3OH","@H2O","@CO","@CH3OH"]\n\nfig,[ax,ax2]=plt.subplots(1,2,figsize=(16,9))\nax=uclchem.analysis.plot_species(ax,phase2_df,species)\nsettings=ax.set(yscale="log",xlim=(1e2,1e6),ylim=(1e-10,1e-2),\n xlabel="Time / years", \n ylabel="Fractional Abundance",xscale="log")\n\nax2.plot(phase2_df["Time"],phase2_df["Density"],color="black")\nax2.set(xscale="log")\nax3=ax2.twinx()\nax3.plot(phase2_df["Time"],phase2_df["gasTemp"],color="red")\nax2.set(xlabel="Time / year",ylabel="Density")\nax3.set(ylabel="Temperature",facecolor="red",xlim=(1e2,1e6))\nax3.tick_params(axis=\'y\', colors=\'red\')\n')),(0,m.kt)("p",null,(0,m.kt)("img",{alt:"png",src:t(1108).Z,width:"997",height:"549"})),(0,m.kt)("p",null,"Here, we see the value of running a collapse phase before the science run. Having run a collapse, we start this model with well developed ices and having material in the surface and bulk allows us to properly model the effect of warm up in a hot core. For example, the @CO abundance is ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mo",{parentName:"mrow"},"\u223c"),(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"4")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\sim10^{-4}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.36687em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"\u223c"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"4")))))))))))))," and #CO is ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mo",{parentName:"mrow"},"\u223c"),(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"6")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\sim10^{-6}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.36687em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"\u223c"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"6"))))))))))))),". As the gas warms to around 30K, the #CO abundance drops drastically as CO's binding energy is such that it is efficiently desorbed from the surface at this temperature. However, the rest of the CO is trapped in the bulk, surrounded by more strongly bound H2O molecules. Thus, the @CO abundance stays high until the gas reaches around 130K, when the H2O molecules are released along with the entire bulk."),(0,m.kt)("h2",{id:"shocks"},"Shocks"),(0,m.kt)("p",null,"Essentially the same process should be followed for shocks. Let's run a C-type and J-type shock through a gas of density ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"4")),(0,m.kt)("mi",{parentName:"mrow"},"c"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"m"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"3")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"10^4 cm^{-3}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"4")))))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"c"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"m"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3"))))))))))))),". Again, we first run a simple cloud model to obtain some reasonable starting abundances, then we can run the shocks."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'# set a parameter dictionary for phase 1 collapse model\n\nparam_dict = {\n "endAtFinalDensity": False,#stop at finalTime\n "freefall": True,#increase density in freefall\n "initialDens": 1e2, #starting density\n "finalDens":1e4, #final density\n "initialTemp": 10.0,#temperature of gas\n "finalTime": 6.0e6, #final time\n "rout":0.1, #radius of cloud in pc\n "baseAv":1.0, #visual extinction at cloud edge.\n "abundSaveFile": "../examples/test-output/shockstart.dat",\n}\nresult = uclchem.model.cloud(param_dict=param_dict)\n')),(0,m.kt)("h3",{id:"c-shock"},"C-shock"),(0,m.kt)("p",null,"We'll first run a c-shock. We'll run a 40 km s ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"1")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-1}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1")))))))))))))," shock through a gas of density ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"4"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"10^4")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"4"))))))))))))," cm ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"3")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-3}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3"))))))))))))),", using the abundances we just produced. Note that c-shock is the only model which returns an additional output in its result list. Not only is the first element the success flag indicating whether UCLCHEM completed, the second element is the dissipation time of the shock. We'll use that time to make our plots look nicer, cutting to a reasonable time. You can also obtain it from ",(0,m.kt)("inlineCode",{parentName:"p"},"uclchem.utils.cshock_dissipation_time()"),"."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'#change other bits of input to set up phase 2\nparam_dict["initialDens"]=1e4\nparam_dict["finalTime"]=1e6\nif "abundSaveFile" in param_dict:\n param_dict.pop("abundSaveFile")\nparam_dict["abundLoadFile"]="../examples/test-output/shockstart.dat"\nparam_dict["outputFile"]="../examples/test-output/cshock.dat"\n\n\nresult=uclchem.model.cshock(shock_vel=40,param_dict=param_dict)\nresult,dissipation_time=result\n')),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"}," Cannot have freefall on during cshock\n setting freefall=0 and continuing\n")),(0,m.kt)("p",null,"The code completes fine. We do get a couple of warnings though. First, we're informed that ",(0,m.kt)("inlineCode",{parentName:"p"},"freefall")," must be set to False for the C-shock model. Then we get a few integrator warnings. These are not important and can be ignored as long as the element conservation looks ok. However, it is an indication that the integrator did struggle with these ODEs under these conditions."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'phase2_df=uclchem.analysis.read_output_file("../examples/test-output/cshock.dat")\nuclchem.analysis.check_element_conservation(phase2_df)\n')),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"{'H': '0.005%', 'N': '1.167%', 'C': '1.394%', 'O': '1.326%'}\n")),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'species=["CO","H2O","CH3OH","NH3","$CO","$H2O","$CH3OH","$NH3"]\n\nfig,[ax,ax2]=plt.subplots(1,2,figsize=(16,9))\nax=uclchem.analysis.plot_species(ax,phase2_df,species)\nsettings=ax.set(yscale="log",xlim=(1,20*dissipation_time),ylim=(1e-10,1e-2),\n xlabel="Time / years", \n ylabel="Fractional Abundance",xscale="log")\n\nax2.plot(phase2_df["Time"],phase2_df["Density"],color="black")\nax2.set(xscale="log")\nax3=ax2.twinx()\nax3.plot(phase2_df["Time"],phase2_df["gasTemp"],color="red")\nax2.set(xlabel="Time / year",ylabel="Density")\nax3.set(ylabel="Temperature",facecolor="red",xlim=(1,20*dissipation_time))\nax3.tick_params(axis=\'y\', colors=\'red\')\n')),(0,m.kt)("p",null,(0,m.kt)("img",{alt:"png",src:t(4880).Z,width:"1003",height:"544"})),(0,m.kt)("h3",{id:"j-shock"},"J-shock"),(0,m.kt)("p",null,"Running a j-shock is a simple case of changing function. We'll run a 10 km s ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"1")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-1}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1")))))))))))))," shock through a gas of density ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"3"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"10^3")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3"))))))))))))," cm ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"3")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-3}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))))))))))))," gas this time. Note that nothing stops us using the intial abundances we produced for the c-shock. UCLCHEM will not check that the initial density matches the density of the ",(0,m.kt)("inlineCode",{parentName:"p"},"abundLoadFile"),". It may not always be a good idea to do this but we should remember the intial abundances really are just a rough approximation."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'param_dict["initialDens"]=1e3\nparam_dict["freefall"]=False #lets remember to turn it off this time\nparam_dict["reltol"]=1e-12\n\nshock_vel=10.0\n\nif "abundSaveFile" in param_dict:\n param_dict.pop("abundSaveFile")\nparam_dict["abundLoadFile"]="../examples/test-output/shockstart.dat"\nparam_dict["outputFile"]="../examples/test-output/jshock.dat"\n\n\nresult=uclchem.model.jshock(shock_vel=shock_vel,param_dict=param_dict)\n')),(0,m.kt)("p",null,"This time, we've turned off the freefall option and made reltol a little more stringent. The j-shock ends up running a bit slower but we get no warnings on this run."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'phase2_df=uclchem.analysis.read_output_file(param_dict["outputFile"])\nuclchem.analysis.check_element_conservation(phase2_df)\n')),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"{'H': '0.003%', 'N': '0.000%', 'C': '0.000%', 'O': '0.000%'}\n")),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'species=["CO","H2O","CH3OH","NH3","$CO","$H2O","$CH3OH","$NH3"]\n\nfig,[ax,ax2]=plt.subplots(1,2,figsize=(16,9))\nax=uclchem.analysis.plot_species(ax,phase2_df,species)\nsettings=ax.set(yscale="log",xlim=(1e-7,1e6),ylim=(1e-10,1e-2),\n xlabel="Time / years", \n ylabel="Fractional Abundance",xscale="log")\n\nax2.plot(phase2_df["Time"],phase2_df["Density"],color="black")\nax2.set(xscale="log",yscale="log")\nax3=ax2.twinx()\nax3.plot(phase2_df["Time"],phase2_df["gasTemp"],color="red")\nax2.set(xlabel="Time / year",ylabel="Density")\nax3.set(ylabel="Temperature",facecolor="red",xlim=(1e-7,1e6))\nax3.tick_params(axis=\'y\', colors=\'red\')\n')),(0,m.kt)("p",null,(0,m.kt)("img",{alt:"png",src:t(6931).Z,width:"1003",height:"544"})),(0,m.kt)("p",null,"That's everything! We've run various science models using reasonable starting abundances that we produced by running a simple UCLCHEM model beforehand. One benefit of this method is that the abundances are consistent with the network. If we start with arbitrary, perhaps observationally motivated, abundances, it would be possible to initiate the model in a state our network could never produce. "),(0,m.kt)("p",null,"However, one should be aware of the limitations of this method. A freefall collapse from low density to high is not really how a molecular cloud forms and so the abundances are only approximately similar to values they'd truly have in a real cloud. Testing whether your results are sensitive to things like the time you run the preliminary for or the exact density is a good way to make sure these approximations are not problematic."),(0,m.kt)("p",null,"Bear in mind that you can use ",(0,m.kt)("inlineCode",{parentName:"p"},"abundSaveFile")," and ",(0,m.kt)("inlineCode",{parentName:"p"},"abundLoadFile")," in the same model run. This lets you chain model runs together. For example, you could run a c-shock from a cloud model as we did here and then a j-shock with the c-shock's abundances as the initial abundances."))}N.isMDXComponent=!0},4880:(a,e,t)=>{t.d(e,{Z:()=>s});const s=t.p+"assets/images/modelling_objects_16_0-9cbaa39ecfd8914850efea6f9894f3c9.png"},6931:(a,e,t)=>{t.d(e,{Z:()=>s});const s=t.p+"assets/images/modelling_objects_21_0-9d690606580c74f3f2490e2e8b1ce4b4.png"},1108:(a,e,t)=>{t.d(e,{Z:()=>s});const s=t.p+"assets/images/modelling_objects_8_0-cb8bd1ad21dbba5c26281d2a988b2cfa.png"}}]); \ No newline at end of file diff --git a/assets/js/c4e6c98a.d3dad9b0.js b/assets/js/c4e6c98a.d3dad9b0.js deleted file mode 100644 index b875ce63..00000000 --- a/assets/js/c4e6c98a.d3dad9b0.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9011],{3905:(a,e,t)=>{t.d(e,{Zo:()=>o,kt:()=>N});var s=t(7294);function n(a,e,t){return e in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function m(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.push.apply(t,s)}return t}function p(a){for(var e=1;e=0||(n[t]=a[t]);return n}(a,e);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(a);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(a,t)&&(n[t]=a[t])}return n}var l=s.createContext({}),i=function(a){var e=s.useContext(l),t=e;return a&&(t="function"==typeof a?a(e):p(p({},e),a)),t},o=function(a){var e=i(a.components);return s.createElement(l.Provider,{value:e},a.children)},c={inlineCode:"code",wrapper:function(a){var e=a.children;return s.createElement(s.Fragment,{},e)}},h=s.forwardRef((function(a,e){var t=a.components,n=a.mdxType,m=a.originalType,l=a.parentName,o=r(a,["components","mdxType","originalType","parentName"]),h=i(t),N=n,k=h["".concat(l,".").concat(N)]||h[N]||c[N]||m;return t?s.createElement(k,p(p({ref:e},o),{},{components:t})):s.createElement(k,p({ref:e},o))}));function N(a,e){var t=arguments,n=e&&e.mdxType;if("string"==typeof a||n){var m=t.length,p=new Array(m);p[0]=h;var r={};for(var l in e)hasOwnProperty.call(e,l)&&(r[l]=e[l]);r.originalType=a,r.mdxType="string"==typeof a?a:n,p[1]=r;for(var i=2;i{t.r(e),t.d(e,{assets:()=>o,contentTitle:()=>l,default:()=>N,frontMatter:()=>r,metadata:()=>i,toc:()=>c});var s=t(7462),n=t(3366),m=(t(7294),t(3905)),p=["components"],r={},l="Advanced Physical Modelling",i={unversionedId:"modelling_objects",id:"version-v3.2.0/modelling_objects",title:"Advanced Physical Modelling",description:"In the previous tutorial, we simply modelled the chemistry of a static cloud for 1 Myr. This is unlikely to meet everybody's modelling needs and UCLCHEM is capable of modelling much more complex environments such as hot cores and shocks. In this tutorial, we model both a hot core and a shock to explore how these models work and to demonstrate the workflow that the UCLCHEM team normally follow.",source:"@site/versioned_docs/version-v3.2.0/modelling_objects.md",sourceDirName:".",slug:"/modelling_objects",permalink:"/docs/modelling_objects",tags:[],version:"v3.2.0",frontMatter:{},sidebar:"docs",previous:{title:"Running Your First Models",permalink:"/docs/first_model"},next:{title:"Running a Grid",permalink:"/docs/running_a_grid"}},o={},c=[{value:"The Hot Core",id:"the-hot-core",level:2},{value:"Initial Conditions (Phase 1)",id:"initial-conditions-phase-1",level:3},{value:"Running the Science Model (Phase 2)",id:"running-the-science-model-phase-2",level:3},{value:"Checking the Result",id:"checking-the-result",level:3},{value:"Shocks",id:"shocks",level:2},{value:"C-shock",id:"c-shock",level:3},{value:"J-shock",id:"j-shock",level:3}],h={toc:c};function N(a){var e=a.components,r=(0,n.Z)(a,p);return(0,m.kt)("wrapper",(0,s.Z)({},h,r,{components:e,mdxType:"MDXLayout"}),(0,m.kt)("h1",{id:"advanced-physical-modelling"},"Advanced Physical Modelling"),(0,m.kt)("p",null,"In the previous tutorial, we simply modelled the chemistry of a static cloud for 1 Myr. This is unlikely to meet everybody's modelling needs and UCLCHEM is capable of modelling much more complex environments such as hot cores and shocks. In this tutorial, we model both a hot core and a shock to explore how these models work and to demonstrate the workflow that the UCLCHEM team normally follow."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},"import uclchem\nimport matplotlib.pyplot as plt\n")),(0,m.kt)("h2",{id:"the-hot-core"},"The Hot Core"),(0,m.kt)("h3",{id:"initial-conditions-phase-1"},"Initial Conditions (Phase 1)"),(0,m.kt)("p",null,"UCLCHEM typically starts with the gas in atomic/ionic form with no molecules. However, this clearly is not appropriate when modelling an object such as a hot core. In these objects, the gas is already evolved and there should be molecules in the gas phase as well as ice mantles on the dust. To allow for this, one must provide some initial abundances to the model. There are many ways to do this but we typically chose to run a preliminary model to produce our abundances. In many UCLCHEM papers, we refer to the preliminary model as ",(0,m.kt)("em",{parentName:"p"},"phase 1")," and the science model as ",(0,m.kt)("em",{parentName:"p"},"phase 2"),". Phase 1 simply models a collapsing cloud and phase 2 models the object in question."),(0,m.kt)("p",null,"To do this, we will use ",(0,m.kt)("inlineCode",{parentName:"p"},"uclchem.model.cloud()")," to run a model where a cloud of gas collapses from a density of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"2")),(0,m.kt)("mi",{parentName:"mrow"},"c"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"m"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"3")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"10^2 cm^{-3}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"2")))))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"c"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"m"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))))))))))))," to our hot core density of ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"6")),(0,m.kt)("mi",{parentName:"mrow"},"c"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"m"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"3")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"10^6 cm^{-3}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"6")))))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"c"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"m"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3"))))))))))))),", keeping all other parameters constant. During this collapse, chemistry will occur and we can assume the final abundances of this model will be reasonable starting abundances for the hot core. "),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'# set a parameter dictionary for cloud collapse model\nparam_dict = {\n "endAtFinalDensity": False,#stop at finalTime\n "freefall": True,#increase density in freefall\n "initialDens": 1e2, #starting density\n "finalDens":1e6, #final density\n "initialTemp": 10.0,#temperature of gas\n "finalTime": 6.0e6, #final time\n "rout":0.1, #radius of cloud in pc\n "baseAv":1.0, #visual extinction at cloud edge.\n "abundSaveFile": "../examples/test-output/startcollapse.dat",#save final abundances to file\n "outputFile":"../examples/test-output/phase1-full.dat"\n\n}\nresult = uclchem.model.cloud(param_dict=param_dict)\nprint(result)\n')),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"[1]\n")),(0,m.kt)("p",null,"With that done, we now have a file containing the final abundances of a cloud of gas after this collapse: ",(0,m.kt)("inlineCode",{parentName:"p"},'param_dict["abundSaveFile"]')," we can pass this to our hot core model to use those abundances as our initial abundances."),(0,m.kt)("h3",{id:"running-the-science-model-phase-2"},"Running the Science Model (Phase 2)"),(0,m.kt)("p",null,"We need to change just a few things in ",(0,m.kt)("inlineCode",{parentName:"p"},"param_dict")," to set up the hot core model. The key one is that UCLCHEM saves final abundances to ",(0,m.kt)("inlineCode",{parentName:"p"},"abundSaveFile")," but loads them from ",(0,m.kt)("inlineCode",{parentName:"p"},"abundLoadFile")," so we need to swap that key over to make the abundances we just produced our initial abundances. "),(0,m.kt)("p",null,"We also want to turn off freefall and change how long the model runs for."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'#change other bits of input to set up phase 2\nparam_dict["initialDens"]=1e6\nparam_dict["finalTime"]=1e6\nparam_dict["freefall"]=False\n\n#freeze out is completely overwhelmed by thermal desorption\n#so turning it off has no effect on abundances but speeds up integrator.\nparam_dict["freezeFactor"]=0.0\n\nparam_dict["abstol_factor"]=1e-18\nparam_dict["reltol"]=1e-12\n\n#pop is dangerous, it removes the original key so you can\'t rerun this cell.\nparam_dict["abundLoadFile"]=param_dict.pop("abundSaveFile") \nparam_dict["outputFile"]="../examples/test-output/phase2-full.dat"\n\nresult=uclchem.model.hot_core(temp_indx=3,max_temperature=300.0,param_dict=param_dict)\n')),(0,m.kt)("p",null,"Note that we've changed made two changes to the parameters here which aren't strictly necessary but can be helpful in certain situations."),(0,m.kt)("p",null,"Since the gas temperature increases throughout a hot core model, freeze out is much slower than thermal desorption for all but the first few time steps. Turning it off doesn't affect the abundances but will speed up the solution."),(0,m.kt)("p",null,"We also change abstol and reltol here, largely to demonstrate their use. They control the integrator accuracy and whilst making them smaller does slow down successful runs, it can make runs complete that stall completely otherwise or give correct solutions where lower tolerances allow issues like element conservation failure to sneak in. If your code does not complete or element conservation fails, you can change them."),(0,m.kt)("h3",{id:"checking-the-result"},"Checking the Result"),(0,m.kt)("p",null,"With a successful run, we can check the output. We first load the file and check the abundance conservation, then we can plot it up."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'phase2_df=uclchem.analysis.read_output_file("../examples/test-output/phase2-full.dat")\nuclchem.analysis.check_element_conservation(phase2_df)\n')),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"{'H': '0.002%', 'N': '0.000%', 'C': '0.000%', 'O': '0.000%'}\n")),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'species=["CO","H2O","CH3OH","#CO","#H2O","#CH3OH","@H2O","@CO","@CH3OH"]\n\nfig,[ax,ax2]=plt.subplots(1,2,figsize=(16,9))\nax=uclchem.analysis.plot_species(ax,phase2_df,species)\nsettings=ax.set(yscale="log",xlim=(1e2,1e6),ylim=(1e-10,1e-2),\n xlabel="Time / years", \n ylabel="Fractional Abundance",xscale="log")\n\nax2.plot(phase2_df["Time"],phase2_df["Density"],color="black")\nax2.set(xscale="log")\nax3=ax2.twinx()\nax3.plot(phase2_df["Time"],phase2_df["gasTemp"],color="red")\nax2.set(xlabel="Time / year",ylabel="Density")\nax3.set(ylabel="Temperature",facecolor="red",xlim=(1e2,1e6))\nax3.tick_params(axis=\'y\', colors=\'red\')\n')),(0,m.kt)("p",null,(0,m.kt)("img",{alt:"png",src:t(1108).Z,width:"997",height:"549"})),(0,m.kt)("p",null,"Here, we see the value of running a collapse phase before the science run. Having run a collapse, we start this model with well developed ices and having material in the surface and bulk allows us to properly model the effect of warm up in a hot core. For example, the @CO abundance is ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mo",{parentName:"mrow"},"\u223c"),(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"4")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\sim10^{-4}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.36687em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"\u223c"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"4")))))))))))))," and #CO is ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mo",{parentName:"mrow"},"\u223c"),(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"6")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\sim10^{-6}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.36687em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mrel"},"\u223c"),(0,m.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"6"))))))))))))),". As the gas warms to around 30K, the #CO abundance drops drastically as CO's binding energy is such that it is efficiently desorbed from the surface at this temperature. However, the rest of the CO is trapped in the bulk, surrounded by more strongly bound H2O molecules. Thus, the @CO abundance stays high until the gas reaches around 130K, when the H2O molecules are released along with the entire bulk."),(0,m.kt)("h2",{id:"shocks"},"Shocks"),(0,m.kt)("p",null,"Essentially the same process should be followed for shocks. Let's run a C-type and J-type shock through a gas of density ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"4")),(0,m.kt)("mi",{parentName:"mrow"},"c"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mi",{parentName:"msup"},"m"),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"3")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"10^4 cm^{-3}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"4")))))))),(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"c"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord mathnormal"},"m"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3"))))))))))))),". Again, we first run a simple cloud model to obtain some reasonable starting abundances, then we can run the shocks."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'# set a parameter dictionary for phase 1 collapse model\n\nparam_dict = {\n "endAtFinalDensity": False,#stop at finalTime\n "freefall": True,#increase density in freefall\n "initialDens": 1e2, #starting density\n "finalDens":1e4, #final density\n "initialTemp": 10.0,#temperature of gas\n "finalTime": 6.0e6, #final time\n "rout":0.1, #radius of cloud in pc\n "baseAv":1.0, #visual extinction at cloud edge.\n "abundSaveFile": "../examples/test-output/shockstart.dat",\n}\nresult = uclchem.model.cloud(param_dict=param_dict)\n')),(0,m.kt)("h3",{id:"c-shock"},"C-shock"),(0,m.kt)("p",null,"We'll first run a c-shock. We'll run a 40 km s ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"1")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-1}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1")))))))))))))," shock through a gas of density ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"4"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"10^4")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"4"))))))))))))," cm ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"3")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-3}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3"))))))))))))),", using the abundances we just produced. Note that c-shock is the only model which returns an additional output in its result list. Not only is the first element the success flag indicating whether UCLCHEM completed, the second element is the dissipation time of the shock. We'll use that time to make our plots look nicer, cutting to a reasonable time. You can also obtain it from ",(0,m.kt)("inlineCode",{parentName:"p"},"uclchem.utils.cshock_dissipation_time()"),"."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'#change other bits of input to set up phase 2\nparam_dict["initialDens"]=1e4\nparam_dict["finalTime"]=1e6\nif "abundSaveFile" in param_dict:\n param_dict.pop("abundSaveFile")\nparam_dict["abundLoadFile"]="../examples/test-output/shockstart.dat"\nparam_dict["outputFile"]="../examples/test-output/cshock.dat"\n\n\nresult=uclchem.model.cshock(shock_vel=40,param_dict=param_dict)\nresult,dissipation_time=result\n')),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"}," Cannot have freefall on during cshock\n setting freefall=0 and continuing\n")),(0,m.kt)("p",null,"The code completes fine. We do get a couple of warnings though. First, we're informed that ",(0,m.kt)("inlineCode",{parentName:"p"},"freefall")," must be set to False for the C-shock model. Then we get a few integrator warnings. These are not important and can be ignored as long as the element conservation looks ok. However, it is an indication that the integrator did struggle with these ODEs under these conditions."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'phase2_df=uclchem.analysis.read_output_file("../examples/test-output/cshock.dat")\nuclchem.analysis.check_element_conservation(phase2_df)\n')),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"{'H': '0.005%', 'N': '1.167%', 'C': '1.394%', 'O': '1.326%'}\n")),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'species=["CO","H2O","CH3OH","NH3","$CO","$H2O","$CH3OH","$NH3"]\n\nfig,[ax,ax2]=plt.subplots(1,2,figsize=(16,9))\nax=uclchem.analysis.plot_species(ax,phase2_df,species)\nsettings=ax.set(yscale="log",xlim=(1,20*dissipation_time),ylim=(1e-10,1e-2),\n xlabel="Time / years", \n ylabel="Fractional Abundance",xscale="log")\n\nax2.plot(phase2_df["Time"],phase2_df["Density"],color="black")\nax2.set(xscale="log")\nax3=ax2.twinx()\nax3.plot(phase2_df["Time"],phase2_df["gasTemp"],color="red")\nax2.set(xlabel="Time / year",ylabel="Density")\nax3.set(ylabel="Temperature",facecolor="red",xlim=(1,20*dissipation_time))\nax3.tick_params(axis=\'y\', colors=\'red\')\n')),(0,m.kt)("p",null,(0,m.kt)("img",{alt:"png",src:t(4880).Z,width:"1003",height:"544"})),(0,m.kt)("h3",{id:"j-shock"},"J-shock"),(0,m.kt)("p",null,"Running a j-shock is a simple case of changing function. We'll run a 10 km s ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"1")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-1}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"1")))))))))))))," shock through a gas of density ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("mn",{parentName:"mrow"},"1"),(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mn",{parentName:"msup"},"0"),(0,m.kt)("mn",{parentName:"msup"},"3"))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"10^3")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},"1"),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span",className:"mord"},"0"),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3"))))))))))))," cm ",(0,m.kt)("span",{parentName:"p",className:"math math-inline"},(0,m.kt)("span",{parentName:"span",className:"katex"},(0,m.kt)("span",{parentName:"span",className:"katex-mathml"},(0,m.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,m.kt)("semantics",{parentName:"math"},(0,m.kt)("mrow",{parentName:"semantics"},(0,m.kt)("msup",{parentName:"mrow"},(0,m.kt)("mrow",{parentName:"msup"}),(0,m.kt)("mrow",{parentName:"msup"},(0,m.kt)("mo",{parentName:"mrow"},"\u2212"),(0,m.kt)("mn",{parentName:"mrow"},"3")))),(0,m.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"^{-3}")))),(0,m.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,m.kt)("span",{parentName:"span",className:"base"},(0,m.kt)("span",{parentName:"span",className:"strut",style:{height:"0.8141079999999999em",verticalAlign:"0em"}}),(0,m.kt)("span",{parentName:"span",className:"mord"},(0,m.kt)("span",{parentName:"span"}),(0,m.kt)("span",{parentName:"span",className:"msupsub"},(0,m.kt)("span",{parentName:"span",className:"vlist-t"},(0,m.kt)("span",{parentName:"span",className:"vlist-r"},(0,m.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8141079999999999em"}},(0,m.kt)("span",{parentName:"span",style:{top:"-3.063em",marginRight:"0.05em"}},(0,m.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,m.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,m.kt)("span",{parentName:"span",className:"mord mtight"},"3")))))))))))))," gas this time. Note that nothing stops us using the intial abundances we produced for the c-shock. UCLCHEM will not check that the initial density matches the density of the ",(0,m.kt)("inlineCode",{parentName:"p"},"abundLoadFile"),". It may not always be a good idea to do this but we should remember the intial abundances really are just a rough approximation."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'param_dict["initialDens"]=1e3\nparam_dict["freefall"]=False #lets remember to turn it off this time\nparam_dict["reltol"]=1e-12\n\nshock_vel=10.0\n\nif "abundSaveFile" in param_dict:\n param_dict.pop("abundSaveFile")\nparam_dict["abundLoadFile"]="../examples/test-output/shockstart.dat"\nparam_dict["outputFile"]="../examples/test-output/jshock.dat"\n\n\nresult=uclchem.model.jshock(shock_vel=shock_vel,param_dict=param_dict)\n')),(0,m.kt)("p",null,"This time, we've turned off the freefall option and made reltol a little more stringent. The j-shock ends up running a bit slower but we get no warnings on this run."),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'phase2_df=uclchem.analysis.read_output_file(param_dict["outputFile"])\nuclchem.analysis.check_element_conservation(phase2_df)\n')),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre"},"{'H': '0.003%', 'N': '0.000%', 'C': '0.000%', 'O': '0.000%'}\n")),(0,m.kt)("pre",null,(0,m.kt)("code",{parentName:"pre",className:"language-python"},'species=["CO","H2O","CH3OH","NH3","$CO","$H2O","$CH3OH","$NH3"]\n\nfig,[ax,ax2]=plt.subplots(1,2,figsize=(16,9))\nax=uclchem.analysis.plot_species(ax,phase2_df,species)\nsettings=ax.set(yscale="log",xlim=(1e-7,1e6),ylim=(1e-10,1e-2),\n xlabel="Time / years", \n ylabel="Fractional Abundance",xscale="log")\n\nax2.plot(phase2_df["Time"],phase2_df["Density"],color="black")\nax2.set(xscale="log",yscale="log")\nax3=ax2.twinx()\nax3.plot(phase2_df["Time"],phase2_df["gasTemp"],color="red")\nax2.set(xlabel="Time / year",ylabel="Density")\nax3.set(ylabel="Temperature",facecolor="red",xlim=(1e-7,1e6))\nax3.tick_params(axis=\'y\', colors=\'red\')\n')),(0,m.kt)("p",null,(0,m.kt)("img",{alt:"png",src:t(6931).Z,width:"1003",height:"544"})),(0,m.kt)("p",null,"That's everything! We've run various science models using reasonable starting abundances that we produced by running a simple UCLCHEM model beforehand. One benefit of this method is that the abundances are consistent with the network. If we start with arbitrary, perhaps observationally motivated, abundances, it would be possible to initiate the model in a state our network could never produce. "),(0,m.kt)("p",null,"However, one should be aware of the limitations of this method. A freefall collapse from low density to high is not really how a molecular cloud forms and so the abundances are only approximately similar to values they'd truly have in a real cloud. Testing whether your results are sensitive to things like the time you run the preliminary for or the exact density is a good way to make sure these approximations are not problematic."),(0,m.kt)("p",null,"Bear in mind that you can use ",(0,m.kt)("inlineCode",{parentName:"p"},"abundSaveFile")," and ",(0,m.kt)("inlineCode",{parentName:"p"},"abundLoadFile")," in the same model run. This lets you chain model runs together. For example, you could run a c-shock from a cloud model as we did here and then a j-shock with the c-shock's abundances as the initial abundances."))}N.isMDXComponent=!0},4880:(a,e,t)=>{t.d(e,{Z:()=>s});const s=t.p+"assets/images/modelling_objects_16_0-9cbaa39ecfd8914850efea6f9894f3c9.png"},6931:(a,e,t)=>{t.d(e,{Z:()=>s});const s=t.p+"assets/images/modelling_objects_21_0-9d690606580c74f3f2490e2e8b1ce4b4.png"},1108:(a,e,t)=>{t.d(e,{Z:()=>s});const s=t.p+"assets/images/modelling_objects_8_0-cb8bd1ad21dbba5c26281d2a988b2cfa.png"}}]); \ No newline at end of file diff --git a/assets/js/c4f5d8e4.053a4a62.js b/assets/js/c4f5d8e4.82ee5bab.js similarity index 99% rename from assets/js/c4f5d8e4.053a4a62.js rename to assets/js/c4f5d8e4.82ee5bab.js index 778986d5..8d763f46 100644 --- a/assets/js/c4f5d8e4.053a4a62.js +++ b/assets/js/c4f5d8e4.82ee5bab.js @@ -1 +1 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4195],{4503:(e,a,t)=>{t.d(a,{Z:()=>Ke});var c,l,r,i,n,s,m,f,o,h,p,d,E,y,Z,M,x,u,g,b,v,q,w,O,k,C,j,A,N,H,L,S,U,I,P,_,z,B,G,F,W,T,V,D,J,Q,R,Y,K,X,$,ee,ae,te,ce,le,re,ie,ne,se,me,fe,oe,he,pe,de,Ee,ye,Ze,Me,xe,ue,ge,be,ve,qe,we,Oe,ke,Ce,je,Ae,Ne,He,Le,Se,Ue,Ie,Pe,_e,ze,Be,Ge,Fe,We,Te,Ve,De,Je=t(7294),Qe=["title","titleId"];function Re(){return Re=Object.assign?Object.assign.bind():function(e){for(var a=1;a=0||(l[t]=e[t]);return l}(e,a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(c=0;c=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(l[t]=e[t])}return l}const Ke=function(e){var a=e.title,t=e.titleId,Ke=Ye(e,Qe);return Je.createElement("svg",Re({"data-name":"Layer 1",xmlns:"http://www.w3.org/2000/svg",width:1100,height:806.74,viewBox:"0 0 1100 806.74","aria-labelledby":t},Ke),c||(c=Je.createElement("defs",null,Je.createElement("linearGradient",{id:"a",x1:459.23,y1:847.99,x2:459.23,y2:385.75,gradientTransform:"translate(250.84)",gradientUnits:"userSpaceOnUse"},Je.createElement("stop",{offset:0,stopColor:"gray",stopOpacity:.25}),Je.createElement("stop",{offset:.54,stopColor:"gray",stopOpacity:.12}),Je.createElement("stop",{offset:1,stopColor:"gray",stopOpacity:.1})))),void 0===a?Je.createElement("title",{id:t},"operating system"):a?Je.createElement("title",{id:t},a):null,l||(l=Je.createElement("ellipse",{cx:629.72,cy:780.56,rx:122.56,ry:26.18,fill:"#604687",opacity:.1})),r||(r=Je.createElement("path",{d:"M1070.55 683.84c-24.35 20.2-59 28.56-92.51 33.84l-5.64.86c-58.57 8.74-118.32 10.52-177.79 12.28-165.87 4.91-332.17 9.81-497.6-1.51-73.16-5-148.13-13.76-212.25-43.7l-1.67-.79c-.83-.39-1.66-.78-2.49-1.19A224.11 224.11 0 0 1 48 664.54c-18.31-13.06-33.43-29-41.42-47.91-12.52-29.66-5.9-63 8.4-92s35.8-55.12 54.34-82.43c5.44-8 10.6-16.3 15.4-24.81 30-53.37 44.88-115.13 13.43-166.56a228.58 228.58 0 0 0-13.43-19c-7.67-10-15.47-20-20.74-31.07-12.29-25.76-9.65-54.73-5.17-82.25 6-36.59 17.05-76 51.38-98.86 35.67-23.74 86.3-22.54 130.57-14 68.83 13.19 132.36 40.8 196.49 65.7s131.35 47.58 201.86 50.02c62.26 2.17 134.89-14 176.23-56.08 40.15-40.85 115.6-43.94 170-19.27 51.91 23.54 85.48 73.36 83 123.12-3.16 62.1-54.93 111.83-95.9 164.7-6.81 8.79-13.33 17.68-19.28 26.72-19.42 29.53-33.15 65-19.78 96.88 7.5 17.85 21.81 31.47 39.06 43.36 38.65 26.63 92 44.55 116 81.83 20.67 32.16 13.01 75.56-17.89 101.21Z",fill:"#604687",opacity:.1})),i||(i=Je.createElement("ellipse",{cx:972.5,cy:704.85,rx:57.01,ry:10.96,fill:"#604687"})),n||(n=Je.createElement("ellipse",{cx:971.55,cy:700.19,rx:6.64,ry:8.69,fill:"#3f3d56"})),s||(s=Je.createElement("ellipse",{cx:971.55,cy:689.57,rx:6.64,ry:8.69,fill:"#3f3d56"})),m||(m=Je.createElement("ellipse",{cx:971.55,cy:678.94,rx:6.64,ry:8.69,fill:"#3f3d56"})),f||(f=Je.createElement("ellipse",{cx:971.55,cy:668.32,rx:6.64,ry:8.69,fill:"#3f3d56"})),o||(o=Je.createElement("ellipse",{cx:971.55,cy:657.7,rx:6.64,ry:8.69,fill:"#3f3d56"})),h||(h=Je.createElement("ellipse",{cx:971.55,cy:647.08,rx:6.64,ry:8.69,fill:"#3f3d56"})),p||(p=Je.createElement("ellipse",{cx:971.55,cy:636.46,rx:6.64,ry:8.69,fill:"#3f3d56"})),d||(d=Je.createElement("path",{d:"M996.4 563.78a31 31 0 0 0 2.47-3.64l-17.44-2.86 18.86.14a31.78 31.78 0 0 0 .61-25.2l-25.31 13.15 23.34-17.15a31.8 31.8 0 1 0-52.51 35.58 31.55 31.55 0 0 0-3.63 5.8l22.64 11.77-24.14-8.1a31.79 31.79 0 0 0 5.13 29.86 31.8 31.8 0 1 0 50 0 31.78 31.78 0 0 0 0-39.32Z",fill:"#604687"})),E||(E=Je.createElement("path",{d:"M939.61 583.44a31.68 31.68 0 0 0 6.81 19.66 31.8 31.8 0 1 0 50 0c4.24-5.41-56.81-23.23-56.81-19.66Z",opacity:.1})),y||(y=Je.createElement("path",{d:"M134.73 673.91c0 5.59-21.81 10.21-50 10.87h-1.67c-.83-.39-1.66-.78-2.49-1.19A224.11 224.11 0 0 1 48 664.54c6.85-.8 14.64-1.34 23-1.52h1.13c1.82 0 3.67-.06 5.54-.06h7.05c28.2.73 50.01 5.41 50.01 10.95Z",fill:"#604687"})),Z||(Z=Je.createElement("ellipse",{cx:76.76,cy:669.25,rx:6.64,ry:8.69,fill:"#3f3d56"})),M||(M=Je.createElement("ellipse",{cx:76.76,cy:658.63,rx:6.64,ry:8.69,fill:"#3f3d56"})),x||(x=Je.createElement("ellipse",{cx:76.76,cy:648.01,rx:6.64,ry:8.69,fill:"#3f3d56"})),u||(u=Je.createElement("ellipse",{cx:76.76,cy:637.39,rx:6.64,ry:8.69,fill:"#3f3d56"})),g||(g=Je.createElement("ellipse",{cx:76.76,cy:626.77,rx:6.64,ry:8.69,fill:"#3f3d56"})),b||(b=Je.createElement("ellipse",{cx:76.76,cy:616.15,rx:6.64,ry:8.69,fill:"#3f3d56"})),v||(v=Je.createElement("ellipse",{cx:76.76,cy:605.52,rx:6.64,ry:8.69,fill:"#3f3d56"})),q||(q=Je.createElement("path",{d:"M101.61 532.84a32.28 32.28 0 0 0 2.48-3.63l-17.45-2.84 18.87.14a31.8 31.8 0 0 0 .6-25.19l-25.3 13.13 23.34-17.16a31.8 31.8 0 1 0-52.52 35.58 32.45 32.45 0 0 0-3.63 5.8l22.64 11.7-24.14-8.07a31.87 31.87 0 0 0 5.13 29.86 31.8 31.8 0 1 0 50 0 31.78 31.78 0 0 0 0-39.32Z",fill:"#604687"})),w||(w=Je.createElement("path",{d:"M44.83 552.5a31.67 31.67 0 0 0 6.8 19.66 31.8 31.8 0 1 0 50 0c4.24-5.41-56.8-23.23-56.8-19.66Z",opacity:.1})),O||(O=Je.createElement("g",{opacity:.2},Je.createElement("path",{d:"M305.84 555.29c0 .94-.1 1.86-.2 2.76q-11.64-4.68-22.92-9.93a18.59 18.59 0 0 1-10.6-5.17c-2.19-1.1-4.37-2.24-6.54-3.39a26.82 26.82 0 0 1 1.66-3c4.2-6.66 10.6-10.83 17.65-10.6s13.15 4.78 16.93 11.66a34.37 34.37 0 0 1 4.02 17.67Z",fill:"#3f3d56"}),Je.createElement("path",{d:"M307 520.37a34.56 34.56 0 0 1-5.13 17.32c-4.21 6.64-10.6 10.81-17.65 10.58-.49 0-1-.06-1.45-.1a18.59 18.59 0 0 1-10.6-5.17 25.27 25.27 0 0 1-4.88-6.37 35.82 35.82 0 0 1 1.1-35c4.21-6.66 10.6-10.83 17.65-10.6s13.15 4.78 16.93 11.66a34.47 34.47 0 0 1 4.03 17.68Z",fill:"#3f3d56"}),Je.createElement("ellipse",{cx:336.18,cy:531.28,rx:28.63,ry:21.87,transform:"rotate(-88.19 287.148 533.775)",fill:"#3f3d56"}),Je.createElement("ellipse",{cx:337.29,cy:496.31,rx:28.63,ry:21.87,transform:"rotate(-88.19 288.252 498.807)",fill:"#3f3d56"}),Je.createElement("ellipse",{cx:338.39,cy:461.34,rx:28.63,ry:21.87,transform:"rotate(-88.19 289.351 463.833)",fill:"#3f3d56"}),Je.createElement("path",{d:"M214.12 172.83a105.78 105.78 0 0 1-7.76-12.24l57.72-7.62-62.08-1.5a104.92 104.92 0 0 1 .62-83l82 45.85-75.15-58.95a104.75 104.75 0 1 1 169.22 122.65A105.13 105.13 0 0 1 390 197.48l-75.77 36.38 80.33-24.17a104.85 104.85 0 0 1-20 97.78A104.75 104.75 0 1 1 210 302.28a104.73 104.73 0 0 1 4.08-129.45Z",fill:"#604687"}),Je.createElement("path",{d:"M399.05 243.45a104.29 104.29 0 0 1-24.44 64A104.75 104.75 0 1 1 210 302.28c-13.43-18.25 189.42-70.58 189.05-58.83Z",opacity:.1}))),k||(k=Je.createElement("g",{opacity:.2},Je.createElement("path",{d:"M798.18 480.51c0 .67-.07 1.32-.14 2q-8.31-3.29-16.31-7.06a13.31 13.31 0 0 1-7.55-3.68c-1.55-.79-3.11-1.6-4.65-2.41a19.78 19.78 0 0 1 1.18-2.13c3-4.74 7.54-7.7 12.56-7.54s9.36 3.4 12.05 8.3a24.5 24.5 0 0 1 2.86 12.52Z",fill:"#3f3d56"}),Je.createElement("path",{d:"M799 455.62a24.56 24.56 0 0 1-3.65 12.33c-3 4.72-7.54 7.69-12.56 7.53l-1-.07a13.31 13.31 0 0 1-7.55-3.68 18.32 18.32 0 0 1-3.47-4.54 25.51 25.51 0 0 1 .78-24.88c3-4.74 7.55-7.71 12.56-7.55s9.37 3.4 12.05 8.3a24.55 24.55 0 0 1 2.84 12.56Z",fill:"#3f3d56"}),Je.createElement("ellipse",{cx:834.19,cy:476.87,rx:20.37,ry:15.56,transform:"rotate(-88.19 785.171 479.34)",fill:"#3f3d56"}),Je.createElement("ellipse",{cx:834.98,cy:451.98,rx:20.37,ry:15.56,transform:"rotate(-88.19 785.957 454.46)",fill:"#3f3d56"}),Je.createElement("ellipse",{cx:835.76,cy:427.1,rx:20.37,ry:15.56,transform:"rotate(-88.19 786.738 429.573)",fill:"#3f3d56"}),Je.createElement("path",{d:"M732.91 208.37a73.57 73.57 0 0 1-5.52-8.71l41.08-5.42-44.21-1.07a74.67 74.67 0 0 1 .43-59.07L783 166.69l-53.4-41.93A74.55 74.55 0 1 1 850 212.02a74.71 74.71 0 0 1 8.06 13.86l-53.89 25.89 57.17-17.2a74.55 74.55 0 0 1-14.22 69.58A74.54 74.54 0 1 1 730 300.46a74.55 74.55 0 0 1 2.91-92.09Z",fill:"#604687"}),Je.createElement("path",{d:"M864.52 258.59a74.2 74.2 0 0 1-17.4 45.56A74.54 74.54 0 1 1 730 300.46c-9.58-13 134.78-50.23 134.52-41.87Z",opacity:.1}))),C||(C=Je.createElement("g",{opacity:.2},Je.createElement("path",{d:"M585 402.46c0 .67-.08 1.32-.15 2q-8.31-3.29-16.31-7.06a13.28 13.28 0 0 1-7.54-3.68c-1.56-.79-3.11-1.6-4.65-2.41a19 19 0 0 1 1.17-2.13c3-4.73 7.55-7.7 12.56-7.54s9.36 3.4 12.05 8.3a24.5 24.5 0 0 1 2.87 12.52Z",fill:"#3f3d56"}),Je.createElement("path",{d:"M585.74 377.57a24.56 24.56 0 0 1-3.65 12.33c-3 4.72-7.54 7.69-12.56 7.53-.35 0-.68 0-1-.07a13.28 13.28 0 0 1-7.54-3.68 18.11 18.11 0 0 1-3.48-4.54 25.48 25.48 0 0 1 .79-24.88c3-4.74 7.54-7.71 12.56-7.55s9.36 3.4 12 8.3a24.54 24.54 0 0 1 2.88 12.56Z",fill:"#3f3d56"}),Je.createElement("ellipse",{cx:620.97,cy:398.82,rx:20.37,ry:15.56,transform:"rotate(-88.3 571.11 401.206)",fill:"#3f3d56"}),Je.createElement("ellipse",{cx:621.75,cy:373.93,rx:20.37,ry:15.56,transform:"rotate(-88.19 572.718 376.417)",fill:"#3f3d56"}),Je.createElement("ellipse",{cx:622.54,cy:349.05,rx:20.37,ry:15.56,transform:"rotate(-88.19 573.504 351.525)",fill:"#3f3d56"}),Je.createElement("path",{d:"M519.68 130.28a74.87 74.87 0 0 1-5.52-8.71l41.08-5.42-44.24-1.07a74.62 74.62 0 0 1 .44-59.07l58.33 32.63-53.39-41.93a74.54 74.54 0 1 1 120.42 87.26 74.76 74.76 0 0 1 8.07 13.86L591 173.72l57.16-17.2a74.55 74.55 0 0 1-14.22 69.58 74.54 74.54 0 1 1-117.16-3.73 74.57 74.57 0 0 1 2.9-92.13Z",fill:"#604687"}),Je.createElement("path",{d:"M651.29 180.54a74.2 74.2 0 0 1-17.4 45.56 74.54 74.54 0 1 1-117.11-3.73c-9.59-12.95 134.77-50.19 134.51-41.83Z",opacity:.1}))),j||(j=Je.createElement("path",{d:"M972.4 500.81v217.73c-58.57 8.74-118.32 10.52-177.79 12.28-165.87 4.91-332.17 9.81-497.6-1.51-73.16-5-148.13-13.76-212.25-43.7V417.37c.24-185-.76 0 0-185.56v-66.59a14.1 14.1 0 0 1 14.1-14.1H958.3a14.1 14.1 0 0 1 14.1 14.1v168.63c.6 166.52-.4.52 0 166.96Z",fill:"#3f3d56"})),A||(A=Je.createElement("rect",{x:344.15,y:217.75,width:368.86,height:28.56,rx:5.22,fill:"#604687",opacity:.3})),N||(N=Je.createElement("path",{d:"M687.94 233.22h-.61l-.23-.19a5.1 5.1 0 0 0 1.19-3.25 4.94 4.94 0 1 0-4.92 5 5.09 5.09 0 0 0 3.24-1.18l.22.19v.58l3.81 3.82 1.14-1.14Zm-4.57 0a3.44 3.44 0 1 1 3.43-3.44 3.42 3.42 0 0 1-3.43 3.44Z",fill:"#444053"})),H||(H=Je.createElement("rect",{x:222.84,y:493.2,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),L||(L=Je.createElement("rect",{x:222.84,y:522.95,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),S||(S=Je.createElement("rect",{x:222.84,y:508.08,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),U||(U=Je.createElement("path",{d:"M164.57 522.58a5.74 5.74 0 0 0-5.8 5.69 3.88 3.88 0 0 1-3.87 3.79 10 10 0 0 0 7.73 3.8 7.67 7.67 0 0 0 7.75-7.59 5.75 5.75 0 0 0-5.81-5.69Zm26.53-17.76-2.6-2.55a1.94 1.94 0 0 0-2.72 0l-17.34 17 5.32 5.22 17.32-17a1.86 1.86 0 0 0 .02-2.67Z",fill:"#604687"})),I||(I=Je.createElement("rect",{x:222.84,y:345.66,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),P||(P=Je.createElement("rect",{x:222.84,y:375.41,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),_||(_=Je.createElement("rect",{x:222.84,y:360.53,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),z||(z=Je.createElement("path",{d:"M191.18 378.15 176 362.87a10.82 10.82 0 0 0-2.51-11.58 11 11 0 0 0-12.35-2.18l7.18 7.22-5 5-7.32-7.18a10.86 10.86 0 0 0 2.17 12.41 10.66 10.66 0 0 0 11.51 2.52l15.15 15.29a1.61 1.61 0 0 0 2.34 0l3.84-3.86a1.51 1.51 0 0 0 .17-2.35Z",fill:"#604687"})),B||(B=Je.createElement("rect",{x:509.6,y:493.2,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),G||(G=Je.createElement("rect",{x:509.6,y:522.95,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),F||(F=Je.createElement("rect",{x:509.6,y:508.08,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),W||(W=Je.createElement("path",{d:"M459.44 526a10 10 0 0 1-9.89 0c-3.87 1.19-6.24 5.09-7.12 8.54h24.12c-.87-3.45-3.23-7.35-7.11-8.54Zm-4.94-18.37a8.69 8.69 0 1 0 8.69 8.68 8.69 8.69 0 0 0-8.69-8.68Zm0 15.3a6.71 6.71 0 0 1-6.07-4.14h12.14a6.71 6.71 0 0 1-6.07 4.14Z",fill:"#604687"})),T||(T=Je.createElement("path",{d:"M472.09 521.37a10.07 10.07 0 0 1-8.4.69 12 12 0 0 1-2.3 2.86 11.24 11.24 0 0 1 4.9 4.33h12.91a10.72 10.72 0 0 0-7.11-7.88Zm-4.94-18.38a8.71 8.71 0 0 0-7.33 4 10.78 10.78 0 0 1 5.15 7.14h8.25a6.72 6.72 0 0 1-6.07 4.12 6 6 0 0 1-2.08-.38 11.65 11.65 0 0 1-.54 2.07 8.35 8.35 0 0 0 2.62.4 8.69 8.69 0 0 0 0-17.38Z",fill:"#604687"})),V||(V=Je.createElement("rect",{x:222.84,y:603.86,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),D||(D=Je.createElement("rect",{x:222.84,y:633.61,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),J||(J=Je.createElement("rect",{x:222.84,y:618.74,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),Q||(Q=Je.createElement("path",{d:"M176.57 607.62h-9.82a3.28 3.28 0 0 0-3.32 3.24v.7h-.62a3.28 3.28 0 0 0-3.32 3.24v23.63a3.34 3.34 0 0 0 3.32 3.32h17.08a3.27 3.27 0 0 0 3.23-3.32v-.62h.71a3.27 3.27 0 0 0 3.23-3.32v-16.37Zm0 3.66 6.84 6.84h-6.84Zm3.94 27.15a.67.67 0 0 1-.62.7h-17.08a.73.73 0 0 1-.69-.7V614.8a.67.67 0 0 1 .69-.62h.62v21c0 1.82.86 2.66 2.67 2.66h14.41Zm3.93-3.94a.66.66 0 0 1-.61.7h-17.08a.73.73 0 0 1-.69-.7v-23.63a.67.67 0 0 1 .69-.62h7.19v10.51h10.5Z",fill:"#604687"})),R||(R=Je.createElement("rect",{x:509.6,y:345.66,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),Y||(Y=Je.createElement("rect",{x:509.6,y:375.41,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),K||(K=Je.createElement("rect",{x:509.6,y:360.53,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),X||(X=Je.createElement("path",{d:"M457.32 353.37h-11.38a3.51 3.51 0 0 0-3.5 3.51v19.25a3.5 3.5 0 0 0 3.5 3.5h29.76a3.5 3.5 0 0 0 3.5-3.5v-15.34a3.51 3.51 0 0 0-3.5-3.5h-14.88l-3.5-3.94Z",fill:"#604687"})),$||($=Je.createElement("rect",{x:792.79,y:493.2,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),ee||(ee=Je.createElement("rect",{x:792.79,y:522.95,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),ae||(ae=Je.createElement("rect",{x:792.79,y:508.08,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),te||(te=Je.createElement("path",{d:"m762.93 509.28-6.77-.32-.4-4.41a1.7 1.7 0 0 0-1.88-1.52l-24.27 2a1.67 1.67 0 0 0-1.59 1.79l1.73 19.35a1.7 1.7 0 0 0 1.88 1.49l1.23-.09-.19 3.76a1.87 1.87 0 0 0 1.83 1.93l27.09 1.28a1.88 1.88 0 0 0 2-1.74l1.14-21.6a1.86 1.86 0 0 0-1.8-1.92Zm-29.12.44-.58 11.06-1.44 2-1.32-14.61v-.09a.89.89 0 0 1 .78-.77l21.42-1.75a.81.81 0 0 1 .87.64l.21 2.52-18-.86a1.9 1.9 0 0 0-1.94 1.86Zm27.4 19.44-7-8.17-3.07 2.82-5.67-6.63-10.07 10.72.86-16.33a.94.94 0 0 1 1-.74l23.9 1.16a.87.87 0 0 1 .85.83Z",fill:"#604687"})),ce||(ce=Je.createElement("path",{d:"M756.89 518.79a2.63 2.63 0 1 0-2.62-2.63 2.64 2.64 0 0 0 2.62 2.63Z",fill:"#604687"})),le||(le=Je.createElement("rect",{x:795.17,y:345.66,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),re||(re=Je.createElement("rect",{x:795.17,y:375.41,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),ie||(ie=Je.createElement("rect",{x:795.17,y:360.53,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),ne||(ne=Je.createElement("circle",{cx:762.56,cy:356.63,r:5.25,fill:"#604687"})),se||(se=Je.createElement("path",{d:"m758.53 362.82-10.42 6.94-14.44-9.62v-3.51l14.44 9.63 8.3-5.53a7.39 7.39 0 0 1-.1-8h-23.07a3.52 3.52 0 0 0-3.51 3.51v21.88a3.52 3.52 0 0 0 3.51 3.51H763a3.51 3.51 0 0 0 3.5-3.51v-15.2a7.37 7.37 0 0 1-8-.06Z",fill:"#604687"})),me||(me=Je.createElement("ellipse",{cx:509.64,cy:746.02,rx:26.08,ry:5.01,fill:"#604687"})),fe||(fe=Je.createElement("ellipse",{cx:509.21,cy:743.89,rx:3.04,ry:3.97,fill:"#3f3d56"})),oe||(oe=Je.createElement("ellipse",{cx:509.21,cy:739.03,rx:3.04,ry:3.97,fill:"#3f3d56"})),he||(he=Je.createElement("ellipse",{cx:509.21,cy:734.17,rx:3.04,ry:3.97,fill:"#3f3d56"})),pe||(pe=Je.createElement("ellipse",{cx:509.21,cy:729.31,rx:3.04,ry:3.97,fill:"#3f3d56"})),de||(de=Je.createElement("ellipse",{cx:509.21,cy:724.46,rx:3.04,ry:3.97,fill:"#3f3d56"})),Ee||(Ee=Je.createElement("ellipse",{cx:509.21,cy:719.6,rx:3.04,ry:3.97,fill:"#3f3d56"})),ye||(ye=Je.createElement("ellipse",{cx:509.21,cy:714.74,rx:3.04,ry:3.97,fill:"#3f3d56"})),Ze||(Ze=Je.createElement("path",{d:"M520.57 681.5a13.59 13.59 0 0 0 1.13-1.67l-8-1.31 8.62.07a14.59 14.59 0 0 0 .28-11.52l-11.57 6 10.67-7.85a14.54 14.54 0 1 0-24 16.28 15.11 15.11 0 0 0-1.66 2.65l10.36 5.38-11-3.7a14.53 14.53 0 0 0 2.34 13.65 14.54 14.54 0 1 0 22.86 0 14.55 14.55 0 0 0 0-18Z",fill:"#604687"})),Me||(Me=Je.createElement("path",{d:"M494.6 690.49a14.45 14.45 0 0 0 3.11 9 14.54 14.54 0 1 0 22.86 0c1.95-2.48-25.97-10.63-25.97-9Z",opacity:.1})),xe||(xe=Je.createElement("path",{d:"M802 436.86a13.68 13.68 0 0 1-1-2.7c-.1-1.07.32-2.48-.63-3-.53-.29-1.27-.07-1.74-.45a2.15 2.15 0 0 1-.51-1.2 4.1 4.1 0 0 0-3.8-3c1-2.71 4.68-3.37 6.3-5.76.81-1.19.55-3.38-.88-3.39a2.49 2.49 0 0 0-1 .25l-5.33 2.2a27.35 27.35 0 0 0-3 1.39c-2.93 1.67-5.12 4.38-7.09 7.13a30.49 30.49 0 0 0-4.41 8 18 18 0 0 0-.94 5.49v.56c-.87.15-1.58.53-2.49.71l-2.07 5.47a6.93 6.93 0 0 1-1.35 2.49 12.52 12.52 0 0 1-1.46 1.15 8.45 8.45 0 0 0-2.91 7.37 7.93 7.93 0 0 0-4.66 9.78 9.31 9.31 0 0 0-6.81 6 4.43 4.43 0 0 1-.89 1.88 3.55 3.55 0 0 1-2.37.73c-2.34.15-4.38 2-6.49 1a13.21 13.21 0 0 0-7.71-1.08 5.77 5.77 0 0 1-1.65.15 4.43 4.43 0 0 1-1.35-.47 10.46 10.46 0 0 0-3.06-1.21 2.84 2.84 0 0 0-2.9 1.12c-.74-.81-1.18-1.86-1.85-2.73a3 3 0 0 0-2.82-1.35c.7-.63 0-1.89-.93-2.11a11.56 11.56 0 0 0-2.81.1c-2.44 0-4.32-2.24-6.69-2.83-2.18-.53-5.09.11-6.21-1.85-.35-.63-.45-1.45-1-1.92a3.64 3.64 0 0 0-.71-1.45c-.9-1-2.41-1.16-3.76-1.12a15.68 15.68 0 0 0-4.37.75c0-.17-.09-.36-.15-.56a11.09 11.09 0 0 0-4.84-5.94 20 20 0 0 0-5.66-2.26v-.53a22.55 22.55 0 0 1 1.16-7.43c.08-.26.18-.52.27-.78a26.6 26.6 0 0 0 12-44.63 6.83 6.83 0 0 0-.21-1.6 7.86 7.86 0 0 0-1.6-3.12c-1.22-2.72-3.12-3.92-5.55-5.06-.7-.33-1.44-.65-2.22-1-3.87-1.74-7.61-4.3-12-4.29-4 0-7.86 2.21-11.82 2.13h-.95c-1.11-.13-2.44-.39-3.17.46a4.5 4.5 0 0 0-.56 1.09 2.64 2.64 0 0 1-.2.37 4.4 4.4 0 0 1-.51.69c-1.28 1.4-3.43 2-5.2 2.94-4 2.05-6.62 6.23-7.66 10.61s-.68 9 .1 13.44c.4 2.22 1.26 4.74 2.84 6.14s-13.37 9.51-10.93 10.86c1.33.74 6.87-2.77 11.64-6.12.05.2.09.41.15.61a44 44 0 0 0 2.18 6.25c1 2.39 2.44 5 4.93 5.69a5.36 5.36 0 0 0 1.69.19h.44a39.39 39.39 0 0 1-1.15 10.87 6.61 6.61 0 0 0-4.09 1.13 3.29 3.29 0 0 1-1.66.88 2.89 2.89 0 0 1-1.71-.84 9.7 9.7 0 0 0-12.14.64c-4.84 4.57-4.29 13.49-10 16.95-1.56.95-3.56 1.46-4.48 3.05a11.41 11.41 0 0 1-.77 1.47 4.05 4.05 0 0 1-1.36 1 26.48 26.48 0 0 0-4.68 2.7 6.72 6.72 0 0 0-2.69 4.54 8.61 8.61 0 0 0 .82 3.81 36.44 36.44 0 0 0 3.12 6 6.38 6.38 0 0 0-1.26 2.95c-.4 2.81.94 5.58 1.09 8.42.13 2.48-.66 4.9-1.1 7.34-1.76 9.54 1.61 19.2 5 28.26a14.58 14.58 0 0 1 1.2 4.65c.09 3-1.6 5.67-2.07 8.59-1 6.14 3.53 11.92 3.63 18.13 0 2.87-.86 5.78-.14 8.55.47 1.85 1.62 3.44 2.44 5.17 1.44 3.06 1.83 6.53 3.21 9.62a23.07 23.07 0 0 0 7.12 8.48c1.73 5.49-.73 12.12 0 18q1.41-.56 2.85-1a41.17 41.17 0 0 0 6.3 24.84c1.55 2.42 3.37 4.68 4.54 7.31a34.26 34.26 0 0 1 1.77 5.79q2.51 10.47 5 20.92c1.36 5.65 2.73 11.4 2.32 17.2-.28 4-1.3 8.57 1.18 11.77a8.51 8.51 0 0 1 1.49 2.06 5.22 5.22 0 0 1 0 2.72 180.71 180.71 0 0 0-2.48 20.39c-.56.75-1.12 1.51-1.63 2.26-4.11 6-6.09 13.21-7.69 20.32a245.83 245.83 0 0 0-5.16 42.44 28.38 28.38 0 0 0-5.26 6.41c-2.15 4-2.43 8.7-2.66 13.24a4.73 4.73 0 0 0 .24 2.18 4.48 4.48 0 0 0 2.24 1.68l1.24.59c-.27 1-.51 2-.72 3.05-1.58-1.78-4.39-4.6-4.87-2.54a101.78 101.78 0 0 0-2.56 21 1.77 1.77 0 0 0 1.9 2.12A116.25 116.25 0 0 0 660 848c5.65 0 11.29-.46 16.92-.89l5.77-.44a127.7 127.7 0 0 0 17.67-2.19c2.55-.56 5.18-1.35 7.1-3.14s2.86-4.85 1.54-7.12c-1.61-2.74-5.37-2.94-8.51-3.38a27.85 27.85 0 0 1-8.92-2.84c-.63-.32-1.24-.68-1.85-1 .16 0 .33-.08.48-.14 2.7-.91 4.85-3 7.39-4.25 3-1.45 6.31-1.78 9.57-2.19s6.62-1 9.33-2.86c2.54-1.74 4.34-4.91 3.75-7.89a5.15 5.15 0 0 0-.16-.62c-1-3.23-4.5-5-7.76-5.8s-6.8-1.28-9.44-3.38l-.39-.31c-.22-.19-.45-.37-.69-.56a5.62 5.62 0 0 0 .77-3.26c-.14-1.79-1.18-3.37-1.89-5-1.39-3.25-1.5-6.88-1.88-10.39-.94-8.83-3.65-17.35-5.69-26-.23-1-.45-2-.67-3a62.86 62.86 0 0 1 7.27-11.64 38 38 0 0 0 7-13.77c.42-1.54.73-3.1 1.05-4.67Q713.18 694.18 718 667a45.19 45.19 0 0 0 .91-7.84 23.89 23.89 0 0 0 1.35-7.43c.94-3.67 1.89-7.52 1.12-9.92-.54-1.7-.81-7.51-1.11-13.08a50.24 50.24 0 0 0-.54-8.93c-.09-.51-.19-1-.3-1.51q-.09-.45-.18-.75a25.68 25.68 0 0 0-1.76-4.86 23.63 23.63 0 0 0-1.32-2.71 12.34 12.34 0 0 0-1-1.48 62 62 0 0 1 6.22.58c.5.07 1.12.11 1.43-.3a1.47 1.47 0 0 0 .18-.77 12.75 12.75 0 0 0-1.62-6.76c-.8-1.42-1.91-2.8-1.88-4.43a6.53 6.53 0 0 1 .55-2.2l2.77-7.44c2.35-6.29 1.23-13.58 2.45-20.18a118.46 118.46 0 0 0 1.82-15.61c.23-4.47.09-9.32-2.6-12.9a14.73 14.73 0 0 1-2-2.84 8.41 8.41 0 0 1-.48-3.39q-.07-10.51.42-21a206.38 206.38 0 0 0 35.05-4 22 22 0 0 0 4-1.08 20.19 20.19 0 0 0 4-2.53c3.93-2.84 7.92-5.73 10.91-9.55a32.36 32.36 0 0 0 6.46-15.94c2.84-2.63 4.35-6.37 5.77-10a15.42 15.42 0 0 0 1.32-4.85c.07-1.72-1.06-3.52-.74-5.21a13.78 13.78 0 0 1 4.19-7.58 2.74 2.74 0 0 0 1-1.33 2.12 2.12 0 0 0-.23-1.3l-.09-.15c.28-.17.54-.35.81-.53.93-.66 1.82-1.39 2.69-2.1a17 17 0 0 0 3.49-3.54 5.75 5.75 0 0 0 .94-4.7ZM673.69 820.15c-.24 0-.48 0-.71.06a9.57 9.57 0 0 0-2.54.73l-.19.1c1.1-2.38 2.14-4.8 3.08-7.26.11-.29.21-.58.32-.88l-.12 1.64a20.22 20.22 0 0 0 .16 5.61Z",transform:"translate(-50 -46.63)",fill:"url(#a)"})),ue||(ue=Je.createElement("path",{d:"M638 409.1c.1 3.88 1.42 7.64 1.62 11.52-11.43.57-22.72-5-34-3.28 3.17-2.05 4.86-5.74 5.86-9.37a38.9 38.9 0 0 0 1.11-14.41 6.61 6.61 0 0 0-.14-.79c-.42-1.9-1.51-4.59-1.22-6.08.39-2 2.25-1.59 3.93-1.48a150.51 150.51 0 0 1 15.26 2c1.32.23 14.13 3.43 14.33 3.1a59.69 59.69 0 0 0-5.55 11.43 22.32 22.32 0 0 0-1.2 7.36ZM751.05 397.1a16.64 16.64 0 0 1-3.49 3.52c-.87.71-1.76 1.44-2.69 2.09a11.5 11.5 0 0 1-5.72 2.33c-2.72.18-8.51-1.42-10.2-3.75a6.77 6.77 0 0 1-1-3.91 17.88 17.88 0 0 1 .94-5.46 30.42 30.42 0 0 1 4.41-8c2-2.74 4.16-5.43 7.09-7.09a27.35 27.35 0 0 1 3-1.39l5.33-2.18a2.5 2.5 0 0 1 1-.26c1.43 0 1.69 2.2.88 3.38-1.62 2.38-5.27 3-6.3 5.73a4.09 4.09 0 0 1 3.8 2.95 2.11 2.11 0 0 0 .51 1.19c.47.37 1.21.16 1.74.45.95.5.53 1.91.63 3a13.5 13.5 0 0 0 1 2.68 5.69 5.69 0 0 1-.93 4.72Z",fill:"#ee8e9e"})),ge||(ge=Je.createElement("path",{d:"M593.4 786.45c.88-.88 2.32-.73 3.55-.54a132 132 0 0 0 19.95 1.61c.84-4.08-1.59-8-2.37-12.14a10.76 10.76 0 0 0-.8-3.08c-.94-1.8-3.06-2.63-5.05-3-3.59-.76-9.21-2.09-11.22 1.54-2.41 4.31-3.18 10.75-4.06 15.61Z",fill:"#65617d"})),be||(be=Je.createElement("path",{d:"M666.49 771.02c-2.71 1.85-6.07 2.42-9.33 2.84s-6.61.74-9.57 2.19c-2.54 1.26-4.69 3.32-7.39 4.22a15.31 15.31 0 0 1-7.67.12c-3-.57-6.26-1.67-7.89-4.29-1.46-2.32-1.31-5.27-1.11-8 .24-3.09.47-6.2.69-9.3a4.4 4.4 0 0 1 .58-2.24c2.19-3.2 7.52 1.33 10.37 1.33 4.52 0 9.37-2.46 12.62-5.45a3.89 3.89 0 0 1 1-.74c1.29-.58 2.58.49 3.72 1.42l.39.31c2.64 2.09 6.18 2.52 9.44 3.37s6.75 2.55 7.76 5.77a4.57 4.57 0 0 1 .16.61c.57 2.95-1.26 6.1-3.77 7.84Z",fill:"#3f3d56"})),ve||(ve=Je.createElement("path",{d:"M666.49 771.02c-2.71 1.85-6.07 2.42-9.33 2.84s-6.61.74-9.57 2.19c-2.54 1.26-4.69 3.32-7.39 4.22a15.31 15.31 0 0 1-7.67.12c-3-.57-6.26-1.67-7.89-4.29-1.46-2.32-1.31-5.27-1.11-8 .24-3.09.47-6.2.69-9.3a4.4 4.4 0 0 1 .58-2.24c2.19-3.2 7.52 1.33 10.37 1.33 4.52 0 9.37-2.46 12.62-5.45a3.89 3.89 0 0 1 1-.74c1.29-.58 2.58.49 3.72 1.42l.39.31c2.64 2.09 6.18 2.52 9.44 3.37s6.75 2.55 7.76 5.77a4.57 4.57 0 0 1 .16.61c.57 2.95-1.26 6.1-3.77 7.84Z",fill:"#434175"})),qe||(qe=Je.createElement("path",{d:"M666.49 772.06c-2.71 1.85-6.07 2.43-9.33 2.85s-6.61.73-9.57 2.18c-2.54 1.26-4.69 3.32-7.39 4.22a15.31 15.31 0 0 1-7.67.12 12.6 12.6 0 0 1-7.89-5.33c-1.46-2.32-1.31-5.27-1.11-8 .24-3.09.47-6.2.69-9.3a4.4 4.4 0 0 1 .58-2.24c2.19-3.2 7.52 1.33 10.37 1.33 4.52 0 9.37-2.46 12.62-5.45a3.89 3.89 0 0 1 1-.74c1.29-.58 2.58.49 3.72 1.42a26.4 26.4 0 0 1-3.17 6.56 13.63 13.63 0 0 1-10 6.22c-2 .15-4.09-.25-6 .27s-3.77 2.52-3.08 4.42 3.06 2.25 5 2.36a22.38 22.38 0 0 0 8.21-.58c1.6-.53 3.07-1.41 4.62-2.06 6.62-2.74 15-1.21 20.46-5.85a13 13 0 0 1 1.67-1.28c1.45 2.99-1.22 7.19-3.73 8.88Z",fill:"#e8eaf2"})),we||(we=Je.createElement("path",{d:"M666.49 772.06c-2.71 1.85-6.07 2.43-9.33 2.85s-6.61.73-9.57 2.18c-2.54 1.26-4.69 3.32-7.39 4.22a15.31 15.31 0 0 1-7.67.12 12.6 12.6 0 0 1-7.89-5.33c-1.46-2.32-1.31-5.27-1.11-8 .24-3.09.47-6.2.69-9.3a4.4 4.4 0 0 1 .58-2.24c2.19-3.2 7.52 1.33 10.37 1.33 4.52 0 9.37-2.46 12.62-5.45a3.89 3.89 0 0 1 1-.74c1.29-.58 2.58.49 3.72 1.42a26.4 26.4 0 0 1-3.17 6.56 13.63 13.63 0 0 1-10 6.22c-2 .15-4.09-.25-6 .27s-3.77 2.52-3.08 4.42 3.06 2.25 5 2.36a22.38 22.38 0 0 0 8.21-.58c1.6-.53 3.07-1.41 4.62-2.06 6.62-2.74 15-1.21 20.46-5.85a13 13 0 0 1 1.67-1.28c1.45 2.99-1.22 7.19-3.73 8.88Z",opacity:.05})),Oe||(Oe=Je.createElement("path",{d:"M594.64 569.44a40.77 40.77 0 0 0 5.58 30c1.55 2.4 3.37 4.66 4.54 7.27a33.77 33.77 0 0 1 1.77 5.77l5 20.8c1.36 5.62 2.73 11.34 2.32 17.11-.28 4-1.3 8.53 1.18 11.71a8.46 8.46 0 0 1 1.49 2.05 5.15 5.15 0 0 1 0 2.7c-2.54 15.11-4.43 30.9.16 45.51 4.17 13.25 4.41 27.93 7.95 41.35a9.24 9.24 0 0 0 2.19 4.59 7.27 7.27 0 0 0 3.3 1.56c5.22 1.25 10.73-.21 15.59-2.46 3.42-1.59 7.1-4.37 6.81-8.12-.14-1.79-1.18-3.36-1.89-5-1.39-3.23-1.5-6.83-1.88-10.33-.94-8.78-3.65-17.26-5.69-25.84s-3.44-17.57-1.71-26.23a229.79 229.79 0 0 1 16.87-51.9 6.27 6.27 0 0 1 1.55-2.32 16.86 16.86 0 0 0 2.19-1.49 6.66 6.66 0 0 0 1-2.72c.76-2.74 3-4.77 4.53-7.17 3.83-6.08 2.62-13.87 2.48-21.05-.14-7 .86-14-.28-20.92s-5.04-13.94-11.69-16.06c-3.29-1.07-6.85-.82-10.29-.48-18.23 1.8-35.95 5.11-53.07 11.67Z",fill:"#696791"})),ke||(ke=Je.createElement("path",{d:"M594.64 570.44a40.77 40.77 0 0 0 5.58 30c1.55 2.4 3.37 4.66 4.54 7.27a33.77 33.77 0 0 1 1.77 5.77l5 20.8c1.36 5.62 2.73 11.34 2.32 17.11-.28 4-1.3 8.53 1.18 11.71a8.46 8.46 0 0 1 1.49 2.05 5.15 5.15 0 0 1 0 2.7c-2.54 15.11-4.43 30.9.16 45.51 4.17 13.25 4.41 27.93 7.95 41.35a9.24 9.24 0 0 0 2.19 4.59 7.27 7.27 0 0 0 3.3 1.56c5.22 1.25 10.73-.21 15.59-2.46 3.42-1.59 7.1-4.37 6.81-8.12-.14-1.79-1.18-3.36-1.89-5-1.39-3.23-1.5-6.83-1.88-10.33-.94-8.78-3.65-17.26-5.69-25.84s-3.44-17.57-1.71-26.23a229.79 229.79 0 0 1 16.87-51.9 6.27 6.27 0 0 1 1.55-2.32 16.86 16.86 0 0 0 2.19-1.49 6.66 6.66 0 0 0 1-2.72c.76-2.74 3-4.77 4.53-7.17 3.83-6.08 2.62-13.87 2.48-21.05-.14-7 .86-14-.28-20.92s-5.04-13.94-11.69-16.06c-3.29-1.07-6.85-.82-10.29-.48-18.23 1.8-35.95 5.11-53.07 11.67Z",opacity:.1})),Ce||(Ce=Je.createElement("path",{d:"M668.92 613.23a44 44 0 0 1-.91 8.07q-4.83 27-10.28 54c-.32 1.56-.63 3.12-1.05 4.65a37.78 37.78 0 0 1-7 13.7c-15.15 18.89-16.46 46.32-24.68 69.1-.56 1.54-1.11 3.09-1.7 4.61a115.75 115.75 0 0 1-5.07 11.31 3.22 3.22 0 0 1-1 1.35 3.08 3.08 0 0 1-1.65.33 48.31 48.31 0 0 1-21.36-4.86 4.48 4.48 0 0 1-2.27-1.89 4.66 4.66 0 0 1-.24-2.17c.23-4.51.51-9.19 2.66-13.16a28.22 28.22 0 0 1 5.26-6.38 242.36 242.36 0 0 1 5.16-42.22c1.6-7.08 3.58-14.23 7.69-20.21 3-4.42 7.38-8.78 6.84-14.11-.23-2.34-1.21-5.25.69-6.62.83-.61 2.06-.69 2.63-1.55a3 3 0 0 0 .37-1.32 32.66 32.66 0 0 0-.68-10.93 58.79 58.79 0 0 1-1.63-7.13 9 9 0 0 1 1.79-6.88c.1-4.87 0-9.92.07-14.78a27.16 27.16 0 0 0-.69-8.25c-.36-1.27-.93-2.49-1.21-3.79-1-4.67 1.52-10.27-1.5-14-1.26-1.54-3.2-2.31-4.85-3.42a17.71 17.71 0 0 1-6.66-9.57 52.59 52.59 0 0 1-1.9-11.74 11.28 11.28 0 0 1 0-2.53 4.35 4.35 0 0 1 .34-1.27c.94-2.11 3.46-2.93 5.71-3.47a185.15 185.15 0 0 1 43.61-5.1c5.44-3.7 8.49-2.37 10.8 1.54a41.09 41.09 0 0 1 3.07 7.51c1 3.18 1.12 21 2.14 24.17 1.3 4.15-2.55 12.65-2.5 17.01Z",fill:"#696791"})),je||(je=Je.createElement("path",{d:"M570.68 451.29c-.4 2.8.94 5.55 1.09 8.38.13 2.47-.66 4.88-1.1 7.31-1.76 9.48 1.61 19.09 5 28.11a14.4 14.4 0 0 1 1.2 4.62c.09 2.94-1.6 5.64-2.07 8.55-1 6.11 3.53 11.85 3.63 18 0 2.85-.86 5.75-.14 8.5.47 1.84 1.62 3.43 2.43 5.14 1.45 3 1.84 6.5 3.22 9.57 2.49 5.55 7.84 9.18 12.94 12.51 2.89-1 6-2.11 7.62-4.72a11.63 11.63 0 0 0 1.33-4.14c1.1-6.33 1.06-12.79 1-19.21a118.59 118.59 0 0 0-.83-16.54c-1-7-3.29-13.7-4.92-20.57-2-8.65-3.09-17.59-6.28-25.9-2.81-7.29-7.17-13.84-11.77-20.12-1.75-2.39-3.14-5.81-6.54-5.26a7.13 7.13 0 0 0-5.81 5.77Z",fill:"#434175"})),Ae||(Ae=Je.createElement("path",{d:"M570.68 449.29c-.4 2.8.94 5.55 1.09 8.38.13 2.47-.66 4.88-1.1 7.31-1.76 9.48 1.61 19.09 5 28.11a14.4 14.4 0 0 1 1.2 4.62c.09 2.94-1.6 5.64-2.07 8.55-1 6.11 3.53 11.85 3.63 18 0 2.85-.86 5.75-.14 8.5.47 1.84 1.62 3.43 2.43 5.14 1.45 3 1.84 6.5 3.22 9.57 2.49 5.55 7.84 9.18 12.94 12.51 2.89-1 6-2.11 7.62-4.72a11.63 11.63 0 0 0 1.33-4.14c1.1-6.33 1.06-12.79 1-19.21a118.59 118.59 0 0 0-.83-16.54c-1-7-3.29-13.7-4.92-20.57-2-8.65-3.09-17.59-6.28-25.9-2.81-7.29-7.17-13.84-11.77-20.12-1.75-2.39-3.14-5.81-6.54-5.26a7.13 7.13 0 0 0-5.81 5.77Z",opacity:.05})),Ne||(Ne=Je.createElement("path",{d:"M644.66 390.28a59.69 59.69 0 0 0-5.55 11.43 26.19 26.19 0 0 1-6.3.76c-8.25 0-14.08-4.69-18.93-10.62-.42-1.9-3-3.67-2.74-5.16.39-2 2.25-1.59 3.93-1.48a150.51 150.51 0 0 1 15.26 2c1.32.16 14.13 3.4 14.33 3.07Z",opacity:.1})),He||(He=Je.createElement("circle",{cx:632.81,cy:375.34,r:26.41,fill:"#ee8e9e"})),Le||(Le=Je.createElement("path",{d:"M666.18 564.56c-4.57-.27-9.18-.08-13.76.1a47.15 47.15 0 0 0-8.55.88c-3.47.79-6.71 2.37-10.13 3.36-5.48 1.59-11.26 1.66-16.93 2.22a94.36 94.36 0 0 0-11.09 1.74 4.35 4.35 0 0 1 .34-1.27c.94-2.11 3.46-2.93 5.71-3.47a185.15 185.15 0 0 1 43.61-5.1c5.44-3.65 8.49-2.37 10.8 1.54Z",opacity:.1})),Se||(Se=Je.createElement("path",{d:"M648.18 418.58c-1.15 1.33-2.7 2.8-4.4 2.37a6.08 6.08 0 0 1-1.72-.92c-3-2-6.78-2.42-10.36-3a152.4 152.4 0 0 1-21.34-4.8 21.93 21.93 0 0 0-6.32-1.28c-4.47 0-8.44 3-11.24 6.48s-4.8 7.57-7.55 11.1c-2 2.52-4.3 4.74-6.13 7.35-4.62 6.59-5.62 15.19-4.42 23.15s4.37 15.47 7.53 22.88a78.47 78.47 0 0 0 6.14 12.46c-1.06 6-.5 13 2.38 18.4.93 1.77 2.08 3.49 2.39 5.47a13.85 13.85 0 0 1-.16 4l-1.35 9.56c-.41 2.91-.82 5.82-1.35 8.72-1 5.29-2.28 11 .17 15.82 2.93 5.74-.15 13.09.62 19.49a97.8 97.8 0 0 1 25.74-6.11c5.67-.56 11.45-.63 16.93-2.22 3.42-1 6.66-2.57 10.13-3.37a47 47 0 0 1 8.55-.87c6.33-.25 12.7-.51 19 .42.5.08 1.12.12 1.43-.29a1.47 1.47 0 0 0 .19-.75 12.63 12.63 0 0 0-1.62-6.72c-.8-1.41-1.91-2.79-1.88-4.41a6.48 6.48 0 0 1 .55-2.19l2.77-7.4c2.35-6.25 1.23-13.51 2.45-20.07a117.46 117.46 0 0 0 1.82-15.53c.23-4.45.09-9.27-2.6-12.83a14.67 14.67 0 0 1-2-2.83 8.34 8.34 0 0 1-.48-3.37q-.09-13.36.73-26.72c-2.34-4.21-4.79-8.51-7.13-12.72-2.73-4.9-5.49-9.9-6.59-15.4-.73-3.63-.71-7.38-1.23-11.05a4.9 4.9 0 0 0-.93-2.59 4.69 4.69 0 0 0-3.76-1.11 16.44 16.44 0 0 0-4.96.88Z",fill:"#434175"})),Ue||(Ue=Je.createElement("path",{d:"M744.87 402.71a11.5 11.5 0 0 1-5.72 2.33c-2.72.18-8.51-1.42-10.2-3.75a6.77 6.77 0 0 1-1-3.91 4.91 4.91 0 0 1 1.14-.22 29.88 29.88 0 0 1 8.86.36c2.88.7 5.66 2.45 6.87 5.16Z",opacity:.1})),Ie||(Ie=Je.createElement("path",{d:"M657 459.83c1.61 2 3.28 4.06 5.56 5.25 2.63 1.36 5.72 1.39 8.67 1.33a208 208 0 0 0 36.23-4 22.81 22.81 0 0 0 4-1.07 20.6 20.6 0 0 0 4-2.52c3.93-2.82 7.92-5.7 10.91-9.51a32.05 32.05 0 0 0 6.46-15.85c2.84-2.61 4.35-6.34 5.77-9.93a15.24 15.24 0 0 0 1.32-4.82c.07-1.71-1.06-3.5-.74-5.18a13.64 13.64 0 0 1 4.19-7.54 2.74 2.74 0 0 0 1-1.33 2.1 2.1 0 0 0-.23-1.29c-1.22-2.71-4-4.45-6.88-5.16a29.61 29.61 0 0 0-8.87-.36 20.06 20.06 0 0 0-2.9.78l-2.07 5.43a6.88 6.88 0 0 1-1.35 2.48 12.52 12.52 0 0 1-1.46 1.15 8.38 8.38 0 0 0-2.91 7.33 7.88 7.88 0 0 0-4.66 9.72 9.3 9.3 0 0 0-6.81 6 4.45 4.45 0 0 1-.89 1.87 3.66 3.66 0 0 1-2.34.76c-2.34.14-4.38 2-6.49 1a13.29 13.29 0 0 0-7.71-1.08 5.77 5.77 0 0 1-1.65.15 4.43 4.43 0 0 1-1.35-.47 10.72 10.72 0 0 0-3.06-1.2 2.84 2.84 0 0 0-2.9 1.12c-.74-.81-1.18-1.85-1.85-2.72a3 3 0 0 0-2.82-1.35c.7-.62 0-1.87-.93-2.1a12.66 12.66 0 0 0-2.81.1c-2.44 0-4.32-2.23-6.69-2.81-2.18-.53-5.09.11-6.21-1.84-.39-.69-.47-1.63-1.14-2a2.2 2.2 0 0 0-1.48-.17 14.24 14.24 0 0 0-4.45 1.35c-2.29 9-1.09 18.24.65 27.3a24.07 24.07 0 0 0 4.89 11.18Z",fill:"#434175"})),Pe||(Pe=Je.createElement("path",{d:"m656.93 491.88-11.37 22.94c1.23-2.13 3.82-3 5.87-4.31a15.54 15.54 0 0 0 5.57-7.54 47.14 47.14 0 0 0 2.15-9.29c.23-1.45.71-3.49 0-4.81-1.26.27-1.68 1.94-2.22 3.01ZM624.21 511.37c-2.57 2.54-5.71 4.41-8.53 6.66-6.6 5.26-11.3 12.46-15.89 19.53a30.77 30.77 0 0 0-3.25 5.92c.54.46 1.34 0 1.88-.49l8.93-7.84a20.19 20.19 0 0 0 3-3c1.55-2.09 2.24-4.69 3.65-6.88a26.84 26.84 0 0 1 5.43-5.53c2.05-1.76 11.47-9.73 9.18-12.83-1.69.8-3.05 3.1-4.4 4.46Z",opacity:.1})),_e||(_e=Je.createElement("path",{d:"M643.72 411.95a26.78 26.78 0 0 0-9.45-3.11 20 20 0 0 0-6-.43c-1.86.23-3.65.95-5.52 1-2.63.15-5.14-.92-7.68-1.61s-5.47-1-7.6.57a3.29 3.29 0 0 1-1.66.88 3 3 0 0 1-1.71-.84 9.74 9.74 0 0 0-12.14.64c-4.84 4.54-4.29 13.41-10 16.86-1.56 1-3.56 1.45-4.48 3a12 12 0 0 1-.77 1.46 4 4 0 0 1-1.36 1 26.43 26.43 0 0 0-4.68 2.69 6.66 6.66 0 0 0-2.69 4.51 8.53 8.53 0 0 0 .82 3.79 35.62 35.62 0 0 0 34.61 22.13 5.42 5.42 0 0 0 3.63-1.13 6.93 6.93 0 0 0 1.27-2.09c2.67-5.59 7.68-9.72 10.86-15 1.89-3.17 3.11-6.72 5.09-9.84 3-4.73 7.54-8.23 12-11.62 2.52-1.91 5.31-3.92 8.47-3.79 2.81.12 4.86.27 3.82-3.17a11 11 0 0 0-4.83-5.9Z",fill:"#434175"})),ze||(ze=Je.createElement("path",{d:"M643.72 411.95a26.78 26.78 0 0 0-9.45-3.11 20 20 0 0 0-6-.43c-1.86.23-3.65.95-5.52 1-2.63.15-5.14-.92-7.68-1.61s-5.47-1-7.6.57a3.29 3.29 0 0 1-1.66.88 3 3 0 0 1-1.71-.84 9.74 9.74 0 0 0-12.14.64c-4.84 4.54-4.29 13.41-10 16.86-1.56 1-3.56 1.45-4.48 3a12 12 0 0 1-.77 1.46 4 4 0 0 1-1.36 1 26.43 26.43 0 0 0-4.68 2.69 6.66 6.66 0 0 0-2.69 4.51 8.53 8.53 0 0 0 .82 3.79 35.62 35.62 0 0 0 34.61 22.13 5.42 5.42 0 0 0 3.63-1.13 6.93 6.93 0 0 0 1.27-2.09c2.67-5.59 7.68-9.72 10.86-15 1.89-3.17 3.11-6.72 5.09-9.84 3-4.73 7.54-8.23 12-11.62 2.52-1.91 5.31-3.92 8.47-3.79 2.81.12 4.86.27 3.82-3.17a11 11 0 0 0-4.83-5.9Z",opacity:.05})),Be||(Be=Je.createElement("path",{d:"M657.47 794.73c-1.92 1.79-4.55 2.57-7.1 3.12a127.7 127.7 0 0 1-17.67 2.19l-5.77.44c-5.63.43-11.27.86-16.92.88a117.17 117.17 0 0 1-20.82-1.8 2.28 2.28 0 0 1-1.65-.8 2.24 2.24 0 0 1-.25-1.31 100.74 100.74 0 0 1 2.56-20.9c.65-2.81 5.7 3.5 5.93 3.77a5.76 5.76 0 0 0 4.59 2.43c5.81.32 12.32-3.21 16.93-6.35a22.18 22.18 0 0 1 3.14-1.95 9.19 9.19 0 0 1 2.54-.72 15.28 15.28 0 0 1 8.64 1.75c3.47 1.72 6.51 4.19 10 6a28.06 28.06 0 0 0 8.92 2.82c3.14.43 6.9.64 8.51 3.36 1.28 2.25.32 5.29-1.58 7.07Z",fill:"#434175"})),Ge||(Ge=Je.createElement("path",{d:"M657.47 795.77c-1.92 1.79-4.55 2.57-7.1 3.12a127.7 127.7 0 0 1-17.67 2.19l-5.77.44c-5.63.43-11.27.86-16.92.88a116.24 116.24 0 0 1-20.82-1.8 2.27 2.27 0 0 1-1.65-.79 9.26 9.26 0 0 1-1.29-2.36c.12-7 2-14.05 3.6-20.9.65-2.81 5.7 3.5 5.93 3.77a5.76 5.76 0 0 0 4.59 2.43c5.81.32 12.32-3.21 16.93-6.35a22.18 22.18 0 0 1 3.14-1.95 9.19 9.19 0 0 1 2.54-.72c-.75 4.18-6.74 9.23-9.84 10.77-6.26 3.11-13.7 1.55-20.68 1.92a3 3 0 0 0-1.47.35c-.83.56-.88 1.75-.86 2.75.06 1.66.27 3.62 1.72 4.46a4.94 4.94 0 0 0 2.32.49 327.89 327.89 0 0 0 51.57-1.81 28.23 28.23 0 0 0 8.4-1.87 21.44 21.44 0 0 0 4.87-3.14c2.2 1.72.36 6.34-1.54 8.12Z",fill:"#e8eaf2"})),Fe||(Fe=Je.createElement("path",{d:"M643.09 375.06c-.1 2.73 1.76 8-3.35 6.55-3-.88-3.9-4.49-7.76-3.69s-4.76 5.57-6.06 8.68a16.59 16.59 0 0 1-12 9.72 7.26 7.26 0 0 1-3.31 0c-2.49-.71-3.91-3.28-4.93-5.66a44.08 44.08 0 0 1-2.18-6.22 25.31 25.31 0 0 1-.79-4.56 19.48 19.48 0 0 1 0-3.15c.46-6.21 4-11.87 8.52-16.15s10-7.38 15.45-10.43a22.9 22.9 0 0 1 5.7-2.54 19.21 19.21 0 0 1 6-.24 20.85 20.85 0 0 1 7.66 1.8 10.71 10.71 0 0 1 2.69 1.89 8.11 8.11 0 0 1 2.34 3.89c1 4-1.58 7.63-3.66 10.8-1.9 2.81-4.19 5.79-4.32 9.31Z",fill:"#434175"})),We||(We=Je.createElement("path",{d:"M729 433.67c-1.09-2.75-5.67-10.36-4.35-13a33.77 33.77 0 0 1 3.49 6.24c.86 2.15.18 5.01.86 6.76ZM647.47 365.74c2.08-3.17 4.64-6.79 3.66-10.8a8.35 8.35 0 0 0-3-4.44 7.27 7.27 0 0 1 .76 1.87c1 4-1.58 7.62-3.66 10.8-1.85 2.82-4.14 5.81-4.28 9.32-.1 2.73 1.77 8-3.34 6.55-3-.88-3.9-4.49-7.77-3.69s-4.75 5.56-6.06 8.68a16.57 16.57 0 0 1-12 9.72 7.26 7.26 0 0 1-3.31 0 5.05 5.05 0 0 1-1.56-.77 6.76 6.76 0 0 0 3.77 3.34 7.44 7.44 0 0 0 3.32 0 16.63 16.63 0 0 0 12-9.73c1.31-3.12 2.16-7.86 6.06-8.67s4.72 2.8 7.77 3.68c5.11 1.48 3.24-3.82 3.34-6.55.16-3.5 2.46-6.49 4.3-9.31Z",opacity:.1})),Te||(Te=Je.createElement("path",{d:"M648.6 360.31a21.84 21.84 0 0 1-1.56 2.24 26.58 26.58 0 0 1-3.61 3.74c-.79.68-1.6 1.31-2.44 1.91a38.47 38.47 0 0 1-4.93 2.95 91.47 91.47 0 0 1-15.78 5.65l-10.54 3.07c-1.3 1-3.67 2.74-6.28 4.57a25.31 25.31 0 0 1-.79-4.56 19.48 19.48 0 0 1 0-3.15c.46-6.21 4-11.87 8.52-16.15s10-7.38 15.45-10.43a22.9 22.9 0 0 1 5.7-2.54 19.21 19.21 0 0 1 6-.24 20.85 20.85 0 0 1 7.66 1.8 10.71 10.71 0 0 1 2.69 1.89 10.14 10.14 0 0 1 1.35 2.86c.66 2.15-.26 4.45-1.44 6.39Z",opacity:.1})),Ve||(Ve=Je.createElement("path",{d:"M648.6 359.6a21.84 21.84 0 0 1-1.56 2.24 26.58 26.58 0 0 1-3.61 3.74c-.79.68-1.6 1.31-2.44 1.91a39.65 39.65 0 0 1-4.93 2.95 91.47 91.47 0 0 1-15.78 5.65l-10.54 3.06c-3.68 2.79-16 11.91-18.07 10.77-2.44-1.34 10.93-10.81 10.93-10.81l.61.47c-2-1.23-3-4.08-3.42-6.55-.78-4.42-1.15-9-.1-13.37s3.67-8.51 7.66-10.55c1.77-.92 3.92-1.53 5.2-2.93a4.4 4.4 0 0 0 .51-.69 2.08 2.08 0 0 0 .2-.36 4.32 4.32 0 0 1 .56-1.09c.73-.84 2.06-.59 3.17-.45h.36a5.68 5.68 0 0 0 .59 0c4 .09 7.81-2.12 11.82-2.12 4.39 0 8.13 2.54 12 4.28.78.35 1.52.67 2.22 1 2.8 1.3 4.9 2.69 6 6.38.72 2.24-.2 4.55-1.38 6.47Z",fill:"#604687"})),De||(De=Je.createElement("path",{d:"M617.94 343.65a1.8 1.8 0 0 1-.42 2.32 3.2 3.2 0 0 1-1.66.59 11.2 11.2 0 0 1-1.3.1 3.58 3.58 0 0 1-1.71-.29 2.2 2.2 0 0 1-.3-.19 4.4 4.4 0 0 0 .51-.69c.1.08.2.06.59 0a9.13 9.13 0 0 0 2.14-.36 2.38 2.38 0 0 0 .8-.39 2.48 2.48 0 0 0 .76-1.15ZM602.86 379.01a4.87 4.87 0 0 0 1.83.68 8.29 8.29 0 0 0 1.41.23 7.84 7.84 0 0 0 3.45-1",opacity:.1})))}},7156:(e,a,t)=>{t.d(a,{Z:()=>X});var c,l,r,i,n,s,m,f,o,h,p,d,E,y,Z,M,x,u,g,b,v,q,w,O,k,C,j,A,N,H,L,S,U,I,P,_,z,B,G,F,W,T,V,D,J,Q=t(7294),R=["title","titleId"];function Y(){return Y=Object.assign?Object.assign.bind():function(e){for(var a=1;a=0||(l[t]=e[t]);return l}(e,a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(c=0;c=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(l[t]=e[t])}return l}const X=function(e){var a=e.title,t=e.titleId,X=K(e,R);return Q.createElement("svg",Y({"data-name":"Layer 1",xmlns:"http://www.w3.org/2000/svg",width:1108,height:731.18,viewBox:"0 0 1108 731.18","aria-labelledby":t},X),void 0===a?Q.createElement("title",{id:t},"react"):a?Q.createElement("title",{id:t},a):null,c||(c=Q.createElement("path",{d:"m767.68 330.79 6.89-2.7c.66-.26 1.31-.54 2-.81a59.85 59.85 0 0 1 15.28-115.77l-4.8 24.2 18.22-23.92h.16a59.87 59.87 0 0 1 51.16 67.45c-.15 1.13-.39 2.23-.6 3.34 5.61-4.43 10.87-9.32 14.81-15 8-11.54 10.71-25.76 13.47-43.17 5.47-34.48 10.4-69.34 14.84-104.18a59.83 59.83 0 0 1-42-65.36c.25-1.82.6-3.59 1-5.34.1-.44.2-.88.31-1.31.43-1.69.91-3.35 1.47-5 .09-.27.21-.52.3-.78.5-1.37 1-2.72 1.65-4 .22-.5.44-1 .67-1.47a57.69 57.69 0 0 1 2.22-4.19c.27-.45.56-.88.83-1.33.62-1 1.27-2 1.94-2.93.36-.5.71-1 1.08-1.49l.27-.39a59.81 59.81 0 0 1 74.64-17l-6.24 31.49 18-23.64a59.5 59.5 0 0 1 16.32 68.62h.07c-.17.4-.38.78-.55 1.18-.33.74-.67 1.47-1 2.2-.46.93-1 1.84-1.45 2.74-.38.68-.75 1.36-1.16 2-.59 1-1.23 1.9-1.87 2.83-.38.54-.73 1.1-1.12 1.63-1 1.39-2.12 2.72-3.26 4-.4.45-.83.86-1.25 1.3-.81.86-1.62 1.71-2.48 2.52-.53.5-1.09 1-1.64 1.46-.79.7-1.6 1.38-2.43 2-.59.47-1.19.92-1.79 1.36a77.101 77.101 0 0 1-4.45 2.96c-1 .61-2.05 1.17-3.1 1.72-.53.27-1 .57-1.59.83-1.58.77-3.2 1.48-4.85 2.11-.31.12-.64.21-.95.32-1.38.5-2.77 1-4.18 1.35-.61.17-1.23.31-1.85.46-1.15.28-2.31.54-3.48.76q-1 .18-2.07.33c-1.15.17-2.31.3-3.48.4-.69.06-1.37.12-2.07.16-1.26.06-2.53.07-3.8.06a2.08 2.08 0 0 0-.25 0q-2.82 22-5.92 44a59.82 59.82 0 0 1 86.4-10.32l-15.68 26.58 25.21-16.59a59.68 59.68 0 0 1 11.5 44.16 58.76 58.76 0 0 1-4.5 15.94 59.83 59.83 0 0 1-111.19-4c-.23 1.48-.45 3-.68 4.46-2.44 15.35-5.47 34.46-16.23 50-7.29 10.56-17.33 18.36-27.09 25.22q-9.52 6.7-19.48 12.77a59.85 59.85 0 0 1-24.53 13.74q-16 8.19-32.69 14.81l-6.95 2.72c-6.25 2.44-12.65 4.94-19 7.6 1 .09 2 .17 3 .3a59.9 59.9 0 0 1 50.86 49.05l-42.31 23.11 42.18-1.89A59.16 59.16 0 0 1 797 450.13a59.87 59.87 0 0 1-82.7 11.74l2.1 3.91c1.4 2.58 2.78 5.15 4.12 7.7 18.33 34.74 19.66 64.74 3.75 84.49l-13-10.45c15.49-19.22 3.2-49.77-5.5-66.27-1.32-2.5-2.68-5-4-7.56-11.77-21.83-25.12-46.57-19.77-72.9 8-39.7 51.05-56.5 85.68-70ZM269.6 519.01l-5.38-2.11c-.52-.2-1-.43-1.54-.63a46.75 46.75 0 0 0-11.94-90.42l3.75 18.9-14.22-18.68h-.13a46.76 46.76 0 0 0-40 52.68c.12.89.31 1.74.47 2.61a55.84 55.84 0 0 1-11.56-11.73c-6.23-9-8.37-20.12-10.53-33.71-4.23-26.93-8.07-54.15-11.52-81.33a46.72 46.72 0 0 0 32.77-51.05c-.2-1.42-.47-2.8-.79-4.17l-.24-1a48.36 48.36 0 0 0-1.15-3.88c-.07-.21-.16-.41-.24-.61a48.24 48.24 0 0 0-1.28-3.15c-.18-.38-.35-.77-.53-1.15-.54-1.11-1.11-2.2-1.73-3.26-.21-.36-.44-.7-.65-1-.49-.78-1-1.55-1.52-2.29-.28-.39-.55-.79-.84-1.17l-.21-.3a46.76 46.76 0 0 0-58.29-13.32l4.88 24.6-14.07-18.46a46.48 46.48 0 0 0-12.75 53.59h-.05c.13.31.29.61.43.92.26.58.52 1.15.8 1.72q.54 1.08 1.14 2.13c.29.54.58 1.07.9 1.59.46.75 1 1.48 1.46 2.21.3.42.57.86.88 1.27.8 1.08 1.65 2.12 2.54 3.13.31.35.65.67 1 1 .63.67 1.27 1.33 1.94 2 .41.4.85.77 1.28 1.14q.93.83 1.89 1.59c.46.36.93.71 1.4 1.06.68.49 1.37 1 2.06 1.41.47.31.94.61 1.42.9.79.48 1.6.91 2.42 1.34.42.22.82.45 1.24.66 1.24.6 2.5 1.15 3.79 1.64.24.1.5.16.74.25 1.07.39 2.16.75 3.27 1.06.47.13 1 .24 1.44.35.9.22 1.8.43 2.72.6l1.61.26c.9.13 1.81.23 2.72.31.54.05 1.07.09 1.62.12 1 .05 2 .06 3 .05h.19q2.2 17.22 4.62 34.41a46.71 46.71 0 0 0-67.48-8.14l12.14 20.64-19.68-12.95a46.57 46.57 0 0 0-9 34.49 45.8 45.8 0 0 0 3.53 12.46 46.73 46.73 0 0 0 86.84-3.12c.18 1.15.35 2.32.53 3.48 1.9 12 4.27 26.92 12.67 39.08 5.7 8.24 13.54 14.33 21.16 19.69q7.44 5.24 15.21 10a46.88 46.88 0 0 0 19.16 10.74c8.32 4.26 16.84 8.14 25.54 11.56l5.42 2.13c4.88 1.9 9.88 3.85 14.81 5.93-.78.07-1.57.13-2.36.24a46.77 46.77 0 0 0-39.72 38.27l33 18-32.94-1.47a46.78 46.78 0 0 0 73.57 29.2c-.55 1-1.09 2-1.64 3.05-1.09 2-2.17 4-3.22 6-14.31 27.13-15.35 50.57-2.92 66l10.13-8.16c-12.1-15-2.5-38.87 4.3-51.76 1-1.95 2.09-3.92 3.16-5.9 9.19-17 19.61-36.37 15.46-56.94-6.21-30.94-39.86-44.02-66.9-54.6Z",fill:"#f2f2f2"})),l||(l=Q.createElement("ellipse",{cx:554,cy:707.68,rx:554,ry:23.5,fill:"#3f3d56"})),r||(r=Q.createElement("ellipse",{cx:554,cy:707.68,rx:554,ry:23.5,opacity:.1})),i||(i=Q.createElement("ellipse",{cx:554,cy:694.68,rx:554,ry:23.5,fill:"#3f3d56"})),n||(n=Q.createElement("path",{d:"M85 686.32c-3-5.51.4-12.26 4.28-17.18s8.61-10 8.51-16.29c-.14-9-9.7-14.31-17.33-19.08a84.78 84.78 0 0 1-15.56-12.51 23 23 0 0 1-4.78-6.4c-1.58-3.52-1.53-7.52-1.43-11.38q.5-19.26 1.9-38.48",fill:"none",stroke:"#3f3d56",strokeMiterlimit:10,strokeWidth:4})),s||(s=Q.createElement("path",{d:"M46.11 564.29a14 14 0 0 1 7-11.49l3.14 6.21-.09-7.52a13.86 13.86 0 0 1 4.62-.56 14 14 0 1 1-14.67 13.36ZM71.14 659.29a14 14 0 0 0 26.5-5.76 13.82 13.82 0 0 0-.91-5.69 14 14 0 0 0-26.27.15l8.77 7.13-9.64-2.24a13.89 13.89 0 0 0 1.55 6.41ZM78.07 632.04a14 14 0 0 0 4.46-27.54l.07 5.79-3.18-6.29a14.04 14.04 0 0 0-1.31 28.05ZM44 609.37a14.016 14.016 0 0 0 1.32-28 13.88 13.88 0 0 0-7.52 1.78l2.48 6.8-5.11-4.9a14 14 0 0 0-4.53 9.69 13.33 13.33 0 0 0 .36 3.85 14 14 0 0 0 13 10.78Z",fill:"#604687"})),m||(m=Q.createElement("path",{d:"M48 568.03c3.24.36 6.39 1.37 9.64 1.57s6.82-.58 8.88-3.1c1.11-1.37 1.66-3.09 2.59-4.57a10.08 10.08 0 0 1 3.54-3.33 14 14 0 1 1-26.24 9.32c.53.02 1.06.06 1.59.11ZM44 609.37a14 14 0 0 0 13.35-20 10.4 10.4 0 0 0-2.82 2.83c-1 1.51-1.61 3.25-2.78 4.64-2.19 2.57-5.92 3.41-9.31 3.25s-6.66-1.11-10-1.42c-.47 0-.94-.08-1.41-.09A14 14 0 0 0 44 609.37ZM78.07 632.04a14 14 0 0 0 13.47-19.76 11.36 11.36 0 0 0-3 2.85c-1.09 1.54-1.77 3.31-3 4.73-2.36 2.64-6.34 3.57-9.93 3.48s-6.82-.93-10.28-1.19a14 14 0 0 0 12.74 9.89ZM71.14 659.29a14 14 0 0 0 26.5-5.76 13.82 13.82 0 0 0-.91-5.69 14 14 0 0 0-3.08 2.74c-1.34 1.63-2.21 3.47-3.76 5-2.87 2.82-7.5 4-11.62 4.09a62.35 62.35 0 0 1-7.13-.38Z",opacity:.1})),f||(f=Q.createElement("path",{d:"M106.19 679.98s-11.08-.34-14.41-2.72-17-5.22-17.87-1.4-16.65 19-4.14 19.06 29.06-2 32.39-4 4.03-10.94 4.03-10.94Z",fill:"#656380"})),o||(o=Q.createElement("path",{d:"M69.54 693.59c12.51.1 29.06-2 32.4-4 2.53-1.54 3.54-7.09 3.88-9.65h.37s-.7 8.93-4 11-19.89 4.08-32.39 4c-3.61 0-4.86-1.31-4.79-3.22.47 1.13 1.85 1.87 4.53 1.87Z",opacity:.2})),h||(h=Q.createElement("path",{d:"M1055 695.32c-3-5.51.4-12.26 4.28-17.18s8.61-10 8.51-16.29c-.14-9-9.7-14.31-17.33-19.08a84.78 84.78 0 0 1-15.56-12.51 23 23 0 0 1-4.78-6.4c-1.58-3.52-1.53-7.52-1.43-11.38q.49-19.26 1.9-38.48",fill:"none",stroke:"#3f3d56",strokeMiterlimit:10,strokeWidth:4})),p||(p=Q.createElement("path",{d:"M1016.11 573.29a14 14 0 0 1 7-11.49l3.14 6.21-.09-7.52a13.86 13.86 0 0 1 4.62-.56 14 14 0 1 1-14.68 13.36ZM1041.14 668.29a14 14 0 0 0 26.5-5.76 13.82 13.82 0 0 0-.91-5.69 14 14 0 0 0-26.27.15l8.77 7.13-9.64-2.24a13.89 13.89 0 0 0 1.55 6.41ZM1048.07 641.04a14 14 0 0 0 4.46-27.54l.07 5.79-3.18-6.29a14.04 14.04 0 0 0-1.31 28.05ZM1014 618.37a14.016 14.016 0 0 0 1.32-28 13.88 13.88 0 0 0-7.52 1.78l2.48 6.8-5.11-4.9a14 14 0 0 0-4.53 9.69 13.33 13.33 0 0 0 .36 3.85 14 14 0 0 0 13 10.78Z",fill:"#604687"})),d||(d=Q.createElement("path",{d:"M1018 577.03c3.24.36 6.39 1.37 9.64 1.57s6.82-.58 8.88-3.1c1.11-1.37 1.66-3.09 2.59-4.57a10.08 10.08 0 0 1 3.54-3.33 14 14 0 1 1-26.24 9.32c.53.02 1.06.06 1.59.11ZM1014 618.37a14 14 0 0 0 13.35-20 10.4 10.4 0 0 0-2.82 2.83c-1 1.51-1.61 3.25-2.78 4.64-2.19 2.57-5.92 3.41-9.31 3.25s-6.66-1.11-10-1.42c-.47 0-.94-.08-1.41-.09a14 14 0 0 0 12.97 10.79ZM1048.07 641.04a14 14 0 0 0 13.47-19.76 11.36 11.36 0 0 0-3 2.85c-1.09 1.54-1.77 3.31-3 4.73-2.36 2.64-6.34 3.57-9.93 3.48s-6.82-.93-10.28-1.19a14 14 0 0 0 12.74 9.89ZM1041.14 668.29a14 14 0 0 0 26.5-5.76 13.82 13.82 0 0 0-.91-5.69 14 14 0 0 0-3.08 2.74c-1.34 1.63-2.21 3.47-3.76 5-2.87 2.82-7.5 4-11.62 4.09a62.35 62.35 0 0 1-7.13-.38Z",opacity:.1})),E||(E=Q.createElement("path",{d:"M1076.19 688.98s-11.08-.34-14.41-2.72-17-5.22-17.87-1.4-16.65 19-4.14 19.06 29.06-2 32.39-4 4.03-10.94 4.03-10.94Z",fill:"#656380"})),y||(y=Q.createElement("path",{d:"M1039.54 702.59c12.51.1 29.06-2 32.4-4 2.53-1.54 3.54-7.09 3.88-9.65h.37s-.7 8.93-4 11-19.89 4.08-32.39 4c-3.61 0-4.86-1.31-4.79-3.22.47 1.13 1.85 1.87 4.53 1.87Z",opacity:.2})),Z||(Z=Q.createElement("path",{d:"M745.57 331.15q-9.92-3.4-20-6.3 1.66-6.79 3.09-13.65c15.14-73.51 5.24-132.73-28.57-152.22-32.42-18.7-85.44.8-139 47.39q-7.92 6.92-15.47 14.2-5.07-4.85-10.3-9.51c-56.11-49.83-112.32-70.82-146.14-51.27-32.39 18.75-42 74.42-28.35 144.09q2 10.35 4.59 20.58c-7.95 2.26-15.64 4.67-23 7.24-65.79 22.89-107.81 58.89-107.81 96.18 0 38.51 45.11 77.14 113.64 100.56q8.34 2.83 16.8 5.26-2.74 11-4.88 22.18c-13 68.46-2.84 122.82 29.46 141.45 33.37 19.26 89.37-.54 143.89-48.2 4.31-3.77 8.63-7.77 13-11.95q8.18 7.89 16.79 15.32c52.82 45.45 105 63.81 137.26 45.12 33.33-19.29 44.16-77.69 30.1-148.73q-1.6-8.14-3.73-16.61 5.91-1.74 11.56-3.61c71.24-23.6 117.6-61.76 117.6-100.79 0-37.43-43.38-73.62-110.5-96.73Z",fill:"#53c1de"})),M||(M=Q.createElement("path",{d:"M730.12 503.47c-3.4 1.13-6.88 2.21-10.44 3.27a621.6 621.6 0 0 0-31.47-78.73 623.06 623.06 0 0 0 30.25-77.58c6.35 1.84 12.53 3.78 18.47 5.83 57.51 19.79 92.59 49.06 92.59 71.62 0 24-37.89 55.21-99.4 75.59Zm-25.52 50.58c6.22 31.41 7.1 59.81 3 82-3.7 19.95-11.14 33.25-20.34 38.58-19.59 11.33-61.47-3.4-106.64-42.27q-7.77-6.69-15.63-14.25a624.23 624.23 0 0 0 52.09-66.14 620.2 620.2 0 0 0 84.17-13q1.9 7.68 3.37 15ZM446.48 672.69c-19.14 6.76-34.38 6.95-43.59 1.64-19.6-11.31-27.75-55-16.63-113.5q2-10.37 4.53-20.63a625.79 625.79 0 0 0 83.75 12.13 645.09 645.09 0 0 0 53.35 65.9q-5.79 5.61-11.84 10.91c-24.11 21.08-48.28 36-69.57 43.55Zm-89.64-169.37c-30.31-10.36-55.33-23.82-72.49-38.5-15.41-13.2-23.19-26.31-23.19-36.94 0-22.63 33.74-51.5 90-71.11q10.6-3.69 21.39-6.73a637.08 637.08 0 0 0 30.29 78.48 646.29 646.29 0 0 0-30.66 79.6q-7.74-2.21-15.34-4.8Zm30.05-204.54c-11.68-59.69-3.93-104.72 15.59-116 20.79-12 66.76 5.12 115.22 48.15 3.1 2.75 6.21 5.63 9.32 8.6a635.89 635.89 0 0 0-52.93 65.52 648.42 648.42 0 0 0-82.93 12.89q-2.39-9.52-4.27-19.15ZM655 364.97q-9.11-15.74-18.89-31.08c19.83 2.51 38.82 5.83 56.66 9.91a565.54 565.54 0 0 1-19.89 53.51q-8.61-16.35-17.88-32.34ZM545.64 258.5a569.3 569.3 0 0 1 36.57 44.14q-36.71-1.73-73.45 0c12.07-15.92 24.44-30.72 36.88-44.13Zm-110 106.65q-9.15 15.87-17.55 32.14c-7.73-18.33-14.34-36.36-19.74-53.77 17.73-4 36.64-7.21 56.34-9.68q-9.92 15.44-19.07 31.31Zm19.61 158.65a564.64 564.64 0 0 1-57.25-9.21c5.49-17.71 12.25-36.13 20.15-54.86q8.43 16.29 17.61 32.16 9.34 16.19 19.47 31.91Zm91.14 75.33c-12.6-13.54-25.15-28.54-37.39-44.75q17.85.71 36.36.71 19 0 37.51-.84a563.94 563.94 0 0 1-36.5 44.88Zm126.69-140.35A562.82 562.82 0 0 1 694 513.44a561.35 561.35 0 0 1-58 9.89q9.85-15.63 19.08-31.63 9.38-16.26 18-32.92Zm-41 19.66q-14.12 24.52-29.81 48.1c-18.44 1.32-37.49 2-56.91 2s-38.15-.6-56.27-1.78q-16.09-23.5-30.39-48.17t-26.51-50.08q12.27-25.53 26.43-50.1 14.14-24.56 30.13-48c18.49-1.4 37.43-2.13 56.59-2.13s38.22.74 56.69 2.14q15.81 23.37 30 47.81t26.79 49.87q-12.45 25.62-26.71 50.3Zm54.77-296.46c20.81 12 28.9 60.4 15.83 123.87q-1.29 6.19-2.8 12.35a635.74 635.74 0 0 0-83.09-13.13 625.16 625.16 0 0 0-52.53-65.56q7-6.74 14.29-13.11c45.88-39.93 88.76-55.69 108.3-44.42Z",fill:"#fff"})),x||(x=Q.createElement("path",{d:"M545.34 372.38a55.5 55.5 0 1 1-55.5 55.5 55.49 55.49 0 0 1 55.5-55.5",fill:"#53c1de"})),u||(u=Q.createElement("path",{d:"M559.26 20.4a16.6 16.6 0 1 1-16.6-16.6 16.52 16.52 0 0 1 16.6 16.6Z",fill:"#3f3d56"})),g||(g=Q.createElement("path",{d:"M529.4 24.59A16.62 16.62 0 0 1 541.89.05a16.6 16.6 0 1 0 1.41 33.07 16.6 16.6 0 0 1-13.9-8.53ZM521.91 43.52h44.47v69.37h-44.47z",fill:"#3f3d56"})),b||(b=Q.createElement("path",{opacity:.1,d:"M521.91 43.52h44.47v69.37h-44.47z"})),v||(v=Q.createElement("path",{d:"M451.66 295.2s-4.75 13.05-16 14.83-17.79 4.74-17.79 4.74l26.68 17.19 14.23-1.78s1.78-18.38 7.71-22.53-14.83-12.45-14.83-12.45ZM644.34 295.2s4.75 13.05 16 14.83 17.79 4.74 17.79 4.74l-26.68 17.19-14.23-1.78s-1.78-18.38-7.71-22.53 14.83-12.45 14.83-12.45Z",fill:"#a0616a"})),q||(q=Q.createElement("path",{d:"M514.5 180.18s-7.11 3.56-9.48 10.68c0 0-13 4.15-20.16 15.41 0 0-8.9 9.49-10.08 14.23S460 253.7 460 253.7s-13.64 44.47-20.75 49.21c0 0 22.53-4.74 26.68 17.79 0 0 5.33 0 11.26-20.75s20.16-46.25 20.16-46.25 4.74-17.78 8.89-20.75 10.67-16.6 16.6-13 45.06-.6 45.06-.6 23.1 10.64 23.68 17.75 4.74 7.71 5.33 13.64 22.53 52.76 22.53 52.76 4.15 13 5.34 16c0 0 13-31.42 30.24-13.63 0 0-.6-11.86-5.93-19s-28.46-62.84-28.46-62.84-2.37-8.3-4.74-10.67-20.76-21.35-27.28-21.35c0 0-3.55-8.89-7.7-10.08ZM461.14 326.03a28.89 28.89 0 0 1-28.22-3.79 56.37 56.37 0 0 0-12.59-7.3c-6.29-2.54-13.81-4.42-16.1-.17-4.15 7.71 50.39 26.68 50.39 26.68s7.12-4.15 6.52-15.42ZM634.86 326.03a28.89 28.89 0 0 0 28.22-3.79 56.37 56.37 0 0 1 12.59-7.3c6.29-2.54 13.81-4.42 16.1-.17 4.15 7.71-50.39 26.68-50.39 26.68s-7.12-4.15-6.52-15.42Z",fill:"#3f3d56"})),w||(w=Q.createElement("path",{d:"M533.88 82.67c-.22 2.06-.9 4.29-2.66 5.38-1.44.9-3.26.83-4.92 1.17a11.46 11.46 0 0 0-7.82 6.77 17.51 17.51 0 0 0-.75 10.55 39.22 39.22 0 0 0 1.52 5.06c1.74 4.92 3.84 9.8 7.09 13.89a59 59 0 0 0 9.3 8.77c2.11 1.72 4.29 3.47 6.89 4.28a21.75 21.75 0 0 0 5.4.72c2.25.1 4.65.17 6.6-.95 3-1.73 3.89-5.55 5.52-8.62 1.38-2.6 3.44-4.81 4.73-7.46a29.49 29.49 0 0 0 2-6.52l2.77-12.3c1-4.47 1.92-9.51-.59-13.34a2.28 2.28 0 0 0-.74-.77 2.79 2.79 0 0 0-1.52-.15 16.44 16.44 0 0 1-9.15-2.09 3.93 3.93 0 0 1-1.15-.9 4.72 4.72 0 0 1-.7-2.12 22.2 22.2 0 0 0-1.28-4.45 3 3 0 0 0-.87-1.34 3.15 3.15 0 0 0-1.41-.47 114.47 114.47 0 0 0-12.93-1.35c-1.42-.07-3.56-.64-4.54.62s-.67 4.12-.79 5.62Z",fill:"#a0616a"})),O||(O=Q.createElement("path",{d:"M533.88 82.67c-.22 2.06-.9 4.29-2.66 5.38-1.44.9-3.26.83-4.92 1.17a11.46 11.46 0 0 0-7.82 6.77 17.51 17.51 0 0 0-.75 10.55 39.22 39.22 0 0 0 1.52 5.06c1.74 4.92 3.84 9.8 7.09 13.89a59 59 0 0 0 9.3 8.77c2.11 1.72 4.29 3.47 6.89 4.28a21.75 21.75 0 0 0 5.4.72c2.25.1 4.65.17 6.6-.95 3-1.73 3.89-5.55 5.52-8.62 1.38-2.6 3.44-4.81 4.73-7.46a29.49 29.49 0 0 0 2-6.52l2.77-12.3c1-4.47 1.92-9.51-.59-13.34a2.28 2.28 0 0 0-.74-.77 2.79 2.79 0 0 0-1.52-.15 16.44 16.44 0 0 1-9.15-2.09 3.93 3.93 0 0 1-1.15-.9 4.72 4.72 0 0 1-.7-2.12 22.2 22.2 0 0 0-1.28-4.45 3 3 0 0 0-.87-1.34 3.15 3.15 0 0 0-1.41-.47 114.47 114.47 0 0 0-12.93-1.35c-1.42-.07-3.56-.64-4.54.62s-.67 4.12-.79 5.62Z",opacity:.1})),k||(k=Q.createElement("path",{d:"M525.85 89.74a26.93 26.93 0 0 0-7.13-1.12c-5.72-.14-11.84 1.83-15.14 6.5a15.34 15.34 0 0 0-2.29 11.47 23.57 23.57 0 0 0 5.2 10.66 32 32 0 0 1 4 5.24c1.58 3 1.63 6.59 2.06 10 1 8.12 4.46 15.75 5.83 23.82s.19 17.42-6.18 22.55c-1.07.86-2.37 1.77-2.46 3.14-.14 2.19 2.71 3.12 4.9 3.33 6.55.62 13.27 1.23 19.63-.46 2.63-.7 5.17-1.79 7.85-2.29 6.8-1.27 13.64 1.34 20.45 2.59a90.61 90.61 0 0 0 14.91 1.21 7.94 7.94 0 0 0 3.43-.45 2.75 2.75 0 0 0 1.74-2.74 4.76 4.76 0 0 0-1.18-2c-3.44-4.25-4.49-9.9-5.43-15.29l-3.15-18.11c-1.69-9.68-3.26-20.2 1.32-28.89 3.29-6.25 9.36-10.65 12.83-16.8a9.84 9.84 0 0 0 1.55-6.28c-.52-3.09-3.31-5.3-6.17-6.59a23.21 23.21 0 0 0-17.42-.64c.1 4.33-1 8.71-1.71 13l-1.21 7a88.83 88.83 0 0 1-2.71 12.2 12.85 12.85 0 0 1-2.17 4.42 11.43 11.43 0 0 1-3.83 2.79 22.83 22.83 0 0 1-10.14 2.32 13.54 13.54 0 0 1-4.48-.69 19 19 0 0 1-6.17-4.34 10.11 10.11 0 0 1-1.63-1.77 9.93 9.93 0 0 1-1.11-2.67 55.42 55.42 0 0 1-1.91-7.48c-.3-1.94-.4-3.91-.54-5.87-.39-5.79-.39-12.19-1.54-17.76Z",fill:"#604687"})),C||(C=Q.createElement("path",{d:"M519.84 204.49s-2.37 31.43 12.45 36.76 1.78-26.09 1.78-26.09l-4.75-9.48ZM570.23 204.49s2.37 31.43-12.45 36.76-1.78-26.09-1.78-26.09l4.75-9.48Z",fill:"#a0616a"})),j||(j=Q.createElement("path",{d:"m506.79 99.59-4.74 7.71s4.15 26.68 4.74 31.42a62.2 62.2 0 0 0 2.38 10.08s.59 14.23.59 19.57 3 14.23 3 14.23a64.82 64.82 0 0 0 3 14.82c2.37 6.52 4.74 14.23 4.74 14.23s3-8.3 14.82 4.15a7.18 7.18 0 0 0 0-10.08s-3.55-16-3.55-24.31-6.53-48-6.53-48-4.24-45.12-18.45-33.82Z",opacity:.1})),A||(A=Q.createElement("path",{d:"m505.61 98.96-4.74 7.71s4.15 26.68 4.74 31.42a61.84 61.84 0 0 0 2.39 10.08s.59 14.23.59 19.56 3 14.23 3 14.23a64.53 64.53 0 0 0 3 14.82c2.37 6.53 4.75 14.23 4.75 14.23s3-8.3 14.82 4.15a7.18 7.18 0 0 0 0-10.07s-3.56-16-3.56-24.31-6.52-48-6.52-48-4.24-45.09-18.47-33.82Z",fill:"#604687"})),N||(N=Q.createElement("path",{d:"m583.87 94.81 3 3.53s3.49 20.18-4.22 45.68l-2.37 23.12s-4.15 19.57-4.74 24.31-.59 5.33-1.78 7.11a2.29 2.29 0 0 0 0 3l-3.56 13s-5.33-6.52-16 1.78c0 0-3-4.74-.6-8.89s2.37-5.93 1.78-7.12 2.37-7.11 2.37-8.3 4.18-28.44 4.18-28.44 1.78-26.68 3.56-35.57c1.09-5.47 1.07-17.66.88-26.24-.19-8.94 10.63-13.78 17-7.5.15.16.33.31.5.53Z",opacity:.1})),H||(H=Q.createElement("path",{d:"m585.65 93.59 3 3.53s3.49 20.19-4.22 45.68l-2.37 23.12s-4.15 19.57-4.74 24.31-.6 5.34-1.78 7.12a2.28 2.28 0 0 0 0 3L572 213.39s-5.33-6.53-16 1.77c0 0-3-4.74-.59-8.89s2.37-5.93 1.78-7.11 2.37-7.12 2.37-8.3 4.15-28.46 4.15-28.46 1.78-26.68 3.56-35.58.59-35.57.59-35.57 9.49-6.52 17.79 2.34Z",fill:"#604687"})),L||(L=Q.createElement("circle",{cx:545.92,cy:61.61,r:23.72,fill:"#a0616a"})),S||(S=Q.createElement("path",{d:"M558.29 26a16.6 16.6 0 0 1-31.09.44c9.26-3.73 18.72-.41 18.72-.41 4.73-1.66 8.83-1.51 12.37-.03Z",opacity:.1})),U||(U=Q.createElement("path",{d:"M545.92 27.22s-45.65-16-34.38 61.66c0 0 10.08 6.52 17.78 2.37 0 0-5.33-53.95 15.42-51.58s17.19 50.4 17.19 50.4 11.86 3.55 15.42-3-1.19-70.48-31.43-59.85Z",fill:"#3f3d56"})),I||(I=Q.createElement("path",{d:"M544.74 36.11c-14.24-1.62-16.2 23.27-16 39.05.17-15.69 2.81-37 16-35.49 14.81 1.69 17.24 26.66 17.41 40.8.17-12.98-1.25-42.51-17.41-44.36ZM511.54 85.32a159.38 159.38 0 0 1-1.77-20.53 152.12 152.12 0 0 0 1.77 24.09s10.08 6.52 17.78 2.37c0 0-.12-1.28-.26-3.43-7.67 3.87-17.52-2.5-17.52-2.5ZM577.35 83.59c-3.32 6.08-13.83 3.41-15.25 3-.07 2.2-.17 3.52-.17 3.52s11.86 3.55 15.42-3c.73-1.34 1.11-5.13 1-10.2-.1 3.25-.45 5.68-1 6.68Z",opacity:.1})),P||(P=Q.createElement("path",{d:"M826.73 672.96c4.74-8.78-.64-19.54-6.82-27.37s-13.73-16-13.57-26c.23-14.35 15.45-22.81 27.62-30.42a134.77 134.77 0 0 0 24.79-19.93c3-3.05 5.87-6.31 7.62-10.21 2.52-5.6 2.45-12 2.29-18.12q-.79-30.71-3-61.34",fill:"none",stroke:"#3f3d56",strokeMiterlimit:10,strokeWidth:4})),_||(_=Q.createElement("path",{d:"M888.74 478.49a22.31 22.31 0 0 0-11.16-18.32l-5 9.9.15-12a22.37 22.37 0 1 0 16 20.41ZM848.86 629.88a22.36 22.36 0 1 1 1.08-18l-14 11.37 15.37-3.57a22.25 22.25 0 0 1-2.45 10.2ZM837.81 586.45a22.37 22.37 0 0 1-7.09-43.86l-.12 9.22 5.06-10h.06a22.37 22.37 0 1 1 2.09 44.69ZM892.11 550.32a22.37 22.37 0 1 1 9.89-41.86l-4 10.83 8.13-7.8a22.37 22.37 0 0 1-14.07 38.83Z",fill:"#604687"})),z||(z=Q.createElement("path",{d:"M885.74 484.45c-5.17.57-10.19 2.18-15.37 2.5s-10.87-.92-14.14-5c-1.77-2.17-2.65-4.91-4.14-7.28a16 16 0 0 0-5.63-5.3 22.37 22.37 0 1 0 41.81 14.84c-.85.09-1.69.15-2.53.24ZM892.11 550.32a22.39 22.39 0 0 1-21.28-31.91 16.37 16.37 0 0 1 4.5 4.51c1.59 2.4 2.56 5.18 4.43 7.39 3.48 4.09 9.44 5.43 14.84 5.19s10.6-1.78 16-2.28c.75-.06 1.5-.11 2.26-.13a22.37 22.37 0 0 1-20.75 17.23ZM837.81 586.45a22.37 22.37 0 0 1-21.46-31.49 17.83 17.83 0 0 1 4.73 4.55c1.74 2.45 2.82 5.27 4.86 7.54 3.77 4.2 10.11 5.68 15.83 5.54 5.54-.12 10.87-1.48 16.38-1.9a22.36 22.36 0 0 1-20.34 15.76ZM848.86 629.88a22.37 22.37 0 0 1-40.78-18.29 22.27 22.27 0 0 1 4.91 4.38c2.13 2.59 3.53 5.53 6 7.94 4.57 4.49 11.95 6.34 18.52 6.51a97.1 97.1 0 0 0 11.35-.54Z",opacity:.1})),B||(B=Q.createElement("path",{d:"M793 662.85s17.65-.54 23-4.33 27.16-8.31 28.48-2.24 26.53 30.22 6.6 30.38-46.31-3.1-51.62-6.34-6.46-17.47-6.46-17.47Z",fill:"#656380"})),G||(G=Q.createElement("path",{d:"M851.4 684.59c-19.93.16-46.31-3.11-51.62-6.34-4-2.47-5.65-11.3-6.19-15.38H793s1.12 14.24 6.43 17.47 31.69 6.5 51.62 6.34c5.75 0 7.74-2.09 7.63-5.12-.8 1.81-2.99 2.95-7.28 3.03Z",opacity:.2})),F||(F=Q.createElement("path",{d:"m323 42.86-18.25 11.57 11.08-20.15a18 18 0 0 0-11-3.94h-.3a21.58 21.58 0 0 1-3.78-.28l-6.19 3.92 2.65-4.82a22.06 22.06 0 0 1-10.82-8.21l-11.07 7 7-12.72c-6.48-7.77-15.2-12.54-24.81-12.54-11.51 0-21.76 6.85-28.38 17.52a21.24 21.24 0 0 1-18.76 10.12h-.62c-12.71 0-23 14.41-23 32.19s10.3 32.18 23 32.18a17.2 17.2 0 0 0 8-2c8.29-4.31 19.17-4.39 27.85-.54a29 29 0 0 0 23.68.05c8.62-3.77 19.37-3.69 27.61.54a17.23 17.23 0 0 0 7.93 2c12.71 0 23-14.41 23-32.18A40.86 40.86 0 0 0 323 42.86Z",fill:"#f2f2f2"})),W||(W=Q.createElement("path",{d:"M288.59 89.95a34 34 0 0 0-19.72 2.14 29 29 0 0 1-23.67-.05c-8.69-3.85-19.57-3.77-27.86.54a17.2 17.2 0 0 1-8 2c-11.29 0-20.68-11.38-22.64-26.38a21.58 21.58 0 0 0 5.64-6.08c6.66-10.66 16.87-17.53 28.38-17.53s21.64 6.77 28.26 17.32a21.79 21.79 0 0 0 18.76 10.31h.26c9 .01 16.8 7.22 20.59 17.73Z",opacity:.03})),T||(T=Q.createElement("path",{d:"M800.07 66.42 791 72.19l5.53-10a9 9 0 0 0-5.51-2h-.14a10.79 10.79 0 0 1-1.89-.14l-3.09 2 1.3-2.46a11 11 0 0 1-5.4-4.09l-5.52 3.5 3.49-6.34a16.17 16.17 0 0 0-12.37-6.26c-5.75 0-10.86 3.42-14.16 8.74a10.57 10.57 0 0 1-9.36 5h-.31c-6.34 0-11.48 7.19-11.48 16s5.14 16.05 11.48 16.05a8.62 8.62 0 0 0 4-1 16.56 16.56 0 0 1 13.89-.27 14.52 14.52 0 0 0 11.81 0 16.58 16.58 0 0 1 13.77.27 8.61 8.61 0 0 0 4 1c6.34 0 11.48-7.18 11.48-16.05a20.28 20.28 0 0 0-2.45-9.72Z",fill:"#f2f2f2"})),V||(V=Q.createElement("path",{d:"M782.92 89.91a17 17 0 0 0-9.83 1.07 14.52 14.52 0 0 1-11.81 0 16.58 16.58 0 0 0-13.9.27 8.55 8.55 0 0 1-4 1c-5.64 0-10.32-5.67-11.3-13.15a10.93 10.93 0 0 0 2.82-3c3.3-5.32 8.42-8.73 14.16-8.73s10.79 3.37 14.09 8.63a10.85 10.85 0 0 0 9.36 5.14h.15c4.49-.07 8.34 3.53 10.26 8.77Z",opacity:.03})),D||(D=Q.createElement("path",{d:"m204.34 215.86 14.66 9.28-8.88-16.15a14.48 14.48 0 0 1 8.85-3.15h.23a17.08 17.08 0 0 0 3-.22l4.95 3.14-2.15-3.86a17.78 17.78 0 0 0 8.67-6.58l8.87 5.62-5.54-10.19c5.19-6.22 12.18-10 19.87-10 9.23 0 17.44 5.48 22.75 14a17 17 0 0 0 15 8.11h.5c10.18 0 18.43 11.54 18.43 25.78s-8.25 25.79-18.43 25.79a13.86 13.86 0 0 1-6.43-1.61 26.59 26.59 0 0 0-22.31-.43 23.28 23.28 0 0 1-19 0 26.64 26.64 0 0 0-22.12.43 13.9 13.9 0 0 1-6.35 1.57c-10.19 0-18.44-11.54-18.44-25.79a32.78 32.78 0 0 1 3.87-15.74Z",fill:"#f2f2f2"})),J||(J=Q.createElement("path",{d:"M231.89 253.59a27.36 27.36 0 0 1 15.8 1.72 23.28 23.28 0 0 0 19 0 26.61 26.61 0 0 1 22.32.43 13.82 13.82 0 0 0 6.42 1.61c9.05 0 16.57-9.11 18.14-21.13a17.44 17.44 0 0 1-4.52-4.88c-5.31-8.54-13.52-14-22.75-14s-17.33 5.42-22.64 13.88a17.44 17.44 0 0 1-15 8.25h-.23c-7.26-.07-13.5 5.71-16.54 14.12Z",opacity:.03})))}},8538:(e,a,t)=>{t.d(a,{Z:()=>L});var c,l,r,i,n,s,m,f,o,h,p,d,E,y,Z,M,x,u,g,b,v,q,w,O,k,C,j=t(7294),A=["title","titleId"];function N(){return N=Object.assign?Object.assign.bind():function(e){for(var a=1;a=0||(l[t]=e[t]);return l}(e,a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(c=0;c=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(l[t]=e[t])}return l}const L=function(e){var a=e.title,t=e.titleId,L=H(e,A);return j.createElement("svg",N({"data-name":"Layer 1",xmlns:"http://www.w3.org/2000/svg",width:1038.23,height:693.31,viewBox:"0 0 1038.23 693.31","aria-labelledby":t},L),c||(c=j.createElement("defs",null,j.createElement("linearGradient",{id:"a",x1:320.96,y1:796.01,x2:320.96,y2:284.81,gradientUnits:"userSpaceOnUse"},j.createElement("stop",{offset:0,stopColor:"gray",stopOpacity:.25}),j.createElement("stop",{offset:.54,stopColor:"gray",stopOpacity:.12}),j.createElement("stop",{offset:1,stopColor:"gray",stopOpacity:.1})))),void 0===a?j.createElement("title",{id:t},"version control"):a?j.createElement("title",{id:t},a):null,l||(l=j.createElement("path",{d:"M615.24 111.4c-64.72-2.25-126.36-23.14-185.23-46S312.85 17.21 249.68 5.1c-40.63-7.79-87.09-8.89-119.83 12.89-31.5 21-41.68 57.15-47.16 90.72-4.11 25.27-6.54 51.85 4.75 75.5 7.83 16.42 21.74 30.22 31.36 45.95 33.46 54.72 9.81 122.2-26.46 175.63-17 25.06-36.74 49-49.87 75.66s-19.2 57.25-7.72 84.47c11.39 27 38.52 47.24 67.9 61.49 59.69 28.94 130 37.23 198.62 41.92 151.82 10.39 304.46 5.89 456.68 1.39 56.34-1.67 112.92-3.36 168.34-12.07 30.78-4.84 62.56-12.52 84.9-31 28.36-23.53 35.39-63.38 16.39-92.88-31.88-49.49-120-61.79-142.31-114.9-12.27-29.23.33-61.8 18.15-88.91 38.24-58.17 102.33-109.19 105.71-175.68 2.32-45.66-28.49-91.39-76.13-113-49.94-22.65-119.18-19.8-156 17.69-37.96 38.56-104.62 53.41-161.76 51.43Z",fill:"#6c63ff",opacity:.1})),r||(r=j.createElement("path",{d:"M529.62 754.84c-1-3.62-2-7.28-4-10.43a36.53 36.53 0 0 0-6.55-7.17c-7.25-6.58-16.15-13.26-25.76-11.6a34.39 34.39 0 0 0-8.54 3.12c-1.4.65-2.81 1.3-4.25 1.85a21.17 21.17 0 0 1-12.82 1.12c-2.2-.59-4.25-1.65-6.42-2.31a20.35 20.35 0 0 0-3.15-.68 53.64 53.64 0 0 0 6.09-3.21c10.78-6.6 19.38-18.53 18.18-31.29-.41-4.29-1.88-8.4-3.34-12.45l-3.84-10.62c-1.66-4.6-3.38-9.29-6.41-13.11-3.37-4.26-8.17-7.15-13.13-9.3-10.65-4.63-22.29-6.26-33.78-7.84l-.8-.11V516.68a8 8 0 0 0-8-8H398q-1-6.12-2-12.22c-1.9-11.61-3.87-23.43-9.22-33.88-3.5-6.84-9.07-13.37-16.58-14.71a16.08 16.08 0 0 1-4.31-1c-2.2-1.08-3.4-3.48-5.09-5.25-4.36-4.57-11.45-4.64-17.29-7-5.16-2.05-9.38-5.91-14.08-8.88s-10.54-5.08-15.74-3.15c0 .38-.07.76-.11 1.13l-3.34-1.54c-3.6-1.67-7.27-3.38-10.16-6.12-3.71-3.5-5.69-8.14-7.23-13.07-.16-.51-.31-1-.47-1.55a46.43 46.43 0 0 0 12.44-23.75l.81 2.63a17.45 17.45 0 0 0 .64 1.74 6.86 6.86 0 0 0 2 2.83 3.55 3.55 0 0 0 .84.49 3.5 3.5 0 0 0 .86.22 3.2 3.2 0 0 0 1.24-.09 4.73 4.73 0 0 0 3-2.78 6 6 0 0 0 .35-1.22 6.31 6.31 0 0 0 .07-.76v-1.04c0-.1 0-.33-.05-.5v-.26c0-.2-.06-.4-.1-.59s0-.11 0-.16c-.05-.25-.11-.51-.16-.76v-.19c0-.06-.09-.41-.14-.62s-.07-.27-.1-.41v-.06c-.1-.4-.19-.79-.28-1.19a34.38 34.38 0 0 1-.55-10.56 113.08 113.08 0 0 1 2.86-15.35l.21-.91c.08-.35.16-.7.23-1.06.16-.72.32-1.44.47-2.17l.36-1.84.27-1.64v-.21A47.41 47.41 0 0 0 318 330c-.46-5.23-2.08-10.18-5.63-14.12-2.51-2.79-5.82-4.85-8.15-7.78-2.18-2.74-3.41-6.12-5.67-8.81-6.24-7.45-22.26-13.19-32.09-14.19-11.26-1.14-29.45 1.74-38.53 8.39-3.36 2.45-5.66 6-8 9.36-4.3 6.25-9.18 12.49-16.07 16-2.6 1.32-5.58 2.32-7.31 4.62a12.49 12.49 0 0 0-1.95 5.18 102.71 102.71 0 0 0-2.06 19.78v2.5a18.23 18.23 0 0 0 1.56 7.23c.16.34.34.67.53 1l.12.21a39.78 39.78 0 0 1 3.2 5.45 7.22 7.22 0 0 1 .49 1.66 12.24 12.24 0 0 1-.28 4.38c0 .22-.09.44-.13.66l-.09.43c0 .15 0 .3-.08.44-.08.43-.15.86-.21 1.28a9 9 0 0 0 .22 3.46 4.55 4.55 0 0 0 2.22 3 6.5 6.5 0 0 0 1.8.56c.63.11 1.27.18 1.89.32a9.33 9.33 0 0 1 2.29.85 9.22 9.22 0 0 1 1.93 1.24 11 11 0 0 1 .83.84 14 14 0 0 1 1.42 1.94q.32.53.6 1.08a24.67 24.67 0 0 1 1.71 4.52c.26.93.48 1.87.67 2.81.09.42.17.84.24 1.25s.14.83.2 1.24a2.91 2.91 0 0 0 .8-.16c1.47-.53 2.29-2.24 2.75-3.9.08-.28.15-.55.21-.82.23-1 .47-2.1.7-3.15a46.37 46.37 0 0 0 18.25 20.1c.28.83.55 1.65.79 2.49 1.31 4.53 1.94 9.27-.33 13.23-1.62 2.81-4.34 4.54-7.38 5.74a4.88 4.88 0 0 0-1.65-1.4c-2.63-1.32-5.79.28-8 2.25-4 3.62-7.26 8.81-12.52 10-1.9.44-4 .35-5.58 1.51a13 13 0 0 0-2.59 3.4 11.92 11.92 0 0 1-10.23 5.1c-1.83-.09-4-.51-5.25.83-.93 1-1 2.58-2 3.53-1.34 1.32-3.54.68-5.41.6-3.56-.15-6.87 2.15-8.9 5.1s-3 6.48-4 10v.06a7.15 7.15 0 0 0-.73.61 10.55 10.55 0 0 0-2.21 3.58 170.87 170.87 0 0 0-14.1 58.18 6 6 0 0 1-.64 2.82 13.87 13.87 0 0 1-1.47 1.6 5.61 5.61 0 0 0 .93 8 6.3 6.3 0 0 1 1.07-1.42c-.11.46-.21.91-.28 1.32a35.49 35.49 0 0 0-.11 8.8q1.42 20.84 2.87 41.65c.27 3.93.54 7.85.9 11.77q1.05 11.38 3 22.67c.06.34.13.69.22 1-8.15 2.59-15.4 7.27-18.45 15.08-1.06 2.7-1.54 5.64-2.84 8.23-1.43 2.84-3.78 5.11-5.34 7.89-2.69 4.78-2.81 10.64-1.83 16 1.89 10.45 7.54 19.79 15 27.39h-1a15.64 15.64 0 0 0-6.83 2.45c-15.78 9.22-24.8 29-21.51 47.06.65 3.53 1.78 7.11 4.14 9.8a15.51 15.51 0 0 0 7.28 4.46 25.29 25.29 0 0 0 5.37 1c12.3 1 24.21-4.7 36.54-5.18a98 98 0 0 1 12.23.57q8.91.74 17.85.94c9.69.23 15.14-2.35 21.32-9.59a26.1 26.1 0 0 0 3.77-5.94c5.26-.3 11.07-.76 15.27-1.1l.06.58c.23 2 .58 4.3 2.18 5.56a7.61 7.61 0 0 0 3 1.23c10.1 2.48 20.32 5 30.72 5a129.71 129.71 0 0 0 14.59-1.12l18.27-2.11a91 91 0 0 1 15.7 3.42c5.28 1.79 10.21 4.45 15.37 6.56 12 4.86 24.9 6.6 37.68 8.3 2.18.29 4.68.49 6.29-1 2.08-2 1.39-5.34.8-8.14-.24-1.15-.42-2.3-.56-3.46a175.25 175.25 0 0 1 25.24 8.76l1.43.63c.42 2.18 2.43 3.92 4.36 6.27a16 16 0 0 0 2.21 2.74 7.37 7.37 0 0 0 3.17 1.14 147.82 147.82 0 0 0 40.93 1.85 41.86 41.86 0 0 1 8.44-.29 36.58 36.58 0 0 1 6.1 1.37l11.57 3.32c8.53 2.44 17.26 4.91 26.11 4.36a33.4 33.4 0 0 0 5.33-.77c7-1.62 13.52-5.53 16.88-11.82 4.75-8.55 2.56-19.07 0-28.47Z",transform:"translate(-80.89 -103.35)",fill:"url(#a)"})),i||(i=j.createElement("path",{d:"M125.02 649.54c-2.11-4.8-4.11-10.32-2-15.12a12.85 12.85 0 0 1 6.65-6.25 32 32 0 0 1 9-2.22 125.61 125.61 0 0 1 29.26-.4c.71 5.62-.79 11.32-2.08 16.75-1.17 5-1.84 5.74-7 6-3.34.18-33.04 3.01-33.83 1.24Z",fill:"#fbbebe"})),n||(n=j.createElement("ellipse",{cx:214.07,cy:577.16,rx:143,ry:40,fill:"#464353"})),s||(s=j.createElement("ellipse",{cx:214.07,cy:577.16,rx:143,ry:40,opacity:.1})),m||(m=j.createElement("path",{d:"M239.71 366a44.49 44.49 0 0 1-22.94 20.84 57.58 57.58 0 0 1-18.21 3.46c-6.79.31-13.72-.13-20.1-2.45-8.56-3.1-15.67-9.44-21-16.83s-9-15.83-12.19-24.34c-1.68-4.43-3.28-9.15-2.49-13.83 5.15-1.17 10.79-2.89 13.45-7.46 2.27-3.92 1.64-8.62.33-13.1-.37-1.27-.8-2.53-1.23-3.74-1-2.9-4.45-8.41-2-10.89 1.53-1.57 7.94-2.37 10.15-3.39 6.81-3.14 13.09-7.68 20.57-9.17 6.47-1.29 13.15-.08 19.61 1.26a6.45 6.45 0 0 1 2.42.87 5.82 5.82 0 0 1 1.8 2.7c1.84 4.48 2.92 9.43 4.4 14.1 1.54 4.89 3.52 9.48 7.23 12.95 2.89 2.71 6.57 4.41 10.17 6.06l8.86 4.06a11.65 11.65 0 0 1 4.19 2.71 10.61 10.61 0 0 1 2 5.44 50.82 50.82 0 0 1-5.02 30.75Z",fill:"#fbbebe"})),f||(f=j.createElement("path",{d:"M212.24 304.03a46 46 0 0 1-55.67 8.26c-.37-1.27-.8-2.53-1.23-3.74-1-2.9-4.45-8.41-2-10.89 1.53-1.57 7.94-2.37 10.15-3.39 6.81-3.14 13.09-7.68 20.57-9.17 6.47-1.29 13.15-.08 19.61 1.26a6.45 6.45 0 0 1 2.42.87 5.82 5.82 0 0 1 1.8 2.7c1.79 4.48 2.87 9.43 4.35 14.1Z",opacity:.1})),o||(o=j.createElement("circle",{cx:179.07,cy:270.16,r:46,fill:"#fbbebe"})),h||(h=j.createElement("path",{d:"m319.22 419.45-3.78-22.9c-1.91-11.49-3.88-23.2-9.22-33.55-3.51-6.78-9.08-13.24-16.59-14.58a16.05 16.05 0 0 1-4.32-1c-2.2-1.06-3.4-3.44-5.09-5.2-4.36-4.52-11.46-4.59-17.3-6.89-5.16-2-9.38-5.85-14.08-8.79s-10.55-5-15.75-3.12c-.84 8.95-1.73 18.1-5.53 26.25a39.28 39.28 0 0 1-59.26 14.76c-8.91-6.71-14.62-17.06-17.28-27.89-.65-2.64-1.39-5.67-3.82-6.88-2.63-1.32-5.79.28-8 2.22-4 3.59-7.27 8.73-12.53 9.94-1.9.44-4 .35-5.58 1.5a12.7 12.7 0 0 0-2.6 3.37 12 12 0 0 1-10.23 5.06c-1.83-.09-4-.51-5.25.82-.93 1-1 2.56-2 3.49-1.35 1.31-3.54.67-5.42.6-3.56-.15-6.87 2.13-8.91 5s-3 6.42-4 9.86c10.93 24.34 20.93 48.71 31.86 73.05a6.23 6.23 0 0 1 .79 3 7.31 7.31 0 0 1-1.36 3c-5.36 8.61-5.19 19.44-4.6 29.56s1.31 20.81-3.21 29.88c-1.23 2.49-2.83 4.77-4 7.26-2.74 5.64-3.73 23.68-2.13 29.74h226.08c-4.31-11.85-2.67-35.63-1.77-48.21.63-8.8-1-17.59-1.7-26.39-1.53-17.97-.45-35.02-3.42-52.96Z",fill:"#6c63ff"})),p||(p=j.createElement("path",{d:"M65.36 445.65a35.4 35.4 0 0 0-.12 8.73l2.87 41.27c.27 3.89.54 7.77.9 11.65.69 7.53 1.72 15 3 22.46a4 4 0 0 0 4.1 3.89c12.65 2.68 25.72 2.57 38.63 1.84 19.7-1.1 39.37-3.61 59.1-3.18 5.08.11 11 0 14.08-4s1.29-10.47-2.73-13.7-9.48-4-14.64-4c-6.83-.07-13.66.9-20.47.5-6.25-.37-12.36-1.88-18.42-3.39l-17-4.23c.65-5.15 2.61-10 4.47-14.89 3.34-8.67 6.46-17.63 6.52-26.92s-3.44-19.06-11.05-24.38c-6.26-4.37-14.32-5.18-21.95-5-5.55.16-15.14-1.17-20.21 1-4.01 1.76-6.33 8.42-7.08 12.35Z",fill:"#fbbebe"})),d||(d=j.createElement("path",{d:"M330.79 540.01c3.33-1.27 7-.81 10.57-.33 11.49 1.57 23.15 3.18 33.8 7.77 5 2.14 9.76 5 13.14 9.21 3 3.79 4.75 8.43 6.41 13l3.84 10.52c1.46 4 2.94 8.08 3.35 12.33 1.2 12.59-7.41 24.46-18.24 31s-23.58 8.87-36 11.31-24.89 5.14-37.26 8a150 150 0 0 1-17.53 3.45c-13.24 1.5-27.08-.71-39.66 3.67-5 1.75-9.91 4.35-15.1 5.56a93.93 93.93 0 0 1-10.44 1.59l-23.81 2.72a129.89 129.89 0 0 1-14.6 1.12c-10.4 0-20.63-2.46-30.73-4.92a7.77 7.77 0 0 1-3-1.21c-1.6-1.26-1.95-3.49-2.18-5.51q-1.53-13.41-2.68-26.85c-.24-2.91-.42-6.06 1.17-8.51 2-3 5.9-3.94 9.46-4.52a246.88 246.88 0 0 1 45.68-3.17c5.81-5.81 15.39-5.84 23-9a68.39 68.39 0 0 0 8.11-4.41 106 106 0 0 1 44.53-14.07 41.45 41.45 0 0 0 9.11-1.3c5.89-1.83 11.26-6.81 17.31-5.59.75-2.07 1.27-4.84 3-6.26.86-.73 1.92-1.22 2.71-2 1.67-1.69 1.82-4.35 1.57-6.71s-.81-4.78-.2-7.08a9.79 9.79 0 0 1 1.11-2.47c3-5.18 7.53-7.84 13.56-7.34Z",fill:"#464353"})),E||(E=j.createElement("path",{d:"M330.79 540.01c3.33-1.27 7-.81 10.57-.33 11.49 1.57 23.15 3.18 33.8 7.77 5 2.14 9.76 5 13.14 9.21 3 3.79 4.75 8.43 6.41 13l3.84 10.52c1.46 4 2.94 8.08 3.35 12.33 1.2 12.59-7.41 24.46-18.24 31s-23.58 8.87-36 11.31-24.89 5.14-37.26 8a150 150 0 0 1-17.53 3.45c-13.24 1.5-27.08-.71-39.66 3.67-5 1.75-9.91 4.35-15.1 5.56a93.93 93.93 0 0 1-10.44 1.59l-23.81 2.72a129.89 129.89 0 0 1-14.6 1.12c-10.4 0-20.63-2.46-30.73-4.92a7.77 7.77 0 0 1-3-1.21c-1.6-1.26-1.95-3.49-2.18-5.51q-1.53-13.41-2.68-26.85c-.24-2.91-.42-6.06 1.17-8.51 2-3 5.9-3.94 9.46-4.52a246.88 246.88 0 0 1 45.68-3.17c5.81-5.81 15.39-5.84 23-9a68.39 68.39 0 0 0 8.11-4.41 106 106 0 0 1 44.53-14.07 41.45 41.45 0 0 0 9.11-1.3c5.89-1.83 11.26-6.81 17.31-5.59.75-2.07 1.27-4.84 3-6.26.86-.73 1.92-1.22 2.71-2 1.67-1.69 1.82-4.35 1.57-6.71s-.81-4.78-.2-7.08a9.79 9.79 0 0 1 1.11-2.47c3-5.18 7.53-7.84 13.56-7.34Z",opacity:.05})),y||(y=j.createElement("path",{d:"M134.22 655.72c-6.19 7.17-11.64 9.73-21.33 9.5q-8.94-.21-17.86-.93a100.2 100.2 0 0 0-12.24-.57c-12.34.48-24.25 6.13-36.56 5.14a25.92 25.92 0 0 1-5.37-1 15.63 15.63 0 0 1-7.29-4.42c-2.36-2.67-3.49-6.21-4.14-9.71-3.29-17.94 5.73-37.48 21.52-46.61a15.78 15.78 0 0 1 6.84-2.43 16.21 16.21 0 0 1 6.92 1.52l.15.06A52.33 52.33 0 0 1 82 617.71a9.66 9.66 0 0 0 2.62 2.11 9 9 0 0 0 3.09.58l13.14.83a31.14 31.14 0 0 1 6.6.91 52.46 52.46 0 0 1 6.94 3c7.07 3.16 14.91 4 22.55 5.22a3.37 3.37 0 0 1 2 .8 3.13 3.13 0 0 1 .62 1.3 25.51 25.51 0 0 1-5.34 23.26Z",fill:"#3f3d56"})),Z||(Z=j.createElement("path",{d:"M64.86 606.28a78.9 78.9 0 0 0-13.15 16.44 82.28 82.28 0 0 0-10.74 32.54 60.4 60.4 0 0 0-.11 12.61 15.63 15.63 0 0 1-7.29-4.42c-2.36-2.67-3.49-6.21-4.14-9.71-3.29-17.94 5.73-37.48 21.52-46.61a15.78 15.78 0 0 1 6.84-2.43 16.21 16.21 0 0 1 6.92 1.52Z",opacity:.1})),M||(M=j.createElement("path",{d:"M319.35 631.16c7.35-.2 15.6-.57 21 4.38 5.15 4.68 5.83 12.4 6.17 19.35l.39 8.07c.12 2.46.22 5-.77 7.28-1.76 4-6.59 5.93-11 5.7s-8.46-2.16-12.49-3.9a175.7 175.7 0 0 0-34-10.71q.57-8.37 1.9-16.66c.61-3.83.71-10.24 3.27-13.42 2.71-3.36 6.24-1.54 9.92-.92a79.63 79.63 0 0 0 15.61.83Z",fill:"#fbbebe"})),x||(x=j.createElement("path",{d:"M125.11 550.07c0 1-1.57 0-1.71-1.07-1.1-8.09-7.52-14.76-15-18s-16-3.41-24.1-2.64c-12.25 1.16-26 5.85-30.48 17.3-1.06 2.68-1.54 5.58-2.84 8.15-1.44 2.82-3.79 5.07-5.35 7.81-2.69 4.74-2.8 10.55-1.83 15.91 2.61 14.3 12.39 26.53 24.24 35s25.7 13.53 39.51 18.09a685.19 685.19 0 0 0 112 26.75c6.16.93 12.38 1.79 18.28 3.77 5.28 1.77 10.22 4.42 15.38 6.5 12 4.82 24.91 6.54 37.7 8.23 2.18.28 4.68.48 6.29-1 2.08-1.93 1.39-5.29.8-8.06a43.35 43.35 0 0 1 5.11-30.76c2.14-3.6 4.92-7.29 4.52-11.46-.48-4.86-5.32-8.3-10.14-9.08s-9.72.37-14.56 1c-1.67.22-3.49.36-4.95-.49a9.89 9.89 0 0 1-1.94-1.72 21.93 21.93 0 0 0-25.54-3.57c-1.79 1-4.5-1.23-6.36-2.07l-21.03-9.52c-24.16-10.93-48.44-21.91-74-28.83a15.54 15.54 0 0 1-5.7-2.37c-1.27-1-2.18-2.36-3.35-3.47-2.55-2.41-6.1-3.37-9.16-5.08s-6.49-5.89-5.79-9.32Z",fill:"#464353"})),u||(u=j.createElement("path",{d:"M449.32 680.76c-3.36 6.23-9.88 10.11-16.88 11.71a33.5 33.5 0 0 1-5.34.76c-8.85.55-17.59-1.9-26.12-4.32l-11.58-3.26a36.55 36.55 0 0 0-6.1-1.36 41.86 41.86 0 0 0-8.44.29 149.59 149.59 0 0 1-41-1.84 7.23 7.23 0 0 1-3.17-1.13 15.75 15.75 0 0 1-2.21-2.71c-3.15-3.79-6.54-6-2.81-11 2.15-2.9 6.14-4.35 7.81-7.68s.6-8.06-.39-11.5c-1.35-4.75-5.79-6.8-7.38-11.16-1.19-3.29.81-7.11 3.82-8.9s6.73-1.93 10.2-1.47 6.87 1.44 10.36 1.71c10.26.82 20.75-4.47 30.6-1.49 2.17.66 4.22 1.71 6.42 2.29a21.35 21.35 0 0 0 12.83-1.11c1.44-.54 2.85-1.19 4.25-1.83a34.23 34.23 0 0 1 8.55-3.09c9.61-1.65 18.52 5 25.77 11.49a36.44 36.44 0 0 1 6.55 7.1c2 3.12 3.06 6.75 4 10.33 2.65 9.25 4.84 19.67.26 28.17Z",fill:"#3f3d56"})),g||(g=j.createElement("path",{d:"M449.32 680.76c-3.36 6.23-9.88 10.11-16.88 11.71a32.69 32.69 0 0 0 3.55-17.16c-.6-9.51-4.78-18.47-10.11-26.37a93.4 93.4 0 0 0-11.14-13.57c-3.18-3.2-7.09-5.74-10.51-8.67a34.23 34.23 0 0 1 8.55-3.09c9.61-1.65 18.52 5 25.77 11.49a36.44 36.44 0 0 1 6.55 7.1c2 3.12 3.06 6.75 4 10.33 2.61 9.31 4.8 19.73.22 28.23Z",opacity:.1})),b||(b=j.createElement("path",{d:"M82.11 372.26a10.35 10.35 0 0 0-2.22 3.55 167.86 167.86 0 0 0-14.1 57.62 5.76 5.76 0 0 1-.65 2.79 12.21 12.21 0 0 1-1.47 1.59 5.52 5.52 0 0 0 .94 8c1.65-3.11 5.6-4.12 9.11-4.39 16.81-1.33 33.23 6.49 50.09 5.9-1.19-4.11-2.9-8.06-3.87-12.22-4.29-18.47 6.41-38.58-.15-56.37-1.31-3.56-3.5-7.06-6.95-8.62a18.51 18.51 0 0 0-4.45-1.18c-4.26-.77-12.74-4.06-16.86-2.74-1.52.49-2.12 1.92-3.38 2.78-1.91 1.23-4.45 1.68-6.04 3.29Z",fill:"#6c63ff"})),v||(v=j.createElement("rect",{x:117.57,y:408.66,width:223,height:142,rx:7.97,fill:"#3f3d56"})),q||(q=j.createElement("circle",{cx:228.57,cy:479.66,r:6,fill:"#fff"})),w||(w=j.createElement("path",{d:"M147.29 195.5c-3.36 2.43-5.66 5.92-8 9.27-4.31 6.19-9.19 12.37-16.08 15.82-2.61 1.31-5.59 2.3-7.32 4.58a12.34 12.34 0 0 0-1.95 5.13 101.65 101.65 0 0 0-2.06 19.6c0 3.28.14 6.66 1.59 9.64 1.37 2.8 3.84 5.17 4.35 8.22.39 2.38-.49 4.75-.8 7.14s.23 5.22 2.44 6.36a14.79 14.79 0 0 0 3.7.87c6.65 1.48 8.88 9.28 9.89 15.73 2.26-.13 3.28-2.72 3.75-4.83l6.93-30.81c.75-3.34 2-7.21 5.33-8.38 2.23-.77 4.67-.05 7 .15 9.15.75 16.89-6.32 25.84-8.27a33 33 0 0 1 8.71-.58c7.06.35 15.27 3.25 16.77 9.84.25 1.07.4 2.35 1.4 2.88s2.05.08 3.1 0c4.48-.45 7.12 4.59 8.41 8.71l4.7 15c.7 2.27 1.88 4.94 4.34 5.23 2.27.28 4.2-1.87 4.54-4s-.4-4.34-.89-6.48c-2.21-9.85 1.17-19.93 3.23-29.8s2.43-21.21-4.48-28.81c-2.51-2.75-5.81-4.8-8.15-7.7-2.18-2.72-3.41-6.06-5.67-8.73-6.25-7.37-22.28-13.06-32.11-14-11.23-1.22-29.43 1.63-38.51 8.22Z",fill:"#3f3d56"})),O||(O=j.createElement("g",{opacity:.1},j.createElement("path",{d:"M229.37 279.8c-2.46-.3-3.64-3-4.34-5.23q-2.35-7.51-4.7-15c-1.29-4.13-3.93-9.17-8.41-8.71-1.05.11-2.18.52-3.1 0s-1.15-1.81-1.4-2.88c-1.5-6.6-9.71-9.49-16.77-9.84a33.43 33.43 0 0 0-8.71.57c-8.95 2-16.69 9-25.84 8.27-2.36-.19-4.8-.91-7-.14-3.37 1.16-4.58 5-5.33 8.38l-6.93 30.8c-.47 2.12-1.49 4.71-3.75 4.83-1-6.44-3.24-14.24-9.89-15.72a15.72 15.72 0 0 1-3.7-.87 4.34 4.34 0 0 1-1.93-2.15c-.18.93-.39 1.86-.51 2.79-.3 2.38.23 5.22 2.44 6.36a14.79 14.79 0 0 0 3.7.87c6.65 1.48 8.88 9.28 9.89 15.73 2.26-.13 3.28-2.72 3.75-4.83l6.93-30.81c.75-3.34 2-7.21 5.33-8.38 2.23-.77 4.67-.05 7 .15 9.15.75 16.89-6.32 25.84-8.27a33 33 0 0 1 8.71-.58c7.06.35 15.27 3.25 16.77 9.84.25 1.07.4 2.35 1.4 2.88s2.05.08 3.1 0c4.48-.45 7.12 4.59 8.41 8.71q2.34 7.51 4.7 15c.7 2.27 1.88 4.94 4.34 5.23 2.27.28 4.2-1.87 4.54-4a13.58 13.58 0 0 0-.6-5.31 4.13 4.13 0 0 1-3.94 2.31ZM117.83 260.76c-.51-3.05-3-5.42-4.35-8.22a16.45 16.45 0 0 1-1.48-6c0 1.12-.1 2.24-.11 3.37 0 3.28.14 6.66 1.59 9.64 1.11 2.27 2.94 4.27 3.86 6.58a15.06 15.06 0 0 0 .49-5.37ZM236.25 239.48c-1.82 8.72-4.66 17.6-3.78 26.34.57-6.45 2.45-12.94 3.78-19.34a51 51 0 0 0 1.16-14.83 61.14 61.14 0 0 1-1.16 7.83Z"}))),k||(k=j.createElement("g",{opacity:.8},j.createElement("path",{fill:"none",stroke:"#3f3d56",strokeMiterlimit:10,strokeWidth:3,d:"M330.04 290.49H955.1M385.57 290.48s29.89 4.15 14.41-27.92 42-26 42-26M584.64 290.48s29.89-4.14 14.41 27.93 42 26 42 26M871.27 290.48s-29.9-4.14-14.41 27.93-42 26-42 26M814.86 344.4H649.93"}),j.createElement("circle",{cx:330.04,cy:290.49,r:18.25,fill:"#6c63ff"}),j.createElement("circle",{cx:442.29,cy:236.3,r:18.25,fill:"#3acc6c"}),j.createElement("circle",{cx:442.29,cy:290.49,r:18.25,fill:"#6c63ff"}),j.createElement("circle",{cx:514.73,cy:290.49,r:18.25,fill:"#6c63ff"}),j.createElement("circle",{cx:641.35,cy:344.13,r:18.25,fill:"#ff6584"}),j.createElement("circle",{cx:737.03,cy:344.13,r:18.25,fill:"#ff6584"}),j.createElement("circle",{cx:732.04,cy:290.49,r:18.25,fill:"#6c63ff"}),j.createElement("circle",{cx:950.48,cy:290.49,r:18.25,fill:"#6c63ff"}),j.createElement("circle",{cx:861.12,cy:290.49,r:18.25,fill:"#6c63ff"}),j.createElement("path",{fill:"#6c63ff",d:"M299.38 122.66h61.23v42.2h-61.23z"}),j.createElement("path",{fill:"#3acc6c",d:"M411.9 122.66h61.23v42.2H411.9z"}),j.createElement("path",{fill:"#ff6584",d:"M610.48 122.66h61.23v42.2h-61.23z"}))),C||(C=j.createElement("path",{d:"M86.35 299.36s-74.77-31.44-84.57 25.29c0 0-5.11 8.84 2 16.14 0 0 1.53-3.92 8.75.13a37.17 37.17 0 0 0 8.16 3.32 18.36 18.36 0 0 0 11.62-.62s24.59-1.33 45.27-33.5c0 0 8.87-5.48 9.31-7.54l-14.82 1s1.14 10.85-5 17.36c0 0 5.44-16.84 2.83-17.31-.53-.1-7.83.86-7.83.86s1.89 18.87-8 28.63c0 0 9.18-19.19 5.19-28.29l-10.94 2.11s3 19.85-7.82 31.39c0 0 8.9-20.4 5.46-30.76l-10.47 3.52s2.52 19.41-6.53 29c0 0 7.9-24.61 4.18-28 0 0-9.42 3.82-11.43 6 0 0 1.49 14-4.26 19.05 0 0 3.53-17 1.78-17.7 0 0-10.94 8.24-14.28 15.35 0 0 4.16-10.86 12.91-17 0 0-7.35-1.24-13 1.83 0 0 3.78-7.21 15.65-3.79 0 0 8.79-6.09 10.55-6 0 0-11.23-5-19.34-4.38 0 0 8.7-5 22.08 3.35l10.45-3.77s-14.5-7.43-21.76-7.4c0 0 9.66-3.74 24.47 6.66l10.7-2.18s-12-7.35-20.09-9.06c0 0 9.7-1.54 23.18 8.55l7.31-.61s-8.85-5.22-11.53-6.49-2.56-2.09-2.56-2.09a34.89 34.89 0 0 1 17.14 8.18s15.18-.3 15.24-1.23ZM83.59 243s-26.48-61.27-64.63-33.17c0 0-8.06 2.34-8 10.7 0 0 3.14-1.46 5.13 5.07a30.1 30.1 0 0 0 3 6.61 15 15 0 0 0 7.25 6.25s15.37 13.22 46 5.89c0 0 8.4 1.79 9.83.83l-9.36-7.87s-5.51 7.1-12.89 7.44c0 0 12.83-6.9 11.55-8.67-.26-.36-5.15-3.94-5.15-3.94s-9.62 12.28-21 12.47c0 0 16.39-6.18 19.2-13.85l-7.7-5s-9.71 13.51-22.71 14.21c0 0 16.91-7.05 20.77-15.17l-8.23-3.87s-9.56 13-20.37 13.49c0 0 18.72-10.12 18.43-14.25 0 0-7.77-3.1-10.24-2.92 0 0-7.07 9.15-13.38 8.89 0 0 11.79-8.09 11.15-9.5 0 0-11.2-1.34-17.23 1 0 0 8.66-4.08 17.35-2.74 0 0-3.66-4.93-8.75-6.3 0 0 6.36-2.13 11.46 6.65 0 0 8.68 1.4 9.7 2.44 0 0-3.81-9.39-9-13.62 0 0 8 2 11.2 14.57l8.36 3.71s-4.38-12.68-8.72-16.79c0 0 7.87 3.28 10.75 17.9l7.6 4.79s-2.94-11.2-6.77-16.83c0 0 6.64 4.62 8.89 18.29l4.7 3.8s-2.29-8.14-3.16-10.42-.33-2.7-.33-2.7a28.65 28.65 0 0 1 5.49 14.68s9.24 8.44 9.81 7.93Z",fill:"#6c63ff",opacity:.1})))}},6566:(e,a,t)=>{t.d(a,{Z:()=>f});var c=t(7462),l=t(7294),r=t(6010);const i="features_xdhU",n="featureSvg__8YW";var s=[{title:"Gas-Grain Chemistry",Svg:t(7156).Z,description:l.createElement(l.Fragment,null,"Detailed, consistent treatment of chemistry across the gas phase and both the surface and the bulk of the ice mantles around dust grains.")},{title:"Modular Physics",Svg:t(4503).Z,description:l.createElement(l.Fragment,null,"Flexible, interchangeable modules to model all kinds of astrophysical objects such as molecular clouds, protostellar cores and C/J-type shocks.")},{title:"Active Development",Svg:t(8538).Z,description:l.createElement(l.Fragment,null,"Teams at UCL and Leiden Observatory are working with international collaborators to extend and improve UCLCHEM. Check our ",l.createElement("a",{href:"./blog/index.html"},"blog")," for recent updates.")}];function m(e){var a=e.Svg,t=e.title,c=e.description;return l.createElement("div",{className:(0,r.Z)("col col--4")},l.createElement("div",{className:"text--center"},l.createElement(a,{className:n,alt:t})),l.createElement("div",{className:"text--center padding-horiz--md"},l.createElement("h3",null,t),l.createElement("p",null,c)))}function f(){return l.createElement("section",{className:i},l.createElement("div",{className:"container"},l.createElement("div",{className:"row"},s.map((function(e,a){return l.createElement(m,(0,c.Z)({key:a},e))})))))}},2841:(e,a,t)=>{t.r(a),t.d(a,{default:()=>h});var c=t(7294),l=t(6010),r=t(2600),i=t(9960),n=t(2263),s=t(1207),m=t(6566);function f(){var e=(0,n.Z)().siteConfig;return c.createElement("header",{className:(0,l.Z)("hero hero--primary",s.Z.heroBanner)},c.createElement("div",{className:"container"},c.createElement("h1",{className:"hero__title"},e.title),c.createElement("p",{className:"hero__subtitle"},e.tagline),c.createElement("div",{className:s.Z.buttons},c.createElement(i.Z,{className:"mybuttons button button--secondary button--lg",to:"https://github.com/uclchem/UCLCHEM"},"View on GitHub"),c.createElement(i.Z,{className:"mybuttons button button--secondary button--lg",to:"https://github.com/uclchem/UCLCHEM/zipball/master"},"Get a Zip"),c.createElement(i.Z,{className:"mybuttons button button--secondary button--lg",to:"https://github.com/uclchem/UCLCHEM/tarball/master"},"Get a Tarball"))))}function o(){return c.createElement("div",{className:"mycontainer"},c.createElement("p",null,"UCLCHEM is a gas-grain chemical code for astrochemical modelling that can be used as a stand alone Fortran program or a Python module. It propagates the abundances of chemical species through a network of user-defined reactions according to the physical conditions of the gas."),c.createElement("p",null,"Included in the repository is MakeRates, a python script to easily produce all the files related to the chemical network required by UCLCHEM. By combining a reaction list from an astrochemistry database such as UMIST with a custom list of reactions, the user can quickly generate a complex network."),c.createElement("p",null,"UCLCHEM is freely available for use and/or modification for any astrochemical purpose. Please reference ",c.createElement("a",{href:"https://doi.org/10.3847/1538-3881/aa773f"},"our release paper")," if UCLCHEM is used for work in a publication and feel free to contact us with suggestions, questions or to ask for advice using the code."))}function h(){var e=(0,n.Z)().siteConfig;return c.createElement(r.Z,{title:""+e.title,description:"Description will go into a meta tag in "},c.createElement(f,null),c.createElement("div",{className:"container"},c.createElement(o,null)),c.createElement("main",null,c.createElement(m.Z,null)))}},1207:(e,a,t)=>{t.d(a,{Z:()=>c});const c={heroBanner:"heroBanner_qdFl",buttons:"buttons_AeoN"}}}]); \ No newline at end of file +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4195],{4503:(e,a,t)=>{t.d(a,{Z:()=>Ke});var c,l,r,i,n,s,m,f,o,h,p,d,E,y,Z,M,x,u,g,b,v,q,w,O,k,C,j,A,N,H,L,S,U,I,P,_,z,B,G,F,W,T,V,D,J,Q,R,Y,K,X,$,ee,ae,te,ce,le,re,ie,ne,se,me,fe,oe,he,pe,de,Ee,ye,Ze,Me,xe,ue,ge,be,ve,qe,we,Oe,ke,Ce,je,Ae,Ne,He,Le,Se,Ue,Ie,Pe,_e,ze,Be,Ge,Fe,We,Te,Ve,De,Je=t(7294),Qe=["title","titleId"];function Re(){return Re=Object.assign?Object.assign.bind():function(e){for(var a=1;a=0||(l[t]=e[t]);return l}(e,a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(c=0;c=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(l[t]=e[t])}return l}const Ke=function(e){var a=e.title,t=e.titleId,Ke=Ye(e,Qe);return Je.createElement("svg",Re({"data-name":"Layer 1",xmlns:"http://www.w3.org/2000/svg",width:1100,height:806.74,viewBox:"0 0 1100 806.74","aria-labelledby":t},Ke),c||(c=Je.createElement("defs",null,Je.createElement("linearGradient",{id:"a",x1:459.23,y1:847.99,x2:459.23,y2:385.75,gradientTransform:"translate(250.84)",gradientUnits:"userSpaceOnUse"},Je.createElement("stop",{offset:0,stopColor:"gray",stopOpacity:.25}),Je.createElement("stop",{offset:.54,stopColor:"gray",stopOpacity:.12}),Je.createElement("stop",{offset:1,stopColor:"gray",stopOpacity:.1})))),void 0===a?Je.createElement("title",{id:t},"operating system"):a?Je.createElement("title",{id:t},a):null,l||(l=Je.createElement("ellipse",{cx:629.72,cy:780.56,rx:122.56,ry:26.18,fill:"#604687",opacity:.1})),r||(r=Je.createElement("path",{d:"M1070.55 683.84c-24.35 20.2-59 28.56-92.51 33.84l-5.64.86c-58.57 8.74-118.32 10.52-177.79 12.28-165.87 4.91-332.17 9.81-497.6-1.51-73.16-5-148.13-13.76-212.25-43.7l-1.67-.79c-.83-.39-1.66-.78-2.49-1.19A224.11 224.11 0 0 1 48 664.54c-18.31-13.06-33.43-29-41.42-47.91-12.52-29.66-5.9-63 8.4-92s35.8-55.12 54.34-82.43c5.44-8 10.6-16.3 15.4-24.81 30-53.37 44.88-115.13 13.43-166.56a228.58 228.58 0 0 0-13.43-19c-7.67-10-15.47-20-20.74-31.07-12.29-25.76-9.65-54.73-5.17-82.25 6-36.59 17.05-76 51.38-98.86 35.67-23.74 86.3-22.54 130.57-14 68.83 13.19 132.36 40.8 196.49 65.7s131.35 47.58 201.86 50.02c62.26 2.17 134.89-14 176.23-56.08 40.15-40.85 115.6-43.94 170-19.27 51.91 23.54 85.48 73.36 83 123.12-3.16 62.1-54.93 111.83-95.9 164.7-6.81 8.79-13.33 17.68-19.28 26.72-19.42 29.53-33.15 65-19.78 96.88 7.5 17.85 21.81 31.47 39.06 43.36 38.65 26.63 92 44.55 116 81.83 20.67 32.16 13.01 75.56-17.89 101.21Z",fill:"#604687",opacity:.1})),i||(i=Je.createElement("ellipse",{cx:972.5,cy:704.85,rx:57.01,ry:10.96,fill:"#604687"})),n||(n=Je.createElement("ellipse",{cx:971.55,cy:700.19,rx:6.64,ry:8.69,fill:"#3f3d56"})),s||(s=Je.createElement("ellipse",{cx:971.55,cy:689.57,rx:6.64,ry:8.69,fill:"#3f3d56"})),m||(m=Je.createElement("ellipse",{cx:971.55,cy:678.94,rx:6.64,ry:8.69,fill:"#3f3d56"})),f||(f=Je.createElement("ellipse",{cx:971.55,cy:668.32,rx:6.64,ry:8.69,fill:"#3f3d56"})),o||(o=Je.createElement("ellipse",{cx:971.55,cy:657.7,rx:6.64,ry:8.69,fill:"#3f3d56"})),h||(h=Je.createElement("ellipse",{cx:971.55,cy:647.08,rx:6.64,ry:8.69,fill:"#3f3d56"})),p||(p=Je.createElement("ellipse",{cx:971.55,cy:636.46,rx:6.64,ry:8.69,fill:"#3f3d56"})),d||(d=Je.createElement("path",{d:"M996.4 563.78a31 31 0 0 0 2.47-3.64l-17.44-2.86 18.86.14a31.78 31.78 0 0 0 .61-25.2l-25.31 13.15 23.34-17.15a31.8 31.8 0 1 0-52.51 35.58 31.55 31.55 0 0 0-3.63 5.8l22.64 11.77-24.14-8.1a31.79 31.79 0 0 0 5.13 29.86 31.8 31.8 0 1 0 50 0 31.78 31.78 0 0 0 0-39.32Z",fill:"#604687"})),E||(E=Je.createElement("path",{d:"M939.61 583.44a31.68 31.68 0 0 0 6.81 19.66 31.8 31.8 0 1 0 50 0c4.24-5.41-56.81-23.23-56.81-19.66Z",opacity:.1})),y||(y=Je.createElement("path",{d:"M134.73 673.91c0 5.59-21.81 10.21-50 10.87h-1.67c-.83-.39-1.66-.78-2.49-1.19A224.11 224.11 0 0 1 48 664.54c6.85-.8 14.64-1.34 23-1.52h1.13c1.82 0 3.67-.06 5.54-.06h7.05c28.2.73 50.01 5.41 50.01 10.95Z",fill:"#604687"})),Z||(Z=Je.createElement("ellipse",{cx:76.76,cy:669.25,rx:6.64,ry:8.69,fill:"#3f3d56"})),M||(M=Je.createElement("ellipse",{cx:76.76,cy:658.63,rx:6.64,ry:8.69,fill:"#3f3d56"})),x||(x=Je.createElement("ellipse",{cx:76.76,cy:648.01,rx:6.64,ry:8.69,fill:"#3f3d56"})),u||(u=Je.createElement("ellipse",{cx:76.76,cy:637.39,rx:6.64,ry:8.69,fill:"#3f3d56"})),g||(g=Je.createElement("ellipse",{cx:76.76,cy:626.77,rx:6.64,ry:8.69,fill:"#3f3d56"})),b||(b=Je.createElement("ellipse",{cx:76.76,cy:616.15,rx:6.64,ry:8.69,fill:"#3f3d56"})),v||(v=Je.createElement("ellipse",{cx:76.76,cy:605.52,rx:6.64,ry:8.69,fill:"#3f3d56"})),q||(q=Je.createElement("path",{d:"M101.61 532.84a32.28 32.28 0 0 0 2.48-3.63l-17.45-2.84 18.87.14a31.8 31.8 0 0 0 .6-25.19l-25.3 13.13 23.34-17.16a31.8 31.8 0 1 0-52.52 35.58 32.45 32.45 0 0 0-3.63 5.8l22.64 11.7-24.14-8.07a31.87 31.87 0 0 0 5.13 29.86 31.8 31.8 0 1 0 50 0 31.78 31.78 0 0 0 0-39.32Z",fill:"#604687"})),w||(w=Je.createElement("path",{d:"M44.83 552.5a31.67 31.67 0 0 0 6.8 19.66 31.8 31.8 0 1 0 50 0c4.24-5.41-56.8-23.23-56.8-19.66Z",opacity:.1})),O||(O=Je.createElement("g",{opacity:.2},Je.createElement("path",{d:"M305.84 555.29c0 .94-.1 1.86-.2 2.76q-11.64-4.68-22.92-9.93a18.59 18.59 0 0 1-10.6-5.17c-2.19-1.1-4.37-2.24-6.54-3.39a26.82 26.82 0 0 1 1.66-3c4.2-6.66 10.6-10.83 17.65-10.6s13.15 4.78 16.93 11.66a34.37 34.37 0 0 1 4.02 17.67Z",fill:"#3f3d56"}),Je.createElement("path",{d:"M307 520.37a34.56 34.56 0 0 1-5.13 17.32c-4.21 6.64-10.6 10.81-17.65 10.58-.49 0-1-.06-1.45-.1a18.59 18.59 0 0 1-10.6-5.17 25.27 25.27 0 0 1-4.88-6.37 35.82 35.82 0 0 1 1.1-35c4.21-6.66 10.6-10.83 17.65-10.6s13.15 4.78 16.93 11.66a34.47 34.47 0 0 1 4.03 17.68Z",fill:"#3f3d56"}),Je.createElement("ellipse",{cx:336.18,cy:531.28,rx:28.63,ry:21.87,transform:"rotate(-88.19 287.148 533.775)",fill:"#3f3d56"}),Je.createElement("ellipse",{cx:337.29,cy:496.31,rx:28.63,ry:21.87,transform:"rotate(-88.19 288.252 498.807)",fill:"#3f3d56"}),Je.createElement("ellipse",{cx:338.39,cy:461.34,rx:28.63,ry:21.87,transform:"rotate(-88.19 289.351 463.833)",fill:"#3f3d56"}),Je.createElement("path",{d:"M214.12 172.83a105.78 105.78 0 0 1-7.76-12.24l57.72-7.62-62.08-1.5a104.92 104.92 0 0 1 .62-83l82 45.85-75.15-58.95a104.75 104.75 0 1 1 169.22 122.65A105.13 105.13 0 0 1 390 197.48l-75.77 36.38 80.33-24.17a104.85 104.85 0 0 1-20 97.78A104.75 104.75 0 1 1 210 302.28a104.73 104.73 0 0 1 4.08-129.45Z",fill:"#604687"}),Je.createElement("path",{d:"M399.05 243.45a104.29 104.29 0 0 1-24.44 64A104.75 104.75 0 1 1 210 302.28c-13.43-18.25 189.42-70.58 189.05-58.83Z",opacity:.1}))),k||(k=Je.createElement("g",{opacity:.2},Je.createElement("path",{d:"M798.18 480.51c0 .67-.07 1.32-.14 2q-8.31-3.29-16.31-7.06a13.31 13.31 0 0 1-7.55-3.68c-1.55-.79-3.11-1.6-4.65-2.41a19.78 19.78 0 0 1 1.18-2.13c3-4.74 7.54-7.7 12.56-7.54s9.36 3.4 12.05 8.3a24.5 24.5 0 0 1 2.86 12.52Z",fill:"#3f3d56"}),Je.createElement("path",{d:"M799 455.62a24.56 24.56 0 0 1-3.65 12.33c-3 4.72-7.54 7.69-12.56 7.53l-1-.07a13.31 13.31 0 0 1-7.55-3.68 18.32 18.32 0 0 1-3.47-4.54 25.51 25.51 0 0 1 .78-24.88c3-4.74 7.55-7.71 12.56-7.55s9.37 3.4 12.05 8.3a24.55 24.55 0 0 1 2.84 12.56Z",fill:"#3f3d56"}),Je.createElement("ellipse",{cx:834.19,cy:476.87,rx:20.37,ry:15.56,transform:"rotate(-88.19 785.171 479.34)",fill:"#3f3d56"}),Je.createElement("ellipse",{cx:834.98,cy:451.98,rx:20.37,ry:15.56,transform:"rotate(-88.19 785.957 454.46)",fill:"#3f3d56"}),Je.createElement("ellipse",{cx:835.76,cy:427.1,rx:20.37,ry:15.56,transform:"rotate(-88.19 786.738 429.573)",fill:"#3f3d56"}),Je.createElement("path",{d:"M732.91 208.37a73.57 73.57 0 0 1-5.52-8.71l41.08-5.42-44.21-1.07a74.67 74.67 0 0 1 .43-59.07L783 166.69l-53.4-41.93A74.55 74.55 0 1 1 850 212.02a74.71 74.71 0 0 1 8.06 13.86l-53.89 25.89 57.17-17.2a74.55 74.55 0 0 1-14.22 69.58A74.54 74.54 0 1 1 730 300.46a74.55 74.55 0 0 1 2.91-92.09Z",fill:"#604687"}),Je.createElement("path",{d:"M864.52 258.59a74.2 74.2 0 0 1-17.4 45.56A74.54 74.54 0 1 1 730 300.46c-9.58-13 134.78-50.23 134.52-41.87Z",opacity:.1}))),C||(C=Je.createElement("g",{opacity:.2},Je.createElement("path",{d:"M585 402.46c0 .67-.08 1.32-.15 2q-8.31-3.29-16.31-7.06a13.28 13.28 0 0 1-7.54-3.68c-1.56-.79-3.11-1.6-4.65-2.41a19 19 0 0 1 1.17-2.13c3-4.73 7.55-7.7 12.56-7.54s9.36 3.4 12.05 8.3a24.5 24.5 0 0 1 2.87 12.52Z",fill:"#3f3d56"}),Je.createElement("path",{d:"M585.74 377.57a24.56 24.56 0 0 1-3.65 12.33c-3 4.72-7.54 7.69-12.56 7.53-.35 0-.68 0-1-.07a13.28 13.28 0 0 1-7.54-3.68 18.11 18.11 0 0 1-3.48-4.54 25.48 25.48 0 0 1 .79-24.88c3-4.74 7.54-7.71 12.56-7.55s9.36 3.4 12 8.3a24.54 24.54 0 0 1 2.88 12.56Z",fill:"#3f3d56"}),Je.createElement("ellipse",{cx:620.97,cy:398.82,rx:20.37,ry:15.56,transform:"rotate(-88.3 571.11 401.206)",fill:"#3f3d56"}),Je.createElement("ellipse",{cx:621.75,cy:373.93,rx:20.37,ry:15.56,transform:"rotate(-88.19 572.718 376.417)",fill:"#3f3d56"}),Je.createElement("ellipse",{cx:622.54,cy:349.05,rx:20.37,ry:15.56,transform:"rotate(-88.19 573.504 351.525)",fill:"#3f3d56"}),Je.createElement("path",{d:"M519.68 130.28a74.87 74.87 0 0 1-5.52-8.71l41.08-5.42-44.24-1.07a74.62 74.62 0 0 1 .44-59.07l58.33 32.63-53.39-41.93a74.54 74.54 0 1 1 120.42 87.26 74.76 74.76 0 0 1 8.07 13.86L591 173.72l57.16-17.2a74.55 74.55 0 0 1-14.22 69.58 74.54 74.54 0 1 1-117.16-3.73 74.57 74.57 0 0 1 2.9-92.13Z",fill:"#604687"}),Je.createElement("path",{d:"M651.29 180.54a74.2 74.2 0 0 1-17.4 45.56 74.54 74.54 0 1 1-117.11-3.73c-9.59-12.95 134.77-50.19 134.51-41.83Z",opacity:.1}))),j||(j=Je.createElement("path",{d:"M972.4 500.81v217.73c-58.57 8.74-118.32 10.52-177.79 12.28-165.87 4.91-332.17 9.81-497.6-1.51-73.16-5-148.13-13.76-212.25-43.7V417.37c.24-185-.76 0 0-185.56v-66.59a14.1 14.1 0 0 1 14.1-14.1H958.3a14.1 14.1 0 0 1 14.1 14.1v168.63c.6 166.52-.4.52 0 166.96Z",fill:"#3f3d56"})),A||(A=Je.createElement("rect",{x:344.15,y:217.75,width:368.86,height:28.56,rx:5.22,fill:"#604687",opacity:.3})),N||(N=Je.createElement("path",{d:"M687.94 233.22h-.61l-.23-.19a5.1 5.1 0 0 0 1.19-3.25 4.94 4.94 0 1 0-4.92 5 5.09 5.09 0 0 0 3.24-1.18l.22.19v.58l3.81 3.82 1.14-1.14Zm-4.57 0a3.44 3.44 0 1 1 3.43-3.44 3.42 3.42 0 0 1-3.43 3.44Z",fill:"#444053"})),H||(H=Je.createElement("rect",{x:222.84,y:493.2,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),L||(L=Je.createElement("rect",{x:222.84,y:522.95,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),S||(S=Je.createElement("rect",{x:222.84,y:508.08,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),U||(U=Je.createElement("path",{d:"M164.57 522.58a5.74 5.74 0 0 0-5.8 5.69 3.88 3.88 0 0 1-3.87 3.79 10 10 0 0 0 7.73 3.8 7.67 7.67 0 0 0 7.75-7.59 5.75 5.75 0 0 0-5.81-5.69Zm26.53-17.76-2.6-2.55a1.94 1.94 0 0 0-2.72 0l-17.34 17 5.32 5.22 17.32-17a1.86 1.86 0 0 0 .02-2.67Z",fill:"#604687"})),I||(I=Je.createElement("rect",{x:222.84,y:345.66,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),P||(P=Je.createElement("rect",{x:222.84,y:375.41,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),_||(_=Je.createElement("rect",{x:222.84,y:360.53,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),z||(z=Je.createElement("path",{d:"M191.18 378.15 176 362.87a10.82 10.82 0 0 0-2.51-11.58 11 11 0 0 0-12.35-2.18l7.18 7.22-5 5-7.32-7.18a10.86 10.86 0 0 0 2.17 12.41 10.66 10.66 0 0 0 11.51 2.52l15.15 15.29a1.61 1.61 0 0 0 2.34 0l3.84-3.86a1.51 1.51 0 0 0 .17-2.35Z",fill:"#604687"})),B||(B=Je.createElement("rect",{x:509.6,y:493.2,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),G||(G=Je.createElement("rect",{x:509.6,y:522.95,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),F||(F=Je.createElement("rect",{x:509.6,y:508.08,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),W||(W=Je.createElement("path",{d:"M459.44 526a10 10 0 0 1-9.89 0c-3.87 1.19-6.24 5.09-7.12 8.54h24.12c-.87-3.45-3.23-7.35-7.11-8.54Zm-4.94-18.37a8.69 8.69 0 1 0 8.69 8.68 8.69 8.69 0 0 0-8.69-8.68Zm0 15.3a6.71 6.71 0 0 1-6.07-4.14h12.14a6.71 6.71 0 0 1-6.07 4.14Z",fill:"#604687"})),T||(T=Je.createElement("path",{d:"M472.09 521.37a10.07 10.07 0 0 1-8.4.69 12 12 0 0 1-2.3 2.86 11.24 11.24 0 0 1 4.9 4.33h12.91a10.72 10.72 0 0 0-7.11-7.88Zm-4.94-18.38a8.71 8.71 0 0 0-7.33 4 10.78 10.78 0 0 1 5.15 7.14h8.25a6.72 6.72 0 0 1-6.07 4.12 6 6 0 0 1-2.08-.38 11.65 11.65 0 0 1-.54 2.07 8.35 8.35 0 0 0 2.62.4 8.69 8.69 0 0 0 0-17.38Z",fill:"#604687"})),V||(V=Je.createElement("rect",{x:222.84,y:603.86,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),D||(D=Je.createElement("rect",{x:222.84,y:633.61,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),J||(J=Je.createElement("rect",{x:222.84,y:618.74,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),Q||(Q=Je.createElement("path",{d:"M176.57 607.62h-9.82a3.28 3.28 0 0 0-3.32 3.24v.7h-.62a3.28 3.28 0 0 0-3.32 3.24v23.63a3.34 3.34 0 0 0 3.32 3.32h17.08a3.27 3.27 0 0 0 3.23-3.32v-.62h.71a3.27 3.27 0 0 0 3.23-3.32v-16.37Zm0 3.66 6.84 6.84h-6.84Zm3.94 27.15a.67.67 0 0 1-.62.7h-17.08a.73.73 0 0 1-.69-.7V614.8a.67.67 0 0 1 .69-.62h.62v21c0 1.82.86 2.66 2.67 2.66h14.41Zm3.93-3.94a.66.66 0 0 1-.61.7h-17.08a.73.73 0 0 1-.69-.7v-23.63a.67.67 0 0 1 .69-.62h7.19v10.51h10.5Z",fill:"#604687"})),R||(R=Je.createElement("rect",{x:509.6,y:345.66,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),Y||(Y=Je.createElement("rect",{x:509.6,y:375.41,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),K||(K=Je.createElement("rect",{x:509.6,y:360.53,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),X||(X=Je.createElement("path",{d:"M457.32 353.37h-11.38a3.51 3.51 0 0 0-3.5 3.51v19.25a3.5 3.5 0 0 0 3.5 3.5h29.76a3.5 3.5 0 0 0 3.5-3.5v-15.34a3.51 3.51 0 0 0-3.5-3.5h-14.88l-3.5-3.94Z",fill:"#604687"})),$||($=Je.createElement("rect",{x:792.79,y:493.2,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),ee||(ee=Je.createElement("rect",{x:792.79,y:522.95,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),ae||(ae=Je.createElement("rect",{x:792.79,y:508.08,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),te||(te=Je.createElement("path",{d:"m762.93 509.28-6.77-.32-.4-4.41a1.7 1.7 0 0 0-1.88-1.52l-24.27 2a1.67 1.67 0 0 0-1.59 1.79l1.73 19.35a1.7 1.7 0 0 0 1.88 1.49l1.23-.09-.19 3.76a1.87 1.87 0 0 0 1.83 1.93l27.09 1.28a1.88 1.88 0 0 0 2-1.74l1.14-21.6a1.86 1.86 0 0 0-1.8-1.92Zm-29.12.44-.58 11.06-1.44 2-1.32-14.61v-.09a.89.89 0 0 1 .78-.77l21.42-1.75a.81.81 0 0 1 .87.64l.21 2.52-18-.86a1.9 1.9 0 0 0-1.94 1.86Zm27.4 19.44-7-8.17-3.07 2.82-5.67-6.63-10.07 10.72.86-16.33a.94.94 0 0 1 1-.74l23.9 1.16a.87.87 0 0 1 .85.83Z",fill:"#604687"})),ce||(ce=Je.createElement("path",{d:"M756.89 518.79a2.63 2.63 0 1 0-2.62-2.63 2.64 2.64 0 0 0 2.62 2.63Z",fill:"#604687"})),le||(le=Je.createElement("rect",{x:795.17,y:345.66,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),re||(re=Je.createElement("rect",{x:795.17,y:375.41,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),ie||(ie=Je.createElement("rect",{x:795.17,y:360.53,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),ne||(ne=Je.createElement("circle",{cx:762.56,cy:356.63,r:5.25,fill:"#604687"})),se||(se=Je.createElement("path",{d:"m758.53 362.82-10.42 6.94-14.44-9.62v-3.51l14.44 9.63 8.3-5.53a7.39 7.39 0 0 1-.1-8h-23.07a3.52 3.52 0 0 0-3.51 3.51v21.88a3.52 3.52 0 0 0 3.51 3.51H763a3.51 3.51 0 0 0 3.5-3.51v-15.2a7.37 7.37 0 0 1-8-.06Z",fill:"#604687"})),me||(me=Je.createElement("ellipse",{cx:509.64,cy:746.02,rx:26.08,ry:5.01,fill:"#604687"})),fe||(fe=Je.createElement("ellipse",{cx:509.21,cy:743.89,rx:3.04,ry:3.97,fill:"#3f3d56"})),oe||(oe=Je.createElement("ellipse",{cx:509.21,cy:739.03,rx:3.04,ry:3.97,fill:"#3f3d56"})),he||(he=Je.createElement("ellipse",{cx:509.21,cy:734.17,rx:3.04,ry:3.97,fill:"#3f3d56"})),pe||(pe=Je.createElement("ellipse",{cx:509.21,cy:729.31,rx:3.04,ry:3.97,fill:"#3f3d56"})),de||(de=Je.createElement("ellipse",{cx:509.21,cy:724.46,rx:3.04,ry:3.97,fill:"#3f3d56"})),Ee||(Ee=Je.createElement("ellipse",{cx:509.21,cy:719.6,rx:3.04,ry:3.97,fill:"#3f3d56"})),ye||(ye=Je.createElement("ellipse",{cx:509.21,cy:714.74,rx:3.04,ry:3.97,fill:"#3f3d56"})),Ze||(Ze=Je.createElement("path",{d:"M520.57 681.5a13.59 13.59 0 0 0 1.13-1.67l-8-1.31 8.62.07a14.59 14.59 0 0 0 .28-11.52l-11.57 6 10.67-7.85a14.54 14.54 0 1 0-24 16.28 15.11 15.11 0 0 0-1.66 2.65l10.36 5.38-11-3.7a14.53 14.53 0 0 0 2.34 13.65 14.54 14.54 0 1 0 22.86 0 14.55 14.55 0 0 0 0-18Z",fill:"#604687"})),Me||(Me=Je.createElement("path",{d:"M494.6 690.49a14.45 14.45 0 0 0 3.11 9 14.54 14.54 0 1 0 22.86 0c1.95-2.48-25.97-10.63-25.97-9Z",opacity:.1})),xe||(xe=Je.createElement("path",{d:"M802 436.86a13.68 13.68 0 0 1-1-2.7c-.1-1.07.32-2.48-.63-3-.53-.29-1.27-.07-1.74-.45a2.15 2.15 0 0 1-.51-1.2 4.1 4.1 0 0 0-3.8-3c1-2.71 4.68-3.37 6.3-5.76.81-1.19.55-3.38-.88-3.39a2.49 2.49 0 0 0-1 .25l-5.33 2.2a27.35 27.35 0 0 0-3 1.39c-2.93 1.67-5.12 4.38-7.09 7.13a30.49 30.49 0 0 0-4.41 8 18 18 0 0 0-.94 5.49v.56c-.87.15-1.58.53-2.49.71l-2.07 5.47a6.93 6.93 0 0 1-1.35 2.49 12.52 12.52 0 0 1-1.46 1.15 8.45 8.45 0 0 0-2.91 7.37 7.93 7.93 0 0 0-4.66 9.78 9.31 9.31 0 0 0-6.81 6 4.43 4.43 0 0 1-.89 1.88 3.55 3.55 0 0 1-2.37.73c-2.34.15-4.38 2-6.49 1a13.21 13.21 0 0 0-7.71-1.08 5.77 5.77 0 0 1-1.65.15 4.43 4.43 0 0 1-1.35-.47 10.46 10.46 0 0 0-3.06-1.21 2.84 2.84 0 0 0-2.9 1.12c-.74-.81-1.18-1.86-1.85-2.73a3 3 0 0 0-2.82-1.35c.7-.63 0-1.89-.93-2.11a11.56 11.56 0 0 0-2.81.1c-2.44 0-4.32-2.24-6.69-2.83-2.18-.53-5.09.11-6.21-1.85-.35-.63-.45-1.45-1-1.92a3.64 3.64 0 0 0-.71-1.45c-.9-1-2.41-1.16-3.76-1.12a15.68 15.68 0 0 0-4.37.75c0-.17-.09-.36-.15-.56a11.09 11.09 0 0 0-4.84-5.94 20 20 0 0 0-5.66-2.26v-.53a22.55 22.55 0 0 1 1.16-7.43c.08-.26.18-.52.27-.78a26.6 26.6 0 0 0 12-44.63 6.83 6.83 0 0 0-.21-1.6 7.86 7.86 0 0 0-1.6-3.12c-1.22-2.72-3.12-3.92-5.55-5.06-.7-.33-1.44-.65-2.22-1-3.87-1.74-7.61-4.3-12-4.29-4 0-7.86 2.21-11.82 2.13h-.95c-1.11-.13-2.44-.39-3.17.46a4.5 4.5 0 0 0-.56 1.09 2.64 2.64 0 0 1-.2.37 4.4 4.4 0 0 1-.51.69c-1.28 1.4-3.43 2-5.2 2.94-4 2.05-6.62 6.23-7.66 10.61s-.68 9 .1 13.44c.4 2.22 1.26 4.74 2.84 6.14s-13.37 9.51-10.93 10.86c1.33.74 6.87-2.77 11.64-6.12.05.2.09.41.15.61a44 44 0 0 0 2.18 6.25c1 2.39 2.44 5 4.93 5.69a5.36 5.36 0 0 0 1.69.19h.44a39.39 39.39 0 0 1-1.15 10.87 6.61 6.61 0 0 0-4.09 1.13 3.29 3.29 0 0 1-1.66.88 2.89 2.89 0 0 1-1.71-.84 9.7 9.7 0 0 0-12.14.64c-4.84 4.57-4.29 13.49-10 16.95-1.56.95-3.56 1.46-4.48 3.05a11.41 11.41 0 0 1-.77 1.47 4.05 4.05 0 0 1-1.36 1 26.48 26.48 0 0 0-4.68 2.7 6.72 6.72 0 0 0-2.69 4.54 8.61 8.61 0 0 0 .82 3.81 36.44 36.44 0 0 0 3.12 6 6.38 6.38 0 0 0-1.26 2.95c-.4 2.81.94 5.58 1.09 8.42.13 2.48-.66 4.9-1.1 7.34-1.76 9.54 1.61 19.2 5 28.26a14.58 14.58 0 0 1 1.2 4.65c.09 3-1.6 5.67-2.07 8.59-1 6.14 3.53 11.92 3.63 18.13 0 2.87-.86 5.78-.14 8.55.47 1.85 1.62 3.44 2.44 5.17 1.44 3.06 1.83 6.53 3.21 9.62a23.07 23.07 0 0 0 7.12 8.48c1.73 5.49-.73 12.12 0 18q1.41-.56 2.85-1a41.17 41.17 0 0 0 6.3 24.84c1.55 2.42 3.37 4.68 4.54 7.31a34.26 34.26 0 0 1 1.77 5.79q2.51 10.47 5 20.92c1.36 5.65 2.73 11.4 2.32 17.2-.28 4-1.3 8.57 1.18 11.77a8.51 8.51 0 0 1 1.49 2.06 5.22 5.22 0 0 1 0 2.72 180.71 180.71 0 0 0-2.48 20.39c-.56.75-1.12 1.51-1.63 2.26-4.11 6-6.09 13.21-7.69 20.32a245.83 245.83 0 0 0-5.16 42.44 28.38 28.38 0 0 0-5.26 6.41c-2.15 4-2.43 8.7-2.66 13.24a4.73 4.73 0 0 0 .24 2.18 4.48 4.48 0 0 0 2.24 1.68l1.24.59c-.27 1-.51 2-.72 3.05-1.58-1.78-4.39-4.6-4.87-2.54a101.78 101.78 0 0 0-2.56 21 1.77 1.77 0 0 0 1.9 2.12A116.25 116.25 0 0 0 660 848c5.65 0 11.29-.46 16.92-.89l5.77-.44a127.7 127.7 0 0 0 17.67-2.19c2.55-.56 5.18-1.35 7.1-3.14s2.86-4.85 1.54-7.12c-1.61-2.74-5.37-2.94-8.51-3.38a27.85 27.85 0 0 1-8.92-2.84c-.63-.32-1.24-.68-1.85-1 .16 0 .33-.08.48-.14 2.7-.91 4.85-3 7.39-4.25 3-1.45 6.31-1.78 9.57-2.19s6.62-1 9.33-2.86c2.54-1.74 4.34-4.91 3.75-7.89a5.15 5.15 0 0 0-.16-.62c-1-3.23-4.5-5-7.76-5.8s-6.8-1.28-9.44-3.38l-.39-.31c-.22-.19-.45-.37-.69-.56a5.62 5.62 0 0 0 .77-3.26c-.14-1.79-1.18-3.37-1.89-5-1.39-3.25-1.5-6.88-1.88-10.39-.94-8.83-3.65-17.35-5.69-26-.23-1-.45-2-.67-3a62.86 62.86 0 0 1 7.27-11.64 38 38 0 0 0 7-13.77c.42-1.54.73-3.1 1.05-4.67Q713.18 694.18 718 667a45.19 45.19 0 0 0 .91-7.84 23.89 23.89 0 0 0 1.35-7.43c.94-3.67 1.89-7.52 1.12-9.92-.54-1.7-.81-7.51-1.11-13.08a50.24 50.24 0 0 0-.54-8.93c-.09-.51-.19-1-.3-1.51q-.09-.45-.18-.75a25.68 25.68 0 0 0-1.76-4.86 23.63 23.63 0 0 0-1.32-2.71 12.34 12.34 0 0 0-1-1.48 62 62 0 0 1 6.22.58c.5.07 1.12.11 1.43-.3a1.47 1.47 0 0 0 .18-.77 12.75 12.75 0 0 0-1.62-6.76c-.8-1.42-1.91-2.8-1.88-4.43a6.53 6.53 0 0 1 .55-2.2l2.77-7.44c2.35-6.29 1.23-13.58 2.45-20.18a118.46 118.46 0 0 0 1.82-15.61c.23-4.47.09-9.32-2.6-12.9a14.73 14.73 0 0 1-2-2.84 8.41 8.41 0 0 1-.48-3.39q-.07-10.51.42-21a206.38 206.38 0 0 0 35.05-4 22 22 0 0 0 4-1.08 20.19 20.19 0 0 0 4-2.53c3.93-2.84 7.92-5.73 10.91-9.55a32.36 32.36 0 0 0 6.46-15.94c2.84-2.63 4.35-6.37 5.77-10a15.42 15.42 0 0 0 1.32-4.85c.07-1.72-1.06-3.52-.74-5.21a13.78 13.78 0 0 1 4.19-7.58 2.74 2.74 0 0 0 1-1.33 2.12 2.12 0 0 0-.23-1.3l-.09-.15c.28-.17.54-.35.81-.53.93-.66 1.82-1.39 2.69-2.1a17 17 0 0 0 3.49-3.54 5.75 5.75 0 0 0 .94-4.7ZM673.69 820.15c-.24 0-.48 0-.71.06a9.57 9.57 0 0 0-2.54.73l-.19.1c1.1-2.38 2.14-4.8 3.08-7.26.11-.29.21-.58.32-.88l-.12 1.64a20.22 20.22 0 0 0 .16 5.61Z",transform:"translate(-50 -46.63)",fill:"url(#a)"})),ue||(ue=Je.createElement("path",{d:"M638 409.1c.1 3.88 1.42 7.64 1.62 11.52-11.43.57-22.72-5-34-3.28 3.17-2.05 4.86-5.74 5.86-9.37a38.9 38.9 0 0 0 1.11-14.41 6.61 6.61 0 0 0-.14-.79c-.42-1.9-1.51-4.59-1.22-6.08.39-2 2.25-1.59 3.93-1.48a150.51 150.51 0 0 1 15.26 2c1.32.23 14.13 3.43 14.33 3.1a59.69 59.69 0 0 0-5.55 11.43 22.32 22.32 0 0 0-1.2 7.36ZM751.05 397.1a16.64 16.64 0 0 1-3.49 3.52c-.87.71-1.76 1.44-2.69 2.09a11.5 11.5 0 0 1-5.72 2.33c-2.72.18-8.51-1.42-10.2-3.75a6.77 6.77 0 0 1-1-3.91 17.88 17.88 0 0 1 .94-5.46 30.42 30.42 0 0 1 4.41-8c2-2.74 4.16-5.43 7.09-7.09a27.35 27.35 0 0 1 3-1.39l5.33-2.18a2.5 2.5 0 0 1 1-.26c1.43 0 1.69 2.2.88 3.38-1.62 2.38-5.27 3-6.3 5.73a4.09 4.09 0 0 1 3.8 2.95 2.11 2.11 0 0 0 .51 1.19c.47.37 1.21.16 1.74.45.95.5.53 1.91.63 3a13.5 13.5 0 0 0 1 2.68 5.69 5.69 0 0 1-.93 4.72Z",fill:"#ee8e9e"})),ge||(ge=Je.createElement("path",{d:"M593.4 786.45c.88-.88 2.32-.73 3.55-.54a132 132 0 0 0 19.95 1.61c.84-4.08-1.59-8-2.37-12.14a10.76 10.76 0 0 0-.8-3.08c-.94-1.8-3.06-2.63-5.05-3-3.59-.76-9.21-2.09-11.22 1.54-2.41 4.31-3.18 10.75-4.06 15.61Z",fill:"#65617d"})),be||(be=Je.createElement("path",{d:"M666.49 771.02c-2.71 1.85-6.07 2.42-9.33 2.84s-6.61.74-9.57 2.19c-2.54 1.26-4.69 3.32-7.39 4.22a15.31 15.31 0 0 1-7.67.12c-3-.57-6.26-1.67-7.89-4.29-1.46-2.32-1.31-5.27-1.11-8 .24-3.09.47-6.2.69-9.3a4.4 4.4 0 0 1 .58-2.24c2.19-3.2 7.52 1.33 10.37 1.33 4.52 0 9.37-2.46 12.62-5.45a3.89 3.89 0 0 1 1-.74c1.29-.58 2.58.49 3.72 1.42l.39.31c2.64 2.09 6.18 2.52 9.44 3.37s6.75 2.55 7.76 5.77a4.57 4.57 0 0 1 .16.61c.57 2.95-1.26 6.1-3.77 7.84Z",fill:"#3f3d56"})),ve||(ve=Je.createElement("path",{d:"M666.49 771.02c-2.71 1.85-6.07 2.42-9.33 2.84s-6.61.74-9.57 2.19c-2.54 1.26-4.69 3.32-7.39 4.22a15.31 15.31 0 0 1-7.67.12c-3-.57-6.26-1.67-7.89-4.29-1.46-2.32-1.31-5.27-1.11-8 .24-3.09.47-6.2.69-9.3a4.4 4.4 0 0 1 .58-2.24c2.19-3.2 7.52 1.33 10.37 1.33 4.52 0 9.37-2.46 12.62-5.45a3.89 3.89 0 0 1 1-.74c1.29-.58 2.58.49 3.72 1.42l.39.31c2.64 2.09 6.18 2.52 9.44 3.37s6.75 2.55 7.76 5.77a4.57 4.57 0 0 1 .16.61c.57 2.95-1.26 6.1-3.77 7.84Z",fill:"#434175"})),qe||(qe=Je.createElement("path",{d:"M666.49 772.06c-2.71 1.85-6.07 2.43-9.33 2.85s-6.61.73-9.57 2.18c-2.54 1.26-4.69 3.32-7.39 4.22a15.31 15.31 0 0 1-7.67.12 12.6 12.6 0 0 1-7.89-5.33c-1.46-2.32-1.31-5.27-1.11-8 .24-3.09.47-6.2.69-9.3a4.4 4.4 0 0 1 .58-2.24c2.19-3.2 7.52 1.33 10.37 1.33 4.52 0 9.37-2.46 12.62-5.45a3.89 3.89 0 0 1 1-.74c1.29-.58 2.58.49 3.72 1.42a26.4 26.4 0 0 1-3.17 6.56 13.63 13.63 0 0 1-10 6.22c-2 .15-4.09-.25-6 .27s-3.77 2.52-3.08 4.42 3.06 2.25 5 2.36a22.38 22.38 0 0 0 8.21-.58c1.6-.53 3.07-1.41 4.62-2.06 6.62-2.74 15-1.21 20.46-5.85a13 13 0 0 1 1.67-1.28c1.45 2.99-1.22 7.19-3.73 8.88Z",fill:"#e8eaf2"})),we||(we=Je.createElement("path",{d:"M666.49 772.06c-2.71 1.85-6.07 2.43-9.33 2.85s-6.61.73-9.57 2.18c-2.54 1.26-4.69 3.32-7.39 4.22a15.31 15.31 0 0 1-7.67.12 12.6 12.6 0 0 1-7.89-5.33c-1.46-2.32-1.31-5.27-1.11-8 .24-3.09.47-6.2.69-9.3a4.4 4.4 0 0 1 .58-2.24c2.19-3.2 7.52 1.33 10.37 1.33 4.52 0 9.37-2.46 12.62-5.45a3.89 3.89 0 0 1 1-.74c1.29-.58 2.58.49 3.72 1.42a26.4 26.4 0 0 1-3.17 6.56 13.63 13.63 0 0 1-10 6.22c-2 .15-4.09-.25-6 .27s-3.77 2.52-3.08 4.42 3.06 2.25 5 2.36a22.38 22.38 0 0 0 8.21-.58c1.6-.53 3.07-1.41 4.62-2.06 6.62-2.74 15-1.21 20.46-5.85a13 13 0 0 1 1.67-1.28c1.45 2.99-1.22 7.19-3.73 8.88Z",opacity:.05})),Oe||(Oe=Je.createElement("path",{d:"M594.64 569.44a40.77 40.77 0 0 0 5.58 30c1.55 2.4 3.37 4.66 4.54 7.27a33.77 33.77 0 0 1 1.77 5.77l5 20.8c1.36 5.62 2.73 11.34 2.32 17.11-.28 4-1.3 8.53 1.18 11.71a8.46 8.46 0 0 1 1.49 2.05 5.15 5.15 0 0 1 0 2.7c-2.54 15.11-4.43 30.9.16 45.51 4.17 13.25 4.41 27.93 7.95 41.35a9.24 9.24 0 0 0 2.19 4.59 7.27 7.27 0 0 0 3.3 1.56c5.22 1.25 10.73-.21 15.59-2.46 3.42-1.59 7.1-4.37 6.81-8.12-.14-1.79-1.18-3.36-1.89-5-1.39-3.23-1.5-6.83-1.88-10.33-.94-8.78-3.65-17.26-5.69-25.84s-3.44-17.57-1.71-26.23a229.79 229.79 0 0 1 16.87-51.9 6.27 6.27 0 0 1 1.55-2.32 16.86 16.86 0 0 0 2.19-1.49 6.66 6.66 0 0 0 1-2.72c.76-2.74 3-4.77 4.53-7.17 3.83-6.08 2.62-13.87 2.48-21.05-.14-7 .86-14-.28-20.92s-5.04-13.94-11.69-16.06c-3.29-1.07-6.85-.82-10.29-.48-18.23 1.8-35.95 5.11-53.07 11.67Z",fill:"#696791"})),ke||(ke=Je.createElement("path",{d:"M594.64 570.44a40.77 40.77 0 0 0 5.58 30c1.55 2.4 3.37 4.66 4.54 7.27a33.77 33.77 0 0 1 1.77 5.77l5 20.8c1.36 5.62 2.73 11.34 2.32 17.11-.28 4-1.3 8.53 1.18 11.71a8.46 8.46 0 0 1 1.49 2.05 5.15 5.15 0 0 1 0 2.7c-2.54 15.11-4.43 30.9.16 45.51 4.17 13.25 4.41 27.93 7.95 41.35a9.24 9.24 0 0 0 2.19 4.59 7.27 7.27 0 0 0 3.3 1.56c5.22 1.25 10.73-.21 15.59-2.46 3.42-1.59 7.1-4.37 6.81-8.12-.14-1.79-1.18-3.36-1.89-5-1.39-3.23-1.5-6.83-1.88-10.33-.94-8.78-3.65-17.26-5.69-25.84s-3.44-17.57-1.71-26.23a229.79 229.79 0 0 1 16.87-51.9 6.27 6.27 0 0 1 1.55-2.32 16.86 16.86 0 0 0 2.19-1.49 6.66 6.66 0 0 0 1-2.72c.76-2.74 3-4.77 4.53-7.17 3.83-6.08 2.62-13.87 2.48-21.05-.14-7 .86-14-.28-20.92s-5.04-13.94-11.69-16.06c-3.29-1.07-6.85-.82-10.29-.48-18.23 1.8-35.95 5.11-53.07 11.67Z",opacity:.1})),Ce||(Ce=Je.createElement("path",{d:"M668.92 613.23a44 44 0 0 1-.91 8.07q-4.83 27-10.28 54c-.32 1.56-.63 3.12-1.05 4.65a37.78 37.78 0 0 1-7 13.7c-15.15 18.89-16.46 46.32-24.68 69.1-.56 1.54-1.11 3.09-1.7 4.61a115.75 115.75 0 0 1-5.07 11.31 3.22 3.22 0 0 1-1 1.35 3.08 3.08 0 0 1-1.65.33 48.31 48.31 0 0 1-21.36-4.86 4.48 4.48 0 0 1-2.27-1.89 4.66 4.66 0 0 1-.24-2.17c.23-4.51.51-9.19 2.66-13.16a28.22 28.22 0 0 1 5.26-6.38 242.36 242.36 0 0 1 5.16-42.22c1.6-7.08 3.58-14.23 7.69-20.21 3-4.42 7.38-8.78 6.84-14.11-.23-2.34-1.21-5.25.69-6.62.83-.61 2.06-.69 2.63-1.55a3 3 0 0 0 .37-1.32 32.66 32.66 0 0 0-.68-10.93 58.79 58.79 0 0 1-1.63-7.13 9 9 0 0 1 1.79-6.88c.1-4.87 0-9.92.07-14.78a27.16 27.16 0 0 0-.69-8.25c-.36-1.27-.93-2.49-1.21-3.79-1-4.67 1.52-10.27-1.5-14-1.26-1.54-3.2-2.31-4.85-3.42a17.71 17.71 0 0 1-6.66-9.57 52.59 52.59 0 0 1-1.9-11.74 11.28 11.28 0 0 1 0-2.53 4.35 4.35 0 0 1 .34-1.27c.94-2.11 3.46-2.93 5.71-3.47a185.15 185.15 0 0 1 43.61-5.1c5.44-3.7 8.49-2.37 10.8 1.54a41.09 41.09 0 0 1 3.07 7.51c1 3.18 1.12 21 2.14 24.17 1.3 4.15-2.55 12.65-2.5 17.01Z",fill:"#696791"})),je||(je=Je.createElement("path",{d:"M570.68 451.29c-.4 2.8.94 5.55 1.09 8.38.13 2.47-.66 4.88-1.1 7.31-1.76 9.48 1.61 19.09 5 28.11a14.4 14.4 0 0 1 1.2 4.62c.09 2.94-1.6 5.64-2.07 8.55-1 6.11 3.53 11.85 3.63 18 0 2.85-.86 5.75-.14 8.5.47 1.84 1.62 3.43 2.43 5.14 1.45 3 1.84 6.5 3.22 9.57 2.49 5.55 7.84 9.18 12.94 12.51 2.89-1 6-2.11 7.62-4.72a11.63 11.63 0 0 0 1.33-4.14c1.1-6.33 1.06-12.79 1-19.21a118.59 118.59 0 0 0-.83-16.54c-1-7-3.29-13.7-4.92-20.57-2-8.65-3.09-17.59-6.28-25.9-2.81-7.29-7.17-13.84-11.77-20.12-1.75-2.39-3.14-5.81-6.54-5.26a7.13 7.13 0 0 0-5.81 5.77Z",fill:"#434175"})),Ae||(Ae=Je.createElement("path",{d:"M570.68 449.29c-.4 2.8.94 5.55 1.09 8.38.13 2.47-.66 4.88-1.1 7.31-1.76 9.48 1.61 19.09 5 28.11a14.4 14.4 0 0 1 1.2 4.62c.09 2.94-1.6 5.64-2.07 8.55-1 6.11 3.53 11.85 3.63 18 0 2.85-.86 5.75-.14 8.5.47 1.84 1.62 3.43 2.43 5.14 1.45 3 1.84 6.5 3.22 9.57 2.49 5.55 7.84 9.18 12.94 12.51 2.89-1 6-2.11 7.62-4.72a11.63 11.63 0 0 0 1.33-4.14c1.1-6.33 1.06-12.79 1-19.21a118.59 118.59 0 0 0-.83-16.54c-1-7-3.29-13.7-4.92-20.57-2-8.65-3.09-17.59-6.28-25.9-2.81-7.29-7.17-13.84-11.77-20.12-1.75-2.39-3.14-5.81-6.54-5.26a7.13 7.13 0 0 0-5.81 5.77Z",opacity:.05})),Ne||(Ne=Je.createElement("path",{d:"M644.66 390.28a59.69 59.69 0 0 0-5.55 11.43 26.19 26.19 0 0 1-6.3.76c-8.25 0-14.08-4.69-18.93-10.62-.42-1.9-3-3.67-2.74-5.16.39-2 2.25-1.59 3.93-1.48a150.51 150.51 0 0 1 15.26 2c1.32.16 14.13 3.4 14.33 3.07Z",opacity:.1})),He||(He=Je.createElement("circle",{cx:632.81,cy:375.34,r:26.41,fill:"#ee8e9e"})),Le||(Le=Je.createElement("path",{d:"M666.18 564.56c-4.57-.27-9.18-.08-13.76.1a47.15 47.15 0 0 0-8.55.88c-3.47.79-6.71 2.37-10.13 3.36-5.48 1.59-11.26 1.66-16.93 2.22a94.36 94.36 0 0 0-11.09 1.74 4.35 4.35 0 0 1 .34-1.27c.94-2.11 3.46-2.93 5.71-3.47a185.15 185.15 0 0 1 43.61-5.1c5.44-3.65 8.49-2.37 10.8 1.54Z",opacity:.1})),Se||(Se=Je.createElement("path",{d:"M648.18 418.58c-1.15 1.33-2.7 2.8-4.4 2.37a6.08 6.08 0 0 1-1.72-.92c-3-2-6.78-2.42-10.36-3a152.4 152.4 0 0 1-21.34-4.8 21.93 21.93 0 0 0-6.32-1.28c-4.47 0-8.44 3-11.24 6.48s-4.8 7.57-7.55 11.1c-2 2.52-4.3 4.74-6.13 7.35-4.62 6.59-5.62 15.19-4.42 23.15s4.37 15.47 7.53 22.88a78.47 78.47 0 0 0 6.14 12.46c-1.06 6-.5 13 2.38 18.4.93 1.77 2.08 3.49 2.39 5.47a13.85 13.85 0 0 1-.16 4l-1.35 9.56c-.41 2.91-.82 5.82-1.35 8.72-1 5.29-2.28 11 .17 15.82 2.93 5.74-.15 13.09.62 19.49a97.8 97.8 0 0 1 25.74-6.11c5.67-.56 11.45-.63 16.93-2.22 3.42-1 6.66-2.57 10.13-3.37a47 47 0 0 1 8.55-.87c6.33-.25 12.7-.51 19 .42.5.08 1.12.12 1.43-.29a1.47 1.47 0 0 0 .19-.75 12.63 12.63 0 0 0-1.62-6.72c-.8-1.41-1.91-2.79-1.88-4.41a6.48 6.48 0 0 1 .55-2.19l2.77-7.4c2.35-6.25 1.23-13.51 2.45-20.07a117.46 117.46 0 0 0 1.82-15.53c.23-4.45.09-9.27-2.6-12.83a14.67 14.67 0 0 1-2-2.83 8.34 8.34 0 0 1-.48-3.37q-.09-13.36.73-26.72c-2.34-4.21-4.79-8.51-7.13-12.72-2.73-4.9-5.49-9.9-6.59-15.4-.73-3.63-.71-7.38-1.23-11.05a4.9 4.9 0 0 0-.93-2.59 4.69 4.69 0 0 0-3.76-1.11 16.44 16.44 0 0 0-4.96.88Z",fill:"#434175"})),Ue||(Ue=Je.createElement("path",{d:"M744.87 402.71a11.5 11.5 0 0 1-5.72 2.33c-2.72.18-8.51-1.42-10.2-3.75a6.77 6.77 0 0 1-1-3.91 4.91 4.91 0 0 1 1.14-.22 29.88 29.88 0 0 1 8.86.36c2.88.7 5.66 2.45 6.87 5.16Z",opacity:.1})),Ie||(Ie=Je.createElement("path",{d:"M657 459.83c1.61 2 3.28 4.06 5.56 5.25 2.63 1.36 5.72 1.39 8.67 1.33a208 208 0 0 0 36.23-4 22.81 22.81 0 0 0 4-1.07 20.6 20.6 0 0 0 4-2.52c3.93-2.82 7.92-5.7 10.91-9.51a32.05 32.05 0 0 0 6.46-15.85c2.84-2.61 4.35-6.34 5.77-9.93a15.24 15.24 0 0 0 1.32-4.82c.07-1.71-1.06-3.5-.74-5.18a13.64 13.64 0 0 1 4.19-7.54 2.74 2.74 0 0 0 1-1.33 2.1 2.1 0 0 0-.23-1.29c-1.22-2.71-4-4.45-6.88-5.16a29.61 29.61 0 0 0-8.87-.36 20.06 20.06 0 0 0-2.9.78l-2.07 5.43a6.88 6.88 0 0 1-1.35 2.48 12.52 12.52 0 0 1-1.46 1.15 8.38 8.38 0 0 0-2.91 7.33 7.88 7.88 0 0 0-4.66 9.72 9.3 9.3 0 0 0-6.81 6 4.45 4.45 0 0 1-.89 1.87 3.66 3.66 0 0 1-2.34.76c-2.34.14-4.38 2-6.49 1a13.29 13.29 0 0 0-7.71-1.08 5.77 5.77 0 0 1-1.65.15 4.43 4.43 0 0 1-1.35-.47 10.72 10.72 0 0 0-3.06-1.2 2.84 2.84 0 0 0-2.9 1.12c-.74-.81-1.18-1.85-1.85-2.72a3 3 0 0 0-2.82-1.35c.7-.62 0-1.87-.93-2.1a12.66 12.66 0 0 0-2.81.1c-2.44 0-4.32-2.23-6.69-2.81-2.18-.53-5.09.11-6.21-1.84-.39-.69-.47-1.63-1.14-2a2.2 2.2 0 0 0-1.48-.17 14.24 14.24 0 0 0-4.45 1.35c-2.29 9-1.09 18.24.65 27.3a24.07 24.07 0 0 0 4.89 11.18Z",fill:"#434175"})),Pe||(Pe=Je.createElement("path",{d:"m656.93 491.88-11.37 22.94c1.23-2.13 3.82-3 5.87-4.31a15.54 15.54 0 0 0 5.57-7.54 47.14 47.14 0 0 0 2.15-9.29c.23-1.45.71-3.49 0-4.81-1.26.27-1.68 1.94-2.22 3.01ZM624.21 511.37c-2.57 2.54-5.71 4.41-8.53 6.66-6.6 5.26-11.3 12.46-15.89 19.53a30.77 30.77 0 0 0-3.25 5.92c.54.46 1.34 0 1.88-.49l8.93-7.84a20.19 20.19 0 0 0 3-3c1.55-2.09 2.24-4.69 3.65-6.88a26.84 26.84 0 0 1 5.43-5.53c2.05-1.76 11.47-9.73 9.18-12.83-1.69.8-3.05 3.1-4.4 4.46Z",opacity:.1})),_e||(_e=Je.createElement("path",{d:"M643.72 411.95a26.78 26.78 0 0 0-9.45-3.11 20 20 0 0 0-6-.43c-1.86.23-3.65.95-5.52 1-2.63.15-5.14-.92-7.68-1.61s-5.47-1-7.6.57a3.29 3.29 0 0 1-1.66.88 3 3 0 0 1-1.71-.84 9.74 9.74 0 0 0-12.14.64c-4.84 4.54-4.29 13.41-10 16.86-1.56 1-3.56 1.45-4.48 3a12 12 0 0 1-.77 1.46 4 4 0 0 1-1.36 1 26.43 26.43 0 0 0-4.68 2.69 6.66 6.66 0 0 0-2.69 4.51 8.53 8.53 0 0 0 .82 3.79 35.62 35.62 0 0 0 34.61 22.13 5.42 5.42 0 0 0 3.63-1.13 6.93 6.93 0 0 0 1.27-2.09c2.67-5.59 7.68-9.72 10.86-15 1.89-3.17 3.11-6.72 5.09-9.84 3-4.73 7.54-8.23 12-11.62 2.52-1.91 5.31-3.92 8.47-3.79 2.81.12 4.86.27 3.82-3.17a11 11 0 0 0-4.83-5.9Z",fill:"#434175"})),ze||(ze=Je.createElement("path",{d:"M643.72 411.95a26.78 26.78 0 0 0-9.45-3.11 20 20 0 0 0-6-.43c-1.86.23-3.65.95-5.52 1-2.63.15-5.14-.92-7.68-1.61s-5.47-1-7.6.57a3.29 3.29 0 0 1-1.66.88 3 3 0 0 1-1.71-.84 9.74 9.74 0 0 0-12.14.64c-4.84 4.54-4.29 13.41-10 16.86-1.56 1-3.56 1.45-4.48 3a12 12 0 0 1-.77 1.46 4 4 0 0 1-1.36 1 26.43 26.43 0 0 0-4.68 2.69 6.66 6.66 0 0 0-2.69 4.51 8.53 8.53 0 0 0 .82 3.79 35.62 35.62 0 0 0 34.61 22.13 5.42 5.42 0 0 0 3.63-1.13 6.93 6.93 0 0 0 1.27-2.09c2.67-5.59 7.68-9.72 10.86-15 1.89-3.17 3.11-6.72 5.09-9.84 3-4.73 7.54-8.23 12-11.62 2.52-1.91 5.31-3.92 8.47-3.79 2.81.12 4.86.27 3.82-3.17a11 11 0 0 0-4.83-5.9Z",opacity:.05})),Be||(Be=Je.createElement("path",{d:"M657.47 794.73c-1.92 1.79-4.55 2.57-7.1 3.12a127.7 127.7 0 0 1-17.67 2.19l-5.77.44c-5.63.43-11.27.86-16.92.88a117.17 117.17 0 0 1-20.82-1.8 2.28 2.28 0 0 1-1.65-.8 2.24 2.24 0 0 1-.25-1.31 100.74 100.74 0 0 1 2.56-20.9c.65-2.81 5.7 3.5 5.93 3.77a5.76 5.76 0 0 0 4.59 2.43c5.81.32 12.32-3.21 16.93-6.35a22.18 22.18 0 0 1 3.14-1.95 9.19 9.19 0 0 1 2.54-.72 15.28 15.28 0 0 1 8.64 1.75c3.47 1.72 6.51 4.19 10 6a28.06 28.06 0 0 0 8.92 2.82c3.14.43 6.9.64 8.51 3.36 1.28 2.25.32 5.29-1.58 7.07Z",fill:"#434175"})),Ge||(Ge=Je.createElement("path",{d:"M657.47 795.77c-1.92 1.79-4.55 2.57-7.1 3.12a127.7 127.7 0 0 1-17.67 2.19l-5.77.44c-5.63.43-11.27.86-16.92.88a116.24 116.24 0 0 1-20.82-1.8 2.27 2.27 0 0 1-1.65-.79 9.26 9.26 0 0 1-1.29-2.36c.12-7 2-14.05 3.6-20.9.65-2.81 5.7 3.5 5.93 3.77a5.76 5.76 0 0 0 4.59 2.43c5.81.32 12.32-3.21 16.93-6.35a22.18 22.18 0 0 1 3.14-1.95 9.19 9.19 0 0 1 2.54-.72c-.75 4.18-6.74 9.23-9.84 10.77-6.26 3.11-13.7 1.55-20.68 1.92a3 3 0 0 0-1.47.35c-.83.56-.88 1.75-.86 2.75.06 1.66.27 3.62 1.72 4.46a4.94 4.94 0 0 0 2.32.49 327.89 327.89 0 0 0 51.57-1.81 28.23 28.23 0 0 0 8.4-1.87 21.44 21.44 0 0 0 4.87-3.14c2.2 1.72.36 6.34-1.54 8.12Z",fill:"#e8eaf2"})),Fe||(Fe=Je.createElement("path",{d:"M643.09 375.06c-.1 2.73 1.76 8-3.35 6.55-3-.88-3.9-4.49-7.76-3.69s-4.76 5.57-6.06 8.68a16.59 16.59 0 0 1-12 9.72 7.26 7.26 0 0 1-3.31 0c-2.49-.71-3.91-3.28-4.93-5.66a44.08 44.08 0 0 1-2.18-6.22 25.31 25.31 0 0 1-.79-4.56 19.48 19.48 0 0 1 0-3.15c.46-6.21 4-11.87 8.52-16.15s10-7.38 15.45-10.43a22.9 22.9 0 0 1 5.7-2.54 19.21 19.21 0 0 1 6-.24 20.85 20.85 0 0 1 7.66 1.8 10.71 10.71 0 0 1 2.69 1.89 8.11 8.11 0 0 1 2.34 3.89c1 4-1.58 7.63-3.66 10.8-1.9 2.81-4.19 5.79-4.32 9.31Z",fill:"#434175"})),We||(We=Je.createElement("path",{d:"M729 433.67c-1.09-2.75-5.67-10.36-4.35-13a33.77 33.77 0 0 1 3.49 6.24c.86 2.15.18 5.01.86 6.76ZM647.47 365.74c2.08-3.17 4.64-6.79 3.66-10.8a8.35 8.35 0 0 0-3-4.44 7.27 7.27 0 0 1 .76 1.87c1 4-1.58 7.62-3.66 10.8-1.85 2.82-4.14 5.81-4.28 9.32-.1 2.73 1.77 8-3.34 6.55-3-.88-3.9-4.49-7.77-3.69s-4.75 5.56-6.06 8.68a16.57 16.57 0 0 1-12 9.72 7.26 7.26 0 0 1-3.31 0 5.05 5.05 0 0 1-1.56-.77 6.76 6.76 0 0 0 3.77 3.34 7.44 7.44 0 0 0 3.32 0 16.63 16.63 0 0 0 12-9.73c1.31-3.12 2.16-7.86 6.06-8.67s4.72 2.8 7.77 3.68c5.11 1.48 3.24-3.82 3.34-6.55.16-3.5 2.46-6.49 4.3-9.31Z",opacity:.1})),Te||(Te=Je.createElement("path",{d:"M648.6 360.31a21.84 21.84 0 0 1-1.56 2.24 26.58 26.58 0 0 1-3.61 3.74c-.79.68-1.6 1.31-2.44 1.91a38.47 38.47 0 0 1-4.93 2.95 91.47 91.47 0 0 1-15.78 5.65l-10.54 3.07c-1.3 1-3.67 2.74-6.28 4.57a25.31 25.31 0 0 1-.79-4.56 19.48 19.48 0 0 1 0-3.15c.46-6.21 4-11.87 8.52-16.15s10-7.38 15.45-10.43a22.9 22.9 0 0 1 5.7-2.54 19.21 19.21 0 0 1 6-.24 20.85 20.85 0 0 1 7.66 1.8 10.71 10.71 0 0 1 2.69 1.89 10.14 10.14 0 0 1 1.35 2.86c.66 2.15-.26 4.45-1.44 6.39Z",opacity:.1})),Ve||(Ve=Je.createElement("path",{d:"M648.6 359.6a21.84 21.84 0 0 1-1.56 2.24 26.58 26.58 0 0 1-3.61 3.74c-.79.68-1.6 1.31-2.44 1.91a39.65 39.65 0 0 1-4.93 2.95 91.47 91.47 0 0 1-15.78 5.65l-10.54 3.06c-3.68 2.79-16 11.91-18.07 10.77-2.44-1.34 10.93-10.81 10.93-10.81l.61.47c-2-1.23-3-4.08-3.42-6.55-.78-4.42-1.15-9-.1-13.37s3.67-8.51 7.66-10.55c1.77-.92 3.92-1.53 5.2-2.93a4.4 4.4 0 0 0 .51-.69 2.08 2.08 0 0 0 .2-.36 4.32 4.32 0 0 1 .56-1.09c.73-.84 2.06-.59 3.17-.45h.36a5.68 5.68 0 0 0 .59 0c4 .09 7.81-2.12 11.82-2.12 4.39 0 8.13 2.54 12 4.28.78.35 1.52.67 2.22 1 2.8 1.3 4.9 2.69 6 6.38.72 2.24-.2 4.55-1.38 6.47Z",fill:"#604687"})),De||(De=Je.createElement("path",{d:"M617.94 343.65a1.8 1.8 0 0 1-.42 2.32 3.2 3.2 0 0 1-1.66.59 11.2 11.2 0 0 1-1.3.1 3.58 3.58 0 0 1-1.71-.29 2.2 2.2 0 0 1-.3-.19 4.4 4.4 0 0 0 .51-.69c.1.08.2.06.59 0a9.13 9.13 0 0 0 2.14-.36 2.38 2.38 0 0 0 .8-.39 2.48 2.48 0 0 0 .76-1.15ZM602.86 379.01a4.87 4.87 0 0 0 1.83.68 8.29 8.29 0 0 0 1.41.23 7.84 7.84 0 0 0 3.45-1",opacity:.1})))}},7156:(e,a,t)=>{t.d(a,{Z:()=>X});var c,l,r,i,n,s,m,f,o,h,p,d,E,y,Z,M,x,u,g,b,v,q,w,O,k,C,j,A,N,H,L,S,U,I,P,_,z,B,G,F,W,T,V,D,J,Q=t(7294),R=["title","titleId"];function Y(){return Y=Object.assign?Object.assign.bind():function(e){for(var a=1;a=0||(l[t]=e[t]);return l}(e,a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(c=0;c=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(l[t]=e[t])}return l}const X=function(e){var a=e.title,t=e.titleId,X=K(e,R);return Q.createElement("svg",Y({"data-name":"Layer 1",xmlns:"http://www.w3.org/2000/svg",width:1108,height:731.18,viewBox:"0 0 1108 731.18","aria-labelledby":t},X),void 0===a?Q.createElement("title",{id:t},"react"):a?Q.createElement("title",{id:t},a):null,c||(c=Q.createElement("path",{d:"m767.68 330.79 6.89-2.7c.66-.26 1.31-.54 2-.81a59.85 59.85 0 0 1 15.28-115.77l-4.8 24.2 18.22-23.92h.16a59.87 59.87 0 0 1 51.16 67.45c-.15 1.13-.39 2.23-.6 3.34 5.61-4.43 10.87-9.32 14.81-15 8-11.54 10.71-25.76 13.47-43.17 5.47-34.48 10.4-69.34 14.84-104.18a59.83 59.83 0 0 1-42-65.36c.25-1.82.6-3.59 1-5.34.1-.44.2-.88.31-1.31.43-1.69.91-3.35 1.47-5 .09-.27.21-.52.3-.78.5-1.37 1-2.72 1.65-4 .22-.5.44-1 .67-1.47a57.69 57.69 0 0 1 2.22-4.19c.27-.45.56-.88.83-1.33.62-1 1.27-2 1.94-2.93.36-.5.71-1 1.08-1.49l.27-.39a59.81 59.81 0 0 1 74.64-17l-6.24 31.49 18-23.64a59.5 59.5 0 0 1 16.32 68.62h.07c-.17.4-.38.78-.55 1.18-.33.74-.67 1.47-1 2.2-.46.93-1 1.84-1.45 2.74-.38.68-.75 1.36-1.16 2-.59 1-1.23 1.9-1.87 2.83-.38.54-.73 1.1-1.12 1.63-1 1.39-2.12 2.72-3.26 4-.4.45-.83.86-1.25 1.3-.81.86-1.62 1.71-2.48 2.52-.53.5-1.09 1-1.64 1.46-.79.7-1.6 1.38-2.43 2-.59.47-1.19.92-1.79 1.36a77.101 77.101 0 0 1-4.45 2.96c-1 .61-2.05 1.17-3.1 1.72-.53.27-1 .57-1.59.83-1.58.77-3.2 1.48-4.85 2.11-.31.12-.64.21-.95.32-1.38.5-2.77 1-4.18 1.35-.61.17-1.23.31-1.85.46-1.15.28-2.31.54-3.48.76q-1 .18-2.07.33c-1.15.17-2.31.3-3.48.4-.69.06-1.37.12-2.07.16-1.26.06-2.53.07-3.8.06a2.08 2.08 0 0 0-.25 0q-2.82 22-5.92 44a59.82 59.82 0 0 1 86.4-10.32l-15.68 26.58 25.21-16.59a59.68 59.68 0 0 1 11.5 44.16 58.76 58.76 0 0 1-4.5 15.94 59.83 59.83 0 0 1-111.19-4c-.23 1.48-.45 3-.68 4.46-2.44 15.35-5.47 34.46-16.23 50-7.29 10.56-17.33 18.36-27.09 25.22q-9.52 6.7-19.48 12.77a59.85 59.85 0 0 1-24.53 13.74q-16 8.19-32.69 14.81l-6.95 2.72c-6.25 2.44-12.65 4.94-19 7.6 1 .09 2 .17 3 .3a59.9 59.9 0 0 1 50.86 49.05l-42.31 23.11 42.18-1.89A59.16 59.16 0 0 1 797 450.13a59.87 59.87 0 0 1-82.7 11.74l2.1 3.91c1.4 2.58 2.78 5.15 4.12 7.7 18.33 34.74 19.66 64.74 3.75 84.49l-13-10.45c15.49-19.22 3.2-49.77-5.5-66.27-1.32-2.5-2.68-5-4-7.56-11.77-21.83-25.12-46.57-19.77-72.9 8-39.7 51.05-56.5 85.68-70ZM269.6 519.01l-5.38-2.11c-.52-.2-1-.43-1.54-.63a46.75 46.75 0 0 0-11.94-90.42l3.75 18.9-14.22-18.68h-.13a46.76 46.76 0 0 0-40 52.68c.12.89.31 1.74.47 2.61a55.84 55.84 0 0 1-11.56-11.73c-6.23-9-8.37-20.12-10.53-33.71-4.23-26.93-8.07-54.15-11.52-81.33a46.72 46.72 0 0 0 32.77-51.05c-.2-1.42-.47-2.8-.79-4.17l-.24-1a48.36 48.36 0 0 0-1.15-3.88c-.07-.21-.16-.41-.24-.61a48.24 48.24 0 0 0-1.28-3.15c-.18-.38-.35-.77-.53-1.15-.54-1.11-1.11-2.2-1.73-3.26-.21-.36-.44-.7-.65-1-.49-.78-1-1.55-1.52-2.29-.28-.39-.55-.79-.84-1.17l-.21-.3a46.76 46.76 0 0 0-58.29-13.32l4.88 24.6-14.07-18.46a46.48 46.48 0 0 0-12.75 53.59h-.05c.13.31.29.61.43.92.26.58.52 1.15.8 1.72q.54 1.08 1.14 2.13c.29.54.58 1.07.9 1.59.46.75 1 1.48 1.46 2.21.3.42.57.86.88 1.27.8 1.08 1.65 2.12 2.54 3.13.31.35.65.67 1 1 .63.67 1.27 1.33 1.94 2 .41.4.85.77 1.28 1.14q.93.83 1.89 1.59c.46.36.93.71 1.4 1.06.68.49 1.37 1 2.06 1.41.47.31.94.61 1.42.9.79.48 1.6.91 2.42 1.34.42.22.82.45 1.24.66 1.24.6 2.5 1.15 3.79 1.64.24.1.5.16.74.25 1.07.39 2.16.75 3.27 1.06.47.13 1 .24 1.44.35.9.22 1.8.43 2.72.6l1.61.26c.9.13 1.81.23 2.72.31.54.05 1.07.09 1.62.12 1 .05 2 .06 3 .05h.19q2.2 17.22 4.62 34.41a46.71 46.71 0 0 0-67.48-8.14l12.14 20.64-19.68-12.95a46.57 46.57 0 0 0-9 34.49 45.8 45.8 0 0 0 3.53 12.46 46.73 46.73 0 0 0 86.84-3.12c.18 1.15.35 2.32.53 3.48 1.9 12 4.27 26.92 12.67 39.08 5.7 8.24 13.54 14.33 21.16 19.69q7.44 5.24 15.21 10a46.88 46.88 0 0 0 19.16 10.74c8.32 4.26 16.84 8.14 25.54 11.56l5.42 2.13c4.88 1.9 9.88 3.85 14.81 5.93-.78.07-1.57.13-2.36.24a46.77 46.77 0 0 0-39.72 38.27l33 18-32.94-1.47a46.78 46.78 0 0 0 73.57 29.2c-.55 1-1.09 2-1.64 3.05-1.09 2-2.17 4-3.22 6-14.31 27.13-15.35 50.57-2.92 66l10.13-8.16c-12.1-15-2.5-38.87 4.3-51.76 1-1.95 2.09-3.92 3.16-5.9 9.19-17 19.61-36.37 15.46-56.94-6.21-30.94-39.86-44.02-66.9-54.6Z",fill:"#f2f2f2"})),l||(l=Q.createElement("ellipse",{cx:554,cy:707.68,rx:554,ry:23.5,fill:"#3f3d56"})),r||(r=Q.createElement("ellipse",{cx:554,cy:707.68,rx:554,ry:23.5,opacity:.1})),i||(i=Q.createElement("ellipse",{cx:554,cy:694.68,rx:554,ry:23.5,fill:"#3f3d56"})),n||(n=Q.createElement("path",{d:"M85 686.32c-3-5.51.4-12.26 4.28-17.18s8.61-10 8.51-16.29c-.14-9-9.7-14.31-17.33-19.08a84.78 84.78 0 0 1-15.56-12.51 23 23 0 0 1-4.78-6.4c-1.58-3.52-1.53-7.52-1.43-11.38q.5-19.26 1.9-38.48",fill:"none",stroke:"#3f3d56",strokeMiterlimit:10,strokeWidth:4})),s||(s=Q.createElement("path",{d:"M46.11 564.29a14 14 0 0 1 7-11.49l3.14 6.21-.09-7.52a13.86 13.86 0 0 1 4.62-.56 14 14 0 1 1-14.67 13.36ZM71.14 659.29a14 14 0 0 0 26.5-5.76 13.82 13.82 0 0 0-.91-5.69 14 14 0 0 0-26.27.15l8.77 7.13-9.64-2.24a13.89 13.89 0 0 0 1.55 6.41ZM78.07 632.04a14 14 0 0 0 4.46-27.54l.07 5.79-3.18-6.29a14.04 14.04 0 0 0-1.31 28.05ZM44 609.37a14.016 14.016 0 0 0 1.32-28 13.88 13.88 0 0 0-7.52 1.78l2.48 6.8-5.11-4.9a14 14 0 0 0-4.53 9.69 13.33 13.33 0 0 0 .36 3.85 14 14 0 0 0 13 10.78Z",fill:"#604687"})),m||(m=Q.createElement("path",{d:"M48 568.03c3.24.36 6.39 1.37 9.64 1.57s6.82-.58 8.88-3.1c1.11-1.37 1.66-3.09 2.59-4.57a10.08 10.08 0 0 1 3.54-3.33 14 14 0 1 1-26.24 9.32c.53.02 1.06.06 1.59.11ZM44 609.37a14 14 0 0 0 13.35-20 10.4 10.4 0 0 0-2.82 2.83c-1 1.51-1.61 3.25-2.78 4.64-2.19 2.57-5.92 3.41-9.31 3.25s-6.66-1.11-10-1.42c-.47 0-.94-.08-1.41-.09A14 14 0 0 0 44 609.37ZM78.07 632.04a14 14 0 0 0 13.47-19.76 11.36 11.36 0 0 0-3 2.85c-1.09 1.54-1.77 3.31-3 4.73-2.36 2.64-6.34 3.57-9.93 3.48s-6.82-.93-10.28-1.19a14 14 0 0 0 12.74 9.89ZM71.14 659.29a14 14 0 0 0 26.5-5.76 13.82 13.82 0 0 0-.91-5.69 14 14 0 0 0-3.08 2.74c-1.34 1.63-2.21 3.47-3.76 5-2.87 2.82-7.5 4-11.62 4.09a62.35 62.35 0 0 1-7.13-.38Z",opacity:.1})),f||(f=Q.createElement("path",{d:"M106.19 679.98s-11.08-.34-14.41-2.72-17-5.22-17.87-1.4-16.65 19-4.14 19.06 29.06-2 32.39-4 4.03-10.94 4.03-10.94Z",fill:"#656380"})),o||(o=Q.createElement("path",{d:"M69.54 693.59c12.51.1 29.06-2 32.4-4 2.53-1.54 3.54-7.09 3.88-9.65h.37s-.7 8.93-4 11-19.89 4.08-32.39 4c-3.61 0-4.86-1.31-4.79-3.22.47 1.13 1.85 1.87 4.53 1.87Z",opacity:.2})),h||(h=Q.createElement("path",{d:"M1055 695.32c-3-5.51.4-12.26 4.28-17.18s8.61-10 8.51-16.29c-.14-9-9.7-14.31-17.33-19.08a84.78 84.78 0 0 1-15.56-12.51 23 23 0 0 1-4.78-6.4c-1.58-3.52-1.53-7.52-1.43-11.38q.49-19.26 1.9-38.48",fill:"none",stroke:"#3f3d56",strokeMiterlimit:10,strokeWidth:4})),p||(p=Q.createElement("path",{d:"M1016.11 573.29a14 14 0 0 1 7-11.49l3.14 6.21-.09-7.52a13.86 13.86 0 0 1 4.62-.56 14 14 0 1 1-14.68 13.36ZM1041.14 668.29a14 14 0 0 0 26.5-5.76 13.82 13.82 0 0 0-.91-5.69 14 14 0 0 0-26.27.15l8.77 7.13-9.64-2.24a13.89 13.89 0 0 0 1.55 6.41ZM1048.07 641.04a14 14 0 0 0 4.46-27.54l.07 5.79-3.18-6.29a14.04 14.04 0 0 0-1.31 28.05ZM1014 618.37a14.016 14.016 0 0 0 1.32-28 13.88 13.88 0 0 0-7.52 1.78l2.48 6.8-5.11-4.9a14 14 0 0 0-4.53 9.69 13.33 13.33 0 0 0 .36 3.85 14 14 0 0 0 13 10.78Z",fill:"#604687"})),d||(d=Q.createElement("path",{d:"M1018 577.03c3.24.36 6.39 1.37 9.64 1.57s6.82-.58 8.88-3.1c1.11-1.37 1.66-3.09 2.59-4.57a10.08 10.08 0 0 1 3.54-3.33 14 14 0 1 1-26.24 9.32c.53.02 1.06.06 1.59.11ZM1014 618.37a14 14 0 0 0 13.35-20 10.4 10.4 0 0 0-2.82 2.83c-1 1.51-1.61 3.25-2.78 4.64-2.19 2.57-5.92 3.41-9.31 3.25s-6.66-1.11-10-1.42c-.47 0-.94-.08-1.41-.09a14 14 0 0 0 12.97 10.79ZM1048.07 641.04a14 14 0 0 0 13.47-19.76 11.36 11.36 0 0 0-3 2.85c-1.09 1.54-1.77 3.31-3 4.73-2.36 2.64-6.34 3.57-9.93 3.48s-6.82-.93-10.28-1.19a14 14 0 0 0 12.74 9.89ZM1041.14 668.29a14 14 0 0 0 26.5-5.76 13.82 13.82 0 0 0-.91-5.69 14 14 0 0 0-3.08 2.74c-1.34 1.63-2.21 3.47-3.76 5-2.87 2.82-7.5 4-11.62 4.09a62.35 62.35 0 0 1-7.13-.38Z",opacity:.1})),E||(E=Q.createElement("path",{d:"M1076.19 688.98s-11.08-.34-14.41-2.72-17-5.22-17.87-1.4-16.65 19-4.14 19.06 29.06-2 32.39-4 4.03-10.94 4.03-10.94Z",fill:"#656380"})),y||(y=Q.createElement("path",{d:"M1039.54 702.59c12.51.1 29.06-2 32.4-4 2.53-1.54 3.54-7.09 3.88-9.65h.37s-.7 8.93-4 11-19.89 4.08-32.39 4c-3.61 0-4.86-1.31-4.79-3.22.47 1.13 1.85 1.87 4.53 1.87Z",opacity:.2})),Z||(Z=Q.createElement("path",{d:"M745.57 331.15q-9.92-3.4-20-6.3 1.66-6.79 3.09-13.65c15.14-73.51 5.24-132.73-28.57-152.22-32.42-18.7-85.44.8-139 47.39q-7.92 6.92-15.47 14.2-5.07-4.85-10.3-9.51c-56.11-49.83-112.32-70.82-146.14-51.27-32.39 18.75-42 74.42-28.35 144.09q2 10.35 4.59 20.58c-7.95 2.26-15.64 4.67-23 7.24-65.79 22.89-107.81 58.89-107.81 96.18 0 38.51 45.11 77.14 113.64 100.56q8.34 2.83 16.8 5.26-2.74 11-4.88 22.18c-13 68.46-2.84 122.82 29.46 141.45 33.37 19.26 89.37-.54 143.89-48.2 4.31-3.77 8.63-7.77 13-11.95q8.18 7.89 16.79 15.32c52.82 45.45 105 63.81 137.26 45.12 33.33-19.29 44.16-77.69 30.1-148.73q-1.6-8.14-3.73-16.61 5.91-1.74 11.56-3.61c71.24-23.6 117.6-61.76 117.6-100.79 0-37.43-43.38-73.62-110.5-96.73Z",fill:"#53c1de"})),M||(M=Q.createElement("path",{d:"M730.12 503.47c-3.4 1.13-6.88 2.21-10.44 3.27a621.6 621.6 0 0 0-31.47-78.73 623.06 623.06 0 0 0 30.25-77.58c6.35 1.84 12.53 3.78 18.47 5.83 57.51 19.79 92.59 49.06 92.59 71.62 0 24-37.89 55.21-99.4 75.59Zm-25.52 50.58c6.22 31.41 7.1 59.81 3 82-3.7 19.95-11.14 33.25-20.34 38.58-19.59 11.33-61.47-3.4-106.64-42.27q-7.77-6.69-15.63-14.25a624.23 624.23 0 0 0 52.09-66.14 620.2 620.2 0 0 0 84.17-13q1.9 7.68 3.37 15ZM446.48 672.69c-19.14 6.76-34.38 6.95-43.59 1.64-19.6-11.31-27.75-55-16.63-113.5q2-10.37 4.53-20.63a625.79 625.79 0 0 0 83.75 12.13 645.09 645.09 0 0 0 53.35 65.9q-5.79 5.61-11.84 10.91c-24.11 21.08-48.28 36-69.57 43.55Zm-89.64-169.37c-30.31-10.36-55.33-23.82-72.49-38.5-15.41-13.2-23.19-26.31-23.19-36.94 0-22.63 33.74-51.5 90-71.11q10.6-3.69 21.39-6.73a637.08 637.08 0 0 0 30.29 78.48 646.29 646.29 0 0 0-30.66 79.6q-7.74-2.21-15.34-4.8Zm30.05-204.54c-11.68-59.69-3.93-104.72 15.59-116 20.79-12 66.76 5.12 115.22 48.15 3.1 2.75 6.21 5.63 9.32 8.6a635.89 635.89 0 0 0-52.93 65.52 648.42 648.42 0 0 0-82.93 12.89q-2.39-9.52-4.27-19.15ZM655 364.97q-9.11-15.74-18.89-31.08c19.83 2.51 38.82 5.83 56.66 9.91a565.54 565.54 0 0 1-19.89 53.51q-8.61-16.35-17.88-32.34ZM545.64 258.5a569.3 569.3 0 0 1 36.57 44.14q-36.71-1.73-73.45 0c12.07-15.92 24.44-30.72 36.88-44.13Zm-110 106.65q-9.15 15.87-17.55 32.14c-7.73-18.33-14.34-36.36-19.74-53.77 17.73-4 36.64-7.21 56.34-9.68q-9.92 15.44-19.07 31.31Zm19.61 158.65a564.64 564.64 0 0 1-57.25-9.21c5.49-17.71 12.25-36.13 20.15-54.86q8.43 16.29 17.61 32.16 9.34 16.19 19.47 31.91Zm91.14 75.33c-12.6-13.54-25.15-28.54-37.39-44.75q17.85.71 36.36.71 19 0 37.51-.84a563.94 563.94 0 0 1-36.5 44.88Zm126.69-140.35A562.82 562.82 0 0 1 694 513.44a561.35 561.35 0 0 1-58 9.89q9.85-15.63 19.08-31.63 9.38-16.26 18-32.92Zm-41 19.66q-14.12 24.52-29.81 48.1c-18.44 1.32-37.49 2-56.91 2s-38.15-.6-56.27-1.78q-16.09-23.5-30.39-48.17t-26.51-50.08q12.27-25.53 26.43-50.1 14.14-24.56 30.13-48c18.49-1.4 37.43-2.13 56.59-2.13s38.22.74 56.69 2.14q15.81 23.37 30 47.81t26.79 49.87q-12.45 25.62-26.71 50.3Zm54.77-296.46c20.81 12 28.9 60.4 15.83 123.87q-1.29 6.19-2.8 12.35a635.74 635.74 0 0 0-83.09-13.13 625.16 625.16 0 0 0-52.53-65.56q7-6.74 14.29-13.11c45.88-39.93 88.76-55.69 108.3-44.42Z",fill:"#fff"})),x||(x=Q.createElement("path",{d:"M545.34 372.38a55.5 55.5 0 1 1-55.5 55.5 55.49 55.49 0 0 1 55.5-55.5",fill:"#53c1de"})),u||(u=Q.createElement("path",{d:"M559.26 20.4a16.6 16.6 0 1 1-16.6-16.6 16.52 16.52 0 0 1 16.6 16.6Z",fill:"#3f3d56"})),g||(g=Q.createElement("path",{d:"M529.4 24.59A16.62 16.62 0 0 1 541.89.05a16.6 16.6 0 1 0 1.41 33.07 16.6 16.6 0 0 1-13.9-8.53ZM521.91 43.52h44.47v69.37h-44.47z",fill:"#3f3d56"})),b||(b=Q.createElement("path",{opacity:.1,d:"M521.91 43.52h44.47v69.37h-44.47z"})),v||(v=Q.createElement("path",{d:"M451.66 295.2s-4.75 13.05-16 14.83-17.79 4.74-17.79 4.74l26.68 17.19 14.23-1.78s1.78-18.38 7.71-22.53-14.83-12.45-14.83-12.45ZM644.34 295.2s4.75 13.05 16 14.83 17.79 4.74 17.79 4.74l-26.68 17.19-14.23-1.78s-1.78-18.38-7.71-22.53 14.83-12.45 14.83-12.45Z",fill:"#a0616a"})),q||(q=Q.createElement("path",{d:"M514.5 180.18s-7.11 3.56-9.48 10.68c0 0-13 4.15-20.16 15.41 0 0-8.9 9.49-10.08 14.23S460 253.7 460 253.7s-13.64 44.47-20.75 49.21c0 0 22.53-4.74 26.68 17.79 0 0 5.33 0 11.26-20.75s20.16-46.25 20.16-46.25 4.74-17.78 8.89-20.75 10.67-16.6 16.6-13 45.06-.6 45.06-.6 23.1 10.64 23.68 17.75 4.74 7.71 5.33 13.64 22.53 52.76 22.53 52.76 4.15 13 5.34 16c0 0 13-31.42 30.24-13.63 0 0-.6-11.86-5.93-19s-28.46-62.84-28.46-62.84-2.37-8.3-4.74-10.67-20.76-21.35-27.28-21.35c0 0-3.55-8.89-7.7-10.08ZM461.14 326.03a28.89 28.89 0 0 1-28.22-3.79 56.37 56.37 0 0 0-12.59-7.3c-6.29-2.54-13.81-4.42-16.1-.17-4.15 7.71 50.39 26.68 50.39 26.68s7.12-4.15 6.52-15.42ZM634.86 326.03a28.89 28.89 0 0 0 28.22-3.79 56.37 56.37 0 0 1 12.59-7.3c6.29-2.54 13.81-4.42 16.1-.17 4.15 7.71-50.39 26.68-50.39 26.68s-7.12-4.15-6.52-15.42Z",fill:"#3f3d56"})),w||(w=Q.createElement("path",{d:"M533.88 82.67c-.22 2.06-.9 4.29-2.66 5.38-1.44.9-3.26.83-4.92 1.17a11.46 11.46 0 0 0-7.82 6.77 17.51 17.51 0 0 0-.75 10.55 39.22 39.22 0 0 0 1.52 5.06c1.74 4.92 3.84 9.8 7.09 13.89a59 59 0 0 0 9.3 8.77c2.11 1.72 4.29 3.47 6.89 4.28a21.75 21.75 0 0 0 5.4.72c2.25.1 4.65.17 6.6-.95 3-1.73 3.89-5.55 5.52-8.62 1.38-2.6 3.44-4.81 4.73-7.46a29.49 29.49 0 0 0 2-6.52l2.77-12.3c1-4.47 1.92-9.51-.59-13.34a2.28 2.28 0 0 0-.74-.77 2.79 2.79 0 0 0-1.52-.15 16.44 16.44 0 0 1-9.15-2.09 3.93 3.93 0 0 1-1.15-.9 4.72 4.72 0 0 1-.7-2.12 22.2 22.2 0 0 0-1.28-4.45 3 3 0 0 0-.87-1.34 3.15 3.15 0 0 0-1.41-.47 114.47 114.47 0 0 0-12.93-1.35c-1.42-.07-3.56-.64-4.54.62s-.67 4.12-.79 5.62Z",fill:"#a0616a"})),O||(O=Q.createElement("path",{d:"M533.88 82.67c-.22 2.06-.9 4.29-2.66 5.38-1.44.9-3.26.83-4.92 1.17a11.46 11.46 0 0 0-7.82 6.77 17.51 17.51 0 0 0-.75 10.55 39.22 39.22 0 0 0 1.52 5.06c1.74 4.92 3.84 9.8 7.09 13.89a59 59 0 0 0 9.3 8.77c2.11 1.72 4.29 3.47 6.89 4.28a21.75 21.75 0 0 0 5.4.72c2.25.1 4.65.17 6.6-.95 3-1.73 3.89-5.55 5.52-8.62 1.38-2.6 3.44-4.81 4.73-7.46a29.49 29.49 0 0 0 2-6.52l2.77-12.3c1-4.47 1.92-9.51-.59-13.34a2.28 2.28 0 0 0-.74-.77 2.79 2.79 0 0 0-1.52-.15 16.44 16.44 0 0 1-9.15-2.09 3.93 3.93 0 0 1-1.15-.9 4.72 4.72 0 0 1-.7-2.12 22.2 22.2 0 0 0-1.28-4.45 3 3 0 0 0-.87-1.34 3.15 3.15 0 0 0-1.41-.47 114.47 114.47 0 0 0-12.93-1.35c-1.42-.07-3.56-.64-4.54.62s-.67 4.12-.79 5.62Z",opacity:.1})),k||(k=Q.createElement("path",{d:"M525.85 89.74a26.93 26.93 0 0 0-7.13-1.12c-5.72-.14-11.84 1.83-15.14 6.5a15.34 15.34 0 0 0-2.29 11.47 23.57 23.57 0 0 0 5.2 10.66 32 32 0 0 1 4 5.24c1.58 3 1.63 6.59 2.06 10 1 8.12 4.46 15.75 5.83 23.82s.19 17.42-6.18 22.55c-1.07.86-2.37 1.77-2.46 3.14-.14 2.19 2.71 3.12 4.9 3.33 6.55.62 13.27 1.23 19.63-.46 2.63-.7 5.17-1.79 7.85-2.29 6.8-1.27 13.64 1.34 20.45 2.59a90.61 90.61 0 0 0 14.91 1.21 7.94 7.94 0 0 0 3.43-.45 2.75 2.75 0 0 0 1.74-2.74 4.76 4.76 0 0 0-1.18-2c-3.44-4.25-4.49-9.9-5.43-15.29l-3.15-18.11c-1.69-9.68-3.26-20.2 1.32-28.89 3.29-6.25 9.36-10.65 12.83-16.8a9.84 9.84 0 0 0 1.55-6.28c-.52-3.09-3.31-5.3-6.17-6.59a23.21 23.21 0 0 0-17.42-.64c.1 4.33-1 8.71-1.71 13l-1.21 7a88.83 88.83 0 0 1-2.71 12.2 12.85 12.85 0 0 1-2.17 4.42 11.43 11.43 0 0 1-3.83 2.79 22.83 22.83 0 0 1-10.14 2.32 13.54 13.54 0 0 1-4.48-.69 19 19 0 0 1-6.17-4.34 10.11 10.11 0 0 1-1.63-1.77 9.93 9.93 0 0 1-1.11-2.67 55.42 55.42 0 0 1-1.91-7.48c-.3-1.94-.4-3.91-.54-5.87-.39-5.79-.39-12.19-1.54-17.76Z",fill:"#604687"})),C||(C=Q.createElement("path",{d:"M519.84 204.49s-2.37 31.43 12.45 36.76 1.78-26.09 1.78-26.09l-4.75-9.48ZM570.23 204.49s2.37 31.43-12.45 36.76-1.78-26.09-1.78-26.09l4.75-9.48Z",fill:"#a0616a"})),j||(j=Q.createElement("path",{d:"m506.79 99.59-4.74 7.71s4.15 26.68 4.74 31.42a62.2 62.2 0 0 0 2.38 10.08s.59 14.23.59 19.57 3 14.23 3 14.23a64.82 64.82 0 0 0 3 14.82c2.37 6.52 4.74 14.23 4.74 14.23s3-8.3 14.82 4.15a7.18 7.18 0 0 0 0-10.08s-3.55-16-3.55-24.31-6.53-48-6.53-48-4.24-45.12-18.45-33.82Z",opacity:.1})),A||(A=Q.createElement("path",{d:"m505.61 98.96-4.74 7.71s4.15 26.68 4.74 31.42a61.84 61.84 0 0 0 2.39 10.08s.59 14.23.59 19.56 3 14.23 3 14.23a64.53 64.53 0 0 0 3 14.82c2.37 6.53 4.75 14.23 4.75 14.23s3-8.3 14.82 4.15a7.18 7.18 0 0 0 0-10.07s-3.56-16-3.56-24.31-6.52-48-6.52-48-4.24-45.09-18.47-33.82Z",fill:"#604687"})),N||(N=Q.createElement("path",{d:"m583.87 94.81 3 3.53s3.49 20.18-4.22 45.68l-2.37 23.12s-4.15 19.57-4.74 24.31-.59 5.33-1.78 7.11a2.29 2.29 0 0 0 0 3l-3.56 13s-5.33-6.52-16 1.78c0 0-3-4.74-.6-8.89s2.37-5.93 1.78-7.12 2.37-7.11 2.37-8.3 4.18-28.44 4.18-28.44 1.78-26.68 3.56-35.57c1.09-5.47 1.07-17.66.88-26.24-.19-8.94 10.63-13.78 17-7.5.15.16.33.31.5.53Z",opacity:.1})),H||(H=Q.createElement("path",{d:"m585.65 93.59 3 3.53s3.49 20.19-4.22 45.68l-2.37 23.12s-4.15 19.57-4.74 24.31-.6 5.34-1.78 7.12a2.28 2.28 0 0 0 0 3L572 213.39s-5.33-6.53-16 1.77c0 0-3-4.74-.59-8.89s2.37-5.93 1.78-7.11 2.37-7.12 2.37-8.3 4.15-28.46 4.15-28.46 1.78-26.68 3.56-35.58.59-35.57.59-35.57 9.49-6.52 17.79 2.34Z",fill:"#604687"})),L||(L=Q.createElement("circle",{cx:545.92,cy:61.61,r:23.72,fill:"#a0616a"})),S||(S=Q.createElement("path",{d:"M558.29 26a16.6 16.6 0 0 1-31.09.44c9.26-3.73 18.72-.41 18.72-.41 4.73-1.66 8.83-1.51 12.37-.03Z",opacity:.1})),U||(U=Q.createElement("path",{d:"M545.92 27.22s-45.65-16-34.38 61.66c0 0 10.08 6.52 17.78 2.37 0 0-5.33-53.95 15.42-51.58s17.19 50.4 17.19 50.4 11.86 3.55 15.42-3-1.19-70.48-31.43-59.85Z",fill:"#3f3d56"})),I||(I=Q.createElement("path",{d:"M544.74 36.11c-14.24-1.62-16.2 23.27-16 39.05.17-15.69 2.81-37 16-35.49 14.81 1.69 17.24 26.66 17.41 40.8.17-12.98-1.25-42.51-17.41-44.36ZM511.54 85.32a159.38 159.38 0 0 1-1.77-20.53 152.12 152.12 0 0 0 1.77 24.09s10.08 6.52 17.78 2.37c0 0-.12-1.28-.26-3.43-7.67 3.87-17.52-2.5-17.52-2.5ZM577.35 83.59c-3.32 6.08-13.83 3.41-15.25 3-.07 2.2-.17 3.52-.17 3.52s11.86 3.55 15.42-3c.73-1.34 1.11-5.13 1-10.2-.1 3.25-.45 5.68-1 6.68Z",opacity:.1})),P||(P=Q.createElement("path",{d:"M826.73 672.96c4.74-8.78-.64-19.54-6.82-27.37s-13.73-16-13.57-26c.23-14.35 15.45-22.81 27.62-30.42a134.77 134.77 0 0 0 24.79-19.93c3-3.05 5.87-6.31 7.62-10.21 2.52-5.6 2.45-12 2.29-18.12q-.79-30.71-3-61.34",fill:"none",stroke:"#3f3d56",strokeMiterlimit:10,strokeWidth:4})),_||(_=Q.createElement("path",{d:"M888.74 478.49a22.31 22.31 0 0 0-11.16-18.32l-5 9.9.15-12a22.37 22.37 0 1 0 16 20.41ZM848.86 629.88a22.36 22.36 0 1 1 1.08-18l-14 11.37 15.37-3.57a22.25 22.25 0 0 1-2.45 10.2ZM837.81 586.45a22.37 22.37 0 0 1-7.09-43.86l-.12 9.22 5.06-10h.06a22.37 22.37 0 1 1 2.09 44.69ZM892.11 550.32a22.37 22.37 0 1 1 9.89-41.86l-4 10.83 8.13-7.8a22.37 22.37 0 0 1-14.07 38.83Z",fill:"#604687"})),z||(z=Q.createElement("path",{d:"M885.74 484.45c-5.17.57-10.19 2.18-15.37 2.5s-10.87-.92-14.14-5c-1.77-2.17-2.65-4.91-4.14-7.28a16 16 0 0 0-5.63-5.3 22.37 22.37 0 1 0 41.81 14.84c-.85.09-1.69.15-2.53.24ZM892.11 550.32a22.39 22.39 0 0 1-21.28-31.91 16.37 16.37 0 0 1 4.5 4.51c1.59 2.4 2.56 5.18 4.43 7.39 3.48 4.09 9.44 5.43 14.84 5.19s10.6-1.78 16-2.28c.75-.06 1.5-.11 2.26-.13a22.37 22.37 0 0 1-20.75 17.23ZM837.81 586.45a22.37 22.37 0 0 1-21.46-31.49 17.83 17.83 0 0 1 4.73 4.55c1.74 2.45 2.82 5.27 4.86 7.54 3.77 4.2 10.11 5.68 15.83 5.54 5.54-.12 10.87-1.48 16.38-1.9a22.36 22.36 0 0 1-20.34 15.76ZM848.86 629.88a22.37 22.37 0 0 1-40.78-18.29 22.27 22.27 0 0 1 4.91 4.38c2.13 2.59 3.53 5.53 6 7.94 4.57 4.49 11.95 6.34 18.52 6.51a97.1 97.1 0 0 0 11.35-.54Z",opacity:.1})),B||(B=Q.createElement("path",{d:"M793 662.85s17.65-.54 23-4.33 27.16-8.31 28.48-2.24 26.53 30.22 6.6 30.38-46.31-3.1-51.62-6.34-6.46-17.47-6.46-17.47Z",fill:"#656380"})),G||(G=Q.createElement("path",{d:"M851.4 684.59c-19.93.16-46.31-3.11-51.62-6.34-4-2.47-5.65-11.3-6.19-15.38H793s1.12 14.24 6.43 17.47 31.69 6.5 51.62 6.34c5.75 0 7.74-2.09 7.63-5.12-.8 1.81-2.99 2.95-7.28 3.03Z",opacity:.2})),F||(F=Q.createElement("path",{d:"m323 42.86-18.25 11.57 11.08-20.15a18 18 0 0 0-11-3.94h-.3a21.58 21.58 0 0 1-3.78-.28l-6.19 3.92 2.65-4.82a22.06 22.06 0 0 1-10.82-8.21l-11.07 7 7-12.72c-6.48-7.77-15.2-12.54-24.81-12.54-11.51 0-21.76 6.85-28.38 17.52a21.24 21.24 0 0 1-18.76 10.12h-.62c-12.71 0-23 14.41-23 32.19s10.3 32.18 23 32.18a17.2 17.2 0 0 0 8-2c8.29-4.31 19.17-4.39 27.85-.54a29 29 0 0 0 23.68.05c8.62-3.77 19.37-3.69 27.61.54a17.23 17.23 0 0 0 7.93 2c12.71 0 23-14.41 23-32.18A40.86 40.86 0 0 0 323 42.86Z",fill:"#f2f2f2"})),W||(W=Q.createElement("path",{d:"M288.59 89.95a34 34 0 0 0-19.72 2.14 29 29 0 0 1-23.67-.05c-8.69-3.85-19.57-3.77-27.86.54a17.2 17.2 0 0 1-8 2c-11.29 0-20.68-11.38-22.64-26.38a21.58 21.58 0 0 0 5.64-6.08c6.66-10.66 16.87-17.53 28.38-17.53s21.64 6.77 28.26 17.32a21.79 21.79 0 0 0 18.76 10.31h.26c9 .01 16.8 7.22 20.59 17.73Z",opacity:.03})),T||(T=Q.createElement("path",{d:"M800.07 66.42 791 72.19l5.53-10a9 9 0 0 0-5.51-2h-.14a10.79 10.79 0 0 1-1.89-.14l-3.09 2 1.3-2.46a11 11 0 0 1-5.4-4.09l-5.52 3.5 3.49-6.34a16.17 16.17 0 0 0-12.37-6.26c-5.75 0-10.86 3.42-14.16 8.74a10.57 10.57 0 0 1-9.36 5h-.31c-6.34 0-11.48 7.19-11.48 16s5.14 16.05 11.48 16.05a8.62 8.62 0 0 0 4-1 16.56 16.56 0 0 1 13.89-.27 14.52 14.52 0 0 0 11.81 0 16.58 16.58 0 0 1 13.77.27 8.61 8.61 0 0 0 4 1c6.34 0 11.48-7.18 11.48-16.05a20.28 20.28 0 0 0-2.45-9.72Z",fill:"#f2f2f2"})),V||(V=Q.createElement("path",{d:"M782.92 89.91a17 17 0 0 0-9.83 1.07 14.52 14.52 0 0 1-11.81 0 16.58 16.58 0 0 0-13.9.27 8.55 8.55 0 0 1-4 1c-5.64 0-10.32-5.67-11.3-13.15a10.93 10.93 0 0 0 2.82-3c3.3-5.32 8.42-8.73 14.16-8.73s10.79 3.37 14.09 8.63a10.85 10.85 0 0 0 9.36 5.14h.15c4.49-.07 8.34 3.53 10.26 8.77Z",opacity:.03})),D||(D=Q.createElement("path",{d:"m204.34 215.86 14.66 9.28-8.88-16.15a14.48 14.48 0 0 1 8.85-3.15h.23a17.08 17.08 0 0 0 3-.22l4.95 3.14-2.15-3.86a17.78 17.78 0 0 0 8.67-6.58l8.87 5.62-5.54-10.19c5.19-6.22 12.18-10 19.87-10 9.23 0 17.44 5.48 22.75 14a17 17 0 0 0 15 8.11h.5c10.18 0 18.43 11.54 18.43 25.78s-8.25 25.79-18.43 25.79a13.86 13.86 0 0 1-6.43-1.61 26.59 26.59 0 0 0-22.31-.43 23.28 23.28 0 0 1-19 0 26.64 26.64 0 0 0-22.12.43 13.9 13.9 0 0 1-6.35 1.57c-10.19 0-18.44-11.54-18.44-25.79a32.78 32.78 0 0 1 3.87-15.74Z",fill:"#f2f2f2"})),J||(J=Q.createElement("path",{d:"M231.89 253.59a27.36 27.36 0 0 1 15.8 1.72 23.28 23.28 0 0 0 19 0 26.61 26.61 0 0 1 22.32.43 13.82 13.82 0 0 0 6.42 1.61c9.05 0 16.57-9.11 18.14-21.13a17.44 17.44 0 0 1-4.52-4.88c-5.31-8.54-13.52-14-22.75-14s-17.33 5.42-22.64 13.88a17.44 17.44 0 0 1-15 8.25h-.23c-7.26-.07-13.5 5.71-16.54 14.12Z",opacity:.03})))}},8538:(e,a,t)=>{t.d(a,{Z:()=>L});var c,l,r,i,n,s,m,f,o,h,p,d,E,y,Z,M,x,u,g,b,v,q,w,O,k,C,j=t(7294),A=["title","titleId"];function N(){return N=Object.assign?Object.assign.bind():function(e){for(var a=1;a=0||(l[t]=e[t]);return l}(e,a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(c=0;c=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(l[t]=e[t])}return l}const L=function(e){var a=e.title,t=e.titleId,L=H(e,A);return j.createElement("svg",N({"data-name":"Layer 1",xmlns:"http://www.w3.org/2000/svg",width:1038.23,height:693.31,viewBox:"0 0 1038.23 693.31","aria-labelledby":t},L),c||(c=j.createElement("defs",null,j.createElement("linearGradient",{id:"a",x1:320.96,y1:796.01,x2:320.96,y2:284.81,gradientUnits:"userSpaceOnUse"},j.createElement("stop",{offset:0,stopColor:"gray",stopOpacity:.25}),j.createElement("stop",{offset:.54,stopColor:"gray",stopOpacity:.12}),j.createElement("stop",{offset:1,stopColor:"gray",stopOpacity:.1})))),void 0===a?j.createElement("title",{id:t},"version control"):a?j.createElement("title",{id:t},a):null,l||(l=j.createElement("path",{d:"M615.24 111.4c-64.72-2.25-126.36-23.14-185.23-46S312.85 17.21 249.68 5.1c-40.63-7.79-87.09-8.89-119.83 12.89-31.5 21-41.68 57.15-47.16 90.72-4.11 25.27-6.54 51.85 4.75 75.5 7.83 16.42 21.74 30.22 31.36 45.95 33.46 54.72 9.81 122.2-26.46 175.63-17 25.06-36.74 49-49.87 75.66s-19.2 57.25-7.72 84.47c11.39 27 38.52 47.24 67.9 61.49 59.69 28.94 130 37.23 198.62 41.92 151.82 10.39 304.46 5.89 456.68 1.39 56.34-1.67 112.92-3.36 168.34-12.07 30.78-4.84 62.56-12.52 84.9-31 28.36-23.53 35.39-63.38 16.39-92.88-31.88-49.49-120-61.79-142.31-114.9-12.27-29.23.33-61.8 18.15-88.91 38.24-58.17 102.33-109.19 105.71-175.68 2.32-45.66-28.49-91.39-76.13-113-49.94-22.65-119.18-19.8-156 17.69-37.96 38.56-104.62 53.41-161.76 51.43Z",fill:"#6c63ff",opacity:.1})),r||(r=j.createElement("path",{d:"M529.62 754.84c-1-3.62-2-7.28-4-10.43a36.53 36.53 0 0 0-6.55-7.17c-7.25-6.58-16.15-13.26-25.76-11.6a34.39 34.39 0 0 0-8.54 3.12c-1.4.65-2.81 1.3-4.25 1.85a21.17 21.17 0 0 1-12.82 1.12c-2.2-.59-4.25-1.65-6.42-2.31a20.35 20.35 0 0 0-3.15-.68 53.64 53.64 0 0 0 6.09-3.21c10.78-6.6 19.38-18.53 18.18-31.29-.41-4.29-1.88-8.4-3.34-12.45l-3.84-10.62c-1.66-4.6-3.38-9.29-6.41-13.11-3.37-4.26-8.17-7.15-13.13-9.3-10.65-4.63-22.29-6.26-33.78-7.84l-.8-.11V516.68a8 8 0 0 0-8-8H398q-1-6.12-2-12.22c-1.9-11.61-3.87-23.43-9.22-33.88-3.5-6.84-9.07-13.37-16.58-14.71a16.08 16.08 0 0 1-4.31-1c-2.2-1.08-3.4-3.48-5.09-5.25-4.36-4.57-11.45-4.64-17.29-7-5.16-2.05-9.38-5.91-14.08-8.88s-10.54-5.08-15.74-3.15c0 .38-.07.76-.11 1.13l-3.34-1.54c-3.6-1.67-7.27-3.38-10.16-6.12-3.71-3.5-5.69-8.14-7.23-13.07-.16-.51-.31-1-.47-1.55a46.43 46.43 0 0 0 12.44-23.75l.81 2.63a17.45 17.45 0 0 0 .64 1.74 6.86 6.86 0 0 0 2 2.83 3.55 3.55 0 0 0 .84.49 3.5 3.5 0 0 0 .86.22 3.2 3.2 0 0 0 1.24-.09 4.73 4.73 0 0 0 3-2.78 6 6 0 0 0 .35-1.22 6.31 6.31 0 0 0 .07-.76v-1.04c0-.1 0-.33-.05-.5v-.26c0-.2-.06-.4-.1-.59s0-.11 0-.16c-.05-.25-.11-.51-.16-.76v-.19c0-.06-.09-.41-.14-.62s-.07-.27-.1-.41v-.06c-.1-.4-.19-.79-.28-1.19a34.38 34.38 0 0 1-.55-10.56 113.08 113.08 0 0 1 2.86-15.35l.21-.91c.08-.35.16-.7.23-1.06.16-.72.32-1.44.47-2.17l.36-1.84.27-1.64v-.21A47.41 47.41 0 0 0 318 330c-.46-5.23-2.08-10.18-5.63-14.12-2.51-2.79-5.82-4.85-8.15-7.78-2.18-2.74-3.41-6.12-5.67-8.81-6.24-7.45-22.26-13.19-32.09-14.19-11.26-1.14-29.45 1.74-38.53 8.39-3.36 2.45-5.66 6-8 9.36-4.3 6.25-9.18 12.49-16.07 16-2.6 1.32-5.58 2.32-7.31 4.62a12.49 12.49 0 0 0-1.95 5.18 102.71 102.71 0 0 0-2.06 19.78v2.5a18.23 18.23 0 0 0 1.56 7.23c.16.34.34.67.53 1l.12.21a39.78 39.78 0 0 1 3.2 5.45 7.22 7.22 0 0 1 .49 1.66 12.24 12.24 0 0 1-.28 4.38c0 .22-.09.44-.13.66l-.09.43c0 .15 0 .3-.08.44-.08.43-.15.86-.21 1.28a9 9 0 0 0 .22 3.46 4.55 4.55 0 0 0 2.22 3 6.5 6.5 0 0 0 1.8.56c.63.11 1.27.18 1.89.32a9.33 9.33 0 0 1 2.29.85 9.22 9.22 0 0 1 1.93 1.24 11 11 0 0 1 .83.84 14 14 0 0 1 1.42 1.94q.32.53.6 1.08a24.67 24.67 0 0 1 1.71 4.52c.26.93.48 1.87.67 2.81.09.42.17.84.24 1.25s.14.83.2 1.24a2.91 2.91 0 0 0 .8-.16c1.47-.53 2.29-2.24 2.75-3.9.08-.28.15-.55.21-.82.23-1 .47-2.1.7-3.15a46.37 46.37 0 0 0 18.25 20.1c.28.83.55 1.65.79 2.49 1.31 4.53 1.94 9.27-.33 13.23-1.62 2.81-4.34 4.54-7.38 5.74a4.88 4.88 0 0 0-1.65-1.4c-2.63-1.32-5.79.28-8 2.25-4 3.62-7.26 8.81-12.52 10-1.9.44-4 .35-5.58 1.51a13 13 0 0 0-2.59 3.4 11.92 11.92 0 0 1-10.23 5.1c-1.83-.09-4-.51-5.25.83-.93 1-1 2.58-2 3.53-1.34 1.32-3.54.68-5.41.6-3.56-.15-6.87 2.15-8.9 5.1s-3 6.48-4 10v.06a7.15 7.15 0 0 0-.73.61 10.55 10.55 0 0 0-2.21 3.58 170.87 170.87 0 0 0-14.1 58.18 6 6 0 0 1-.64 2.82 13.87 13.87 0 0 1-1.47 1.6 5.61 5.61 0 0 0 .93 8 6.3 6.3 0 0 1 1.07-1.42c-.11.46-.21.91-.28 1.32a35.49 35.49 0 0 0-.11 8.8q1.42 20.84 2.87 41.65c.27 3.93.54 7.85.9 11.77q1.05 11.38 3 22.67c.06.34.13.69.22 1-8.15 2.59-15.4 7.27-18.45 15.08-1.06 2.7-1.54 5.64-2.84 8.23-1.43 2.84-3.78 5.11-5.34 7.89-2.69 4.78-2.81 10.64-1.83 16 1.89 10.45 7.54 19.79 15 27.39h-1a15.64 15.64 0 0 0-6.83 2.45c-15.78 9.22-24.8 29-21.51 47.06.65 3.53 1.78 7.11 4.14 9.8a15.51 15.51 0 0 0 7.28 4.46 25.29 25.29 0 0 0 5.37 1c12.3 1 24.21-4.7 36.54-5.18a98 98 0 0 1 12.23.57q8.91.74 17.85.94c9.69.23 15.14-2.35 21.32-9.59a26.1 26.1 0 0 0 3.77-5.94c5.26-.3 11.07-.76 15.27-1.1l.06.58c.23 2 .58 4.3 2.18 5.56a7.61 7.61 0 0 0 3 1.23c10.1 2.48 20.32 5 30.72 5a129.71 129.71 0 0 0 14.59-1.12l18.27-2.11a91 91 0 0 1 15.7 3.42c5.28 1.79 10.21 4.45 15.37 6.56 12 4.86 24.9 6.6 37.68 8.3 2.18.29 4.68.49 6.29-1 2.08-2 1.39-5.34.8-8.14-.24-1.15-.42-2.3-.56-3.46a175.25 175.25 0 0 1 25.24 8.76l1.43.63c.42 2.18 2.43 3.92 4.36 6.27a16 16 0 0 0 2.21 2.74 7.37 7.37 0 0 0 3.17 1.14 147.82 147.82 0 0 0 40.93 1.85 41.86 41.86 0 0 1 8.44-.29 36.58 36.58 0 0 1 6.1 1.37l11.57 3.32c8.53 2.44 17.26 4.91 26.11 4.36a33.4 33.4 0 0 0 5.33-.77c7-1.62 13.52-5.53 16.88-11.82 4.75-8.55 2.56-19.07 0-28.47Z",transform:"translate(-80.89 -103.35)",fill:"url(#a)"})),i||(i=j.createElement("path",{d:"M125.02 649.54c-2.11-4.8-4.11-10.32-2-15.12a12.85 12.85 0 0 1 6.65-6.25 32 32 0 0 1 9-2.22 125.61 125.61 0 0 1 29.26-.4c.71 5.62-.79 11.32-2.08 16.75-1.17 5-1.84 5.74-7 6-3.34.18-33.04 3.01-33.83 1.24Z",fill:"#fbbebe"})),n||(n=j.createElement("ellipse",{cx:214.07,cy:577.16,rx:143,ry:40,fill:"#464353"})),s||(s=j.createElement("ellipse",{cx:214.07,cy:577.16,rx:143,ry:40,opacity:.1})),m||(m=j.createElement("path",{d:"M239.71 366a44.49 44.49 0 0 1-22.94 20.84 57.58 57.58 0 0 1-18.21 3.46c-6.79.31-13.72-.13-20.1-2.45-8.56-3.1-15.67-9.44-21-16.83s-9-15.83-12.19-24.34c-1.68-4.43-3.28-9.15-2.49-13.83 5.15-1.17 10.79-2.89 13.45-7.46 2.27-3.92 1.64-8.62.33-13.1-.37-1.27-.8-2.53-1.23-3.74-1-2.9-4.45-8.41-2-10.89 1.53-1.57 7.94-2.37 10.15-3.39 6.81-3.14 13.09-7.68 20.57-9.17 6.47-1.29 13.15-.08 19.61 1.26a6.45 6.45 0 0 1 2.42.87 5.82 5.82 0 0 1 1.8 2.7c1.84 4.48 2.92 9.43 4.4 14.1 1.54 4.89 3.52 9.48 7.23 12.95 2.89 2.71 6.57 4.41 10.17 6.06l8.86 4.06a11.65 11.65 0 0 1 4.19 2.71 10.61 10.61 0 0 1 2 5.44 50.82 50.82 0 0 1-5.02 30.75Z",fill:"#fbbebe"})),f||(f=j.createElement("path",{d:"M212.24 304.03a46 46 0 0 1-55.67 8.26c-.37-1.27-.8-2.53-1.23-3.74-1-2.9-4.45-8.41-2-10.89 1.53-1.57 7.94-2.37 10.15-3.39 6.81-3.14 13.09-7.68 20.57-9.17 6.47-1.29 13.15-.08 19.61 1.26a6.45 6.45 0 0 1 2.42.87 5.82 5.82 0 0 1 1.8 2.7c1.79 4.48 2.87 9.43 4.35 14.1Z",opacity:.1})),o||(o=j.createElement("circle",{cx:179.07,cy:270.16,r:46,fill:"#fbbebe"})),h||(h=j.createElement("path",{d:"m319.22 419.45-3.78-22.9c-1.91-11.49-3.88-23.2-9.22-33.55-3.51-6.78-9.08-13.24-16.59-14.58a16.05 16.05 0 0 1-4.32-1c-2.2-1.06-3.4-3.44-5.09-5.2-4.36-4.52-11.46-4.59-17.3-6.89-5.16-2-9.38-5.85-14.08-8.79s-10.55-5-15.75-3.12c-.84 8.95-1.73 18.1-5.53 26.25a39.28 39.28 0 0 1-59.26 14.76c-8.91-6.71-14.62-17.06-17.28-27.89-.65-2.64-1.39-5.67-3.82-6.88-2.63-1.32-5.79.28-8 2.22-4 3.59-7.27 8.73-12.53 9.94-1.9.44-4 .35-5.58 1.5a12.7 12.7 0 0 0-2.6 3.37 12 12 0 0 1-10.23 5.06c-1.83-.09-4-.51-5.25.82-.93 1-1 2.56-2 3.49-1.35 1.31-3.54.67-5.42.6-3.56-.15-6.87 2.13-8.91 5s-3 6.42-4 9.86c10.93 24.34 20.93 48.71 31.86 73.05a6.23 6.23 0 0 1 .79 3 7.31 7.31 0 0 1-1.36 3c-5.36 8.61-5.19 19.44-4.6 29.56s1.31 20.81-3.21 29.88c-1.23 2.49-2.83 4.77-4 7.26-2.74 5.64-3.73 23.68-2.13 29.74h226.08c-4.31-11.85-2.67-35.63-1.77-48.21.63-8.8-1-17.59-1.7-26.39-1.53-17.97-.45-35.02-3.42-52.96Z",fill:"#6c63ff"})),p||(p=j.createElement("path",{d:"M65.36 445.65a35.4 35.4 0 0 0-.12 8.73l2.87 41.27c.27 3.89.54 7.77.9 11.65.69 7.53 1.72 15 3 22.46a4 4 0 0 0 4.1 3.89c12.65 2.68 25.72 2.57 38.63 1.84 19.7-1.1 39.37-3.61 59.1-3.18 5.08.11 11 0 14.08-4s1.29-10.47-2.73-13.7-9.48-4-14.64-4c-6.83-.07-13.66.9-20.47.5-6.25-.37-12.36-1.88-18.42-3.39l-17-4.23c.65-5.15 2.61-10 4.47-14.89 3.34-8.67 6.46-17.63 6.52-26.92s-3.44-19.06-11.05-24.38c-6.26-4.37-14.32-5.18-21.95-5-5.55.16-15.14-1.17-20.21 1-4.01 1.76-6.33 8.42-7.08 12.35Z",fill:"#fbbebe"})),d||(d=j.createElement("path",{d:"M330.79 540.01c3.33-1.27 7-.81 10.57-.33 11.49 1.57 23.15 3.18 33.8 7.77 5 2.14 9.76 5 13.14 9.21 3 3.79 4.75 8.43 6.41 13l3.84 10.52c1.46 4 2.94 8.08 3.35 12.33 1.2 12.59-7.41 24.46-18.24 31s-23.58 8.87-36 11.31-24.89 5.14-37.26 8a150 150 0 0 1-17.53 3.45c-13.24 1.5-27.08-.71-39.66 3.67-5 1.75-9.91 4.35-15.1 5.56a93.93 93.93 0 0 1-10.44 1.59l-23.81 2.72a129.89 129.89 0 0 1-14.6 1.12c-10.4 0-20.63-2.46-30.73-4.92a7.77 7.77 0 0 1-3-1.21c-1.6-1.26-1.95-3.49-2.18-5.51q-1.53-13.41-2.68-26.85c-.24-2.91-.42-6.06 1.17-8.51 2-3 5.9-3.94 9.46-4.52a246.88 246.88 0 0 1 45.68-3.17c5.81-5.81 15.39-5.84 23-9a68.39 68.39 0 0 0 8.11-4.41 106 106 0 0 1 44.53-14.07 41.45 41.45 0 0 0 9.11-1.3c5.89-1.83 11.26-6.81 17.31-5.59.75-2.07 1.27-4.84 3-6.26.86-.73 1.92-1.22 2.71-2 1.67-1.69 1.82-4.35 1.57-6.71s-.81-4.78-.2-7.08a9.79 9.79 0 0 1 1.11-2.47c3-5.18 7.53-7.84 13.56-7.34Z",fill:"#464353"})),E||(E=j.createElement("path",{d:"M330.79 540.01c3.33-1.27 7-.81 10.57-.33 11.49 1.57 23.15 3.18 33.8 7.77 5 2.14 9.76 5 13.14 9.21 3 3.79 4.75 8.43 6.41 13l3.84 10.52c1.46 4 2.94 8.08 3.35 12.33 1.2 12.59-7.41 24.46-18.24 31s-23.58 8.87-36 11.31-24.89 5.14-37.26 8a150 150 0 0 1-17.53 3.45c-13.24 1.5-27.08-.71-39.66 3.67-5 1.75-9.91 4.35-15.1 5.56a93.93 93.93 0 0 1-10.44 1.59l-23.81 2.72a129.89 129.89 0 0 1-14.6 1.12c-10.4 0-20.63-2.46-30.73-4.92a7.77 7.77 0 0 1-3-1.21c-1.6-1.26-1.95-3.49-2.18-5.51q-1.53-13.41-2.68-26.85c-.24-2.91-.42-6.06 1.17-8.51 2-3 5.9-3.94 9.46-4.52a246.88 246.88 0 0 1 45.68-3.17c5.81-5.81 15.39-5.84 23-9a68.39 68.39 0 0 0 8.11-4.41 106 106 0 0 1 44.53-14.07 41.45 41.45 0 0 0 9.11-1.3c5.89-1.83 11.26-6.81 17.31-5.59.75-2.07 1.27-4.84 3-6.26.86-.73 1.92-1.22 2.71-2 1.67-1.69 1.82-4.35 1.57-6.71s-.81-4.78-.2-7.08a9.79 9.79 0 0 1 1.11-2.47c3-5.18 7.53-7.84 13.56-7.34Z",opacity:.05})),y||(y=j.createElement("path",{d:"M134.22 655.72c-6.19 7.17-11.64 9.73-21.33 9.5q-8.94-.21-17.86-.93a100.2 100.2 0 0 0-12.24-.57c-12.34.48-24.25 6.13-36.56 5.14a25.92 25.92 0 0 1-5.37-1 15.63 15.63 0 0 1-7.29-4.42c-2.36-2.67-3.49-6.21-4.14-9.71-3.29-17.94 5.73-37.48 21.52-46.61a15.78 15.78 0 0 1 6.84-2.43 16.21 16.21 0 0 1 6.92 1.52l.15.06A52.33 52.33 0 0 1 82 617.71a9.66 9.66 0 0 0 2.62 2.11 9 9 0 0 0 3.09.58l13.14.83a31.14 31.14 0 0 1 6.6.91 52.46 52.46 0 0 1 6.94 3c7.07 3.16 14.91 4 22.55 5.22a3.37 3.37 0 0 1 2 .8 3.13 3.13 0 0 1 .62 1.3 25.51 25.51 0 0 1-5.34 23.26Z",fill:"#3f3d56"})),Z||(Z=j.createElement("path",{d:"M64.86 606.28a78.9 78.9 0 0 0-13.15 16.44 82.28 82.28 0 0 0-10.74 32.54 60.4 60.4 0 0 0-.11 12.61 15.63 15.63 0 0 1-7.29-4.42c-2.36-2.67-3.49-6.21-4.14-9.71-3.29-17.94 5.73-37.48 21.52-46.61a15.78 15.78 0 0 1 6.84-2.43 16.21 16.21 0 0 1 6.92 1.52Z",opacity:.1})),M||(M=j.createElement("path",{d:"M319.35 631.16c7.35-.2 15.6-.57 21 4.38 5.15 4.68 5.83 12.4 6.17 19.35l.39 8.07c.12 2.46.22 5-.77 7.28-1.76 4-6.59 5.93-11 5.7s-8.46-2.16-12.49-3.9a175.7 175.7 0 0 0-34-10.71q.57-8.37 1.9-16.66c.61-3.83.71-10.24 3.27-13.42 2.71-3.36 6.24-1.54 9.92-.92a79.63 79.63 0 0 0 15.61.83Z",fill:"#fbbebe"})),x||(x=j.createElement("path",{d:"M125.11 550.07c0 1-1.57 0-1.71-1.07-1.1-8.09-7.52-14.76-15-18s-16-3.41-24.1-2.64c-12.25 1.16-26 5.85-30.48 17.3-1.06 2.68-1.54 5.58-2.84 8.15-1.44 2.82-3.79 5.07-5.35 7.81-2.69 4.74-2.8 10.55-1.83 15.91 2.61 14.3 12.39 26.53 24.24 35s25.7 13.53 39.51 18.09a685.19 685.19 0 0 0 112 26.75c6.16.93 12.38 1.79 18.28 3.77 5.28 1.77 10.22 4.42 15.38 6.5 12 4.82 24.91 6.54 37.7 8.23 2.18.28 4.68.48 6.29-1 2.08-1.93 1.39-5.29.8-8.06a43.35 43.35 0 0 1 5.11-30.76c2.14-3.6 4.92-7.29 4.52-11.46-.48-4.86-5.32-8.3-10.14-9.08s-9.72.37-14.56 1c-1.67.22-3.49.36-4.95-.49a9.89 9.89 0 0 1-1.94-1.72 21.93 21.93 0 0 0-25.54-3.57c-1.79 1-4.5-1.23-6.36-2.07l-21.03-9.52c-24.16-10.93-48.44-21.91-74-28.83a15.54 15.54 0 0 1-5.7-2.37c-1.27-1-2.18-2.36-3.35-3.47-2.55-2.41-6.1-3.37-9.16-5.08s-6.49-5.89-5.79-9.32Z",fill:"#464353"})),u||(u=j.createElement("path",{d:"M449.32 680.76c-3.36 6.23-9.88 10.11-16.88 11.71a33.5 33.5 0 0 1-5.34.76c-8.85.55-17.59-1.9-26.12-4.32l-11.58-3.26a36.55 36.55 0 0 0-6.1-1.36 41.86 41.86 0 0 0-8.44.29 149.59 149.59 0 0 1-41-1.84 7.23 7.23 0 0 1-3.17-1.13 15.75 15.75 0 0 1-2.21-2.71c-3.15-3.79-6.54-6-2.81-11 2.15-2.9 6.14-4.35 7.81-7.68s.6-8.06-.39-11.5c-1.35-4.75-5.79-6.8-7.38-11.16-1.19-3.29.81-7.11 3.82-8.9s6.73-1.93 10.2-1.47 6.87 1.44 10.36 1.71c10.26.82 20.75-4.47 30.6-1.49 2.17.66 4.22 1.71 6.42 2.29a21.35 21.35 0 0 0 12.83-1.11c1.44-.54 2.85-1.19 4.25-1.83a34.23 34.23 0 0 1 8.55-3.09c9.61-1.65 18.52 5 25.77 11.49a36.44 36.44 0 0 1 6.55 7.1c2 3.12 3.06 6.75 4 10.33 2.65 9.25 4.84 19.67.26 28.17Z",fill:"#3f3d56"})),g||(g=j.createElement("path",{d:"M449.32 680.76c-3.36 6.23-9.88 10.11-16.88 11.71a32.69 32.69 0 0 0 3.55-17.16c-.6-9.51-4.78-18.47-10.11-26.37a93.4 93.4 0 0 0-11.14-13.57c-3.18-3.2-7.09-5.74-10.51-8.67a34.23 34.23 0 0 1 8.55-3.09c9.61-1.65 18.52 5 25.77 11.49a36.44 36.44 0 0 1 6.55 7.1c2 3.12 3.06 6.75 4 10.33 2.61 9.31 4.8 19.73.22 28.23Z",opacity:.1})),b||(b=j.createElement("path",{d:"M82.11 372.26a10.35 10.35 0 0 0-2.22 3.55 167.86 167.86 0 0 0-14.1 57.62 5.76 5.76 0 0 1-.65 2.79 12.21 12.21 0 0 1-1.47 1.59 5.52 5.52 0 0 0 .94 8c1.65-3.11 5.6-4.12 9.11-4.39 16.81-1.33 33.23 6.49 50.09 5.9-1.19-4.11-2.9-8.06-3.87-12.22-4.29-18.47 6.41-38.58-.15-56.37-1.31-3.56-3.5-7.06-6.95-8.62a18.51 18.51 0 0 0-4.45-1.18c-4.26-.77-12.74-4.06-16.86-2.74-1.52.49-2.12 1.92-3.38 2.78-1.91 1.23-4.45 1.68-6.04 3.29Z",fill:"#6c63ff"})),v||(v=j.createElement("rect",{x:117.57,y:408.66,width:223,height:142,rx:7.97,fill:"#3f3d56"})),q||(q=j.createElement("circle",{cx:228.57,cy:479.66,r:6,fill:"#fff"})),w||(w=j.createElement("path",{d:"M147.29 195.5c-3.36 2.43-5.66 5.92-8 9.27-4.31 6.19-9.19 12.37-16.08 15.82-2.61 1.31-5.59 2.3-7.32 4.58a12.34 12.34 0 0 0-1.95 5.13 101.65 101.65 0 0 0-2.06 19.6c0 3.28.14 6.66 1.59 9.64 1.37 2.8 3.84 5.17 4.35 8.22.39 2.38-.49 4.75-.8 7.14s.23 5.22 2.44 6.36a14.79 14.79 0 0 0 3.7.87c6.65 1.48 8.88 9.28 9.89 15.73 2.26-.13 3.28-2.72 3.75-4.83l6.93-30.81c.75-3.34 2-7.21 5.33-8.38 2.23-.77 4.67-.05 7 .15 9.15.75 16.89-6.32 25.84-8.27a33 33 0 0 1 8.71-.58c7.06.35 15.27 3.25 16.77 9.84.25 1.07.4 2.35 1.4 2.88s2.05.08 3.1 0c4.48-.45 7.12 4.59 8.41 8.71l4.7 15c.7 2.27 1.88 4.94 4.34 5.23 2.27.28 4.2-1.87 4.54-4s-.4-4.34-.89-6.48c-2.21-9.85 1.17-19.93 3.23-29.8s2.43-21.21-4.48-28.81c-2.51-2.75-5.81-4.8-8.15-7.7-2.18-2.72-3.41-6.06-5.67-8.73-6.25-7.37-22.28-13.06-32.11-14-11.23-1.22-29.43 1.63-38.51 8.22Z",fill:"#3f3d56"})),O||(O=j.createElement("g",{opacity:.1},j.createElement("path",{d:"M229.37 279.8c-2.46-.3-3.64-3-4.34-5.23q-2.35-7.51-4.7-15c-1.29-4.13-3.93-9.17-8.41-8.71-1.05.11-2.18.52-3.1 0s-1.15-1.81-1.4-2.88c-1.5-6.6-9.71-9.49-16.77-9.84a33.43 33.43 0 0 0-8.71.57c-8.95 2-16.69 9-25.84 8.27-2.36-.19-4.8-.91-7-.14-3.37 1.16-4.58 5-5.33 8.38l-6.93 30.8c-.47 2.12-1.49 4.71-3.75 4.83-1-6.44-3.24-14.24-9.89-15.72a15.72 15.72 0 0 1-3.7-.87 4.34 4.34 0 0 1-1.93-2.15c-.18.93-.39 1.86-.51 2.79-.3 2.38.23 5.22 2.44 6.36a14.79 14.79 0 0 0 3.7.87c6.65 1.48 8.88 9.28 9.89 15.73 2.26-.13 3.28-2.72 3.75-4.83l6.93-30.81c.75-3.34 2-7.21 5.33-8.38 2.23-.77 4.67-.05 7 .15 9.15.75 16.89-6.32 25.84-8.27a33 33 0 0 1 8.71-.58c7.06.35 15.27 3.25 16.77 9.84.25 1.07.4 2.35 1.4 2.88s2.05.08 3.1 0c4.48-.45 7.12 4.59 8.41 8.71q2.34 7.51 4.7 15c.7 2.27 1.88 4.94 4.34 5.23 2.27.28 4.2-1.87 4.54-4a13.58 13.58 0 0 0-.6-5.31 4.13 4.13 0 0 1-3.94 2.31ZM117.83 260.76c-.51-3.05-3-5.42-4.35-8.22a16.45 16.45 0 0 1-1.48-6c0 1.12-.1 2.24-.11 3.37 0 3.28.14 6.66 1.59 9.64 1.11 2.27 2.94 4.27 3.86 6.58a15.06 15.06 0 0 0 .49-5.37ZM236.25 239.48c-1.82 8.72-4.66 17.6-3.78 26.34.57-6.45 2.45-12.94 3.78-19.34a51 51 0 0 0 1.16-14.83 61.14 61.14 0 0 1-1.16 7.83Z"}))),k||(k=j.createElement("g",{opacity:.8},j.createElement("path",{fill:"none",stroke:"#3f3d56",strokeMiterlimit:10,strokeWidth:3,d:"M330.04 290.49H955.1M385.57 290.48s29.89 4.15 14.41-27.92 42-26 42-26M584.64 290.48s29.89-4.14 14.41 27.93 42 26 42 26M871.27 290.48s-29.9-4.14-14.41 27.93-42 26-42 26M814.86 344.4H649.93"}),j.createElement("circle",{cx:330.04,cy:290.49,r:18.25,fill:"#6c63ff"}),j.createElement("circle",{cx:442.29,cy:236.3,r:18.25,fill:"#3acc6c"}),j.createElement("circle",{cx:442.29,cy:290.49,r:18.25,fill:"#6c63ff"}),j.createElement("circle",{cx:514.73,cy:290.49,r:18.25,fill:"#6c63ff"}),j.createElement("circle",{cx:641.35,cy:344.13,r:18.25,fill:"#ff6584"}),j.createElement("circle",{cx:737.03,cy:344.13,r:18.25,fill:"#ff6584"}),j.createElement("circle",{cx:732.04,cy:290.49,r:18.25,fill:"#6c63ff"}),j.createElement("circle",{cx:950.48,cy:290.49,r:18.25,fill:"#6c63ff"}),j.createElement("circle",{cx:861.12,cy:290.49,r:18.25,fill:"#6c63ff"}),j.createElement("path",{fill:"#6c63ff",d:"M299.38 122.66h61.23v42.2h-61.23z"}),j.createElement("path",{fill:"#3acc6c",d:"M411.9 122.66h61.23v42.2H411.9z"}),j.createElement("path",{fill:"#ff6584",d:"M610.48 122.66h61.23v42.2h-61.23z"}))),C||(C=j.createElement("path",{d:"M86.35 299.36s-74.77-31.44-84.57 25.29c0 0-5.11 8.84 2 16.14 0 0 1.53-3.92 8.75.13a37.17 37.17 0 0 0 8.16 3.32 18.36 18.36 0 0 0 11.62-.62s24.59-1.33 45.27-33.5c0 0 8.87-5.48 9.31-7.54l-14.82 1s1.14 10.85-5 17.36c0 0 5.44-16.84 2.83-17.31-.53-.1-7.83.86-7.83.86s1.89 18.87-8 28.63c0 0 9.18-19.19 5.19-28.29l-10.94 2.11s3 19.85-7.82 31.39c0 0 8.9-20.4 5.46-30.76l-10.47 3.52s2.52 19.41-6.53 29c0 0 7.9-24.61 4.18-28 0 0-9.42 3.82-11.43 6 0 0 1.49 14-4.26 19.05 0 0 3.53-17 1.78-17.7 0 0-10.94 8.24-14.28 15.35 0 0 4.16-10.86 12.91-17 0 0-7.35-1.24-13 1.83 0 0 3.78-7.21 15.65-3.79 0 0 8.79-6.09 10.55-6 0 0-11.23-5-19.34-4.38 0 0 8.7-5 22.08 3.35l10.45-3.77s-14.5-7.43-21.76-7.4c0 0 9.66-3.74 24.47 6.66l10.7-2.18s-12-7.35-20.09-9.06c0 0 9.7-1.54 23.18 8.55l7.31-.61s-8.85-5.22-11.53-6.49-2.56-2.09-2.56-2.09a34.89 34.89 0 0 1 17.14 8.18s15.18-.3 15.24-1.23ZM83.59 243s-26.48-61.27-64.63-33.17c0 0-8.06 2.34-8 10.7 0 0 3.14-1.46 5.13 5.07a30.1 30.1 0 0 0 3 6.61 15 15 0 0 0 7.25 6.25s15.37 13.22 46 5.89c0 0 8.4 1.79 9.83.83l-9.36-7.87s-5.51 7.1-12.89 7.44c0 0 12.83-6.9 11.55-8.67-.26-.36-5.15-3.94-5.15-3.94s-9.62 12.28-21 12.47c0 0 16.39-6.18 19.2-13.85l-7.7-5s-9.71 13.51-22.71 14.21c0 0 16.91-7.05 20.77-15.17l-8.23-3.87s-9.56 13-20.37 13.49c0 0 18.72-10.12 18.43-14.25 0 0-7.77-3.1-10.24-2.92 0 0-7.07 9.15-13.38 8.89 0 0 11.79-8.09 11.15-9.5 0 0-11.2-1.34-17.23 1 0 0 8.66-4.08 17.35-2.74 0 0-3.66-4.93-8.75-6.3 0 0 6.36-2.13 11.46 6.65 0 0 8.68 1.4 9.7 2.44 0 0-3.81-9.39-9-13.62 0 0 8 2 11.2 14.57l8.36 3.71s-4.38-12.68-8.72-16.79c0 0 7.87 3.28 10.75 17.9l7.6 4.79s-2.94-11.2-6.77-16.83c0 0 6.64 4.62 8.89 18.29l4.7 3.8s-2.29-8.14-3.16-10.42-.33-2.7-.33-2.7a28.65 28.65 0 0 1 5.49 14.68s9.24 8.44 9.81 7.93Z",fill:"#6c63ff",opacity:.1})))}},6566:(e,a,t)=>{t.d(a,{Z:()=>f});var c=t(7462),l=t(7294),r=t(6010);const i="features_xdhU",n="featureSvg__8YW";var s=[{title:"Gas-Grain Chemistry",Svg:t(7156).Z,description:l.createElement(l.Fragment,null,"Detailed, consistent treatment of chemistry across the gas phase and both the surface and the bulk of the ice mantles around dust grains.")},{title:"Modular Physics",Svg:t(4503).Z,description:l.createElement(l.Fragment,null,"Flexible, interchangeable modules to model all kinds of astrophysical objects such as molecular clouds, protostellar cores and C/J-type shocks.")},{title:"Active Development",Svg:t(8538).Z,description:l.createElement(l.Fragment,null,"Teams at UCL and Leiden Observatory are working with international collaborators to extend and improve UCLCHEM. Check our ",l.createElement("a",{href:"./blog/index.html"},"blog")," for recent updates.")}];function m(e){var a=e.Svg,t=e.title,c=e.description;return l.createElement("div",{className:(0,r.Z)("col col--4")},l.createElement("div",{className:"text--center"},l.createElement(a,{className:n,alt:t})),l.createElement("div",{className:"text--center padding-horiz--md"},l.createElement("h3",null,t),l.createElement("p",null,c)))}function f(){return l.createElement("section",{className:i},l.createElement("div",{className:"container"},l.createElement("div",{className:"row"},s.map((function(e,a){return l.createElement(m,(0,c.Z)({key:a},e))})))))}},2841:(e,a,t)=>{t.r(a),t.d(a,{default:()=>h});var c=t(7294),l=t(6010),r=t(7961),i=t(9960),n=t(2263),s=t(1207),m=t(6566);function f(){var e=(0,n.Z)().siteConfig;return c.createElement("header",{className:(0,l.Z)("hero hero--primary",s.Z.heroBanner)},c.createElement("div",{className:"container"},c.createElement("h1",{className:"hero__title"},e.title),c.createElement("p",{className:"hero__subtitle"},e.tagline),c.createElement("div",{className:s.Z.buttons},c.createElement(i.Z,{className:"mybuttons button button--secondary button--lg",to:"https://github.com/uclchem/UCLCHEM"},"View on GitHub"),c.createElement(i.Z,{className:"mybuttons button button--secondary button--lg",to:"https://github.com/uclchem/UCLCHEM/zipball/master"},"Get a Zip"),c.createElement(i.Z,{className:"mybuttons button button--secondary button--lg",to:"https://github.com/uclchem/UCLCHEM/tarball/master"},"Get a Tarball"))))}function o(){return c.createElement("div",{className:"mycontainer"},c.createElement("p",null,"UCLCHEM is a gas-grain chemical code for astrochemical modelling that can be used as a stand alone Fortran program or a Python module. It propagates the abundances of chemical species through a network of user-defined reactions according to the physical conditions of the gas."),c.createElement("p",null,"Included in the repository is MakeRates, a python script to easily produce all the files related to the chemical network required by UCLCHEM. By combining a reaction list from an astrochemistry database such as UMIST with a custom list of reactions, the user can quickly generate a complex network."),c.createElement("p",null,"UCLCHEM is freely available for use and/or modification for any astrochemical purpose. Please reference ",c.createElement("a",{href:"https://doi.org/10.3847/1538-3881/aa773f"},"our release paper")," if UCLCHEM is used for work in a publication and feel free to contact us with suggestions, questions or to ask for advice using the code."))}function h(){var e=(0,n.Z)().siteConfig;return c.createElement(r.Z,{title:""+e.title,description:"Description will go into a meta tag in "},c.createElement(f,null),c.createElement("div",{className:"container"},c.createElement(o,null)),c.createElement("main",null,c.createElement(m.Z,null)))}},1207:(e,a,t)=>{t.d(a,{Z:()=>c});const c={heroBanner:"heroBanner_qdFl",buttons:"buttons_AeoN"}}}]); \ No newline at end of file diff --git a/assets/js/c8755060.8d29b50c.js b/assets/js/c8755060.8d29b50c.js new file mode 100644 index 00000000..dea0b336 --- /dev/null +++ b/assets/js/c8755060.8d29b50c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3501],{3905:(e,t,o)=>{o.d(t,{Zo:()=>d,kt:()=>h});var n=o(7294);function r(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function i(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function a(e){for(var t=1;t=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}var l=n.createContext({}),c=function(e){var t=n.useContext(l),o=t;return e&&(o="function"==typeof e?e(t):a(a({},t),e)),o},d=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var o=e.components,r=e.mdxType,i=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=c(o),h=r,m=u["".concat(l,".").concat(h)]||u[h]||p[h]||i;return o?n.createElement(m,a(a({ref:t},d),{},{components:o})):n.createElement(m,a({ref:t},d))}));function h(e,t){var o=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=o.length,a=new Array(i);a[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:r,a[1]=s;for(var c=2;c{o.r(t),o.d(t,{assets:()=>d,contentTitle:()=>l,default:()=>h,frontMatter:()=>s,metadata:()=>c,toc:()=>p});var n=o(7462),r=o(3366),i=(o(7294),o(3905)),a=["components"],s={id:"physics-cloud",title:"Cloud Model",author:"Jon Holdship"},l=void 0,c={unversionedId:"physics-cloud",id:"physics-cloud",title:"Cloud Model",description:"Main Contributors: Serena Viti, Jon Holdship",source:"@site/docs/physics-cloud.md",sourceDirName:".",slug:"/physics-cloud",permalink:"/docs/next/physics-cloud",draft:!1,tags:[],version:"current",lastUpdatedBy:"jonholdship",lastUpdatedAt:1651241879,formattedLastUpdatedAt:"Apr 29, 2022",frontMatter:{id:"physics-cloud",title:"Cloud Model",author:"Jon Holdship"},sidebar:"docs",previous:{title:"Core Physics",permalink:"/docs/next/physics-core"},next:{title:"Hot Core",permalink:"/docs/next/physics-hotcore"}},d={},p=[],u={toc:p};function h(e){var t=e.components,o=(0,r.Z)(e,a);return(0,i.kt)("wrapper",(0,n.Z)({},u,o,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Main Contributors"),": Serena Viti, Jon Holdship"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Source"),": src/fortran_src/cloud.f90"),(0,i.kt)("p",null,"The cloud model is our simplest physical model and is intended to model spherical clouds of gas with constant physical conditions. The exception to this is the density which can be modified using the ",(0,i.kt)("inlineCode",{parentName:"p"},"freefall")," parameter. "),(0,i.kt)("p",null,"Cloud is a 1D model that models positions through the cloud that are evenly spaced between some inner radius ",(0,i.kt)("inlineCode",{parentName:"p"},"rin")," and the outer radius ",(0,i.kt)("inlineCode",{parentName:"p"},"rout"),". The number of positions is set by the ",(0,i.kt)("inlineCode",{parentName:"p"},"points")," parameter and each position is treated almost independently with no transfer of material between them. The one interaction they have is that positions closer to the edge of the cloud (rout) are used to calculate column densities for the positions further into the cloud. Since UCLCHEM treats self-shielding of H2, C and CO, it does a fair job of properly modelling UV processes in a 1D cloud."),(0,i.kt)("p",null,"However, we caution UCLCHEM's cloud is not a PDR model. It does not consider heating and cooling and uses a fixed temperature for all positions. Moreover, it is unlikely one will model enough positions in the low Av parts of the cloud to properly capture the self-shielding. Therefore, we recommend using ",(0,i.kt)("a",{parentName:"p",href:"https://uclchem.github.io/3dpdr"},"3D-PDR")," for your PDR modelling needs."),(0,i.kt)("p",null,"Cloud is more suitable for studing the UV shielded parts of molecular clouds. If we assume the only depth dependent effect on the chemistry in these clouds is the UV radiation, it becomes reasonable to assume the UV shielded parts of the cloud are homogeneous and can be modelled with a single point code. Thus, most users will use cloud with ",(0,i.kt)("inlineCode",{parentName:"p"},"points=1")," and some combination of ",(0,i.kt)("inlineCode",{parentName:"p"},"rout"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"baseAv"),", and density that produce a large Av."),(0,i.kt)("img",{src:"/img/dark_cloud.png",width:"600","margin-left":"40%"}),(0,i.kt)("p",null,"The other major use of cloud is to model a simple cloud of gas in order to calculate reasonable starting abundances for another model. We may wish to run a hot core or shock model for some investigation and require reasonable initial conditions for the gas. We do this by starting a cloud model with a low density gas of atoms and ions with no molecules or ices. We then allow it to collapse using the ",(0,i.kt)("inlineCode",{parentName:"p"},"freefall")," parameter to reach the density of the gas in our science model. Whatever abundances are reached are then used as the starting abundances in the science model."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c8755060.fb538fef.js b/assets/js/c8755060.fb538fef.js deleted file mode 100644 index c6b768c2..00000000 --- a/assets/js/c8755060.fb538fef.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3501],{3905:(e,t,o)=>{o.d(t,{Zo:()=>d,kt:()=>h});var n=o(7294);function r(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function i(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function a(e){for(var t=1;t=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}var l=n.createContext({}),c=function(e){var t=n.useContext(l),o=t;return e&&(o="function"==typeof e?e(t):a(a({},t),e)),o},d=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var o=e.components,r=e.mdxType,i=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=c(o),h=r,m=u["".concat(l,".").concat(h)]||u[h]||p[h]||i;return o?n.createElement(m,a(a({ref:t},d),{},{components:o})):n.createElement(m,a({ref:t},d))}));function h(e,t){var o=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=o.length,a=new Array(i);a[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:r,a[1]=s;for(var c=2;c{o.r(t),o.d(t,{assets:()=>d,contentTitle:()=>l,default:()=>h,frontMatter:()=>s,metadata:()=>c,toc:()=>p});var n=o(7462),r=o(3366),i=(o(7294),o(3905)),a=["components"],s={id:"physics-cloud",title:"Cloud Model",author:"Jon Holdship"},l=void 0,c={unversionedId:"physics-cloud",id:"physics-cloud",title:"Cloud Model",description:"Main Contributors: Serena Viti, Jon Holdship",source:"@site/docs/physics-cloud.md",sourceDirName:".",slug:"/physics-cloud",permalink:"/docs/next/physics-cloud",tags:[],version:"current",lastUpdatedBy:"jonholdship",lastUpdatedAt:1651241879,formattedLastUpdatedAt:"4/29/2022",frontMatter:{id:"physics-cloud",title:"Cloud Model",author:"Jon Holdship"},sidebar:"docs",previous:{title:"Core Physics",permalink:"/docs/next/physics-core"},next:{title:"Hot Core",permalink:"/docs/next/physics-hotcore"}},d={},p=[],u={toc:p};function h(e){var t=e.components,o=(0,r.Z)(e,a);return(0,i.kt)("wrapper",(0,n.Z)({},u,o,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Main Contributors"),": Serena Viti, Jon Holdship"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Source"),": src/fortran_src/cloud.f90"),(0,i.kt)("p",null,"The cloud model is our simplest physical model and is intended to model spherical clouds of gas with constant physical conditions. The exception to this is the density which can be modified using the ",(0,i.kt)("inlineCode",{parentName:"p"},"freefall")," parameter. "),(0,i.kt)("p",null,"Cloud is a 1D model that models positions through the cloud that are evenly spaced between some inner radius ",(0,i.kt)("inlineCode",{parentName:"p"},"rin")," and the outer radius ",(0,i.kt)("inlineCode",{parentName:"p"},"rout"),". The number of positions is set by the ",(0,i.kt)("inlineCode",{parentName:"p"},"points")," parameter and each position is treated almost independently with no transfer of material between them. The one interaction they have is that positions closer to the edge of the cloud (rout) are used to calculate column densities for the positions further into the cloud. Since UCLCHEM treats self-shielding of H2, C and CO, it does a fair job of properly modelling UV processes in a 1D cloud."),(0,i.kt)("p",null,"However, we caution UCLCHEM's cloud is not a PDR model. It does not consider heating and cooling and uses a fixed temperature for all positions. Moreover, it is unlikely one will model enough positions in the low Av parts of the cloud to properly capture the self-shielding. Therefore, we recommend using ",(0,i.kt)("a",{parentName:"p",href:"https://uclchem.github.io/3dpdr"},"3D-PDR")," for your PDR modelling needs."),(0,i.kt)("p",null,"Cloud is more suitable for studing the UV shielded parts of molecular clouds. If we assume the only depth dependent effect on the chemistry in these clouds is the UV radiation, it becomes reasonable to assume the UV shielded parts of the cloud are homogeneous and can be modelled with a single point code. Thus, most users will use cloud with ",(0,i.kt)("inlineCode",{parentName:"p"},"points=1")," and some combination of ",(0,i.kt)("inlineCode",{parentName:"p"},"rout"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"baseAv"),", and density that produce a large Av."),(0,i.kt)("img",{src:"/img/dark_cloud.png",width:"600","margin-left":"40%"}),(0,i.kt)("p",null,"The other major use of cloud is to model a simple cloud of gas in order to calculate reasonable starting abundances for another model. We may wish to run a hot core or shock model for some investigation and require reasonable initial conditions for the gas. We do this by starting a cloud model with a low density gas of atoms and ions with no molecules or ices. We then allow it to collapse using the ",(0,i.kt)("inlineCode",{parentName:"p"},"freefall")," parameter to reach the density of the gas in our science model. Whatever abundances are reached are then used as the starting abundances in the science model."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ca07b522.674fe7ea.js b/assets/js/ca07b522.674fe7ea.js new file mode 100644 index 00000000..bf1a36f9 --- /dev/null +++ b/assets/js/ca07b522.674fe7ea.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1069],{3905:(a,e,t)=>{t.d(e,{Zo:()=>i,kt:()=>o});var s=t(7294);function m(a,e,t){return e in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function n(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.push.apply(t,s)}return t}function p(a){for(var e=1;e=0||(m[t]=a[t]);return m}(a,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(a);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(a,t)&&(m[t]=a[t])}return m}var l=s.createContext({}),N=function(a){var e=s.useContext(l),t=e;return a&&(t="function"==typeof a?a(e):p(p({},e),a)),t},i=function(a){var e=N(a.components);return s.createElement(l.Provider,{value:e},a.children)},k={inlineCode:"code",wrapper:function(a){var e=a.children;return s.createElement(s.Fragment,{},e)}},c=s.forwardRef((function(a,e){var t=a.components,m=a.mdxType,n=a.originalType,l=a.parentName,i=r(a,["components","mdxType","originalType","parentName"]),c=N(t),o=m,h=c["".concat(l,".").concat(o)]||c[o]||k[o]||n;return t?s.createElement(h,p(p({ref:e},i),{},{components:t})):s.createElement(h,p({ref:e},i))}));function o(a,e){var t=arguments,m=e&&e.mdxType;if("string"==typeof a||m){var n=t.length,p=new Array(n);p[0]=c;var r={};for(var l in e)hasOwnProperty.call(e,l)&&(r[l]=e[l]);r.originalType=a,r.mdxType="string"==typeof a?a:m,p[1]=r;for(var N=2;N{t.r(e),t.d(e,{assets:()=>i,contentTitle:()=>l,default:()=>o,frontMatter:()=>r,metadata:()=>N,toc:()=>k});var s=t(7462),m=t(3366),n=(t(7294),t(3905)),p=["components"],r={id:"bulk",title:"Bulk Ice Processes"},l=void 0,N={unversionedId:"bulk",id:"bulk",title:"Bulk Ice Processes",description:"For a three phase network, we must include reactions in the bulk and the process by which it is formed. To do this, MakeRates automatically duplicates all LH reactions so that a reaction on the surface and one in the bulk ice exists in the network. We then include two methods by which material can move between the bulk and the surface. First is the accumulation of the bulk as new surface layers are formed and second is the individual swapping of a particle from the bulk with one on the surface. Both of these processes are taken from Garrod & Pauly 2011",source:"@site/docs/chem-bulk.md",sourceDirName:".",slug:"/bulk",permalink:"/docs/next/bulk",draft:!1,tags:[],version:"current",lastUpdatedBy:"jonholdship",lastUpdatedAt:1651073142,formattedLastUpdatedAt:"Apr 27, 2022",frontMatter:{id:"bulk",title:"Bulk Ice Processes"},sidebar:"docs",previous:{title:"Adsorption & Desorption Reactions",permalink:"/docs/next/desorb"},next:{title:"Developer",permalink:"/docs/next/category/developer"}},i={},k=[{value:"Surface Transfer",id:"surface-transfer",level:2},{value:"Individual Swapping",id:"individual-swapping",level:2}],c={toc:k};function o(a){var e=a.components,t=(0,m.Z)(a,p);return(0,n.kt)("wrapper",(0,s.Z)({},c,t,{components:e,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"For a three phase network, we must include reactions in the bulk and the process by which it is formed. To do this, MakeRates automatically duplicates all LH reactions so that a reaction on the surface and one in the bulk ice exists in the network. We then include two methods by which material can move between the bulk and the surface. First is the accumulation of the bulk as new surface layers are formed and second is the individual swapping of a particle from the bulk with one on the surface. Both of these processes are taken from ",(0,n.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1088/0004-637X/735/1/15"},"Garrod & Pauly 2011")),(0,n.kt)("h2",{id:"surface-transfer"},"Surface Transfer"),(0,n.kt)("p",null,"Once the surface layer of an ice mantle is full, any further material deposited will form a new layer and the old one becomes part of the bulk. Likewise, if any suface is removed then some of the bulk becomes surface. Therefore, we calculate the total rate of change of all species on the surface ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"["),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"n"),(0,n.kt)("mi",{parentName:"mrow"},"s")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"]")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"[\\frac{dns}{dt}]")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"1.2251079999999999em",verticalAlign:"-0.345em"}}),(0,n.kt)("span",{parentName:"span",className:"mopen"},"["),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8801079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.6550000000000002em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t")))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.394em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"n"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.345em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},"]")))))," ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"msub"}),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"c"),(0,n.kt)("mi",{parentName:"mrow"},"h"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"m")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_{chem}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.486108em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span"}),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"h"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"m"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," due to chemistry, freeze out and desorption and use it to calculate the rate of surface to bulk transfer for each species."),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"\u03b1"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"c"),(0,n.kt)("mi",{parentName:"mrow"},"c"))),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"["),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"n"),(0,n.kt)("mi",{parentName:"mrow"},"s")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mo",{parentName:"msub",stretchy:"false"},"]"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"c"),(0,n.kt)("mi",{parentName:"mrow"},"h"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"m"))),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("msub",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dn_s(i)}{dt} = \\alpha_{acc}[\\frac{dns}{dt}]_{chem} \\frac{n_s(i)}{n_s}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.263em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.0037em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"["),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},(0,n.kt)("span",{parentName:"span",className:"mclose"},"]"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"h"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"m"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"}))))))),(0,n.kt)("p",null,"where the first two terms give the total rate of surface to bulk transfer and the final fraction divides this amongst the species on the surface. We subtract this ODE from each surface species and add it to the equivalent bulk species. If the rate of change of the surface is negative, the bulk is transferred to the surface."),(0,n.kt)("h2",{id:"individual-swapping"},"Individual Swapping"),(0,n.kt)("p",null,"Any species in the bulk has the possibilty of diffusing to the surface. It will then displace a surface particle (which will join the bulk) and become part of the surface. We follow Ruaud et al. 2016 by first calculating the rate at which bulk species diffuse to the surface,"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"K"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"w"),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"p"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mn",{parentName:"mfrac"},"1"),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"t"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"h"),(0,n.kt)("mi",{parentName:"mrow"},"o"),(0,n.kt)("mi",{parentName:"mrow"},"p"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"l"),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"y")))))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"K_{swap} = \\frac{1}{t_{hop} N_{lay}}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.969438em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15139200000000003em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07153em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.02691em"}},"w"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"p"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.293548em",verticalAlign:"-0.972108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.32144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"h"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"p"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.01968em"}},"l"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03588em"}},"y"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"1")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.972108em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"}))))))),(0,n.kt)("p",null,"where ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"t"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"h"),(0,n.kt)("mi",{parentName:"mrow"},"o"),(0,n.kt)("mi",{parentName:"mrow"},"p")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"t_{hop}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.9011879999999999em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"h"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"p"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is our usual diffusion timescale and ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"l"),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"y")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"N_{lay}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.969438em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.01968em"}},"l"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03588em"}},"y"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the number of mantle layers with a minimum of 1. This gives a simple ODE"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"K"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"w"),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"p"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"b")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dX_s(i)}{dt} = K_{swap}X_b(i)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"1.036108em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15139200000000003em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07153em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.02691em"}},"w"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"p"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"b")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,"and we get the rate at which things move from the surface to the bulk by summing this rate of change over all mantle species to get a total rate of swapping from the bulk to the surface. We then divide that by the fraction of the surface which is made up of a species to get its rate of swapping to the bulk."),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"m")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub",mathvariant:"normal"},"\u03a3"),(0,n.kt)("mi",{parentName:"msub"},"j")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"K"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"w"),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"p"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"j"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"b")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("msub",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dX_m(i)}{dt} = \\Sigma_j K_{swap,j}X_b(j) \\frac{X_s(i)}{X_s}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"m")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.263em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"\u03a3"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07153em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.02691em"}},"w"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"p"),(0,n.kt)("span",{parentName:"span",className:"mpunct mtight"},","),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"b")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"}))))))),(0,n.kt)("p",null,"This ensures that the net movement between the surface and the bulk from this process is zero."))}o.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ca07b522.ea61a8d4.js b/assets/js/ca07b522.ea61a8d4.js deleted file mode 100644 index cc378928..00000000 --- a/assets/js/ca07b522.ea61a8d4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1069],{3905:(a,e,t)=>{t.d(e,{Zo:()=>i,kt:()=>o});var s=t(7294);function m(a,e,t){return e in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function n(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),t.push.apply(t,s)}return t}function p(a){for(var e=1;e=0||(m[t]=a[t]);return m}(a,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(a);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(a,t)&&(m[t]=a[t])}return m}var l=s.createContext({}),N=function(a){var e=s.useContext(l),t=e;return a&&(t="function"==typeof a?a(e):p(p({},e),a)),t},i=function(a){var e=N(a.components);return s.createElement(l.Provider,{value:e},a.children)},k={inlineCode:"code",wrapper:function(a){var e=a.children;return s.createElement(s.Fragment,{},e)}},c=s.forwardRef((function(a,e){var t=a.components,m=a.mdxType,n=a.originalType,l=a.parentName,i=r(a,["components","mdxType","originalType","parentName"]),c=N(t),o=m,h=c["".concat(l,".").concat(o)]||c[o]||k[o]||n;return t?s.createElement(h,p(p({ref:e},i),{},{components:t})):s.createElement(h,p({ref:e},i))}));function o(a,e){var t=arguments,m=e&&e.mdxType;if("string"==typeof a||m){var n=t.length,p=new Array(n);p[0]=c;var r={};for(var l in e)hasOwnProperty.call(e,l)&&(r[l]=e[l]);r.originalType=a,r.mdxType="string"==typeof a?a:m,p[1]=r;for(var N=2;N{t.r(e),t.d(e,{assets:()=>i,contentTitle:()=>l,default:()=>o,frontMatter:()=>r,metadata:()=>N,toc:()=>k});var s=t(7462),m=t(3366),n=(t(7294),t(3905)),p=["components"],r={id:"bulk",title:"Bulk Ice Processes"},l=void 0,N={unversionedId:"bulk",id:"bulk",title:"Bulk Ice Processes",description:"For a three phase network, we must include reactions in the bulk and the process by which it is formed. To do this, MakeRates automatically duplicates all LH reactions so that a reaction on the surface and one in the bulk ice exists in the network. We then include two methods by which material can move between the bulk and the surface. First is the accumulation of the bulk as new surface layers are formed and second is the individual swapping of a particle from the bulk with one on the surface. Both of these processes are taken from Garrod & Pauly 2011",source:"@site/docs/chem-bulk.md",sourceDirName:".",slug:"/bulk",permalink:"/docs/next/bulk",tags:[],version:"current",lastUpdatedBy:"jonholdship",lastUpdatedAt:1651073142,formattedLastUpdatedAt:"4/27/2022",frontMatter:{id:"bulk",title:"Bulk Ice Processes"},sidebar:"docs",previous:{title:"Adsorption & Desorption Reactions",permalink:"/docs/next/desorb"},next:{title:"Developer",permalink:"/docs/next/category/developer"}},i={},k=[{value:"Surface Transfer",id:"surface-transfer",level:2},{value:"Individual Swapping",id:"individual-swapping",level:2}],c={toc:k};function o(a){var e=a.components,t=(0,m.Z)(a,p);return(0,n.kt)("wrapper",(0,s.Z)({},c,t,{components:e,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"For a three phase network, we must include reactions in the bulk and the process by which it is formed. To do this, MakeRates automatically duplicates all LH reactions so that a reaction on the surface and one in the bulk ice exists in the network. We then include two methods by which material can move between the bulk and the surface. First is the accumulation of the bulk as new surface layers are formed and second is the individual swapping of a particle from the bulk with one on the surface. Both of these processes are taken from ",(0,n.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1088/0004-637X/735/1/15"},"Garrod & Pauly 2011")),(0,n.kt)("h2",{id:"surface-transfer"},"Surface Transfer"),(0,n.kt)("p",null,"Once the surface layer of an ice mantle is full, any further material deposited will form a new layer and the old one becomes part of the bulk. Likewise, if any suface is removed then some of the bulk becomes surface. Therefore, we calculate the total rate of change of all species on the surface ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"["),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"n"),(0,n.kt)("mi",{parentName:"mrow"},"s")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"]")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"[\\frac{dns}{dt}]")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"1.2251079999999999em",verticalAlign:"-0.345em"}}),(0,n.kt)("span",{parentName:"span",className:"mopen"},"["),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8801079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.6550000000000002em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t")))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.394em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"n"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.345em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},"]")))))," ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"msub"}),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"c"),(0,n.kt)("mi",{parentName:"mrow"},"h"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"m")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_{chem}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.486108em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span"}),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"h"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"m"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," due to chemistry, freeze out and desorption and use it to calculate the rate of surface to bulk transfer for each species."),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"\u03b1"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"c"),(0,n.kt)("mi",{parentName:"mrow"},"c"))),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"["),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"n"),(0,n.kt)("mi",{parentName:"mrow"},"s")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mo",{parentName:"msub",stretchy:"false"},"]"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"c"),(0,n.kt)("mi",{parentName:"mrow"},"h"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"m"))),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("msub",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dn_s(i)}{dt} = \\alpha_{acc}[\\frac{dns}{dt}]_{chem} \\frac{n_s(i)}{n_s}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.263em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.0037em"}},"\u03b1"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.0037em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"["),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},(0,n.kt)("span",{parentName:"span",className:"mclose"},"]"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"c"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"h"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"m"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"}))))))),(0,n.kt)("p",null,"where the first two terms give the total rate of surface to bulk transfer and the final fraction divides this amongst the species on the surface. We subtract this ODE from each surface species and add it to the equivalent bulk species. If the rate of change of the surface is negative, the bulk is transferred to the surface."),(0,n.kt)("h2",{id:"individual-swapping"},"Individual Swapping"),(0,n.kt)("p",null,"Any species in the bulk has the possibilty of diffusing to the surface. It will then displace a surface particle (which will join the bulk) and become part of the surface. We follow Ruaud et al. 2016 by first calculating the rate at which bulk species diffuse to the surface,"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"K"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"w"),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"p"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mn",{parentName:"mfrac"},"1"),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"t"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"h"),(0,n.kt)("mi",{parentName:"mrow"},"o"),(0,n.kt)("mi",{parentName:"mrow"},"p"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"l"),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"y")))))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"K_{swap} = \\frac{1}{t_{hop} N_{lay}}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.969438em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15139200000000003em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07153em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.02691em"}},"w"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"p"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.293548em",verticalAlign:"-0.972108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.32144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"h"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"p"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.01968em"}},"l"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03588em"}},"y"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"1")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.972108em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"}))))))),(0,n.kt)("p",null,"where ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"t"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"h"),(0,n.kt)("mi",{parentName:"mrow"},"o"),(0,n.kt)("mi",{parentName:"mrow"},"p")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"t_{hop}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.9011879999999999em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"h"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"p"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is our usual diffusion timescale and ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"l"),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"y")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"N_{lay}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.969438em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.01968em"}},"l"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.03588em"}},"y"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the number of mantle layers with a minimum of 1. This gives a simple ODE"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"K"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"w"),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"p"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"b")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dX_s(i)}{dt} = K_{swap}X_b(i)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"1.036108em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15139200000000003em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07153em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.02691em"}},"w"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"p"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"b")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,"and we get the rate at which things move from the surface to the bulk by summing this rate of change over all mantle species to get a total rate of swapping from the bulk to the surface. We then divide that by the fraction of the surface which is made up of a species to get its rate of swapping to the bulk."),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"m")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub",mathvariant:"normal"},"\u03a3"),(0,n.kt)("mi",{parentName:"msub"},"j")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"K"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"w"),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"p"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"j"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"b")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("msub",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dX_m(i)}{dt} = \\Sigma_j K_{swap,j}X_b(j) \\frac{X_s(i)}{X_s}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"m")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.263em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"\u03a3"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07153em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.02691em"}},"w"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"p"),(0,n.kt)("span",{parentName:"span",className:"mpunct mtight"},","),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"b")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"}))))))),(0,n.kt)("p",null,"This ensures that the net movement between the surface and the bulk from this process is zero."))}o.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/cb3beda6.84c5de09.js b/assets/js/cb3beda6.84c5de09.js deleted file mode 100644 index 9f349aab..00000000 --- a/assets/js/cb3beda6.84c5de09.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6439],{3905:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,p=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),d=c(r),f=o,y=d["".concat(p,".").concat(f)]||d[f]||u[f]||i;return r?n.createElement(y,a(a({ref:t},l),{},{components:r})):n.createElement(y,a({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=d;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s.mdxType="string"==typeof e?e:o,a[1]=s;for(var c=2;c{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>p,default:()=>f,frontMatter:()=>s,metadata:()=>c,toc:()=>u});var n=r(7462),o=r(3366),i=(r(7294),r(3905)),a=["components"],s={id:"hydro",title:"Hydro Post Processing"},p=void 0,c={unversionedId:"hydro",id:"version-v3.2.0/hydro",title:"Hydro Post Processing",description:"Main Contributors: Jon Holdship",source:"@site/versioned_docs/version-v3.2.0/hydro.md",sourceDirName:".",slug:"/hydro",permalink:"/docs/hydro",tags:[],version:"v3.2.0",frontMatter:{id:"hydro",title:"Hydro Post Processing"}},l={},u=[],d={toc:u};function f(e){var t=e.components,r=(0,o.Z)(e,a);return(0,i.kt)("wrapper",(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Main Contributors"),": Jon Holdship"),(0,i.kt)("p",null,"UCLCHEM includes a post-processing module ",(0,i.kt)("inlineCode",{parentName:"p"},"src/hydro.f90")," which is effectively a template as it necessarily requires user editing. The module reads in a columnated file of physical properties such as the output from a hydrodynamical model and creates interpolation functions."),(0,i.kt)("p",null,"As ",(0,i.kt)("inlineCode",{parentName:"p"},"updatePhysics")," is called by UCLCHEM's main loop, these interpolation functions are called to get the physical properties of the gas at the current simulation time."),(0,i.kt)("p",null,"Whilst the maximum amount of information that can be read from the input file is set by the physical properties UCLCHEM deals with, this is naturally a user dependent process. The input file format and the gas properties that are supplied (eg just density/temperature or density/temperature/Av) depend on the model being post processed. Thus ",(0,i.kt)("inlineCode",{parentName:"p"},"src/hydro.f90")," needs to be edited to account for this."))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/cb3beda6.92e3d01d.js b/assets/js/cb3beda6.92e3d01d.js new file mode 100644 index 00000000..4170a31d --- /dev/null +++ b/assets/js/cb3beda6.92e3d01d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6439],{3905:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),u=c(r),f=o,y=u["".concat(p,".").concat(f)]||u[f]||d[f]||a;return r?n.createElement(y,i(i({ref:t},l),{},{components:r})):n.createElement(y,i({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=u;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s.mdxType="string"==typeof e?e:o,i[1]=s;for(var c=2;c{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>p,default:()=>f,frontMatter:()=>s,metadata:()=>c,toc:()=>d});var n=r(7462),o=r(3366),a=(r(7294),r(3905)),i=["components"],s={id:"hydro",title:"Hydro Post Processing"},p=void 0,c={unversionedId:"hydro",id:"version-v3.2.0/hydro",title:"Hydro Post Processing",description:"Main Contributors: Jon Holdship",source:"@site/versioned_docs/version-v3.2.0/hydro.md",sourceDirName:".",slug:"/hydro",permalink:"/docs/hydro",draft:!1,tags:[],version:"v3.2.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"hydro",title:"Hydro Post Processing"}},l={},d=[],u={toc:d};function f(e){var t=e.components,r=(0,o.Z)(e,i);return(0,a.kt)("wrapper",(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Main Contributors"),": Jon Holdship"),(0,a.kt)("p",null,"UCLCHEM includes a post-processing module ",(0,a.kt)("inlineCode",{parentName:"p"},"src/hydro.f90")," which is effectively a template as it necessarily requires user editing. The module reads in a columnated file of physical properties such as the output from a hydrodynamical model and creates interpolation functions."),(0,a.kt)("p",null,"As ",(0,a.kt)("inlineCode",{parentName:"p"},"updatePhysics")," is called by UCLCHEM's main loop, these interpolation functions are called to get the physical properties of the gas at the current simulation time."),(0,a.kt)("p",null,"Whilst the maximum amount of information that can be read from the input file is set by the physical properties UCLCHEM deals with, this is naturally a user dependent process. The input file format and the gas properties that are supplied (eg just density/temperature or density/temperature/Av) depend on the model being post processed. Thus ",(0,a.kt)("inlineCode",{parentName:"p"},"src/hydro.f90")," needs to be edited to account for this."))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/cb646038.06fb177b.js b/assets/js/cb646038.06fb177b.js deleted file mode 100644 index 194b296b..00000000 --- a/assets/js/cb646038.06fb177b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1428],{3905:(a,e,s)=>{s.d(e,{Zo:()=>i,kt:()=>o});var t=s(7294);function m(a,e,s){return e in a?Object.defineProperty(a,e,{value:s,enumerable:!0,configurable:!0,writable:!0}):a[e]=s,a}function n(a,e){var s=Object.keys(a);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(a);e&&(t=t.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),s.push.apply(s,t)}return s}function p(a){for(var e=1;e=0||(m[s]=a[s]);return m}(a,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(a);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(a,s)&&(m[s]=a[s])}return m}var N=t.createContext({}),l=function(a){var e=t.useContext(N),s=e;return a&&(s="function"==typeof a?a(e):p(p({},e),a)),s},i=function(a){var e=l(a.components);return t.createElement(N.Provider,{value:e},a.children)},k={inlineCode:"code",wrapper:function(a){var e=a.children;return t.createElement(t.Fragment,{},e)}},c=t.forwardRef((function(a,e){var s=a.components,m=a.mdxType,n=a.originalType,N=a.parentName,i=r(a,["components","mdxType","originalType","parentName"]),c=l(s),o=m,h=c["".concat(N,".").concat(o)]||c[o]||k[o]||n;return s?t.createElement(h,p(p({ref:e},i),{},{components:s})):t.createElement(h,p({ref:e},i))}));function o(a,e){var s=arguments,m=e&&e.mdxType;if("string"==typeof a||m){var n=s.length,p=new Array(n);p[0]=c;var r={};for(var N in e)hasOwnProperty.call(e,N)&&(r[N]=e[N]);r.originalType=a,r.mdxType="string"==typeof a?a:m,p[1]=r;for(var l=2;l{s.r(e),s.d(e,{assets:()=>i,contentTitle:()=>N,default:()=>o,frontMatter:()=>r,metadata:()=>l,toc:()=>k});var t=s(7462),m=s(3366),n=(s(7294),s(3905)),p=["components"],r={id:"grain",title:"Grain Surface Reactions"},N=void 0,l={unversionedId:"grain",id:"version-v3.2.0/grain",title:"Grain Surface Reactions",description:"Whilst the basic treatment of gas phase chemistry is well established, grain surface chemistry is more complex. There are three possible ways to treat grain surface chemistry in UCLCHEM. In general we assume that:",source:"@site/versioned_docs/version-v3.2.0/chem-grain.md",sourceDirName:".",slug:"/grain",permalink:"/docs/grain",tags:[],version:"v3.2.0",frontMatter:{id:"grain",title:"Grain Surface Reactions"},sidebar:"docs",previous:{title:"Gas Phase Reactions",permalink:"/docs/gas"},next:{title:"Adsorption & Desorption Reactions",permalink:"/docs/desorb"}},i={},k=[{value:"Langmuir-Hinshelwood Mechanism",id:"langmuir-hinshelwood-mechanism",level:3},{value:"Eley-Rideal Mechanism",id:"eley-rideal-mechanism",level:3}],c={toc:k};function o(a){var e=a.components,s=(0,m.Z)(a,p);return(0,n.kt)("wrapper",(0,t.Z)({},c,s,{components:e,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"Whilst the basic treatment of gas phase chemistry is well established, grain surface chemistry is more complex. There are three possible ways to treat grain surface chemistry in UCLCHEM. In general we assume that:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"All dust grains are well covered by the species in question so we can take a rate equation approach based on fractional abundance rather than tracking if molecule A is on the same dust grain as molecule B."),(0,n.kt)("li",{parentName:"ul"},"Grains are spherical objects of a uniform size."),(0,n.kt)("li",{parentName:"ul"},"All species are thermalized on the grains.")),(0,n.kt)("p",null,"This allows a fairly straight forward treatment of the grain chemistry. Below we list several processes that are important in UCLCHEM's treatment of the grain chemistry."),(0,n.kt)("h3",{id:"langmuir-hinshelwood-mechanism"},"Langmuir-Hinshelwood Mechanism"),(0,n.kt)("p",null,"Reactions via diffusion of reactants across the grain surface was added to UCLCHEM by ",(0,n.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1093/mnras/stx2960"},"Quenard et al. 2018"),", drawing their formalism from ",(0,n.kt)("a",{parentName:"p",href:"http://adsabs.harvard.edu/doi/10.1086/191713"},"Hasegawa et al. 1992"),", ",(0,n.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1088/0004-637X/735/1/15"},"Garrod & Pauly 2011"),", and ",(0,n.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1093/mnras/stw887"},"Ruaud et al. 2016"),". These reactions can be included in your grain file in the form,"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre"},"#H,#CO,LH,#HCO,,,,alpha,0.0,gamma,,,\n")),(0,n.kt)("p",null,"where alpha is a branching ratio if you include multiple versions of the same reaction and gamma is the energy barrier to the reaction. Including this reaction in your MakeRates input will result in two reactions being created in the actual network: one with gas phase products and one with grain surface products. This is to account for the desorption of products of exothermic reactions and the branching ratio is determined within UCLCHEM using the binding energy of the products and energy released by the reaction following ",(0,n.kt)("a",{parentName:"p",href:"https://www.aanda.org/10.1051/0004-6361/201525981"},"Minissale et al. 2016"),". The equivalent reactions will also be generated for the ice bulk if you are using a three phase network so you only need to list LH reactions with surface reactants and products."),(0,n.kt)("p",null,"If we follow the rate of change of the absolute number of a species on the surface of a grain (",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mi",{parentName:"msub"},"S"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"N_S")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05764em"}},"S")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))))),"), we get"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"j"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"f")))),(0,n.kt)("msub",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"t"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"s")))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dN_s(i)}{dt} = -\\frac{k_{ij} k_{diff}}{N_{sites}} N_s(i)N_s(j)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.20744em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,"where ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"j")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k_{ij}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the reaction rate when species i and j are in adjacent sites, ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"f")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k_{diff}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the rate at which these species diffuse between sites and ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"t"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"s")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"N_{sites}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the number of binding sites on the surface. For reactions in the bulk ice, we multiply the number of sites per layer by the number of mantle layers. If we multiply both sides by the dust concentration, we get the LHS in the standard form of rate of change of concentration and convert one N on the RHS to a concentration. We can also multiply the RHS by ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"d"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_d")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))))),"/",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"d"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_d")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," to convert the other N."),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"j"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"f")))),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"t"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"s"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"d")))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dn_s(i)}{dt} = -\\frac{k_{ij} k_{diff}}{N_{sites} n_d} n_s(i)n_s(j)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.20744em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,"Finally, we want a rate of change of fractional abundance so we can divide through by ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"H"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_H")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))))),". Since ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"d")),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"d")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"H"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_d = X_d n_H")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))))),", we can also cancel a factor of ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"H"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_H")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," in the RHS."),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"j"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"f")))),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"t"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"s"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"d")))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dX_s(i)}{dt} = -\\frac{k_{ij} k_{diff}}{N_{sites} X_d} X_s(i)X_s(j)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.20744em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,"This is the final rate of change which is sent to the ODE solver. See ",(0,n.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1093/mnras/stx2960"},"Quenard et al. 2018")," for a discussion of ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"j")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k_{ij}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," and ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"K"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"f")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"K_{diff}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.969438em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07153em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))))))),"."),(0,n.kt)("p",null,"Note, these reactions can become ",(0,n.kt)("em",{parentName:"p"},"very")," fast at high temperatures and will eventually break the integrator with a careful, network depedent choice of tolerances. To avoid this, we stop all grain chemistry at MAX_GRAIN_TEMP in UCLCHEM which is set by default to 150 K. By this temperature, the ice will have almost entirely sublimated and so stopping the chemistry will have a negligible effect on abundances."),(0,n.kt)("h3",{id:"eley-rideal-mechanism"},"Eley-Rideal Mechanism"),(0,n.kt)("p",null,"Reactions that occur when a species colliding with a dust grain lands on a binding site occupied by another reactant are also included in UCLCHEM. They can be included in your grain file in the form,"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre"},"H,#CO,ER,#HCO,,,,alpha,0.0,gamma,,,\n")),(0,n.kt)("p",null,"and produce gas and grain surface products in the same way as the Langmuir-Hinshelwood reactions. These reactions have an ODE of the form"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"r"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"z"),(0,n.kt)("mi",{parentName:"mrow"},"e"))),(0,n.kt)("mi",{parentName:"mrow"},"exp"),(0,n.kt)("mo",{parentName:"mrow"},"\u2061"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"E")),(0,n.kt)("mi",{parentName:"mfrac"},"T")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("msub",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dn_s(i)}{dt} = -k_{i,freeze} \\exp(\\frac{-E}{T}) \\frac{n_s(j)}{n_{s}} n_s(i)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.263em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mpunct mtight"},","),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.02778em"}},"r"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.04398em"}},"z"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,n.kt)("span",{parentName:"span",className:"mop"},"exp"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05764em"}},"E")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,"where ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"r"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"z"),(0,n.kt)("mi",{parentName:"mrow"},"e")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k_{i,freeze}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mpunct mtight"},","),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.02778em"}},"r"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.04398em"}},"z"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the freeze out rate of the gas phase reactant (ie the rate at which it collides with the grains), ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"exp"),(0,n.kt)("mo",{parentName:"mrow"},"\u2061"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"E")),(0,n.kt)("mi",{parentName:"mfrac"},"T")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\exp(\\frac{-E}{T})")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"1.217331em",verticalAlign:"-0.345em"}}),(0,n.kt)("span",{parentName:"span",className:"mop"},"exp"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.872331em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.6550000000000002em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.13889em"}},"T")))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.394em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05764em"}},"E"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.345em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))," is the probability of a reaction occuring given the energy barrier, ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_s")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the total concentration of ice species, and therefore ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("msub",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"t"),(0,n.kt)("mi",{parentName:"mrow"},"o"),(0,n.kt)("mi",{parentName:"mrow"},"t"),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"l"))))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{n_s(j)}{n_{s,total}}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"1.55808em",verticalAlign:"-0.5480799999999999em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.01em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.6550000000000002em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3448em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3487714285714287em",marginLeft:"0em",marginRight:"0.07142857142857144em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.5em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mpunct mtight"},","),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.01968em"}},"l"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.29011428571428566em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.485em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.16454285714285719em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.357em",marginLeft:"0em",marginRight:"0.07142857142857144em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.5em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.143em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen mtight"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose mtight"},")"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.5480799999999999em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"}))))))," is the fraction of surface sites occupied by the surface reactant. This reduces to"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"r"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"z"),(0,n.kt)("mi",{parentName:"mrow"},"e"))),(0,n.kt)("mi",{parentName:"mrow"},"exp"),(0,n.kt)("mo",{parentName:"mrow"},"\u2061"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"E")),(0,n.kt)("mi",{parentName:"mfrac"},"T")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("msub",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dX_s(i)}{dt} = -k_{i,freeze} \\exp(\\frac{-E}{T}) \\frac{X_s(j)}{X_{s}} X_s(i)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.263em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mpunct mtight"},","),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.02778em"}},"r"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.04398em"}},"z"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,n.kt)("span",{parentName:"span",className:"mop"},"exp"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05764em"}},"E")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))))}o.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/cb646038.5cc5dbad.js b/assets/js/cb646038.5cc5dbad.js new file mode 100644 index 00000000..612e0f9c --- /dev/null +++ b/assets/js/cb646038.5cc5dbad.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1428],{3905:(a,e,s)=>{s.d(e,{Zo:()=>i,kt:()=>o});var t=s(7294);function m(a,e,s){return e in a?Object.defineProperty(a,e,{value:s,enumerable:!0,configurable:!0,writable:!0}):a[e]=s,a}function n(a,e){var s=Object.keys(a);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(a);e&&(t=t.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),s.push.apply(s,t)}return s}function p(a){for(var e=1;e=0||(m[s]=a[s]);return m}(a,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(a);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(a,s)&&(m[s]=a[s])}return m}var N=t.createContext({}),l=function(a){var e=t.useContext(N),s=e;return a&&(s="function"==typeof a?a(e):p(p({},e),a)),s},i=function(a){var e=l(a.components);return t.createElement(N.Provider,{value:e},a.children)},k={inlineCode:"code",wrapper:function(a){var e=a.children;return t.createElement(t.Fragment,{},e)}},c=t.forwardRef((function(a,e){var s=a.components,m=a.mdxType,n=a.originalType,N=a.parentName,i=r(a,["components","mdxType","originalType","parentName"]),c=l(s),o=m,h=c["".concat(N,".").concat(o)]||c[o]||k[o]||n;return s?t.createElement(h,p(p({ref:e},i),{},{components:s})):t.createElement(h,p({ref:e},i))}));function o(a,e){var s=arguments,m=e&&e.mdxType;if("string"==typeof a||m){var n=s.length,p=new Array(n);p[0]=c;var r={};for(var N in e)hasOwnProperty.call(e,N)&&(r[N]=e[N]);r.originalType=a,r.mdxType="string"==typeof a?a:m,p[1]=r;for(var l=2;l{s.r(e),s.d(e,{assets:()=>i,contentTitle:()=>N,default:()=>o,frontMatter:()=>r,metadata:()=>l,toc:()=>k});var t=s(7462),m=s(3366),n=(s(7294),s(3905)),p=["components"],r={id:"grain",title:"Grain Surface Reactions"},N=void 0,l={unversionedId:"grain",id:"version-v3.2.0/grain",title:"Grain Surface Reactions",description:"Whilst the basic treatment of gas phase chemistry is well established, grain surface chemistry is more complex. There are three possible ways to treat grain surface chemistry in UCLCHEM. In general we assume that:",source:"@site/versioned_docs/version-v3.2.0/chem-grain.md",sourceDirName:".",slug:"/grain",permalink:"/docs/grain",draft:!1,tags:[],version:"v3.2.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"grain",title:"Grain Surface Reactions"},sidebar:"docs",previous:{title:"Gas Phase Reactions",permalink:"/docs/gas"},next:{title:"Adsorption & Desorption Reactions",permalink:"/docs/desorb"}},i={},k=[{value:"Langmuir-Hinshelwood Mechanism",id:"langmuir-hinshelwood-mechanism",level:3},{value:"Eley-Rideal Mechanism",id:"eley-rideal-mechanism",level:3}],c={toc:k};function o(a){var e=a.components,s=(0,m.Z)(a,p);return(0,n.kt)("wrapper",(0,t.Z)({},c,s,{components:e,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"Whilst the basic treatment of gas phase chemistry is well established, grain surface chemistry is more complex. There are three possible ways to treat grain surface chemistry in UCLCHEM. In general we assume that:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"All dust grains are well covered by the species in question so we can take a rate equation approach based on fractional abundance rather than tracking if molecule A is on the same dust grain as molecule B."),(0,n.kt)("li",{parentName:"ul"},"Grains are spherical objects of a uniform size."),(0,n.kt)("li",{parentName:"ul"},"All species are thermalized on the grains.")),(0,n.kt)("p",null,"This allows a fairly straight forward treatment of the grain chemistry. Below we list several processes that are important in UCLCHEM's treatment of the grain chemistry."),(0,n.kt)("h3",{id:"langmuir-hinshelwood-mechanism"},"Langmuir-Hinshelwood Mechanism"),(0,n.kt)("p",null,"Reactions via diffusion of reactants across the grain surface was added to UCLCHEM by ",(0,n.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1093/mnras/stx2960"},"Quenard et al. 2018"),", drawing their formalism from ",(0,n.kt)("a",{parentName:"p",href:"http://adsabs.harvard.edu/doi/10.1086/191713"},"Hasegawa et al. 1992"),", ",(0,n.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1088/0004-637X/735/1/15"},"Garrod & Pauly 2011"),", and ",(0,n.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1093/mnras/stw887"},"Ruaud et al. 2016"),". These reactions can be included in your grain file in the form,"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre"},"#H,#CO,LH,#HCO,,,,alpha,0.0,gamma,,,\n")),(0,n.kt)("p",null,"where alpha is a branching ratio if you include multiple versions of the same reaction and gamma is the energy barrier to the reaction. Including this reaction in your MakeRates input will result in two reactions being created in the actual network: one with gas phase products and one with grain surface products. This is to account for the desorption of products of exothermic reactions and the branching ratio is determined within UCLCHEM using the binding energy of the products and energy released by the reaction following ",(0,n.kt)("a",{parentName:"p",href:"https://www.aanda.org/10.1051/0004-6361/201525981"},"Minissale et al. 2016"),". The equivalent reactions will also be generated for the ice bulk if you are using a three phase network so you only need to list LH reactions with surface reactants and products."),(0,n.kt)("p",null,"If we follow the rate of change of the absolute number of a species on the surface of a grain (",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mi",{parentName:"msub"},"S"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"N_S")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05764em"}},"S")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))))),"), we get"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"j"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"f")))),(0,n.kt)("msub",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"t"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"s")))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dN_s(i)}{dt} = -\\frac{k_{ij} k_{diff}}{N_{sites}} N_s(i)N_s(j)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.20744em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,"where ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"j")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k_{ij}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the reaction rate when species i and j are in adjacent sites, ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"f")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k_{diff}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the rate at which these species diffuse between sites and ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"t"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"s")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"N_{sites}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the number of binding sites on the surface. For reactions in the bulk ice, we multiply the number of sites per layer by the number of mantle layers. If we multiply both sides by the dust concentration, we get the LHS in the standard form of rate of change of concentration and convert one N on the RHS to a concentration. We can also multiply the RHS by ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"d"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_d")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))))),"/",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"d"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_d")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," to convert the other N."),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"j"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"f")))),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"t"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"s"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"d")))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dn_s(i)}{dt} = -\\frac{k_{ij} k_{diff}}{N_{sites} n_d} n_s(i)n_s(j)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.20744em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,"Finally, we want a rate of change of fractional abundance so we can divide through by ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"H"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_H")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))))),". Since ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"d")),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"d")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"H"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_d = X_d n_H")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))))),", we can also cancel a factor of ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"H"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_H")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," in the RHS."),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"j"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"f")))),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"t"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"s"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"d")))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dX_s(i)}{dt} = -\\frac{k_{ij} k_{diff}}{N_{sites} X_d} X_s(i)X_s(j)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.20744em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,"This is the final rate of change which is sent to the ODE solver. See ",(0,n.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1093/mnras/stx2960"},"Quenard et al. 2018")," for a discussion of ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"j")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k_{ij}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," and ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"K"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"f")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"K_{diff}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.969438em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07153em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))))))),"."),(0,n.kt)("p",null,"Note, these reactions can become ",(0,n.kt)("em",{parentName:"p"},"very")," fast at high temperatures and will eventually break the integrator with a careful, network depedent choice of tolerances. To avoid this, we stop all grain chemistry at MAX_GRAIN_TEMP in UCLCHEM which is set by default to 150 K. By this temperature, the ice will have almost entirely sublimated and so stopping the chemistry will have a negligible effect on abundances."),(0,n.kt)("h3",{id:"eley-rideal-mechanism"},"Eley-Rideal Mechanism"),(0,n.kt)("p",null,"Reactions that occur when a species colliding with a dust grain lands on a binding site occupied by another reactant are also included in UCLCHEM. They can be included in your grain file in the form,"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre"},"H,#CO,ER,#HCO,,,,alpha,0.0,gamma,,,\n")),(0,n.kt)("p",null,"and produce gas and grain surface products in the same way as the Langmuir-Hinshelwood reactions. These reactions have an ODE of the form"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"r"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"z"),(0,n.kt)("mi",{parentName:"mrow"},"e"))),(0,n.kt)("mi",{parentName:"mrow"},"exp"),(0,n.kt)("mo",{parentName:"mrow"},"\u2061"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"E")),(0,n.kt)("mi",{parentName:"mfrac"},"T")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("msub",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dn_s(i)}{dt} = -k_{i,freeze} \\exp(\\frac{-E}{T}) \\frac{n_s(j)}{n_{s}} n_s(i)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.263em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mpunct mtight"},","),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.02778em"}},"r"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.04398em"}},"z"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,n.kt)("span",{parentName:"span",className:"mop"},"exp"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05764em"}},"E")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,"where ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"r"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"z"),(0,n.kt)("mi",{parentName:"mrow"},"e")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k_{i,freeze}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mpunct mtight"},","),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.02778em"}},"r"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.04398em"}},"z"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the freeze out rate of the gas phase reactant (ie the rate at which it collides with the grains), ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"exp"),(0,n.kt)("mo",{parentName:"mrow"},"\u2061"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"E")),(0,n.kt)("mi",{parentName:"mfrac"},"T")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\exp(\\frac{-E}{T})")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"1.217331em",verticalAlign:"-0.345em"}}),(0,n.kt)("span",{parentName:"span",className:"mop"},"exp"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.872331em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.6550000000000002em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.13889em"}},"T")))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.394em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05764em"}},"E"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.345em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))," is the probability of a reaction occuring given the energy barrier, ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_s")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the total concentration of ice species, and therefore ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("msub",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"t"),(0,n.kt)("mi",{parentName:"mrow"},"o"),(0,n.kt)("mi",{parentName:"mrow"},"t"),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"l"))))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{n_s(j)}{n_{s,total}}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"1.55808em",verticalAlign:"-0.5480799999999999em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.01em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.6550000000000002em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3448em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3487714285714287em",marginLeft:"0em",marginRight:"0.07142857142857144em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.5em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mpunct mtight"},","),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.01968em"}},"l"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.29011428571428566em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.485em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.16454285714285719em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.357em",marginLeft:"0em",marginRight:"0.07142857142857144em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.5em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.143em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen mtight"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose mtight"},")"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.5480799999999999em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"}))))))," is the fraction of surface sites occupied by the surface reactant. This reduces to"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"r"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"z"),(0,n.kt)("mi",{parentName:"mrow"},"e"))),(0,n.kt)("mi",{parentName:"mrow"},"exp"),(0,n.kt)("mo",{parentName:"mrow"},"\u2061"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"E")),(0,n.kt)("mi",{parentName:"mfrac"},"T")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("msub",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dX_s(i)}{dt} = -k_{i,freeze} \\exp(\\frac{-E}{T}) \\frac{X_s(j)}{X_{s}} X_s(i)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.263em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mpunct mtight"},","),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.02778em"}},"r"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.04398em"}},"z"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,n.kt)("span",{parentName:"span",className:"mop"},"exp"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05764em"}},"E")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))))}o.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ccc49370.73dfd116.js b/assets/js/ccc49370.73dfd116.js new file mode 100644 index 00000000..ab49fceb --- /dev/null +++ b/assets/js/ccc49370.73dfd116.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6103],{5203:(e,t,n)=>{n.r(t),n.d(t,{default:()=>h});var a=n(7294),r=n(6010),l=n(1944),i=n(5281),o=n(9460),c=n(9058),s=n(756),m=n(7462),u=n(5999),d=n(2244);function v(e){var t=e.nextItem,n=e.prevItem;return a.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,u.I)({id:"theme.blog.post.paginator.navAriaLabel",message:"Blog post page navigation",description:"The ARIA label for the blog posts pagination"})},n&&a.createElement(d.Z,(0,m.Z)({},n,{subLabel:a.createElement(u.Z,{id:"theme.blog.post.paginator.newerPost",description:"The blog post button label to navigate to the newer/previous post"},"Newer Post")})),t&&a.createElement(d.Z,(0,m.Z)({},t,{subLabel:a.createElement(u.Z,{id:"theme.blog.post.paginator.olderPost",description:"The blog post button label to navigate to the older/next post"},"Older Post"),isNext:!0})))}function f(){var e,t=(0,o.C)(),n=t.assets,r=t.metadata,i=r.title,c=r.description,s=r.date,m=r.tags,u=r.authors,d=r.frontMatter,v=d.keywords,f=null!=(e=n.image)?e:d.image;return a.createElement(l.d,{title:i,description:c,keywords:v,image:f},a.createElement("meta",{property:"og:type",content:"article"}),a.createElement("meta",{property:"article:published_time",content:s}),u.some((function(e){return e.url}))&&a.createElement("meta",{property:"article:author",content:u.map((function(e){return e.url})).filter(Boolean).join(",")}),m.length>0&&a.createElement("meta",{property:"article:tag",content:m.map((function(e){return e.label})).join(",")}))}var g=n(9407);function p(e){var t=e.sidebar,n=e.children,r=(0,o.C)(),l=r.metadata,i=r.toc,m=l.nextItem,u=l.prevItem,d=l.frontMatter,f=d.hide_table_of_contents,p=d.toc_min_heading_level,h=d.toc_max_heading_level;return a.createElement(c.Z,{sidebar:t,toc:!f&&i.length>0?a.createElement(g.Z,{toc:i,minHeadingLevel:p,maxHeadingLevel:h}):void 0},a.createElement(s.Z,null,n),(m||u)&&a.createElement(v,{nextItem:m,prevItem:u}))}function h(e){var t=e.content;return a.createElement(o.n,{content:e.content,isBlogPostPage:!0},a.createElement(l.FG,{className:(0,r.Z)(i.k.wrapper.blogPages,i.k.page.blogPostPage)},a.createElement(f,null),a.createElement(p,{sidebar:e.sidebar},a.createElement(t,null))))}},9407:(e,t,n)=>{n.d(t,{Z:()=>m});var a=n(7462),r=n(3366),l=n(7294),i=n(6010),o=n(3743);const c="tableOfContents_bqdL";var s=["className"];function m(e){var t=e.className,n=(0,r.Z)(e,s);return l.createElement("div",{className:(0,i.Z)(c,"thin-scrollbar",t)},l.createElement(o.Z,(0,a.Z)({},n,{linkClassName:"table-of-contents__link toc-highlight",linkActiveClassName:"table-of-contents__link--active"})))}},3743:(e,t,n)=>{n.d(t,{Z:()=>h});var a=n(7462),r=n(3366),l=n(7294),i=n(6668),o=["parentIndex"];function c(e){var t=e.map((function(e){return Object.assign({},e,{parentIndex:-1,children:[]})})),n=Array(7).fill(-1);t.forEach((function(e,t){var a=n.slice(2,e.level);e.parentIndex=Math.max.apply(Math,a),n[e.level]=t}));var a=[];return t.forEach((function(e){var n=e.parentIndex,l=(0,r.Z)(e,o);n>=0?t[n].children.push(l):a.push(l)})),a}function s(e){var t=e.toc,n=e.minHeadingLevel,a=e.maxHeadingLevel;return t.flatMap((function(e){var t=s({toc:e.children,minHeadingLevel:n,maxHeadingLevel:a});return function(e){return e.level>=n&&e.level<=a}(e)?[Object.assign({},e,{children:t})]:t}))}function m(e){var t=e.getBoundingClientRect();return t.top===t.bottom?m(e.parentNode):t}function u(e,t){var n,a,r=t.anchorTopOffset,l=e.find((function(e){return m(e).top>=r}));return l?function(e){return e.top>0&&e.bottom{a.d(t,{Z:()=>h});var l=a(3366),n=a(7294),r=a(6010),i=a(2600),o=a(9960);const s="sidebar_a9qW",m="sidebarItemTitle_uKok",c="sidebarItemList_Kvuv",d="sidebarItem_CF0Q",g="sidebarItemLink_miNk",u="sidebarItemLinkActive_RRTD";var p=a(5999);function v(e){var t=e.sidebar;return 0===t.items.length?null:n.createElement("nav",{className:(0,r.Z)(s,"thin-scrollbar"),"aria-label":(0,p.I)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"})},n.createElement("div",{className:(0,r.Z)(m,"margin-bottom--md")},t.title),n.createElement("ul",{className:c},t.items.map((function(e){return n.createElement("li",{key:e.permalink,className:d},n.createElement(o.Z,{isNavLink:!0,to:e.permalink,className:g,activeClassName:u},e.title))}))))}var b=["sidebar","toc","children"];function h(e){var t=e.sidebar,a=e.toc,o=e.children,s=(0,l.Z)(e,b),m=t&&t.items.length>0;return n.createElement(i.Z,s,n.createElement("div",{className:"container margin-vert--lg"},n.createElement("div",{className:"row"},m&&n.createElement("aside",{className:"col col--3"},n.createElement(v,{sidebar:t})),n.createElement("main",{className:(0,r.Z)("col",{"col--7":m,"col--9 col--offset-1":!m}),itemScope:!0,itemType:"http://schema.org/Blog"},o),a&&n.createElement("div",{className:"col col--2"},a))))}},8561:(e,t,a)=>{a.d(t,{Z:()=>k});var l=a(7294),n=a(6010),r=a(5999),i=a(9960),o=a(4996),s=a(2662),m=a(8780),c=a(2708),d=a(6753);const g="blogPostTitle_rzP5",u="blogPostData_Zg1s",p="blogPostDetailsFull_h6_j";var v=a(8727);const b="image_o0gy";function h(e){return e.href?l.createElement(i.Z,e):l.createElement(l.Fragment,null,e.children)}function E(e){var t=e.author,a=t.name,n=t.title,r=t.url,i=t.imageURL,o=t.email,s=r||o&&"mailto:"+o||void 0;return l.createElement("div",{className:"avatar margin-bottom--sm"},i&&l.createElement("span",{className:"avatar__photo-link avatar__photo"},l.createElement(h,{href:s},l.createElement("img",{className:b,src:i,alt:a}))),a&&l.createElement("div",{className:"avatar__intro",itemProp:"author",itemScope:!0,itemType:"https://schema.org/Person"},l.createElement("div",{className:"avatar__name"},l.createElement(h,{href:s,itemProp:"url"},l.createElement("span",{itemProp:"name"},a))),n&&l.createElement("small",{className:"avatar__subtitle",itemProp:"description"},n)))}const f="authorCol_FlmR",N="imageOnlyAuthorRow_trpF",_="imageOnlyAuthorCol_S2np";function Z(e){var t=e.authors,a=e.assets;if(0===t.length)return null;var r=t.every((function(e){return!e.name}));return l.createElement("div",{className:(0,n.Z)("margin-top--md margin-bottom--sm",r?N:"row")},t.map((function(e,t){var i;return l.createElement("div",{className:(0,n.Z)(!r&&"col col--6",r?_:f),key:t},l.createElement(E,{author:Object.assign({},e,{imageURL:null!=(i=a.authorsImageUrls[t])?i:e.imageURL})}))})))}function k(e){var t,a,b=(a=(0,s.c2)().selectMessage,function(e){var t=Math.ceil(e);return a(t,(0,r.I)({id:"theme.blog.post.readingTime.plurals",description:'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One min read|{readingTime} min read"},{readingTime:t}))}),h=(0,o.C)().withBaseUrl,E=e.children,f=e.frontMatter,N=e.assets,_=e.metadata,k=e.truncated,P=e.isBlogPostPage,L=void 0!==P&&P,C=_.date,y=_.formattedDate,I=_.permalink,T=_.tags,w=_.readingTime,x=_.title,A=_.editUrl,H=_.authors,M=null!=(t=N.image)?t:f.image,R=!L&&k,B=T.length>0,U=L?"h1":"h2";return l.createElement("article",{className:L?void 0:"margin-bottom--xl",itemProp:"blogPost",itemScope:!0,itemType:"http://schema.org/BlogPosting"},l.createElement("header",null,l.createElement(U,{className:g,itemProp:"headline"},L?x:l.createElement(i.Z,{itemProp:"url",to:I},x)),l.createElement("div",{className:(0,n.Z)(u,"margin-vert--md")},l.createElement("time",{dateTime:C,itemProp:"datePublished"},y),void 0!==w&&l.createElement(l.Fragment,null," \xb7 ",b(w))),l.createElement(Z,{authors:H,assets:N})),M&&l.createElement("meta",{itemProp:"image",content:h(M,{absolute:!0})}),l.createElement("div",{id:L?m.blogPostContainerID:void 0,className:"markdown",itemProp:"articleBody"},l.createElement(c.Z,null,E)),(B||k)&&l.createElement("footer",{className:(0,n.Z)("row docusaurus-mt-lg",L&&p)},B&&l.createElement("div",{className:(0,n.Z)("col",{"col--9":R})},l.createElement(v.Z,{tags:T})),L&&A&&l.createElement("div",{className:"col margin-top--sm"},l.createElement(d.Z,{editUrl:A})),R&&l.createElement("div",{className:(0,n.Z)("col text--right",{"col--3":B})},l.createElement(i.Z,{to:_.permalink,"aria-label":(0,r.I)({message:"Read more about {title}",id:"theme.blog.post.readMoreLabel",description:"The ARIA label for the link to full blog posts from excerpts"},{title:x})},l.createElement("b",null,l.createElement(r.Z,{id:"theme.blog.post.readMore",description:"The label used in blog post item excerpts to link to full blog posts"},"Read More"))))))}},9360:(e,t,a)=>{a.r(t),a.d(t,{default:()=>v});var l=a(7294),n=a(8665),r=a(8561),i=a(7462),o=a(5999),s=a(1750);function m(e){var t=e.nextItem,a=e.prevItem;return l.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,o.I)({id:"theme.blog.post.paginator.navAriaLabel",message:"Blog post page navigation",description:"The ARIA label for the blog posts pagination"})},l.createElement("div",{className:"pagination-nav__item"},a&&l.createElement(s.Z,(0,i.Z)({},a,{subLabel:l.createElement(o.Z,{id:"theme.blog.post.paginator.newerPost",description:"The blog post button label to navigate to the newer/previous post"},"Newer Post")}))),l.createElement("div",{className:"pagination-nav__item pagination-nav__item--next"},t&&l.createElement(s.Z,(0,i.Z)({},t,{subLabel:l.createElement(o.Z,{id:"theme.blog.post.paginator.olderPost",description:"The blog post button label to navigate to the older/next post"},"Older Post")}))))}var c=a(2662),d=a(1575),g=a(6010);function u(e){var t,a=e.content,n=a.assets,r=a.metadata,i=r.title,o=r.description,s=r.date,m=r.tags,d=r.authors,g=r.frontMatter,u=g.keywords,p=null!=(t=n.image)?t:g.image;return l.createElement(c.d,{title:i,description:o,keywords:u,image:p},l.createElement("meta",{property:"og:type",content:"article"}),l.createElement("meta",{property:"article:published_time",content:s}),d.some((function(e){return e.url}))&&l.createElement("meta",{property:"article:author",content:d.map((function(e){return e.url})).filter(Boolean).join(",")}),m.length>0&&l.createElement("meta",{property:"article:tag",content:m.map((function(e){return e.label})).join(",")}))}function p(e){var t=e.content,a=e.sidebar,i=t.assets,o=t.metadata,s=o.nextItem,c=o.prevItem,g=o.frontMatter,u=g.hide_table_of_contents,p=g.toc_min_heading_level,v=g.toc_max_heading_level;return l.createElement(n.Z,{sidebar:a,toc:!u&&t.toc&&t.toc.length>0?l.createElement(d.Z,{toc:t.toc,minHeadingLevel:p,maxHeadingLevel:v}):void 0},l.createElement(r.Z,{frontMatter:g,assets:i,metadata:o,isBlogPostPage:!0},l.createElement(t,null)),(s||c)&&l.createElement(m,{nextItem:s,prevItem:c}))}function v(e){return l.createElement(c.FG,{className:(0,g.Z)(c.kM.wrapper.blogPages,c.kM.page.blogPostPage)},l.createElement(u,e),l.createElement(p,e))}},1575:(e,t,a)=>{a.d(t,{Z:()=>c});var l=a(7462),n=a(3366),r=a(7294),i=a(6010),o=a(5002);const s="tableOfContents_cNA8";var m=["className"];function c(e){var t=e.className,a=(0,n.Z)(e,m);return r.createElement("div",{className:(0,i.Z)(s,"thin-scrollbar",t)},r.createElement(o.Z,(0,l.Z)({},a,{linkClassName:"table-of-contents__link toc-highlight",linkActiveClassName:"table-of-contents__link--active"})))}},5002:(e,t,a)=>{a.d(t,{Z:()=>m});var l=a(7462),n=a(3366),r=a(7294),i=a(2662),o=["toc","className","linkClassName","linkActiveClassName","minHeadingLevel","maxHeadingLevel"];function s(e){var t=e.toc,a=e.className,l=e.linkClassName,n=e.isChild;return t.length?r.createElement("ul",{className:n?void 0:a},t.map((function(e){return r.createElement("li",{key:e.id},r.createElement("a",{href:"#"+e.id,className:null!=l?l:void 0,dangerouslySetInnerHTML:{__html:e.value}}),r.createElement(s,{isChild:!0,toc:e.children,className:a,linkClassName:l}))}))):null}function m(e){var t=e.toc,a=e.className,m=void 0===a?"table-of-contents table-of-contents__left-border":a,c=e.linkClassName,d=void 0===c?"table-of-contents__link":c,g=e.linkActiveClassName,u=void 0===g?void 0:g,p=e.minHeadingLevel,v=e.maxHeadingLevel,b=(0,n.Z)(e,o),h=(0,i.LU)(),E=null!=p?p:h.tableOfContents.minHeadingLevel,f=null!=v?v:h.tableOfContents.maxHeadingLevel,N=(0,i.b9)({toc:t,minHeadingLevel:E,maxHeadingLevel:f}),_=(0,r.useMemo)((function(){if(d&&u)return{linkClassName:d,linkActiveClassName:u,minHeadingLevel:E,maxHeadingLevel:f}}),[d,u,E,f]);return(0,i.Si)(_),r.createElement(s,(0,l.Z)({toc:N,className:m,linkClassName:d},b))}}}]); \ No newline at end of file diff --git a/assets/js/d226c097.bffb69f2.js b/assets/js/d226c097.bffb69f2.js new file mode 100644 index 00000000..77286439 --- /dev/null +++ b/assets/js/d226c097.bffb69f2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6742],{3905:(e,a,t)=>{t.d(a,{Zo:()=>l,kt:()=>d});var s=t(7294);function n(e,a,t){return a in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}function r(e,a){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);a&&(s=s.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),t.push.apply(t,s)}return t}function i(e){for(var a=1;a=0||(n[t]=e[t]);return n}(e,a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(n[t]=e[t])}return n}var o=s.createContext({}),p=function(e){var a=s.useContext(o),t=a;return e&&(t="function"==typeof e?e(a):i(i({},a),e)),t},l=function(e){var a=p(e.components);return s.createElement(o.Provider,{value:a},e.children)},c={inlineCode:"code",wrapper:function(e){var a=e.children;return s.createElement(s.Fragment,{},a)}},h=s.forwardRef((function(e,a){var t=e.components,n=e.mdxType,r=e.originalType,o=e.parentName,l=m(e,["components","mdxType","originalType","parentName"]),h=p(t),d=n,k=h["".concat(o,".").concat(d)]||h[d]||c[d]||r;return t?s.createElement(k,i(i({ref:a},l),{},{components:t})):s.createElement(k,i({ref:a},l))}));function d(e,a){var t=arguments,n=a&&a.mdxType;if("string"==typeof e||n){var r=t.length,i=new Array(r);i[0]=h;var m={};for(var o in a)hasOwnProperty.call(a,o)&&(m[o]=a[o]);m.originalType=e,m.mdxType="string"==typeof e?e:n,i[1]=m;for(var p=2;p{t.r(a),t.d(a,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>m,metadata:()=>p,toc:()=>c});var s=t(7462),n=t(3366),r=(t(7294),t(3905)),i=["components"],m={id:"physics-shocks",title:"Shock Models"},o=void 0,p={unversionedId:"physics-shocks",id:"version-v3.2.0/physics-shocks",title:"Shock Models",description:"Main Contributors: Izaskun Jimenez-Serra, Tom James, Jon Holdship",source:"@site/versioned_docs/version-v3.2.0/physics-shocks.md",sourceDirName:".",slug:"/physics-shocks",permalink:"/docs/physics-shocks",draft:!1,tags:[],version:"v3.2.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"physics-shocks",title:"Shock Models"},sidebar:"docs",previous:{title:"Hot Core",permalink:"/docs/physics-hotcore"},next:{title:"Collapse Models",permalink:"/docs/physics-collapse"}},l={},c=[{value:"Shock Profiles",id:"shock-profiles",level:2},{value:"C-Shocks",id:"c-shocks",level:3},{value:"J-shocks",id:"j-shocks",level:3},{value:"Dimensions",id:"dimensions",level:2},{value:"Sputtering",id:"sputtering",level:2}],h={toc:c};function d(e){var a=e.components,t=(0,n.Z)(e,i);return(0,r.kt)("wrapper",(0,s.Z)({},h,t,{components:a,mdxType:"MDXLayout"}),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Main Contributors"),": Izaskun Jimenez-Serra, Tom James, Jon Holdship"),(0,r.kt)("h2",{id:"shock-profiles"},"Shock Profiles"),(0,r.kt)("p",null,"UCLCHEM uses two different shock parameterizations. These provide the physical properties of a gas through time as it is subjected to a shock. Whilst the most accurate MHD shock models solve the chemistry, MHD and radiative transfer problems simulataneously, few of these models include chemistry as detailed as UCLCHEM. We assume that the MHD models on which our parameterizations were validated used detailed enough chemistry that the shock profiles could be accurately calculated. This means that more detailed chemistry can be safely post-processed using UCLCHEM, a parameterization simply means the user can select parameters freely rather than from a preset selection of profiles from another code such as ",(0,r.kt)("a",{parentName:"p",href:"http://cdsads.u-strasbg.fr/abs/2015A&A...578A..63F"},"MHDvode"),"."),(0,r.kt)("h3",{id:"c-shocks"},"C-Shocks"),(0,r.kt)("p",null,"The C-shock is based on the parameterization by ",(0,r.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1051/0004-6361:20078054"},"Jimenez-Serra et al. 2008"),". It parameterizes the density, temperature and velocity profiles of c-shocks as a function of shock velocity, initial gas density and magnetic field. These were validated against the results of the detailed shock modelling of ",(0,r.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1046/j.1365-8711.2003.06716.x"},"Flower et al. 2003"),". Details of it's use can be found in ",(0,r.kt)("a",{parentName:"p",href:"/docs/pythonapi#uclchem.model.cshock"},"the c-shock function docs"),"."),(0,r.kt)("p",null,"A key value in this model is the dissipation length, which is the distance over which the velocity of the ions and the neutrals equalizes. In some sense, this is the extent of the C-shock, although post-shock cooling does continue for some distance after. The C-shock function will return the dissipation time (see ",(0,r.kt)("a",{parentName:"p",href:"/docs/physics-shocks#dimensions"},"below"),") and will also uses shorter timesteps for a number of years equal to twice the dissipation time in order to fully resolve the shock. The number of these time steps is controlled by an optional parameter."),(0,r.kt)("h3",{id:"j-shocks"},"J-shocks"),(0,r.kt)("p",null,"jshock is a similar parameterization for j-shocks from ",(0,r.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1051/0004-6361/201936536"},"James et al.")," validated against more recent results from MHDvode (",(0,r.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1051/0004-6361/201525740"},"Flower et al. 2015"),"). See the ",(0,r.kt)("a",{parentName:"p",href:"/docs/pythonapi#uclchem.model.jshock"},"j-shock function docs")," for details."),(0,r.kt)("h2",{id:"dimensions"},"Dimensions"),(0,r.kt)("p",null,"Both shock models are intended to be run as single point models only and the code will return an error for ",(0,r.kt)("inlineCode",{parentName:"p"},"points > 1"),". However, you can look at the 1D profile of a shock by converting between time and distance. If we assume the shock is stationary, that is that it's structure is unchanged as it moves through a cloud of gas, then the points that are far away in time are the same as those far away in space."),(0,r.kt)("img",{src:"/img/shock.png",width:"600","margin-left":"40%"}),(0,r.kt)("p",null,"As an illustration, as a shock front moves through a cloud and first hits a parcel of gas, this is t=0 in our shock model output. 5000 years later, the shock front has moved on, thus the output of UCLCHEM at t=5000 years is the state of a parcel of gas that was first hit 5000 years ago and is now far behind the shock front."),(0,r.kt)("p",null,"By using the shock velocity, you can translate 5000 years to the distance between the parcel that was shocked 5000 years ago and the parcel that is just being reached by the shock front,"),(0,r.kt)("div",{className:"math math-display"},(0,r.kt)("span",{parentName:"div",className:"katex-display"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("mi",{parentName:"mrow"},"z"),(0,r.kt)("mo",{parentName:"mrow"},"="),(0,r.kt)("msub",{parentName:"mrow"},(0,r.kt)("mi",{parentName:"msub"},"v"),(0,r.kt)("mi",{parentName:"msub"},"s")),(0,r.kt)("mi",{parentName:"mrow"},"t")),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"z= v_s t")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.43056em",verticalAlign:"0em"}}),(0,r.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.04398em"}},"z"),(0,r.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,r.kt)("span",{parentName:"span",className:"mrel"},"="),(0,r.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.76508em",verticalAlign:"-0.15em"}}),(0,r.kt)("span",{parentName:"span",className:"mord"},(0,r.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03588em"}},"v"),(0,r.kt)("span",{parentName:"span",className:"msupsub"},(0,r.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,r.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03588em",marginRight:"0.05em"}},(0,r.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,r.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,r.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,r.kt)("span",{parentName:"span"})))))),(0,r.kt)("span",{parentName:"span",className:"mord mathnormal"},"t")))))),(0,r.kt)("p",null,"Thus the history of a single point in a shocked cloud that is output by UCLCHEM can also be translated to a snapshot of a cloud that covers distance z."),(0,r.kt)("h2",{id:"sputtering"},"Sputtering"),(0,r.kt)("p",null,"The C-shock model uses the sputtering process described by ",(0,r.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1051/0004-6361:20078054"},"Jimenez-Serra et al. 2008"),". Briefly, we calculate the average energy imparted on the grains from a collision between the shocked gas and the grains. We then combine this with the collision rate and average yield for a given energy to calculate the sputtering rate which we integrate through time. In practice, this sputtering is so quick that it happens almost instantaneously at ",(0,r.kt)("span",{parentName:"p",className:"math math-inline"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("msub",{parentName:"mrow"},(0,r.kt)("mi",{parentName:"msub"},"t"),(0,r.kt)("mrow",{parentName:"msub"},(0,r.kt)("mi",{parentName:"mrow"},"s"),(0,r.kt)("mi",{parentName:"mrow"},"a"),(0,r.kt)("mi",{parentName:"mrow"},"t")))),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"t_{sat}")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.76508em",verticalAlign:"-0.15em"}}),(0,r.kt)("span",{parentName:"span",className:"mord"},(0,r.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"),(0,r.kt)("span",{parentName:"span",className:"msupsub"},(0,r.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.2805559999999999em"}},(0,r.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,r.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,r.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,r.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,r.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"))))),(0,r.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,r.kt)("span",{parentName:"span"})))))))))),", the saturation time. This is the time at which the silicon abundance stops increasing in more detailed models, used as a proxy for when the ices are fully sputtered. Thus it is likely that you will see a step change in the ice abundances where sputtering has not occurred yet in one time step and is complete in the second unless your timestep is very small."),(0,r.kt)("p",null,"The J-shock would begin with ",(0,r.kt)("span",{parentName:"p",className:"math math-inline"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("msub",{parentName:"mrow"},(0,r.kt)("mi",{parentName:"msub"},"V"),(0,r.kt)("mi",{parentName:"msub"},"s"))),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"V_s")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,r.kt)("span",{parentName:"span",className:"mord"},(0,r.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.22222em"}},"V"),(0,r.kt)("span",{parentName:"span",className:"msupsub"},(0,r.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,r.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.22222em",marginRight:"0.05em"}},(0,r.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,r.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,r.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,r.kt)("span",{parentName:"span"}))))))))))," as the initial drift velocity of the sputtering routine described above and would instantaneously sputter at t = 0 yr. Furthermore, temperatures typically reach a minimum of 1000 K meaning the thermal sublimation is almost complete. Thus, we do not need to worry about the sputtering process in the J-shock, we simply remove all grain material and add it to the gas at t = 0 yr."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d26b1119.a5a3956a.js b/assets/js/d26b1119.a5a3956a.js new file mode 100644 index 00000000..39c9ba4b --- /dev/null +++ b/assets/js/d26b1119.a5a3956a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3053],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var s=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,s)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=s.createContext({}),p=function(e){var t=s.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},c=function(e){var t=p(e.components);return s.createElement(l.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return s.createElement(s.Fragment,{},t)}},u=s.forwardRef((function(e,t){var a=e.components,n=e.mdxType,r=e.originalType,l=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),u=p(a),h=n,d=u["".concat(l,".").concat(h)]||u[h]||m[h]||r;return a?s.createElement(d,i(i({ref:t},c),{},{components:a})):s.createElement(d,i({ref:t},c))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=a.length,i=new Array(r);i[0]=u;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o.mdxType="string"==typeof e?e:n,i[1]=o;for(var p=2;p{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>o,metadata:()=>p,toc:()=>m});var s=a(7462),n=a(3366),r=(a(7294),a(3905)),i=["components"],o={id:"network",title:"Creating a Network"},l=void 0,p={unversionedId:"network",id:"network",title:"Creating a Network",description:"MakeRates",source:"@site/docs/start-network.md",sourceDirName:".",slug:"/network",permalink:"/docs/next/network",draft:!1,tags:[],version:"current",lastUpdatedBy:"jonholdship",lastUpdatedAt:1653303814,formattedLastUpdatedAt:"May 23, 2022",frontMatter:{id:"network",title:"Creating a Network"},sidebar:"docs",previous:{title:"Installation",permalink:"/docs/next/"},next:{title:"Model Parameters",permalink:"/docs/next/parameters"}},c={},m=[{value:"MakeRates",id:"makerates",level:2},{value:"Input",id:"input",level:2},{value:"Default Network",id:"default-network",level:2},{value:"Outputs",id:"outputs",level:2},{value:"What MakeRates Does",id:"what-makerates-does",level:2},{value:"Creating your own Network",id:"creating-your-own-network",level:2},{value:"Species list",id:"species-list",level:4},{value:"Reaction list",id:"reaction-list",level:4},{value:"Three Phase Chemistry",id:"three-phase-chemistry",level:2}],u={toc:m};function h(e){var t=e.components,a=(0,n.Z)(e,i);return(0,r.kt)("wrapper",(0,s.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"makerates"},"MakeRates"),(0,r.kt)("p",null,"In order to make a chemical model flexible, the ability to solve a user supplied chemical network is a must. UCLCHEM uses a preprocessing python script to turn csv lists of species and reactions into fortran files for use in the main code. This script is called MakeRates and can be found in the Makerates subdirectory of the repository. It combines a gas phase reaction database with user supplied lists of species and additional reactions into the necessary Fortran code to run UCLCHEM. It also supplies a number of human readable outputs."),(0,r.kt)("p",null,"In the sections below, we discuss how to build your network and set the inputs for MakeRates but once that is done, you can run MakeRates with the following commands:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"cd MakeRates\npython MakeRates.py\ncd ..\npip install .\n")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Note the pip install at the end of the process. Any output from MakeRates requires that the code be recompiled because MakeRates produces new source code for UCLCHEM!")),(0,r.kt)("h2",{id:"input"},"Input"),(0,r.kt)("p",null,"Makerates is controlled using a yaml file ",(0,r.kt)("inlineCode",{parentName:"p"},"Makerates/user_settings.yaml"),". By changing the values in this file, you can create different networks. The default values of this file are copied below."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"#Your list of all species\nspecies_file : inputFiles/default_species.csv\n\n#core reactions from gas phase database\ndatabase_reaction_file : inputFiles/umist12-ucledit.csv\ndatabase_reaction_type : UMIST\n\n#set of additional reactions: eg grain network\ncustom_reaction_file : inputFiles/default_grain_network.csv\ncustom_reaction_type : UCL\n\n#whether to automatically expand to three phase network\nthree_phase : True\n")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"species_file")," is a csv list of species and their properties. We provide a default list and detailed instructions below."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"database_reaction_file")," is your first reaction file, we expect most users to use UMIST12 or KIDA2014 for this but you could create your own file from an alternative database. Makerates can read files formatted in the same manner as the UMIST or KIDA databases as well as our own simple csv format, the ",(0,r.kt)("inlineCode",{parentName:"p"},"database_reaction_type")," setting lets MakeRates know which and should be set to 'UMIST', 'KIDA', or 'UCL'."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"custom_reaction_file")," is an additional reaction file. In the example file, we include all of our grain surface reactions which is the intended use of this file. "),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"three_phase")," is a toggle that tells MakeRates whether to automatically expand your network into a three phase model."),(0,r.kt)("h2",{id:"default-network"},"Default Network"),(0,r.kt)("p",null,"A basic version of each of the required file is supplied in the repository. The network that MakeRates produces from those files is also include in the source code so that a new user who simply installs UCLCHEM without running MakeRates will be using our default network. These default files serve largely as examples of how the files should be formatted and we also describe each one below so that the user can produce their own network."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"We do not endorse the default network"),", we have simply produced a grain surface network that was relatively up to date in 2018. It produces reasonable ice mantle abundances for major species and ignores larger COMs. We strongly suggest any published work be based on a network in which the user has confidence. However, where the user is not greatly concerned with grain surface chemistry, the default network is a good starting point."),(0,r.kt)("h2",{id:"outputs"},"Outputs"),(0,r.kt)("p",null,"Outputs from MakeRates are automatically moved to the ",(0,r.kt)("inlineCode",{parentName:"p"},"src/")," directory so the user can ",(0,r.kt)("inlineCode",{parentName:"p"},"pip install .")," and update their installation of UCLCHEM to use their new network. However, by adding the parameter ",(0,r.kt)("inlineCode",{parentName:"p"},"output_directory")," to the yaml file, you can have all the files moved to a directory instead without copying them to your UCLCHEM src folder. If you do, the following files will be produced:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"network.f90 - Fortran arrays containing lists of species names and properties (mass, binding energy etc) as well as reaction reactants, products and rate coefficients."),(0,r.kt)("li",{parentName:"ul"},"odes.f90 - Code to calculate the rate of change of each species' abundance for the numerical solver"),(0,r.kt)("li",{parentName:"ul"},"species.csv - A list of all species in the network and their properties. Made for humans not UCLCHEM."),(0,r.kt)("li",{parentName:"ul"},"reactions.csv - A list of all reactions including reactants, products and coefficients. Made for humans not UCLCHEM.")),(0,r.kt)("h2",{id:"what-makerates-does"},"What MakeRates Does"),(0,r.kt)("p",null,"MakeRates does the following:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Combines the two input reaction lists"),(0,r.kt)("li",{parentName:"ul"},"Filters to remove any reactions containing species not in the input species list"),(0,r.kt)("li",{parentName:"ul"},"Adds freeze out and desorption reactions for all species"),(0,r.kt)("li",{parentName:"ul"},"Creates branching reactions for Langmuir-Hinshelwood and Eley-Rideal reactions where products chemically desorb"),(0,r.kt)("li",{parentName:"ul"},"Optionally: creates additional reactions and species needed for a three phase network"),(0,r.kt)("li",{parentName:"ul"},"Does basic network consistency checks and alerts user of problems"),(0,r.kt)("li",{parentName:"ul"},"Writes fortran files for UCLCHEM"),(0,r.kt)("li",{parentName:"ul"},"Writes other output files")),(0,r.kt)("h2",{id:"creating-your-own-network"},"Creating your own Network"),(0,r.kt)("p",null,"To create your own network you need to produce a species list and a reaction list."),(0,r.kt)("h4",{id:"species-list"},"Species list"),(0,r.kt)("p",null,"The species list should simply be a list with one row per species in the network. Each row should contain the species name, mass, binding energy and enthalpy of formation. The latter two are only used for surface species so can be set to zero for the gas phase species. MakeRates will check the mass is correct for each species and alert you of discrepancies."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"C,12,0,0,0,0,0\n#CH4,16,960,0,0.7,0.667,-15.9\n")),(0,r.kt)("p",null,"In the above example, C is a gas phase species so we have set the mass but ignored the other variables. #CH4 is methane in the ice so we have additionally set a binding energy of 960 K and enthalpy of formation of -15.9 kcal/mol. The other three values (0, 0.7, 0.667) are desorption fractions that three phase chemistry networks ignore. For two phase networks, we mimic the multiple desorption events seen in TPD experiments by setting these fractions. See ",(0,r.kt)("a",{parentName:"p",href:"https://ui.adsabs.harvard.edu/abs/2004MNRAS.354.1141V/abstract"},"Viti et al. 2004")," for more information."),(0,r.kt)("p",null,"The enthalpy of formation for essentially any species can be found in chemical databases such as the ",(0,r.kt)("a",{parentName:"p",href:"https://webbook.nist.gov/"},"NIST web book"),". They're usually in kj/mol but the conversion to kcal/mol is easy enough and NIST has an option to switch values to kcal. A fantastic resource for binding energies is ",(0,r.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1016/j.molap.2017.01.002"},"Wakelam et al. 2017")," but these are harder to find in general. In the absolute worse case, you can sum up the binding energies of sub-groups in your molecule but this is pretty inaccurate."),(0,r.kt)("h4",{id:"reaction-list"},"Reaction list"),(0,r.kt)("p",null,"The second reaction list is intended to contain your surface network but can also be used to augment the gas phase databases by including additional gas phase reactions. The reaction list should be a list with one row per reaction and each row should be a comma separated list of 3 reactants, 4 products, three coefficients (alpha,beta,gamma) and a minimum and maximum temperature. Any missing values such as a third reactant can be left blank. In particular, the temperatures are optional but can be useful when you include multiple versions of the same reaction. In that case, UCLCHEM will only use each one within its specified temperature range."),(0,r.kt)("p",null,"The third reactant can be used as a keyword to tell MakeRates what kind of reaction is occuring. In the absence of a keyword, MakeRates and UCLCHEM will treat any reaction as a gas-phase two body reaction. Two keywords the user may wish to use are ER and LH for Eley-Rideal and Langmuir-Hinshelwood reactions respectively (see ",(0,r.kt)("a",{parentName:"p",href:"grain/"},"Grain Chemisty"),"). If a keyword is not added, UCLCHEM will assume a reaction between two surface reactions follows a Kooji-Arrhenius equation."),(0,r.kt)("p",null,"Two other useful reactions types to include are FREEZE and DESORB. Makerates adds freeze out and desorption reactions for every species, assuming they remain unchanged by the process. For example, CO in the gas becomes #CO on the grain. If you would instead like to specify the products, you can include a reaction:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"H3O+,FREEZE,,#H2O,H,,,1,0,0,,,\n#HPN,DESORB,,HPN+,,,,1,0,0,,,\n")),(0,r.kt)("p",null,"which will override the desorption or freeze out products of a species. "),(0,r.kt)("h2",{id:"three-phase-chemistry"},"Three Phase Chemistry"),(0,r.kt)("p",null,"The input ",(0,r.kt)("inlineCode",{parentName:"p"},"three_phase")," controls whether the ices are treated as a single phase or the surface is treated separated to the bulk. If ",(0,r.kt)("inlineCode",{parentName:"p"},"three_phase")," is set to true, the chemical network will have gas, grain surface, and bulk ice chemistry. If ",(0,r.kt)("inlineCode",{parentName:"p"},"three_phase")," is set to false, the chemical network will have gas and grain surface chemistry."),(0,r.kt)("p",null,"When true, MakeRates will create the bulk ice chemistry by duplicating the surface species and reactions in your input files. The difference will be that, unless you specifically override the bulk binding energy, every species in the bulk has a binding energy equal to the H2O binding energy. It will also add terms to the ODEs to allow transfer between the bulk and the surface. See the chemistry sections for more information."),(0,r.kt)("p",null,'You can override the binding energy of material in the bulk by explicitly including the bulk species in your species file rather than allowing MakeRates to automatically add it. Bulk species are designated with an "@". For example, "H2O" is gas phase H',(0,r.kt)("span",{parentName:"p",className:"math math-inline"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("msub",{parentName:"mrow"},(0,r.kt)("mrow",{parentName:"msub"}),(0,r.kt)("mn",{parentName:"msub"},"2"))),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_2")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.45110799999999995em",verticalAlign:"-0.15em"}}),(0,r.kt)("span",{parentName:"span",className:"mord"},(0,r.kt)("span",{parentName:"span"}),(0,r.kt)("span",{parentName:"span",className:"msupsub"},(0,r.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,r.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,r.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,r.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,r.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,r.kt)("span",{parentName:"span"})))))))))),'O, "#H2O" is surface H',(0,r.kt)("span",{parentName:"p",className:"math math-inline"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("msub",{parentName:"mrow"},(0,r.kt)("mrow",{parentName:"msub"}),(0,r.kt)("mn",{parentName:"msub"},"2"))),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_2")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.45110799999999995em",verticalAlign:"-0.15em"}}),(0,r.kt)("span",{parentName:"span",className:"mord"},(0,r.kt)("span",{parentName:"span"}),(0,r.kt)("span",{parentName:"span",className:"msupsub"},(0,r.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,r.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,r.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,r.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,r.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,r.kt)("span",{parentName:"span"})))))))))),'O and "@H2O" is H',(0,r.kt)("span",{parentName:"p",className:"math math-inline"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("msub",{parentName:"mrow"},(0,r.kt)("mrow",{parentName:"msub"}),(0,r.kt)("mn",{parentName:"msub"},"2"))),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_2")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.45110799999999995em",verticalAlign:"-0.15em"}}),(0,r.kt)("span",{parentName:"span",className:"mord"},(0,r.kt)("span",{parentName:"span"}),(0,r.kt)("span",{parentName:"span",className:"msupsub"},(0,r.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,r.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,r.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,r.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,r.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,r.kt)("span",{parentName:"span"})))))))))),'O in the bulk. If you set the binding energy to "Inf", the species will not leave the grains during thermal desorption. This allows you to model refractory species in the bulk.'))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d26b1119.c9a58c02.js b/assets/js/d26b1119.c9a58c02.js deleted file mode 100644 index f65e3ff9..00000000 --- a/assets/js/d26b1119.c9a58c02.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3053],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>h});var s=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,s)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var l=s.createContext({}),p=function(e){var t=s.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},c=function(e){var t=p(e.components);return s.createElement(l.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return s.createElement(s.Fragment,{},t)}},u=s.forwardRef((function(e,t){var a=e.components,n=e.mdxType,r=e.originalType,l=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),u=p(a),h=n,d=u["".concat(l,".").concat(h)]||u[h]||m[h]||r;return a?s.createElement(d,i(i({ref:t},c),{},{components:a})):s.createElement(d,i({ref:t},c))}));function h(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=a.length,i=new Array(r);i[0]=u;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o.mdxType="string"==typeof e?e:n,i[1]=o;for(var p=2;p{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>o,metadata:()=>p,toc:()=>m});var s=a(7462),n=a(3366),r=(a(7294),a(3905)),i=["components"],o={id:"network",title:"Creating a Network"},l=void 0,p={unversionedId:"network",id:"network",title:"Creating a Network",description:"MakeRates",source:"@site/docs/start-network.md",sourceDirName:".",slug:"/network",permalink:"/docs/next/network",tags:[],version:"current",lastUpdatedBy:"jonholdship",lastUpdatedAt:1653303814,formattedLastUpdatedAt:"5/23/2022",frontMatter:{id:"network",title:"Creating a Network"},sidebar:"docs",previous:{title:"Installation",permalink:"/docs/next/"},next:{title:"Model Parameters",permalink:"/docs/next/parameters"}},c={},m=[{value:"MakeRates",id:"makerates",level:2},{value:"Input",id:"input",level:2},{value:"Default Network",id:"default-network",level:2},{value:"Outputs",id:"outputs",level:2},{value:"What MakeRates Does",id:"what-makerates-does",level:2},{value:"Creating your own Network",id:"creating-your-own-network",level:2},{value:"Species list",id:"species-list",level:4},{value:"Reaction list",id:"reaction-list",level:4},{value:"Three Phase Chemistry",id:"three-phase-chemistry",level:2}],u={toc:m};function h(e){var t=e.components,a=(0,n.Z)(e,i);return(0,r.kt)("wrapper",(0,s.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"makerates"},"MakeRates"),(0,r.kt)("p",null,"In order to make a chemical model flexible, the ability to solve a user supplied chemical network is a must. UCLCHEM uses a preprocessing python script to turn csv lists of species and reactions into fortran files for use in the main code. This script is called MakeRates and can be found in the Makerates subdirectory of the repository. It combines a gas phase reaction database with user supplied lists of species and additional reactions into the necessary Fortran code to run UCLCHEM. It also supplies a number of human readable outputs."),(0,r.kt)("p",null,"In the sections below, we discuss how to build your network and set the inputs for MakeRates but once that is done, you can run MakeRates with the following commands:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"cd MakeRates\npython MakeRates.py\ncd ..\npip install .\n")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Note the pip install at the end of the process. Any output from MakeRates requires that the code be recompiled because MakeRates produces new source code for UCLCHEM!")),(0,r.kt)("h2",{id:"input"},"Input"),(0,r.kt)("p",null,"Makerates is controlled using a yaml file ",(0,r.kt)("inlineCode",{parentName:"p"},"Makerates/user_settings.yaml"),". By changing the values in this file, you can create different networks. The default values of this file are copied below."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"#Your list of all species\nspecies_file : inputFiles/default_species.csv\n\n#core reactions from gas phase database\ndatabase_reaction_file : inputFiles/umist12-ucledit.csv\ndatabase_reaction_type : UMIST\n\n#set of additional reactions: eg grain network\ncustom_reaction_file : inputFiles/default_grain_network.csv\ncustom_reaction_type : UCL\n\n#whether to automatically expand to three phase network\nthree_phase : True\n")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"species_file")," is a csv list of species and their properties. We provide a default list and detailed instructions below."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"database_reaction_file")," is your first reaction file, we expect most users to use UMIST12 or KIDA2014 for this but you could create your own file from an alternative database. Makerates can read files formatted in the same manner as the UMIST or KIDA databases as well as our own simple csv format, the ",(0,r.kt)("inlineCode",{parentName:"p"},"database_reaction_type")," setting lets MakeRates know which and should be set to 'UMIST', 'KIDA', or 'UCL'."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"custom_reaction_file")," is an additional reaction file. In the example file, we include all of our grain surface reactions which is the intended use of this file. "),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"three_phase")," is a toggle that tells MakeRates whether to automatically expand your network into a three phase model."),(0,r.kt)("h2",{id:"default-network"},"Default Network"),(0,r.kt)("p",null,"A basic version of each of the required file is supplied in the repository. The network that MakeRates produces from those files is also include in the source code so that a new user who simply installs UCLCHEM without running MakeRates will be using our default network. These default files serve largely as examples of how the files should be formatted and we also describe each one below so that the user can produce their own network."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"We do not endorse the default network"),", we have simply produced a grain surface network that was relatively up to date in 2018. It produces reasonable ice mantle abundances for major species and ignores larger COMs. We strongly suggest any published work be based on a network in which the user has confidence. However, where the user is not greatly concerned with grain surface chemistry, the default network is a good starting point."),(0,r.kt)("h2",{id:"outputs"},"Outputs"),(0,r.kt)("p",null,"Outputs from MakeRates are automatically moved to the ",(0,r.kt)("inlineCode",{parentName:"p"},"src/")," directory so the user can ",(0,r.kt)("inlineCode",{parentName:"p"},"pip install .")," and update their installation of UCLCHEM to use their new network. However, by adding the parameter ",(0,r.kt)("inlineCode",{parentName:"p"},"output_directory")," to the yaml file, you can have all the files moved to a directory instead without copying them to your UCLCHEM src folder. If you do, the following files will be produced:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"network.f90 - Fortran arrays containing lists of species names and properties (mass, binding energy etc) as well as reaction reactants, products and rate coefficients."),(0,r.kt)("li",{parentName:"ul"},"odes.f90 - Code to calculate the rate of change of each species' abundance for the numerical solver"),(0,r.kt)("li",{parentName:"ul"},"species.csv - A list of all species in the network and their properties. Made for humans not UCLCHEM."),(0,r.kt)("li",{parentName:"ul"},"reactions.csv - A list of all reactions including reactants, products and coefficients. Made for humans not UCLCHEM.")),(0,r.kt)("h2",{id:"what-makerates-does"},"What MakeRates Does"),(0,r.kt)("p",null,"MakeRates does the following:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Combines the two input reaction lists"),(0,r.kt)("li",{parentName:"ul"},"Filters to remove any reactions containing species not in the input species list"),(0,r.kt)("li",{parentName:"ul"},"Adds freeze out and desorption reactions for all species"),(0,r.kt)("li",{parentName:"ul"},"Creates branching reactions for Langmuir-Hinshelwood and Eley-Rideal reactions where products chemically desorb"),(0,r.kt)("li",{parentName:"ul"},"Optionally: creates additional reactions and species needed for a three phase network"),(0,r.kt)("li",{parentName:"ul"},"Does basic network consistency checks and alerts user of problems"),(0,r.kt)("li",{parentName:"ul"},"Writes fortran files for UCLCHEM"),(0,r.kt)("li",{parentName:"ul"},"Writes other output files")),(0,r.kt)("h2",{id:"creating-your-own-network"},"Creating your own Network"),(0,r.kt)("p",null,"To create your own network you need to produce a species list and a reaction list."),(0,r.kt)("h4",{id:"species-list"},"Species list"),(0,r.kt)("p",null,"The species list should simply be a list with one row per species in the network. Each row should contain the species name, mass, binding energy and enthalpy of formation. The latter two are only used for surface species so can be set to zero for the gas phase species. MakeRates will check the mass is correct for each species and alert you of discrepancies."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"C,12,0,0,0,0,0\n#CH4,16,960,0,0.7,0.667,-15.9\n")),(0,r.kt)("p",null,"In the above example, C is a gas phase species so we have set the mass but ignored the other variables. #CH4 is methane in the ice so we have additionally set a binding energy of 960 K and enthalpy of formation of -15.9 kcal/mol. The other three values (0, 0.7, 0.667) are desorption fractions that three phase chemistry networks ignore. For two phase networks, we mimic the multiple desorption events seen in TPD experiments by setting these fractions. See ",(0,r.kt)("a",{parentName:"p",href:"https://ui.adsabs.harvard.edu/abs/2004MNRAS.354.1141V/abstract"},"Viti et al. 2004")," for more information."),(0,r.kt)("p",null,"The enthalpy of formation for essentially any species can be found in chemical databases such as the ",(0,r.kt)("a",{parentName:"p",href:"https://webbook.nist.gov/"},"NIST web book"),". They're usually in kj/mol but the conversion to kcal/mol is easy enough and NIST has an option to switch values to kcal. A fantastic resource for binding energies is ",(0,r.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1016/j.molap.2017.01.002"},"Wakelam et al. 2017")," but these are harder to find in general. In the absolute worse case, you can sum up the binding energies of sub-groups in your molecule but this is pretty inaccurate."),(0,r.kt)("h4",{id:"reaction-list"},"Reaction list"),(0,r.kt)("p",null,"The second reaction list is intended to contain your surface network but can also be used to augment the gas phase databases by including additional gas phase reactions. The reaction list should be a list with one row per reaction and each row should be a comma separated list of 3 reactants, 4 products, three coefficients (alpha,beta,gamma) and a minimum and maximum temperature. Any missing values such as a third reactant can be left blank. In particular, the temperatures are optional but can be useful when you include multiple versions of the same reaction. In that case, UCLCHEM will only use each one within its specified temperature range."),(0,r.kt)("p",null,"The third reactant can be used as a keyword to tell MakeRates what kind of reaction is occuring. In the absence of a keyword, MakeRates and UCLCHEM will treat any reaction as a gas-phase two body reaction. Two keywords the user may wish to use are ER and LH for Eley-Rideal and Langmuir-Hinshelwood reactions respectively (see ",(0,r.kt)("a",{parentName:"p",href:"grain/"},"Grain Chemisty"),"). If a keyword is not added, UCLCHEM will assume a reaction between two surface reactions follows a Kooji-Arrhenius equation."),(0,r.kt)("p",null,"Two other useful reactions types to include are FREEZE and DESORB. Makerates adds freeze out and desorption reactions for every species, assuming they remain unchanged by the process. For example, CO in the gas becomes #CO on the grain. If you would instead like to specify the products, you can include a reaction:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"H3O+,FREEZE,,#H2O,H,,,1,0,0,,,\n#HPN,DESORB,,HPN+,,,,1,0,0,,,\n")),(0,r.kt)("p",null,"which will override the desorption or freeze out products of a species. "),(0,r.kt)("h2",{id:"three-phase-chemistry"},"Three Phase Chemistry"),(0,r.kt)("p",null,"The input ",(0,r.kt)("inlineCode",{parentName:"p"},"three_phase")," controls whether the ices are treated as a single phase or the surface is treated separated to the bulk. If ",(0,r.kt)("inlineCode",{parentName:"p"},"three_phase")," is set to true, the chemical network will have gas, grain surface, and bulk ice chemistry. If ",(0,r.kt)("inlineCode",{parentName:"p"},"three_phase")," is set to false, the chemical network will have gas and grain surface chemistry."),(0,r.kt)("p",null,"When true, MakeRates will create the bulk ice chemistry by duplicating the surface species and reactions in your input files. The difference will be that, unless you specifically override the bulk binding energy, every species in the bulk has a binding energy equal to the H2O binding energy. It will also add terms to the ODEs to allow transfer between the bulk and the surface. See the chemistry sections for more information."),(0,r.kt)("p",null,'You can override the binding energy of material in the bulk by explicitly including the bulk species in your species file rather than allowing MakeRates to automatically add it. Bulk species are designated with an "@". For example, "H2O" is gas phase H',(0,r.kt)("span",{parentName:"p",className:"math math-inline"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("msub",{parentName:"mrow"},(0,r.kt)("mrow",{parentName:"msub"}),(0,r.kt)("mn",{parentName:"msub"},"2"))),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_2")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.45110799999999995em",verticalAlign:"-0.15em"}}),(0,r.kt)("span",{parentName:"span",className:"mord"},(0,r.kt)("span",{parentName:"span"}),(0,r.kt)("span",{parentName:"span",className:"msupsub"},(0,r.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,r.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,r.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,r.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,r.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,r.kt)("span",{parentName:"span"})))))))))),'O, "#H2O" is surface H',(0,r.kt)("span",{parentName:"p",className:"math math-inline"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("msub",{parentName:"mrow"},(0,r.kt)("mrow",{parentName:"msub"}),(0,r.kt)("mn",{parentName:"msub"},"2"))),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_2")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.45110799999999995em",verticalAlign:"-0.15em"}}),(0,r.kt)("span",{parentName:"span",className:"mord"},(0,r.kt)("span",{parentName:"span"}),(0,r.kt)("span",{parentName:"span",className:"msupsub"},(0,r.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,r.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,r.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,r.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,r.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,r.kt)("span",{parentName:"span"})))))))))),'O and "@H2O" is H',(0,r.kt)("span",{parentName:"p",className:"math math-inline"},(0,r.kt)("span",{parentName:"span",className:"katex"},(0,r.kt)("span",{parentName:"span",className:"katex-mathml"},(0,r.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,r.kt)("semantics",{parentName:"math"},(0,r.kt)("mrow",{parentName:"semantics"},(0,r.kt)("msub",{parentName:"mrow"},(0,r.kt)("mrow",{parentName:"msub"}),(0,r.kt)("mn",{parentName:"msub"},"2"))),(0,r.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"_2")))),(0,r.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,r.kt)("span",{parentName:"span",className:"base"},(0,r.kt)("span",{parentName:"span",className:"strut",style:{height:"0.45110799999999995em",verticalAlign:"-0.15em"}}),(0,r.kt)("span",{parentName:"span",className:"mord"},(0,r.kt)("span",{parentName:"span"}),(0,r.kt)("span",{parentName:"span",className:"msupsub"},(0,r.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.30110799999999993em"}},(0,r.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginRight:"0.05em"}},(0,r.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,r.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,r.kt)("span",{parentName:"span",className:"mord mtight"},"2")))),(0,r.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,r.kt)("span",{parentName:"span",className:"vlist-r"},(0,r.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,r.kt)("span",{parentName:"span"})))))))))),'O in the bulk. If you set the binding energy to "Inf", the species will not leave the grains during thermal desorption. This allows you to model refractory species in the bulk.'))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d59b2eda.98b75f62.js b/assets/js/d59b2eda.98b75f62.js deleted file mode 100644 index d1ec4322..00000000 --- a/assets/js/d59b2eda.98b75f62.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3029],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=a.createContext({}),c=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},p=function(e){var t=c(e.components);return a.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=c(n),h=o,m=d["".concat(s,".").concat(h)]||d[h]||u[h]||i;return n?a.createElement(m,r(r({ref:t},p),{},{components:n})):a.createElement(m,r({ref:t},p))}));function h(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,r=new Array(i);r[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:o,r[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>h,frontMatter:()=>l,metadata:()=>c,toc:()=>u});var a=n(7462),o=n(3366),i=(n(7294),n(3905)),r=["components"],l={id:"install",title:"Installation",slug:"/"},s=void 0,c={unversionedId:"install",id:"version-v3.2.0/install",title:"Installation",description:"Prerequisites",source:"@site/versioned_docs/version-v3.2.0/start-basicuse.md",sourceDirName:".",slug:"/",permalink:"/docs/",tags:[],version:"v3.2.0",frontMatter:{id:"install",title:"Installation",slug:"/"},sidebar:"docs",previous:{title:"Getting Started",permalink:"/docs/category/getting-started"},next:{title:"Creating a Network",permalink:"/docs/network"}},p={},u=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Obtaining UCLCHEM",id:"obtaining-uclchem",level:3},{value:"Software Requirements",id:"software-requirements",level:3},{value:"Apple and Windows",id:"apple-and-windows",level:3},{value:"Apple silicon/M1",id:"apple-siliconm1",level:3},{value:"Apple Intel",id:"apple-intel",level:3},{value:"Installation",id:"installation",level:2},{value:"Checking Your Install",id:"checking-your-install",level:2}],d={toc:u};function h(e){var t=e.components,n=(0,o.Z)(e,r);return(0,i.kt)("wrapper",(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"prerequisites"},"Prerequisites"),(0,i.kt)("h3",{id:"obtaining-uclchem"},"Obtaining UCLCHEM"),(0,i.kt)("p",null,"You can visit our ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/uclchem/UCLCHEM"},"main page")," to get download links for the code, or ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/uclchem/UCLCHEM"},"our github"),". Alternatively, you can use git to clone the repo directly from terminal."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"git clone https://github.com/uclchem/UCLCHEM.git\n")),(0,i.kt)("h3",{id:"software-requirements"},"Software Requirements"),(0,i.kt)("p",null,"You need to have the following software installed on your machine:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Python 3.x"),(0,i.kt)("li",{parentName:"ul"},"GNU Make"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://gcc.gnu.org/"},"GNU compilers"))),(0,i.kt)("p",null,"You will also need various python libraries but they will be installed if you follow the installation instructions below. Please note, UCLCHEM is installed by calling the ",(0,i.kt)("inlineCode",{parentName:"p"},"python3")," command. If you have Python 3.x but your system only recognizes ",(0,i.kt)("inlineCode",{parentName:"p"},"python")," as the command to use it, you should alias ",(0,i.kt)("inlineCode",{parentName:"p"},"python")," to ",(0,i.kt)("inlineCode",{parentName:"p"},"python3")," or update ",(0,i.kt)("inlineCode",{parentName:"p"},"src/fortran_src/Makefile")," to use ",(0,i.kt)("inlineCode",{parentName:"p"},"python")," anywhere it says ",(0,i.kt)("inlineCode",{parentName:"p"},"python3"),"."),(0,i.kt)("h3",{id:"apple-and-windows"},"Apple and Windows"),(0,i.kt)("p",null,"Mac users are encourage to use Xcode to get the GNU compilers and Windows users are most likely to have success with the Windows Subsystem for Linux. See our ",(0,i.kt)("a",{parentName:"p",href:"/docs/trouble-compile"},"troubleshooting")," page for more information if you encounter problems. For Mac users with Apple silicon special installations instructions are listed below the regular installation instructions."),(0,i.kt)("h3",{id:"apple-siliconm1"},"Apple silicon/M1"),(0,i.kt)("p",null,"For this use case we recommend the usage of the package manager conda (the installer for the minimal version can be found ",(0,i.kt)("a",{parentName:"p",href:"https://docs.conda.io/en/latest/miniconda.html"},"here"),").\nEnsure that you install the apple silicon/M1 version, together with Xcode."),(0,i.kt)("div",{className:"admonition admonition-caution alert alert--warning"},(0,i.kt)("div",{parentName:"div",className:"admonition-heading"},(0,i.kt)("h5",{parentName:"div"},(0,i.kt)("span",{parentName:"h5",className:"admonition-icon"},(0,i.kt)("svg",{parentName:"span",xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 16 16"},(0,i.kt)("path",{parentName:"svg",fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"}))),"caution")),(0,i.kt)("div",{parentName:"div",className:"admonition-content"},(0,i.kt)("p",{parentName:"div"},"If you are on MacOS Ventura (13.X), you need to use ",(0,i.kt)("inlineCode",{parentName:"p"},"conda install -c conda-forge gfortran=12.2"),". Since at least fortran version 12 is needed for Ventura."))),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"conda create -n uclchem_osx\nconda activate uclchem_osx\nconda config --env --set subdir osx-arm64\nconda install python=3.10\nconda install gfortran\n")),(0,i.kt)("p",null,"After this, one can continue with the installation instructions above and install. In order to use\nUCLCHEM in a new terminal session one has to use the command ",(0,i.kt)("inlineCode",{parentName:"p"},"conda activate uclchem_osx"),"."),(0,i.kt)("h3",{id:"apple-intel"},"Apple Intel"),(0,i.kt)("p",null,"Similar instructions as for M1, but now with the x86_64 instruction set. Again this requires Xcode."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"conda create -n uclchem_osx\nconda activate uclchem_osx\nconda config --env --set subdir osx-64\nconda install python=3.9\nconda install clang\nconda install gfortran\n")),(0,i.kt)("p",null,"After this, one can continue with the installation instructions above and install. In order to use\nUCLCHEM in a new terminal session one has to use the command ",(0,i.kt)("inlineCode",{parentName:"p"},"conda activate uclchem_osx"),"."),(0,i.kt)("p",null,"If you encounter further issues please check ",(0,i.kt)("a",{parentName:"p",href:"/docs/trouble-compile"},"troubleshooting"),"."),(0,i.kt)("h2",{id:"installation"},"Installation"),(0,i.kt)("p",null,"UCLCHEM is designed to be compiled to a python library. Despite this, we cannot distribute it as a python package via pypi or similar because the user needs to be able to recompile their own version in order to change the network. The chemical network is hard coded for efficiency so it is not possible to change the network without recompiling."),(0,i.kt)("p",null,"In order to compile UCLCHEM, you will simply need to do the folowing from the main directory of the repository:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"cd UCLCHEM\npip install -r requirements.txt\npip install .\n")),(0,i.kt)("p",null,"This will install the UCLCHEM library into your python environment, you can then import it and use it in your python scripts. If you get an error at this stage, it is very likely you do not have Cmake or gfortran installed. You must do this again every time you use ",(0,i.kt)("a",{parentName:"p",href:"/docs/network"},"Makerates"),"."),(0,i.kt)("p",null,"If it completes without error then, that's it! UCLCHEM is installed. We have tutorials on how to ",(0,i.kt)("a",{parentName:"p",href:"/docs/first_model"},"run your first model")," as well as more complex use cases. The rest of the 'Getting Started' section focuses on creating a network and the various parameters the user can control. "),(0,i.kt)("h2",{id:"checking-your-install"},"Checking Your Install"),(0,i.kt)("p",null,"We provide several ways to get acquainted with the code including a series of ",(0,i.kt)("a",{parentName:"p",href:"/docs/category/tutorials"},"tutorials"),". Alternatively, there are python scripts in ",(0,i.kt)("inlineCode",{parentName:"p"},"scripts/")," that can be used as templates for running your own models and comprehensive documentation on the ",(0,i.kt)("a",{parentName:"p",href:"/docs/pythonapi"},"python API")," and ",(0,i.kt)("a",{parentName:"p",href:"/docs/parameters"},"parameters"),"."),(0,i.kt)("p",null,"However, if you simply want to check whether your new network is working, you can use the ",(0,i.kt)("inlineCode",{parentName:"p"},"scripts/run_uclchem_tests.py")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"scripts/plot_uclchem_tests.py")," scripts. You can find outputs in the ",(0,i.kt)("inlineCode",{parentName:"p"},"examples/")," directory along with an explanation of what this does."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d59b2eda.d61b6db2.js b/assets/js/d59b2eda.d61b6db2.js new file mode 100644 index 00000000..5fdabdd6 --- /dev/null +++ b/assets/js/d59b2eda.d61b6db2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3029],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=a.createContext({}),c=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return a.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=c(n),h=o,m=d["".concat(s,".").concat(h)]||d[h]||u[h]||r;return n?a.createElement(m,i(i({ref:t},p),{},{components:n})):a.createElement(m,i({ref:t},p))}));function h(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:o,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>h,frontMatter:()=>l,metadata:()=>c,toc:()=>u});var a=n(7462),o=n(3366),r=(n(7294),n(3905)),i=["components"],l={id:"install",title:"Installation",slug:"/"},s=void 0,c={unversionedId:"install",id:"version-v3.2.0/install",title:"Installation",description:"Prerequisites",source:"@site/versioned_docs/version-v3.2.0/start-basicuse.md",sourceDirName:".",slug:"/",permalink:"/docs/",draft:!1,tags:[],version:"v3.2.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"install",title:"Installation",slug:"/"},sidebar:"docs",previous:{title:"Getting Started",permalink:"/docs/category/getting-started"},next:{title:"Creating a Network",permalink:"/docs/network"}},p={},u=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Obtaining UCLCHEM",id:"obtaining-uclchem",level:3},{value:"Software Requirements",id:"software-requirements",level:3},{value:"Apple and Windows",id:"apple-and-windows",level:3},{value:"Apple silicon/M1",id:"apple-siliconm1",level:3},{value:"Apple Intel",id:"apple-intel",level:3},{value:"Installation",id:"installation",level:2},{value:"Checking Your Install",id:"checking-your-install",level:2}],d={toc:u};function h(e){var t=e.components,n=(0,o.Z)(e,i);return(0,r.kt)("wrapper",(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"prerequisites"},"Prerequisites"),(0,r.kt)("h3",{id:"obtaining-uclchem"},"Obtaining UCLCHEM"),(0,r.kt)("p",null,"You can visit our ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/uclchem/UCLCHEM"},"main page")," to get download links for the code, or ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/uclchem/UCLCHEM"},"our github"),". Alternatively, you can use git to clone the repo directly from terminal."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"git clone https://github.com/uclchem/UCLCHEM.git\n")),(0,r.kt)("h3",{id:"software-requirements"},"Software Requirements"),(0,r.kt)("p",null,"You need to have the following software installed on your machine:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Python 3.x"),(0,r.kt)("li",{parentName:"ul"},"GNU Make"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://gcc.gnu.org/"},"GNU compilers"))),(0,r.kt)("p",null,"You will also need various python libraries but they will be installed if you follow the installation instructions below. Please note, UCLCHEM is installed by calling the ",(0,r.kt)("inlineCode",{parentName:"p"},"python3")," command. If you have Python 3.x but your system only recognizes ",(0,r.kt)("inlineCode",{parentName:"p"},"python")," as the command to use it, you should alias ",(0,r.kt)("inlineCode",{parentName:"p"},"python")," to ",(0,r.kt)("inlineCode",{parentName:"p"},"python3")," or update ",(0,r.kt)("inlineCode",{parentName:"p"},"src/fortran_src/Makefile")," to use ",(0,r.kt)("inlineCode",{parentName:"p"},"python")," anywhere it says ",(0,r.kt)("inlineCode",{parentName:"p"},"python3"),"."),(0,r.kt)("h3",{id:"apple-and-windows"},"Apple and Windows"),(0,r.kt)("p",null,"Mac users are encourage to use Xcode to get the GNU compilers and Windows users are most likely to have success with the Windows Subsystem for Linux. See our ",(0,r.kt)("a",{parentName:"p",href:"/docs/trouble-compile"},"troubleshooting")," page for more information if you encounter problems. For Mac users with Apple silicon special installations instructions are listed below the regular installation instructions."),(0,r.kt)("h3",{id:"apple-siliconm1"},"Apple silicon/M1"),(0,r.kt)("p",null,"For this use case we recommend the usage of the package manager conda (the installer for the minimal version can be found ",(0,r.kt)("a",{parentName:"p",href:"https://docs.conda.io/en/latest/miniconda.html"},"here"),").\nEnsure that you install the apple silicon/M1 version, together with Xcode."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"If you are on MacOS Ventura (13.X), you need to use ",(0,r.kt)("inlineCode",{parentName:"p"},"conda install -c conda-forge gfortran=12.2"),". Since at least fortran version 12 is needed for Ventura.")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"conda create -n uclchem_osx\nconda activate uclchem_osx\nconda config --env --set subdir osx-arm64\nconda install python=3.10\nconda install gfortran\n")),(0,r.kt)("p",null,"After this, one can continue with the installation instructions above and install. In order to use\nUCLCHEM in a new terminal session one has to use the command ",(0,r.kt)("inlineCode",{parentName:"p"},"conda activate uclchem_osx"),"."),(0,r.kt)("h3",{id:"apple-intel"},"Apple Intel"),(0,r.kt)("p",null,"Similar instructions as for M1, but now with the x86_64 instruction set. Again this requires Xcode."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"conda create -n uclchem_osx\nconda activate uclchem_osx\nconda config --env --set subdir osx-64\nconda install python=3.9\nconda install clang\nconda install gfortran\n")),(0,r.kt)("p",null,"After this, one can continue with the installation instructions above and install. In order to use\nUCLCHEM in a new terminal session one has to use the command ",(0,r.kt)("inlineCode",{parentName:"p"},"conda activate uclchem_osx"),"."),(0,r.kt)("p",null,"If you encounter further issues please check ",(0,r.kt)("a",{parentName:"p",href:"/docs/trouble-compile"},"troubleshooting"),"."),(0,r.kt)("h2",{id:"installation"},"Installation"),(0,r.kt)("p",null,"UCLCHEM is designed to be compiled to a python library. Despite this, we cannot distribute it as a python package via pypi or similar because the user needs to be able to recompile their own version in order to change the network. The chemical network is hard coded for efficiency so it is not possible to change the network without recompiling."),(0,r.kt)("p",null,"In order to compile UCLCHEM, you will simply need to do the folowing from the main directory of the repository:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"cd UCLCHEM\npip install -r requirements.txt\npip install .\n")),(0,r.kt)("p",null,"This will install the UCLCHEM library into your python environment, you can then import it and use it in your python scripts. If you get an error at this stage, it is very likely you do not have Cmake or gfortran installed. You must do this again every time you use ",(0,r.kt)("a",{parentName:"p",href:"/docs/network"},"Makerates"),"."),(0,r.kt)("p",null,"If it completes without error then, that's it! UCLCHEM is installed. We have tutorials on how to ",(0,r.kt)("a",{parentName:"p",href:"/docs/first_model"},"run your first model")," as well as more complex use cases. The rest of the 'Getting Started' section focuses on creating a network and the various parameters the user can control. "),(0,r.kt)("h2",{id:"checking-your-install"},"Checking Your Install"),(0,r.kt)("p",null,"We provide several ways to get acquainted with the code including a series of ",(0,r.kt)("a",{parentName:"p",href:"/docs/category/tutorials"},"tutorials"),". Alternatively, there are python scripts in ",(0,r.kt)("inlineCode",{parentName:"p"},"scripts/")," that can be used as templates for running your own models and comprehensive documentation on the ",(0,r.kt)("a",{parentName:"p",href:"/docs/pythonapi"},"python API")," and ",(0,r.kt)("a",{parentName:"p",href:"/docs/parameters"},"parameters"),"."),(0,r.kt)("p",null,"However, if you simply want to check whether your new network is working, you can use the ",(0,r.kt)("inlineCode",{parentName:"p"},"scripts/run_uclchem_tests.py")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"scripts/plot_uclchem_tests.py")," scripts. You can find outputs in the ",(0,r.kt)("inlineCode",{parentName:"p"},"examples/")," directory along with an explanation of what this does."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d778b222.65d92160.js b/assets/js/d778b222.750fee55.js similarity index 50% rename from assets/js/d778b222.65d92160.js rename to assets/js/d778b222.750fee55.js index 7b3df6e0..8b8d0766 100644 --- a/assets/js/d778b222.65d92160.js +++ b/assets/js/d778b222.750fee55.js @@ -1 +1 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4883],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>d});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),c=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),f=c(r),d=o,m=f["".concat(s,".").concat(d)]||f[d]||u[d]||a;return r?n.createElement(m,l(l({ref:t},p),{},{components:r})):n.createElement(m,l({ref:t},p))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=f;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i.mdxType="string"==typeof e?e:o,l[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var n=r(7462),o=r(3366),a=(r(7294),r(3905)),l=["components"],i={id:"physics-collapse",title:"Collapse Models"},s=void 0,c={unversionedId:"physics-collapse",id:"version-v3.2.0/physics-collapse",title:"Collapse Models",description:"Main Contributors: Felix Priestley",source:"@site/versioned_docs/version-v3.2.0/physics-collapse.md",sourceDirName:".",slug:"/physics-collapse",permalink:"/docs/physics-collapse",tags:[],version:"v3.2.0",frontMatter:{id:"physics-collapse",title:"Collapse Models"},sidebar:"docs",previous:{title:"Shock Models",permalink:"/docs/physics-shocks"},next:{title:"Chemistry",permalink:"/docs/category/chemistry"}},p={},u=[],f={toc:u};function d(e){var t=e.components,r=(0,o.Z)(e,l);return(0,a.kt)("wrapper",(0,n.Z)({},f,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Main Contributors"),": Felix Priestley"),(0,a.kt)("p",null,"The freefall collapse function used to control the density in most UCLCHEM models is fairly simplistic. ",(0,a.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.3847/1538-3881/aac957"},"Priestley et al. 2018")," created the collapse model which parameterizes the density profile of a collapsing core as a function of time and radius. The following collapse modes are possible:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},'"BE1.1": Bonnor-Ebert sphere, overdensity factor 1.1 (Aikawa+2005)'),(0,a.kt)("li",{parentName:"ul"},'"BE4": Bonnor-Ebert sphere, overdensity factor 4 (Aikawa+2005)'),(0,a.kt)("li",{parentName:"ul"},'"filament": magnetised filament, initially unstable to collapse (Nakamura+1995)'),(0,a.kt)("li",{parentName:"ul"},'"ambipolar": magnetised cloud, initially stable, collapse due to ambipolar diffusion (Fiedler+1993)')))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4883],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),c=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=c(r),f=o,m=d["".concat(s,".").concat(f)]||d[f]||u[f]||a;return r?n.createElement(m,l(l({ref:t},p),{},{components:r})):n.createElement(m,l({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i.mdxType="string"==typeof e?e:o,l[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>f,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var n=r(7462),o=r(3366),a=(r(7294),r(3905)),l=["components"],i={id:"physics-collapse",title:"Collapse Models"},s=void 0,c={unversionedId:"physics-collapse",id:"version-v3.2.0/physics-collapse",title:"Collapse Models",description:"Main Contributors: Felix Priestley",source:"@site/versioned_docs/version-v3.2.0/physics-collapse.md",sourceDirName:".",slug:"/physics-collapse",permalink:"/docs/physics-collapse",draft:!1,tags:[],version:"v3.2.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"physics-collapse",title:"Collapse Models"},sidebar:"docs",previous:{title:"Shock Models",permalink:"/docs/physics-shocks"},next:{title:"Chemistry",permalink:"/docs/category/chemistry"}},p={},u=[],d={toc:u};function f(e){var t=e.components,r=(0,o.Z)(e,l);return(0,a.kt)("wrapper",(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Main Contributors"),": Felix Priestley"),(0,a.kt)("p",null,"The freefall collapse function used to control the density in most UCLCHEM models is fairly simplistic. ",(0,a.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.3847/1538-3881/aac957"},"Priestley et al. 2018")," created the collapse model which parameterizes the density profile of a collapsing core as a function of time and radius. The following collapse modes are possible:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},'"BE1.1": Bonnor-Ebert sphere, overdensity factor 1.1 (Aikawa+2005)'),(0,a.kt)("li",{parentName:"ul"},'"BE4": Bonnor-Ebert sphere, overdensity factor 4 (Aikawa+2005)'),(0,a.kt)("li",{parentName:"ul"},'"filament": magnetised filament, initially unstable to collapse (Nakamura+1995)'),(0,a.kt)("li",{parentName:"ul"},'"ambipolar": magnetised cloud, initially stable, collapse due to ambipolar diffusion (Fiedler+1993)')))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d81cd816.664df62f.js b/assets/js/d81cd816.4a11cb97.js similarity index 99% rename from assets/js/d81cd816.664df62f.js rename to assets/js/d81cd816.4a11cb97.js index 70b4cab3..9f179e21 100644 --- a/assets/js/d81cd816.664df62f.js +++ b/assets/js/d81cd816.4a11cb97.js @@ -1 +1 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1071],{4503:(e,a,t)=>{t.d(a,{Z:()=>Qe});var c,l,r,i,n,s,m,o,f,d,h,p,y,E,Z,x,M,u,g,v,b,w,q,O,k,C,j,P,S,A,N,L,U,D,I,B,H,T,_,F,G,R,z,V,W,J,Y,X,Q,K,$,ee,ae,te,ce,le,re,ie,ne,se,me,oe,fe,de,he,pe,ye,Ee,Ze,xe,Me,ue,ge,ve,be,we,qe,Oe,ke,Ce,je,Pe,Se,Ae,Ne,Le,Ue,De,Ie,Be,He,Te,_e,Fe,Ge,Re,ze,Ve,We=t(7294),Je=["title","titleId"];function Ye(){return Ye=Object.assign?Object.assign.bind():function(e){for(var a=1;a=0||(l[t]=e[t]);return l}(e,a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(c=0;c=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(l[t]=e[t])}return l}const Qe=function(e){var a=e.title,t=e.titleId,Qe=Xe(e,Je);return We.createElement("svg",Ye({"data-name":"Layer 1",xmlns:"http://www.w3.org/2000/svg",width:1100,height:806.74,viewBox:"0 0 1100 806.74","aria-labelledby":t},Qe),c||(c=We.createElement("defs",null,We.createElement("linearGradient",{id:"a",x1:459.23,y1:847.99,x2:459.23,y2:385.75,gradientTransform:"translate(250.84)",gradientUnits:"userSpaceOnUse"},We.createElement("stop",{offset:0,stopColor:"gray",stopOpacity:.25}),We.createElement("stop",{offset:.54,stopColor:"gray",stopOpacity:.12}),We.createElement("stop",{offset:1,stopColor:"gray",stopOpacity:.1})))),void 0===a?We.createElement("title",{id:t},"operating system"):a?We.createElement("title",{id:t},a):null,l||(l=We.createElement("ellipse",{cx:629.72,cy:780.56,rx:122.56,ry:26.18,fill:"#604687",opacity:.1})),r||(r=We.createElement("path",{d:"M1070.55 683.84c-24.35 20.2-59 28.56-92.51 33.84l-5.64.86c-58.57 8.74-118.32 10.52-177.79 12.28-165.87 4.91-332.17 9.81-497.6-1.51-73.16-5-148.13-13.76-212.25-43.7l-1.67-.79c-.83-.39-1.66-.78-2.49-1.19A224.11 224.11 0 0 1 48 664.54c-18.31-13.06-33.43-29-41.42-47.91-12.52-29.66-5.9-63 8.4-92s35.8-55.12 54.34-82.43c5.44-8 10.6-16.3 15.4-24.81 30-53.37 44.88-115.13 13.43-166.56a228.58 228.58 0 0 0-13.43-19c-7.67-10-15.47-20-20.74-31.07-12.29-25.76-9.65-54.73-5.17-82.25 6-36.59 17.05-76 51.38-98.86 35.67-23.74 86.3-22.54 130.57-14 68.83 13.19 132.36 40.8 196.49 65.7s131.35 47.58 201.86 50.02c62.26 2.17 134.89-14 176.23-56.08 40.15-40.85 115.6-43.94 170-19.27 51.91 23.54 85.48 73.36 83 123.12-3.16 62.1-54.93 111.83-95.9 164.7-6.81 8.79-13.33 17.68-19.28 26.72-19.42 29.53-33.15 65-19.78 96.88 7.5 17.85 21.81 31.47 39.06 43.36 38.65 26.63 92 44.55 116 81.83 20.67 32.16 13.01 75.56-17.89 101.21Z",fill:"#604687",opacity:.1})),i||(i=We.createElement("ellipse",{cx:972.5,cy:704.85,rx:57.01,ry:10.96,fill:"#604687"})),n||(n=We.createElement("ellipse",{cx:971.55,cy:700.19,rx:6.64,ry:8.69,fill:"#3f3d56"})),s||(s=We.createElement("ellipse",{cx:971.55,cy:689.57,rx:6.64,ry:8.69,fill:"#3f3d56"})),m||(m=We.createElement("ellipse",{cx:971.55,cy:678.94,rx:6.64,ry:8.69,fill:"#3f3d56"})),o||(o=We.createElement("ellipse",{cx:971.55,cy:668.32,rx:6.64,ry:8.69,fill:"#3f3d56"})),f||(f=We.createElement("ellipse",{cx:971.55,cy:657.7,rx:6.64,ry:8.69,fill:"#3f3d56"})),d||(d=We.createElement("ellipse",{cx:971.55,cy:647.08,rx:6.64,ry:8.69,fill:"#3f3d56"})),h||(h=We.createElement("ellipse",{cx:971.55,cy:636.46,rx:6.64,ry:8.69,fill:"#3f3d56"})),p||(p=We.createElement("path",{d:"M996.4 563.78a31 31 0 0 0 2.47-3.64l-17.44-2.86 18.86.14a31.78 31.78 0 0 0 .61-25.2l-25.31 13.15 23.34-17.15a31.8 31.8 0 1 0-52.51 35.58 31.55 31.55 0 0 0-3.63 5.8l22.64 11.77-24.14-8.1a31.79 31.79 0 0 0 5.13 29.86 31.8 31.8 0 1 0 50 0 31.78 31.78 0 0 0 0-39.32Z",fill:"#604687"})),y||(y=We.createElement("path",{d:"M939.61 583.44a31.68 31.68 0 0 0 6.81 19.66 31.8 31.8 0 1 0 50 0c4.24-5.41-56.81-23.23-56.81-19.66Z",opacity:.1})),E||(E=We.createElement("path",{d:"M134.73 673.91c0 5.59-21.81 10.21-50 10.87h-1.67c-.83-.39-1.66-.78-2.49-1.19A224.11 224.11 0 0 1 48 664.54c6.85-.8 14.64-1.34 23-1.52h1.13c1.82 0 3.67-.06 5.54-.06h7.05c28.2.73 50.01 5.41 50.01 10.95Z",fill:"#604687"})),Z||(Z=We.createElement("ellipse",{cx:76.76,cy:669.25,rx:6.64,ry:8.69,fill:"#3f3d56"})),x||(x=We.createElement("ellipse",{cx:76.76,cy:658.63,rx:6.64,ry:8.69,fill:"#3f3d56"})),M||(M=We.createElement("ellipse",{cx:76.76,cy:648.01,rx:6.64,ry:8.69,fill:"#3f3d56"})),u||(u=We.createElement("ellipse",{cx:76.76,cy:637.39,rx:6.64,ry:8.69,fill:"#3f3d56"})),g||(g=We.createElement("ellipse",{cx:76.76,cy:626.77,rx:6.64,ry:8.69,fill:"#3f3d56"})),v||(v=We.createElement("ellipse",{cx:76.76,cy:616.15,rx:6.64,ry:8.69,fill:"#3f3d56"})),b||(b=We.createElement("ellipse",{cx:76.76,cy:605.52,rx:6.64,ry:8.69,fill:"#3f3d56"})),w||(w=We.createElement("path",{d:"M101.61 532.84a32.28 32.28 0 0 0 2.48-3.63l-17.45-2.84 18.87.14a31.8 31.8 0 0 0 .6-25.19l-25.3 13.13 23.34-17.16a31.8 31.8 0 1 0-52.52 35.58 32.45 32.45 0 0 0-3.63 5.8l22.64 11.7-24.14-8.07a31.87 31.87 0 0 0 5.13 29.86 31.8 31.8 0 1 0 50 0 31.78 31.78 0 0 0 0-39.32Z",fill:"#604687"})),q||(q=We.createElement("path",{d:"M44.83 552.5a31.67 31.67 0 0 0 6.8 19.66 31.8 31.8 0 1 0 50 0c4.24-5.41-56.8-23.23-56.8-19.66Z",opacity:.1})),O||(O=We.createElement("g",{opacity:.2},We.createElement("path",{d:"M305.84 555.29c0 .94-.1 1.86-.2 2.76q-11.64-4.68-22.92-9.93a18.59 18.59 0 0 1-10.6-5.17c-2.19-1.1-4.37-2.24-6.54-3.39a26.82 26.82 0 0 1 1.66-3c4.2-6.66 10.6-10.83 17.65-10.6s13.15 4.78 16.93 11.66a34.37 34.37 0 0 1 4.02 17.67Z",fill:"#3f3d56"}),We.createElement("path",{d:"M307 520.37a34.56 34.56 0 0 1-5.13 17.32c-4.21 6.64-10.6 10.81-17.65 10.58-.49 0-1-.06-1.45-.1a18.59 18.59 0 0 1-10.6-5.17 25.27 25.27 0 0 1-4.88-6.37 35.82 35.82 0 0 1 1.1-35c4.21-6.66 10.6-10.83 17.65-10.6s13.15 4.78 16.93 11.66a34.47 34.47 0 0 1 4.03 17.68Z",fill:"#3f3d56"}),We.createElement("ellipse",{cx:336.18,cy:531.28,rx:28.63,ry:21.87,transform:"rotate(-88.19 287.148 533.775)",fill:"#3f3d56"}),We.createElement("ellipse",{cx:337.29,cy:496.31,rx:28.63,ry:21.87,transform:"rotate(-88.19 288.252 498.807)",fill:"#3f3d56"}),We.createElement("ellipse",{cx:338.39,cy:461.34,rx:28.63,ry:21.87,transform:"rotate(-88.19 289.351 463.833)",fill:"#3f3d56"}),We.createElement("path",{d:"M214.12 172.83a105.78 105.78 0 0 1-7.76-12.24l57.72-7.62-62.08-1.5a104.92 104.92 0 0 1 .62-83l82 45.85-75.15-58.95a104.75 104.75 0 1 1 169.22 122.65A105.13 105.13 0 0 1 390 197.48l-75.77 36.38 80.33-24.17a104.85 104.85 0 0 1-20 97.78A104.75 104.75 0 1 1 210 302.28a104.73 104.73 0 0 1 4.08-129.45Z",fill:"#604687"}),We.createElement("path",{d:"M399.05 243.45a104.29 104.29 0 0 1-24.44 64A104.75 104.75 0 1 1 210 302.28c-13.43-18.25 189.42-70.58 189.05-58.83Z",opacity:.1}))),k||(k=We.createElement("g",{opacity:.2},We.createElement("path",{d:"M798.18 480.51c0 .67-.07 1.32-.14 2q-8.31-3.29-16.31-7.06a13.31 13.31 0 0 1-7.55-3.68c-1.55-.79-3.11-1.6-4.65-2.41a19.78 19.78 0 0 1 1.18-2.13c3-4.74 7.54-7.7 12.56-7.54s9.36 3.4 12.05 8.3a24.5 24.5 0 0 1 2.86 12.52Z",fill:"#3f3d56"}),We.createElement("path",{d:"M799 455.62a24.56 24.56 0 0 1-3.65 12.33c-3 4.72-7.54 7.69-12.56 7.53l-1-.07a13.31 13.31 0 0 1-7.55-3.68 18.32 18.32 0 0 1-3.47-4.54 25.51 25.51 0 0 1 .78-24.88c3-4.74 7.55-7.71 12.56-7.55s9.37 3.4 12.05 8.3a24.55 24.55 0 0 1 2.84 12.56Z",fill:"#3f3d56"}),We.createElement("ellipse",{cx:834.19,cy:476.87,rx:20.37,ry:15.56,transform:"rotate(-88.19 785.171 479.34)",fill:"#3f3d56"}),We.createElement("ellipse",{cx:834.98,cy:451.98,rx:20.37,ry:15.56,transform:"rotate(-88.19 785.957 454.46)",fill:"#3f3d56"}),We.createElement("ellipse",{cx:835.76,cy:427.1,rx:20.37,ry:15.56,transform:"rotate(-88.19 786.738 429.573)",fill:"#3f3d56"}),We.createElement("path",{d:"M732.91 208.37a73.57 73.57 0 0 1-5.52-8.71l41.08-5.42-44.21-1.07a74.67 74.67 0 0 1 .43-59.07L783 166.69l-53.4-41.93A74.55 74.55 0 1 1 850 212.02a74.71 74.71 0 0 1 8.06 13.86l-53.89 25.89 57.17-17.2a74.55 74.55 0 0 1-14.22 69.58A74.54 74.54 0 1 1 730 300.46a74.55 74.55 0 0 1 2.91-92.09Z",fill:"#604687"}),We.createElement("path",{d:"M864.52 258.59a74.2 74.2 0 0 1-17.4 45.56A74.54 74.54 0 1 1 730 300.46c-9.58-13 134.78-50.23 134.52-41.87Z",opacity:.1}))),C||(C=We.createElement("g",{opacity:.2},We.createElement("path",{d:"M585 402.46c0 .67-.08 1.32-.15 2q-8.31-3.29-16.31-7.06a13.28 13.28 0 0 1-7.54-3.68c-1.56-.79-3.11-1.6-4.65-2.41a19 19 0 0 1 1.17-2.13c3-4.73 7.55-7.7 12.56-7.54s9.36 3.4 12.05 8.3a24.5 24.5 0 0 1 2.87 12.52Z",fill:"#3f3d56"}),We.createElement("path",{d:"M585.74 377.57a24.56 24.56 0 0 1-3.65 12.33c-3 4.72-7.54 7.69-12.56 7.53-.35 0-.68 0-1-.07a13.28 13.28 0 0 1-7.54-3.68 18.11 18.11 0 0 1-3.48-4.54 25.48 25.48 0 0 1 .79-24.88c3-4.74 7.54-7.71 12.56-7.55s9.36 3.4 12 8.3a24.54 24.54 0 0 1 2.88 12.56Z",fill:"#3f3d56"}),We.createElement("ellipse",{cx:620.97,cy:398.82,rx:20.37,ry:15.56,transform:"rotate(-88.3 571.11 401.206)",fill:"#3f3d56"}),We.createElement("ellipse",{cx:621.75,cy:373.93,rx:20.37,ry:15.56,transform:"rotate(-88.19 572.718 376.417)",fill:"#3f3d56"}),We.createElement("ellipse",{cx:622.54,cy:349.05,rx:20.37,ry:15.56,transform:"rotate(-88.19 573.504 351.525)",fill:"#3f3d56"}),We.createElement("path",{d:"M519.68 130.28a74.87 74.87 0 0 1-5.52-8.71l41.08-5.42-44.24-1.07a74.62 74.62 0 0 1 .44-59.07l58.33 32.63-53.39-41.93a74.54 74.54 0 1 1 120.42 87.26 74.76 74.76 0 0 1 8.07 13.86L591 173.72l57.16-17.2a74.55 74.55 0 0 1-14.22 69.58 74.54 74.54 0 1 1-117.16-3.73 74.57 74.57 0 0 1 2.9-92.13Z",fill:"#604687"}),We.createElement("path",{d:"M651.29 180.54a74.2 74.2 0 0 1-17.4 45.56 74.54 74.54 0 1 1-117.11-3.73c-9.59-12.95 134.77-50.19 134.51-41.83Z",opacity:.1}))),j||(j=We.createElement("path",{d:"M972.4 500.81v217.73c-58.57 8.74-118.32 10.52-177.79 12.28-165.87 4.91-332.17 9.81-497.6-1.51-73.16-5-148.13-13.76-212.25-43.7V417.37c.24-185-.76 0 0-185.56v-66.59a14.1 14.1 0 0 1 14.1-14.1H958.3a14.1 14.1 0 0 1 14.1 14.1v168.63c.6 166.52-.4.52 0 166.96Z",fill:"#3f3d56"})),P||(P=We.createElement("rect",{x:344.15,y:217.75,width:368.86,height:28.56,rx:5.22,fill:"#604687",opacity:.3})),S||(S=We.createElement("path",{d:"M687.94 233.22h-.61l-.23-.19a5.1 5.1 0 0 0 1.19-3.25 4.94 4.94 0 1 0-4.92 5 5.09 5.09 0 0 0 3.24-1.18l.22.19v.58l3.81 3.82 1.14-1.14Zm-4.57 0a3.44 3.44 0 1 1 3.43-3.44 3.42 3.42 0 0 1-3.43 3.44Z",fill:"#444053"})),A||(A=We.createElement("rect",{x:222.84,y:493.2,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),N||(N=We.createElement("rect",{x:222.84,y:522.95,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),L||(L=We.createElement("rect",{x:222.84,y:508.08,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),U||(U=We.createElement("path",{d:"M164.57 522.58a5.74 5.74 0 0 0-5.8 5.69 3.88 3.88 0 0 1-3.87 3.79 10 10 0 0 0 7.73 3.8 7.67 7.67 0 0 0 7.75-7.59 5.75 5.75 0 0 0-5.81-5.69Zm26.53-17.76-2.6-2.55a1.94 1.94 0 0 0-2.72 0l-17.34 17 5.32 5.22 17.32-17a1.86 1.86 0 0 0 .02-2.67Z",fill:"#604687"})),D||(D=We.createElement("rect",{x:222.84,y:345.66,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),I||(I=We.createElement("rect",{x:222.84,y:375.41,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),B||(B=We.createElement("rect",{x:222.84,y:360.53,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),H||(H=We.createElement("path",{d:"M191.18 378.15 176 362.87a10.82 10.82 0 0 0-2.51-11.58 11 11 0 0 0-12.35-2.18l7.18 7.22-5 5-7.32-7.18a10.86 10.86 0 0 0 2.17 12.41 10.66 10.66 0 0 0 11.51 2.52l15.15 15.29a1.61 1.61 0 0 0 2.34 0l3.84-3.86a1.51 1.51 0 0 0 .17-2.35Z",fill:"#604687"})),T||(T=We.createElement("rect",{x:509.6,y:493.2,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),_||(_=We.createElement("rect",{x:509.6,y:522.95,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),F||(F=We.createElement("rect",{x:509.6,y:508.08,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),G||(G=We.createElement("path",{d:"M459.44 526a10 10 0 0 1-9.89 0c-3.87 1.19-6.24 5.09-7.12 8.54h24.12c-.87-3.45-3.23-7.35-7.11-8.54Zm-4.94-18.37a8.69 8.69 0 1 0 8.69 8.68 8.69 8.69 0 0 0-8.69-8.68Zm0 15.3a6.71 6.71 0 0 1-6.07-4.14h12.14a6.71 6.71 0 0 1-6.07 4.14Z",fill:"#604687"})),R||(R=We.createElement("path",{d:"M472.09 521.37a10.07 10.07 0 0 1-8.4.69 12 12 0 0 1-2.3 2.86 11.24 11.24 0 0 1 4.9 4.33h12.91a10.72 10.72 0 0 0-7.11-7.88Zm-4.94-18.38a8.71 8.71 0 0 0-7.33 4 10.78 10.78 0 0 1 5.15 7.14h8.25a6.72 6.72 0 0 1-6.07 4.12 6 6 0 0 1-2.08-.38 11.65 11.65 0 0 1-.54 2.07 8.35 8.35 0 0 0 2.62.4 8.69 8.69 0 0 0 0-17.38Z",fill:"#604687"})),z||(z=We.createElement("rect",{x:222.84,y:603.86,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),V||(V=We.createElement("rect",{x:222.84,y:633.61,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),W||(W=We.createElement("rect",{x:222.84,y:618.74,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),J||(J=We.createElement("path",{d:"M176.57 607.62h-9.82a3.28 3.28 0 0 0-3.32 3.24v.7h-.62a3.28 3.28 0 0 0-3.32 3.24v23.63a3.34 3.34 0 0 0 3.32 3.32h17.08a3.27 3.27 0 0 0 3.23-3.32v-.62h.71a3.27 3.27 0 0 0 3.23-3.32v-16.37Zm0 3.66 6.84 6.84h-6.84Zm3.94 27.15a.67.67 0 0 1-.62.7h-17.08a.73.73 0 0 1-.69-.7V614.8a.67.67 0 0 1 .69-.62h.62v21c0 1.82.86 2.66 2.67 2.66h14.41Zm3.93-3.94a.66.66 0 0 1-.61.7h-17.08a.73.73 0 0 1-.69-.7v-23.63a.67.67 0 0 1 .69-.62h7.19v10.51h10.5Z",fill:"#604687"})),Y||(Y=We.createElement("rect",{x:509.6,y:345.66,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),X||(X=We.createElement("rect",{x:509.6,y:375.41,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),Q||(Q=We.createElement("rect",{x:509.6,y:360.53,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),K||(K=We.createElement("path",{d:"M457.32 353.37h-11.38a3.51 3.51 0 0 0-3.5 3.51v19.25a3.5 3.5 0 0 0 3.5 3.5h29.76a3.5 3.5 0 0 0 3.5-3.5v-15.34a3.51 3.51 0 0 0-3.5-3.5h-14.88l-3.5-3.94Z",fill:"#604687"})),$||($=We.createElement("rect",{x:792.79,y:493.2,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),ee||(ee=We.createElement("rect",{x:792.79,y:522.95,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),ae||(ae=We.createElement("rect",{x:792.79,y:508.08,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),te||(te=We.createElement("path",{d:"m762.93 509.28-6.77-.32-.4-4.41a1.7 1.7 0 0 0-1.88-1.52l-24.27 2a1.67 1.67 0 0 0-1.59 1.79l1.73 19.35a1.7 1.7 0 0 0 1.88 1.49l1.23-.09-.19 3.76a1.87 1.87 0 0 0 1.83 1.93l27.09 1.28a1.88 1.88 0 0 0 2-1.74l1.14-21.6a1.86 1.86 0 0 0-1.8-1.92Zm-29.12.44-.58 11.06-1.44 2-1.32-14.61v-.09a.89.89 0 0 1 .78-.77l21.42-1.75a.81.81 0 0 1 .87.64l.21 2.52-18-.86a1.9 1.9 0 0 0-1.94 1.86Zm27.4 19.44-7-8.17-3.07 2.82-5.67-6.63-10.07 10.72.86-16.33a.94.94 0 0 1 1-.74l23.9 1.16a.87.87 0 0 1 .85.83Z",fill:"#604687"})),ce||(ce=We.createElement("path",{d:"M756.89 518.79a2.63 2.63 0 1 0-2.62-2.63 2.64 2.64 0 0 0 2.62 2.63Z",fill:"#604687"})),le||(le=We.createElement("rect",{x:795.17,y:345.66,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),re||(re=We.createElement("rect",{x:795.17,y:375.41,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),ie||(ie=We.createElement("rect",{x:795.17,y:360.53,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),ne||(ne=We.createElement("circle",{cx:762.56,cy:356.63,r:5.25,fill:"#604687"})),se||(se=We.createElement("path",{d:"m758.53 362.82-10.42 6.94-14.44-9.62v-3.51l14.44 9.63 8.3-5.53a7.39 7.39 0 0 1-.1-8h-23.07a3.52 3.52 0 0 0-3.51 3.51v21.88a3.52 3.52 0 0 0 3.51 3.51H763a3.51 3.51 0 0 0 3.5-3.51v-15.2a7.37 7.37 0 0 1-8-.06Z",fill:"#604687"})),me||(me=We.createElement("ellipse",{cx:509.64,cy:746.02,rx:26.08,ry:5.01,fill:"#604687"})),oe||(oe=We.createElement("ellipse",{cx:509.21,cy:743.89,rx:3.04,ry:3.97,fill:"#3f3d56"})),fe||(fe=We.createElement("ellipse",{cx:509.21,cy:739.03,rx:3.04,ry:3.97,fill:"#3f3d56"})),de||(de=We.createElement("ellipse",{cx:509.21,cy:734.17,rx:3.04,ry:3.97,fill:"#3f3d56"})),he||(he=We.createElement("ellipse",{cx:509.21,cy:729.31,rx:3.04,ry:3.97,fill:"#3f3d56"})),pe||(pe=We.createElement("ellipse",{cx:509.21,cy:724.46,rx:3.04,ry:3.97,fill:"#3f3d56"})),ye||(ye=We.createElement("ellipse",{cx:509.21,cy:719.6,rx:3.04,ry:3.97,fill:"#3f3d56"})),Ee||(Ee=We.createElement("ellipse",{cx:509.21,cy:714.74,rx:3.04,ry:3.97,fill:"#3f3d56"})),Ze||(Ze=We.createElement("path",{d:"M520.57 681.5a13.59 13.59 0 0 0 1.13-1.67l-8-1.31 8.62.07a14.59 14.59 0 0 0 .28-11.52l-11.57 6 10.67-7.85a14.54 14.54 0 1 0-24 16.28 15.11 15.11 0 0 0-1.66 2.65l10.36 5.38-11-3.7a14.53 14.53 0 0 0 2.34 13.65 14.54 14.54 0 1 0 22.86 0 14.55 14.55 0 0 0 0-18Z",fill:"#604687"})),xe||(xe=We.createElement("path",{d:"M494.6 690.49a14.45 14.45 0 0 0 3.11 9 14.54 14.54 0 1 0 22.86 0c1.95-2.48-25.97-10.63-25.97-9Z",opacity:.1})),Me||(Me=We.createElement("path",{d:"M802 436.86a13.68 13.68 0 0 1-1-2.7c-.1-1.07.32-2.48-.63-3-.53-.29-1.27-.07-1.74-.45a2.15 2.15 0 0 1-.51-1.2 4.1 4.1 0 0 0-3.8-3c1-2.71 4.68-3.37 6.3-5.76.81-1.19.55-3.38-.88-3.39a2.49 2.49 0 0 0-1 .25l-5.33 2.2a27.35 27.35 0 0 0-3 1.39c-2.93 1.67-5.12 4.38-7.09 7.13a30.49 30.49 0 0 0-4.41 8 18 18 0 0 0-.94 5.49v.56c-.87.15-1.58.53-2.49.71l-2.07 5.47a6.93 6.93 0 0 1-1.35 2.49 12.52 12.52 0 0 1-1.46 1.15 8.45 8.45 0 0 0-2.91 7.37 7.93 7.93 0 0 0-4.66 9.78 9.31 9.31 0 0 0-6.81 6 4.43 4.43 0 0 1-.89 1.88 3.55 3.55 0 0 1-2.37.73c-2.34.15-4.38 2-6.49 1a13.21 13.21 0 0 0-7.71-1.08 5.77 5.77 0 0 1-1.65.15 4.43 4.43 0 0 1-1.35-.47 10.46 10.46 0 0 0-3.06-1.21 2.84 2.84 0 0 0-2.9 1.12c-.74-.81-1.18-1.86-1.85-2.73a3 3 0 0 0-2.82-1.35c.7-.63 0-1.89-.93-2.11a11.56 11.56 0 0 0-2.81.1c-2.44 0-4.32-2.24-6.69-2.83-2.18-.53-5.09.11-6.21-1.85-.35-.63-.45-1.45-1-1.92a3.64 3.64 0 0 0-.71-1.45c-.9-1-2.41-1.16-3.76-1.12a15.68 15.68 0 0 0-4.37.75c0-.17-.09-.36-.15-.56a11.09 11.09 0 0 0-4.84-5.94 20 20 0 0 0-5.66-2.26v-.53a22.55 22.55 0 0 1 1.16-7.43c.08-.26.18-.52.27-.78a26.6 26.6 0 0 0 12-44.63 6.83 6.83 0 0 0-.21-1.6 7.86 7.86 0 0 0-1.6-3.12c-1.22-2.72-3.12-3.92-5.55-5.06-.7-.33-1.44-.65-2.22-1-3.87-1.74-7.61-4.3-12-4.29-4 0-7.86 2.21-11.82 2.13h-.95c-1.11-.13-2.44-.39-3.17.46a4.5 4.5 0 0 0-.56 1.09 2.64 2.64 0 0 1-.2.37 4.4 4.4 0 0 1-.51.69c-1.28 1.4-3.43 2-5.2 2.94-4 2.05-6.62 6.23-7.66 10.61s-.68 9 .1 13.44c.4 2.22 1.26 4.74 2.84 6.14s-13.37 9.51-10.93 10.86c1.33.74 6.87-2.77 11.64-6.12.05.2.09.41.15.61a44 44 0 0 0 2.18 6.25c1 2.39 2.44 5 4.93 5.69a5.36 5.36 0 0 0 1.69.19h.44a39.39 39.39 0 0 1-1.15 10.87 6.61 6.61 0 0 0-4.09 1.13 3.29 3.29 0 0 1-1.66.88 2.89 2.89 0 0 1-1.71-.84 9.7 9.7 0 0 0-12.14.64c-4.84 4.57-4.29 13.49-10 16.95-1.56.95-3.56 1.46-4.48 3.05a11.41 11.41 0 0 1-.77 1.47 4.05 4.05 0 0 1-1.36 1 26.48 26.48 0 0 0-4.68 2.7 6.72 6.72 0 0 0-2.69 4.54 8.61 8.61 0 0 0 .82 3.81 36.44 36.44 0 0 0 3.12 6 6.38 6.38 0 0 0-1.26 2.95c-.4 2.81.94 5.58 1.09 8.42.13 2.48-.66 4.9-1.1 7.34-1.76 9.54 1.61 19.2 5 28.26a14.58 14.58 0 0 1 1.2 4.65c.09 3-1.6 5.67-2.07 8.59-1 6.14 3.53 11.92 3.63 18.13 0 2.87-.86 5.78-.14 8.55.47 1.85 1.62 3.44 2.44 5.17 1.44 3.06 1.83 6.53 3.21 9.62a23.07 23.07 0 0 0 7.12 8.48c1.73 5.49-.73 12.12 0 18q1.41-.56 2.85-1a41.17 41.17 0 0 0 6.3 24.84c1.55 2.42 3.37 4.68 4.54 7.31a34.26 34.26 0 0 1 1.77 5.79q2.51 10.47 5 20.92c1.36 5.65 2.73 11.4 2.32 17.2-.28 4-1.3 8.57 1.18 11.77a8.51 8.51 0 0 1 1.49 2.06 5.22 5.22 0 0 1 0 2.72 180.71 180.71 0 0 0-2.48 20.39c-.56.75-1.12 1.51-1.63 2.26-4.11 6-6.09 13.21-7.69 20.32a245.83 245.83 0 0 0-5.16 42.44 28.38 28.38 0 0 0-5.26 6.41c-2.15 4-2.43 8.7-2.66 13.24a4.73 4.73 0 0 0 .24 2.18 4.48 4.48 0 0 0 2.24 1.68l1.24.59c-.27 1-.51 2-.72 3.05-1.58-1.78-4.39-4.6-4.87-2.54a101.78 101.78 0 0 0-2.56 21 1.77 1.77 0 0 0 1.9 2.12A116.25 116.25 0 0 0 660 848c5.65 0 11.29-.46 16.92-.89l5.77-.44a127.7 127.7 0 0 0 17.67-2.19c2.55-.56 5.18-1.35 7.1-3.14s2.86-4.85 1.54-7.12c-1.61-2.74-5.37-2.94-8.51-3.38a27.85 27.85 0 0 1-8.92-2.84c-.63-.32-1.24-.68-1.85-1 .16 0 .33-.08.48-.14 2.7-.91 4.85-3 7.39-4.25 3-1.45 6.31-1.78 9.57-2.19s6.62-1 9.33-2.86c2.54-1.74 4.34-4.91 3.75-7.89a5.15 5.15 0 0 0-.16-.62c-1-3.23-4.5-5-7.76-5.8s-6.8-1.28-9.44-3.38l-.39-.31c-.22-.19-.45-.37-.69-.56a5.62 5.62 0 0 0 .77-3.26c-.14-1.79-1.18-3.37-1.89-5-1.39-3.25-1.5-6.88-1.88-10.39-.94-8.83-3.65-17.35-5.69-26-.23-1-.45-2-.67-3a62.86 62.86 0 0 1 7.27-11.64 38 38 0 0 0 7-13.77c.42-1.54.73-3.1 1.05-4.67Q713.18 694.18 718 667a45.19 45.19 0 0 0 .91-7.84 23.89 23.89 0 0 0 1.35-7.43c.94-3.67 1.89-7.52 1.12-9.92-.54-1.7-.81-7.51-1.11-13.08a50.24 50.24 0 0 0-.54-8.93c-.09-.51-.19-1-.3-1.51q-.09-.45-.18-.75a25.68 25.68 0 0 0-1.76-4.86 23.63 23.63 0 0 0-1.32-2.71 12.34 12.34 0 0 0-1-1.48 62 62 0 0 1 6.22.58c.5.07 1.12.11 1.43-.3a1.47 1.47 0 0 0 .18-.77 12.75 12.75 0 0 0-1.62-6.76c-.8-1.42-1.91-2.8-1.88-4.43a6.53 6.53 0 0 1 .55-2.2l2.77-7.44c2.35-6.29 1.23-13.58 2.45-20.18a118.46 118.46 0 0 0 1.82-15.61c.23-4.47.09-9.32-2.6-12.9a14.73 14.73 0 0 1-2-2.84 8.41 8.41 0 0 1-.48-3.39q-.07-10.51.42-21a206.38 206.38 0 0 0 35.05-4 22 22 0 0 0 4-1.08 20.19 20.19 0 0 0 4-2.53c3.93-2.84 7.92-5.73 10.91-9.55a32.36 32.36 0 0 0 6.46-15.94c2.84-2.63 4.35-6.37 5.77-10a15.42 15.42 0 0 0 1.32-4.85c.07-1.72-1.06-3.52-.74-5.21a13.78 13.78 0 0 1 4.19-7.58 2.74 2.74 0 0 0 1-1.33 2.12 2.12 0 0 0-.23-1.3l-.09-.15c.28-.17.54-.35.81-.53.93-.66 1.82-1.39 2.69-2.1a17 17 0 0 0 3.49-3.54 5.75 5.75 0 0 0 .94-4.7ZM673.69 820.15c-.24 0-.48 0-.71.06a9.57 9.57 0 0 0-2.54.73l-.19.1c1.1-2.38 2.14-4.8 3.08-7.26.11-.29.21-.58.32-.88l-.12 1.64a20.22 20.22 0 0 0 .16 5.61Z",transform:"translate(-50 -46.63)",fill:"url(#a)"})),ue||(ue=We.createElement("path",{d:"M638 409.1c.1 3.88 1.42 7.64 1.62 11.52-11.43.57-22.72-5-34-3.28 3.17-2.05 4.86-5.74 5.86-9.37a38.9 38.9 0 0 0 1.11-14.41 6.61 6.61 0 0 0-.14-.79c-.42-1.9-1.51-4.59-1.22-6.08.39-2 2.25-1.59 3.93-1.48a150.51 150.51 0 0 1 15.26 2c1.32.23 14.13 3.43 14.33 3.1a59.69 59.69 0 0 0-5.55 11.43 22.32 22.32 0 0 0-1.2 7.36ZM751.05 397.1a16.64 16.64 0 0 1-3.49 3.52c-.87.71-1.76 1.44-2.69 2.09a11.5 11.5 0 0 1-5.72 2.33c-2.72.18-8.51-1.42-10.2-3.75a6.77 6.77 0 0 1-1-3.91 17.88 17.88 0 0 1 .94-5.46 30.42 30.42 0 0 1 4.41-8c2-2.74 4.16-5.43 7.09-7.09a27.35 27.35 0 0 1 3-1.39l5.33-2.18a2.5 2.5 0 0 1 1-.26c1.43 0 1.69 2.2.88 3.38-1.62 2.38-5.27 3-6.3 5.73a4.09 4.09 0 0 1 3.8 2.95 2.11 2.11 0 0 0 .51 1.19c.47.37 1.21.16 1.74.45.95.5.53 1.91.63 3a13.5 13.5 0 0 0 1 2.68 5.69 5.69 0 0 1-.93 4.72Z",fill:"#ee8e9e"})),ge||(ge=We.createElement("path",{d:"M593.4 786.45c.88-.88 2.32-.73 3.55-.54a132 132 0 0 0 19.95 1.61c.84-4.08-1.59-8-2.37-12.14a10.76 10.76 0 0 0-.8-3.08c-.94-1.8-3.06-2.63-5.05-3-3.59-.76-9.21-2.09-11.22 1.54-2.41 4.31-3.18 10.75-4.06 15.61Z",fill:"#65617d"})),ve||(ve=We.createElement("path",{d:"M666.49 771.02c-2.71 1.85-6.07 2.42-9.33 2.84s-6.61.74-9.57 2.19c-2.54 1.26-4.69 3.32-7.39 4.22a15.31 15.31 0 0 1-7.67.12c-3-.57-6.26-1.67-7.89-4.29-1.46-2.32-1.31-5.27-1.11-8 .24-3.09.47-6.2.69-9.3a4.4 4.4 0 0 1 .58-2.24c2.19-3.2 7.52 1.33 10.37 1.33 4.52 0 9.37-2.46 12.62-5.45a3.89 3.89 0 0 1 1-.74c1.29-.58 2.58.49 3.72 1.42l.39.31c2.64 2.09 6.18 2.52 9.44 3.37s6.75 2.55 7.76 5.77a4.57 4.57 0 0 1 .16.61c.57 2.95-1.26 6.1-3.77 7.84Z",fill:"#3f3d56"})),be||(be=We.createElement("path",{d:"M666.49 771.02c-2.71 1.85-6.07 2.42-9.33 2.84s-6.61.74-9.57 2.19c-2.54 1.26-4.69 3.32-7.39 4.22a15.31 15.31 0 0 1-7.67.12c-3-.57-6.26-1.67-7.89-4.29-1.46-2.32-1.31-5.27-1.11-8 .24-3.09.47-6.2.69-9.3a4.4 4.4 0 0 1 .58-2.24c2.19-3.2 7.52 1.33 10.37 1.33 4.52 0 9.37-2.46 12.62-5.45a3.89 3.89 0 0 1 1-.74c1.29-.58 2.58.49 3.72 1.42l.39.31c2.64 2.09 6.18 2.52 9.44 3.37s6.75 2.55 7.76 5.77a4.57 4.57 0 0 1 .16.61c.57 2.95-1.26 6.1-3.77 7.84Z",fill:"#434175"})),we||(we=We.createElement("path",{d:"M666.49 772.06c-2.71 1.85-6.07 2.43-9.33 2.85s-6.61.73-9.57 2.18c-2.54 1.26-4.69 3.32-7.39 4.22a15.31 15.31 0 0 1-7.67.12 12.6 12.6 0 0 1-7.89-5.33c-1.46-2.32-1.31-5.27-1.11-8 .24-3.09.47-6.2.69-9.3a4.4 4.4 0 0 1 .58-2.24c2.19-3.2 7.52 1.33 10.37 1.33 4.52 0 9.37-2.46 12.62-5.45a3.89 3.89 0 0 1 1-.74c1.29-.58 2.58.49 3.72 1.42a26.4 26.4 0 0 1-3.17 6.56 13.63 13.63 0 0 1-10 6.22c-2 .15-4.09-.25-6 .27s-3.77 2.52-3.08 4.42 3.06 2.25 5 2.36a22.38 22.38 0 0 0 8.21-.58c1.6-.53 3.07-1.41 4.62-2.06 6.62-2.74 15-1.21 20.46-5.85a13 13 0 0 1 1.67-1.28c1.45 2.99-1.22 7.19-3.73 8.88Z",fill:"#e8eaf2"})),qe||(qe=We.createElement("path",{d:"M666.49 772.06c-2.71 1.85-6.07 2.43-9.33 2.85s-6.61.73-9.57 2.18c-2.54 1.26-4.69 3.32-7.39 4.22a15.31 15.31 0 0 1-7.67.12 12.6 12.6 0 0 1-7.89-5.33c-1.46-2.32-1.31-5.27-1.11-8 .24-3.09.47-6.2.69-9.3a4.4 4.4 0 0 1 .58-2.24c2.19-3.2 7.52 1.33 10.37 1.33 4.52 0 9.37-2.46 12.62-5.45a3.89 3.89 0 0 1 1-.74c1.29-.58 2.58.49 3.72 1.42a26.4 26.4 0 0 1-3.17 6.56 13.63 13.63 0 0 1-10 6.22c-2 .15-4.09-.25-6 .27s-3.77 2.52-3.08 4.42 3.06 2.25 5 2.36a22.38 22.38 0 0 0 8.21-.58c1.6-.53 3.07-1.41 4.62-2.06 6.62-2.74 15-1.21 20.46-5.85a13 13 0 0 1 1.67-1.28c1.45 2.99-1.22 7.19-3.73 8.88Z",opacity:.05})),Oe||(Oe=We.createElement("path",{d:"M594.64 569.44a40.77 40.77 0 0 0 5.58 30c1.55 2.4 3.37 4.66 4.54 7.27a33.77 33.77 0 0 1 1.77 5.77l5 20.8c1.36 5.62 2.73 11.34 2.32 17.11-.28 4-1.3 8.53 1.18 11.71a8.46 8.46 0 0 1 1.49 2.05 5.15 5.15 0 0 1 0 2.7c-2.54 15.11-4.43 30.9.16 45.51 4.17 13.25 4.41 27.93 7.95 41.35a9.24 9.24 0 0 0 2.19 4.59 7.27 7.27 0 0 0 3.3 1.56c5.22 1.25 10.73-.21 15.59-2.46 3.42-1.59 7.1-4.37 6.81-8.12-.14-1.79-1.18-3.36-1.89-5-1.39-3.23-1.5-6.83-1.88-10.33-.94-8.78-3.65-17.26-5.69-25.84s-3.44-17.57-1.71-26.23a229.79 229.79 0 0 1 16.87-51.9 6.27 6.27 0 0 1 1.55-2.32 16.86 16.86 0 0 0 2.19-1.49 6.66 6.66 0 0 0 1-2.72c.76-2.74 3-4.77 4.53-7.17 3.83-6.08 2.62-13.87 2.48-21.05-.14-7 .86-14-.28-20.92s-5.04-13.94-11.69-16.06c-3.29-1.07-6.85-.82-10.29-.48-18.23 1.8-35.95 5.11-53.07 11.67Z",fill:"#696791"})),ke||(ke=We.createElement("path",{d:"M594.64 570.44a40.77 40.77 0 0 0 5.58 30c1.55 2.4 3.37 4.66 4.54 7.27a33.77 33.77 0 0 1 1.77 5.77l5 20.8c1.36 5.62 2.73 11.34 2.32 17.11-.28 4-1.3 8.53 1.18 11.71a8.46 8.46 0 0 1 1.49 2.05 5.15 5.15 0 0 1 0 2.7c-2.54 15.11-4.43 30.9.16 45.51 4.17 13.25 4.41 27.93 7.95 41.35a9.24 9.24 0 0 0 2.19 4.59 7.27 7.27 0 0 0 3.3 1.56c5.22 1.25 10.73-.21 15.59-2.46 3.42-1.59 7.1-4.37 6.81-8.12-.14-1.79-1.18-3.36-1.89-5-1.39-3.23-1.5-6.83-1.88-10.33-.94-8.78-3.65-17.26-5.69-25.84s-3.44-17.57-1.71-26.23a229.79 229.79 0 0 1 16.87-51.9 6.27 6.27 0 0 1 1.55-2.32 16.86 16.86 0 0 0 2.19-1.49 6.66 6.66 0 0 0 1-2.72c.76-2.74 3-4.77 4.53-7.17 3.83-6.08 2.62-13.87 2.48-21.05-.14-7 .86-14-.28-20.92s-5.04-13.94-11.69-16.06c-3.29-1.07-6.85-.82-10.29-.48-18.23 1.8-35.95 5.11-53.07 11.67Z",opacity:.1})),Ce||(Ce=We.createElement("path",{d:"M668.92 613.23a44 44 0 0 1-.91 8.07q-4.83 27-10.28 54c-.32 1.56-.63 3.12-1.05 4.65a37.78 37.78 0 0 1-7 13.7c-15.15 18.89-16.46 46.32-24.68 69.1-.56 1.54-1.11 3.09-1.7 4.61a115.75 115.75 0 0 1-5.07 11.31 3.22 3.22 0 0 1-1 1.35 3.08 3.08 0 0 1-1.65.33 48.31 48.31 0 0 1-21.36-4.86 4.48 4.48 0 0 1-2.27-1.89 4.66 4.66 0 0 1-.24-2.17c.23-4.51.51-9.19 2.66-13.16a28.22 28.22 0 0 1 5.26-6.38 242.36 242.36 0 0 1 5.16-42.22c1.6-7.08 3.58-14.23 7.69-20.21 3-4.42 7.38-8.78 6.84-14.11-.23-2.34-1.21-5.25.69-6.62.83-.61 2.06-.69 2.63-1.55a3 3 0 0 0 .37-1.32 32.66 32.66 0 0 0-.68-10.93 58.79 58.79 0 0 1-1.63-7.13 9 9 0 0 1 1.79-6.88c.1-4.87 0-9.92.07-14.78a27.16 27.16 0 0 0-.69-8.25c-.36-1.27-.93-2.49-1.21-3.79-1-4.67 1.52-10.27-1.5-14-1.26-1.54-3.2-2.31-4.85-3.42a17.71 17.71 0 0 1-6.66-9.57 52.59 52.59 0 0 1-1.9-11.74 11.28 11.28 0 0 1 0-2.53 4.35 4.35 0 0 1 .34-1.27c.94-2.11 3.46-2.93 5.71-3.47a185.15 185.15 0 0 1 43.61-5.1c5.44-3.7 8.49-2.37 10.8 1.54a41.09 41.09 0 0 1 3.07 7.51c1 3.18 1.12 21 2.14 24.17 1.3 4.15-2.55 12.65-2.5 17.01Z",fill:"#696791"})),je||(je=We.createElement("path",{d:"M570.68 451.29c-.4 2.8.94 5.55 1.09 8.38.13 2.47-.66 4.88-1.1 7.31-1.76 9.48 1.61 19.09 5 28.11a14.4 14.4 0 0 1 1.2 4.62c.09 2.94-1.6 5.64-2.07 8.55-1 6.11 3.53 11.85 3.63 18 0 2.85-.86 5.75-.14 8.5.47 1.84 1.62 3.43 2.43 5.14 1.45 3 1.84 6.5 3.22 9.57 2.49 5.55 7.84 9.18 12.94 12.51 2.89-1 6-2.11 7.62-4.72a11.63 11.63 0 0 0 1.33-4.14c1.1-6.33 1.06-12.79 1-19.21a118.59 118.59 0 0 0-.83-16.54c-1-7-3.29-13.7-4.92-20.57-2-8.65-3.09-17.59-6.28-25.9-2.81-7.29-7.17-13.84-11.77-20.12-1.75-2.39-3.14-5.81-6.54-5.26a7.13 7.13 0 0 0-5.81 5.77Z",fill:"#434175"})),Pe||(Pe=We.createElement("path",{d:"M570.68 449.29c-.4 2.8.94 5.55 1.09 8.38.13 2.47-.66 4.88-1.1 7.31-1.76 9.48 1.61 19.09 5 28.11a14.4 14.4 0 0 1 1.2 4.62c.09 2.94-1.6 5.64-2.07 8.55-1 6.11 3.53 11.85 3.63 18 0 2.85-.86 5.75-.14 8.5.47 1.84 1.62 3.43 2.43 5.14 1.45 3 1.84 6.5 3.22 9.57 2.49 5.55 7.84 9.18 12.94 12.51 2.89-1 6-2.11 7.62-4.72a11.63 11.63 0 0 0 1.33-4.14c1.1-6.33 1.06-12.79 1-19.21a118.59 118.59 0 0 0-.83-16.54c-1-7-3.29-13.7-4.92-20.57-2-8.65-3.09-17.59-6.28-25.9-2.81-7.29-7.17-13.84-11.77-20.12-1.75-2.39-3.14-5.81-6.54-5.26a7.13 7.13 0 0 0-5.81 5.77Z",opacity:.05})),Se||(Se=We.createElement("path",{d:"M644.66 390.28a59.69 59.69 0 0 0-5.55 11.43 26.19 26.19 0 0 1-6.3.76c-8.25 0-14.08-4.69-18.93-10.62-.42-1.9-3-3.67-2.74-5.16.39-2 2.25-1.59 3.93-1.48a150.51 150.51 0 0 1 15.26 2c1.32.16 14.13 3.4 14.33 3.07Z",opacity:.1})),Ae||(Ae=We.createElement("circle",{cx:632.81,cy:375.34,r:26.41,fill:"#ee8e9e"})),Ne||(Ne=We.createElement("path",{d:"M666.18 564.56c-4.57-.27-9.18-.08-13.76.1a47.15 47.15 0 0 0-8.55.88c-3.47.79-6.71 2.37-10.13 3.36-5.48 1.59-11.26 1.66-16.93 2.22a94.36 94.36 0 0 0-11.09 1.74 4.35 4.35 0 0 1 .34-1.27c.94-2.11 3.46-2.93 5.71-3.47a185.15 185.15 0 0 1 43.61-5.1c5.44-3.65 8.49-2.37 10.8 1.54Z",opacity:.1})),Le||(Le=We.createElement("path",{d:"M648.18 418.58c-1.15 1.33-2.7 2.8-4.4 2.37a6.08 6.08 0 0 1-1.72-.92c-3-2-6.78-2.42-10.36-3a152.4 152.4 0 0 1-21.34-4.8 21.93 21.93 0 0 0-6.32-1.28c-4.47 0-8.44 3-11.24 6.48s-4.8 7.57-7.55 11.1c-2 2.52-4.3 4.74-6.13 7.35-4.62 6.59-5.62 15.19-4.42 23.15s4.37 15.47 7.53 22.88a78.47 78.47 0 0 0 6.14 12.46c-1.06 6-.5 13 2.38 18.4.93 1.77 2.08 3.49 2.39 5.47a13.85 13.85 0 0 1-.16 4l-1.35 9.56c-.41 2.91-.82 5.82-1.35 8.72-1 5.29-2.28 11 .17 15.82 2.93 5.74-.15 13.09.62 19.49a97.8 97.8 0 0 1 25.74-6.11c5.67-.56 11.45-.63 16.93-2.22 3.42-1 6.66-2.57 10.13-3.37a47 47 0 0 1 8.55-.87c6.33-.25 12.7-.51 19 .42.5.08 1.12.12 1.43-.29a1.47 1.47 0 0 0 .19-.75 12.63 12.63 0 0 0-1.62-6.72c-.8-1.41-1.91-2.79-1.88-4.41a6.48 6.48 0 0 1 .55-2.19l2.77-7.4c2.35-6.25 1.23-13.51 2.45-20.07a117.46 117.46 0 0 0 1.82-15.53c.23-4.45.09-9.27-2.6-12.83a14.67 14.67 0 0 1-2-2.83 8.34 8.34 0 0 1-.48-3.37q-.09-13.36.73-26.72c-2.34-4.21-4.79-8.51-7.13-12.72-2.73-4.9-5.49-9.9-6.59-15.4-.73-3.63-.71-7.38-1.23-11.05a4.9 4.9 0 0 0-.93-2.59 4.69 4.69 0 0 0-3.76-1.11 16.44 16.44 0 0 0-4.96.88Z",fill:"#434175"})),Ue||(Ue=We.createElement("path",{d:"M744.87 402.71a11.5 11.5 0 0 1-5.72 2.33c-2.72.18-8.51-1.42-10.2-3.75a6.77 6.77 0 0 1-1-3.91 4.91 4.91 0 0 1 1.14-.22 29.88 29.88 0 0 1 8.86.36c2.88.7 5.66 2.45 6.87 5.16Z",opacity:.1})),De||(De=We.createElement("path",{d:"M657 459.83c1.61 2 3.28 4.06 5.56 5.25 2.63 1.36 5.72 1.39 8.67 1.33a208 208 0 0 0 36.23-4 22.81 22.81 0 0 0 4-1.07 20.6 20.6 0 0 0 4-2.52c3.93-2.82 7.92-5.7 10.91-9.51a32.05 32.05 0 0 0 6.46-15.85c2.84-2.61 4.35-6.34 5.77-9.93a15.24 15.24 0 0 0 1.32-4.82c.07-1.71-1.06-3.5-.74-5.18a13.64 13.64 0 0 1 4.19-7.54 2.74 2.74 0 0 0 1-1.33 2.1 2.1 0 0 0-.23-1.29c-1.22-2.71-4-4.45-6.88-5.16a29.61 29.61 0 0 0-8.87-.36 20.06 20.06 0 0 0-2.9.78l-2.07 5.43a6.88 6.88 0 0 1-1.35 2.48 12.52 12.52 0 0 1-1.46 1.15 8.38 8.38 0 0 0-2.91 7.33 7.88 7.88 0 0 0-4.66 9.72 9.3 9.3 0 0 0-6.81 6 4.45 4.45 0 0 1-.89 1.87 3.66 3.66 0 0 1-2.34.76c-2.34.14-4.38 2-6.49 1a13.29 13.29 0 0 0-7.71-1.08 5.77 5.77 0 0 1-1.65.15 4.43 4.43 0 0 1-1.35-.47 10.72 10.72 0 0 0-3.06-1.2 2.84 2.84 0 0 0-2.9 1.12c-.74-.81-1.18-1.85-1.85-2.72a3 3 0 0 0-2.82-1.35c.7-.62 0-1.87-.93-2.1a12.66 12.66 0 0 0-2.81.1c-2.44 0-4.32-2.23-6.69-2.81-2.18-.53-5.09.11-6.21-1.84-.39-.69-.47-1.63-1.14-2a2.2 2.2 0 0 0-1.48-.17 14.24 14.24 0 0 0-4.45 1.35c-2.29 9-1.09 18.24.65 27.3a24.07 24.07 0 0 0 4.89 11.18Z",fill:"#434175"})),Ie||(Ie=We.createElement("path",{d:"m656.93 491.88-11.37 22.94c1.23-2.13 3.82-3 5.87-4.31a15.54 15.54 0 0 0 5.57-7.54 47.14 47.14 0 0 0 2.15-9.29c.23-1.45.71-3.49 0-4.81-1.26.27-1.68 1.94-2.22 3.01ZM624.21 511.37c-2.57 2.54-5.71 4.41-8.53 6.66-6.6 5.26-11.3 12.46-15.89 19.53a30.77 30.77 0 0 0-3.25 5.92c.54.46 1.34 0 1.88-.49l8.93-7.84a20.19 20.19 0 0 0 3-3c1.55-2.09 2.24-4.69 3.65-6.88a26.84 26.84 0 0 1 5.43-5.53c2.05-1.76 11.47-9.73 9.18-12.83-1.69.8-3.05 3.1-4.4 4.46Z",opacity:.1})),Be||(Be=We.createElement("path",{d:"M643.72 411.95a26.78 26.78 0 0 0-9.45-3.11 20 20 0 0 0-6-.43c-1.86.23-3.65.95-5.52 1-2.63.15-5.14-.92-7.68-1.61s-5.47-1-7.6.57a3.29 3.29 0 0 1-1.66.88 3 3 0 0 1-1.71-.84 9.74 9.74 0 0 0-12.14.64c-4.84 4.54-4.29 13.41-10 16.86-1.56 1-3.56 1.45-4.48 3a12 12 0 0 1-.77 1.46 4 4 0 0 1-1.36 1 26.43 26.43 0 0 0-4.68 2.69 6.66 6.66 0 0 0-2.69 4.51 8.53 8.53 0 0 0 .82 3.79 35.62 35.62 0 0 0 34.61 22.13 5.42 5.42 0 0 0 3.63-1.13 6.93 6.93 0 0 0 1.27-2.09c2.67-5.59 7.68-9.72 10.86-15 1.89-3.17 3.11-6.72 5.09-9.84 3-4.73 7.54-8.23 12-11.62 2.52-1.91 5.31-3.92 8.47-3.79 2.81.12 4.86.27 3.82-3.17a11 11 0 0 0-4.83-5.9Z",fill:"#434175"})),He||(He=We.createElement("path",{d:"M643.72 411.95a26.78 26.78 0 0 0-9.45-3.11 20 20 0 0 0-6-.43c-1.86.23-3.65.95-5.52 1-2.63.15-5.14-.92-7.68-1.61s-5.47-1-7.6.57a3.29 3.29 0 0 1-1.66.88 3 3 0 0 1-1.71-.84 9.74 9.74 0 0 0-12.14.64c-4.84 4.54-4.29 13.41-10 16.86-1.56 1-3.56 1.45-4.48 3a12 12 0 0 1-.77 1.46 4 4 0 0 1-1.36 1 26.43 26.43 0 0 0-4.68 2.69 6.66 6.66 0 0 0-2.69 4.51 8.53 8.53 0 0 0 .82 3.79 35.62 35.62 0 0 0 34.61 22.13 5.42 5.42 0 0 0 3.63-1.13 6.93 6.93 0 0 0 1.27-2.09c2.67-5.59 7.68-9.72 10.86-15 1.89-3.17 3.11-6.72 5.09-9.84 3-4.73 7.54-8.23 12-11.62 2.52-1.91 5.31-3.92 8.47-3.79 2.81.12 4.86.27 3.82-3.17a11 11 0 0 0-4.83-5.9Z",opacity:.05})),Te||(Te=We.createElement("path",{d:"M657.47 794.73c-1.92 1.79-4.55 2.57-7.1 3.12a127.7 127.7 0 0 1-17.67 2.19l-5.77.44c-5.63.43-11.27.86-16.92.88a117.17 117.17 0 0 1-20.82-1.8 2.28 2.28 0 0 1-1.65-.8 2.24 2.24 0 0 1-.25-1.31 100.74 100.74 0 0 1 2.56-20.9c.65-2.81 5.7 3.5 5.93 3.77a5.76 5.76 0 0 0 4.59 2.43c5.81.32 12.32-3.21 16.93-6.35a22.18 22.18 0 0 1 3.14-1.95 9.19 9.19 0 0 1 2.54-.72 15.28 15.28 0 0 1 8.64 1.75c3.47 1.72 6.51 4.19 10 6a28.06 28.06 0 0 0 8.92 2.82c3.14.43 6.9.64 8.51 3.36 1.28 2.25.32 5.29-1.58 7.07Z",fill:"#434175"})),_e||(_e=We.createElement("path",{d:"M657.47 795.77c-1.92 1.79-4.55 2.57-7.1 3.12a127.7 127.7 0 0 1-17.67 2.19l-5.77.44c-5.63.43-11.27.86-16.92.88a116.24 116.24 0 0 1-20.82-1.8 2.27 2.27 0 0 1-1.65-.79 9.26 9.26 0 0 1-1.29-2.36c.12-7 2-14.05 3.6-20.9.65-2.81 5.7 3.5 5.93 3.77a5.76 5.76 0 0 0 4.59 2.43c5.81.32 12.32-3.21 16.93-6.35a22.18 22.18 0 0 1 3.14-1.95 9.19 9.19 0 0 1 2.54-.72c-.75 4.18-6.74 9.23-9.84 10.77-6.26 3.11-13.7 1.55-20.68 1.92a3 3 0 0 0-1.47.35c-.83.56-.88 1.75-.86 2.75.06 1.66.27 3.62 1.72 4.46a4.94 4.94 0 0 0 2.32.49 327.89 327.89 0 0 0 51.57-1.81 28.23 28.23 0 0 0 8.4-1.87 21.44 21.44 0 0 0 4.87-3.14c2.2 1.72.36 6.34-1.54 8.12Z",fill:"#e8eaf2"})),Fe||(Fe=We.createElement("path",{d:"M643.09 375.06c-.1 2.73 1.76 8-3.35 6.55-3-.88-3.9-4.49-7.76-3.69s-4.76 5.57-6.06 8.68a16.59 16.59 0 0 1-12 9.72 7.26 7.26 0 0 1-3.31 0c-2.49-.71-3.91-3.28-4.93-5.66a44.08 44.08 0 0 1-2.18-6.22 25.31 25.31 0 0 1-.79-4.56 19.48 19.48 0 0 1 0-3.15c.46-6.21 4-11.87 8.52-16.15s10-7.38 15.45-10.43a22.9 22.9 0 0 1 5.7-2.54 19.21 19.21 0 0 1 6-.24 20.85 20.85 0 0 1 7.66 1.8 10.71 10.71 0 0 1 2.69 1.89 8.11 8.11 0 0 1 2.34 3.89c1 4-1.58 7.63-3.66 10.8-1.9 2.81-4.19 5.79-4.32 9.31Z",fill:"#434175"})),Ge||(Ge=We.createElement("path",{d:"M729 433.67c-1.09-2.75-5.67-10.36-4.35-13a33.77 33.77 0 0 1 3.49 6.24c.86 2.15.18 5.01.86 6.76ZM647.47 365.74c2.08-3.17 4.64-6.79 3.66-10.8a8.35 8.35 0 0 0-3-4.44 7.27 7.27 0 0 1 .76 1.87c1 4-1.58 7.62-3.66 10.8-1.85 2.82-4.14 5.81-4.28 9.32-.1 2.73 1.77 8-3.34 6.55-3-.88-3.9-4.49-7.77-3.69s-4.75 5.56-6.06 8.68a16.57 16.57 0 0 1-12 9.72 7.26 7.26 0 0 1-3.31 0 5.05 5.05 0 0 1-1.56-.77 6.76 6.76 0 0 0 3.77 3.34 7.44 7.44 0 0 0 3.32 0 16.63 16.63 0 0 0 12-9.73c1.31-3.12 2.16-7.86 6.06-8.67s4.72 2.8 7.77 3.68c5.11 1.48 3.24-3.82 3.34-6.55.16-3.5 2.46-6.49 4.3-9.31Z",opacity:.1})),Re||(Re=We.createElement("path",{d:"M648.6 360.31a21.84 21.84 0 0 1-1.56 2.24 26.58 26.58 0 0 1-3.61 3.74c-.79.68-1.6 1.31-2.44 1.91a38.47 38.47 0 0 1-4.93 2.95 91.47 91.47 0 0 1-15.78 5.65l-10.54 3.07c-1.3 1-3.67 2.74-6.28 4.57a25.31 25.31 0 0 1-.79-4.56 19.48 19.48 0 0 1 0-3.15c.46-6.21 4-11.87 8.52-16.15s10-7.38 15.45-10.43a22.9 22.9 0 0 1 5.7-2.54 19.21 19.21 0 0 1 6-.24 20.85 20.85 0 0 1 7.66 1.8 10.71 10.71 0 0 1 2.69 1.89 10.14 10.14 0 0 1 1.35 2.86c.66 2.15-.26 4.45-1.44 6.39Z",opacity:.1})),ze||(ze=We.createElement("path",{d:"M648.6 359.6a21.84 21.84 0 0 1-1.56 2.24 26.58 26.58 0 0 1-3.61 3.74c-.79.68-1.6 1.31-2.44 1.91a39.65 39.65 0 0 1-4.93 2.95 91.47 91.47 0 0 1-15.78 5.65l-10.54 3.06c-3.68 2.79-16 11.91-18.07 10.77-2.44-1.34 10.93-10.81 10.93-10.81l.61.47c-2-1.23-3-4.08-3.42-6.55-.78-4.42-1.15-9-.1-13.37s3.67-8.51 7.66-10.55c1.77-.92 3.92-1.53 5.2-2.93a4.4 4.4 0 0 0 .51-.69 2.08 2.08 0 0 0 .2-.36 4.32 4.32 0 0 1 .56-1.09c.73-.84 2.06-.59 3.17-.45h.36a5.68 5.68 0 0 0 .59 0c4 .09 7.81-2.12 11.82-2.12 4.39 0 8.13 2.54 12 4.28.78.35 1.52.67 2.22 1 2.8 1.3 4.9 2.69 6 6.38.72 2.24-.2 4.55-1.38 6.47Z",fill:"#604687"})),Ve||(Ve=We.createElement("path",{d:"M617.94 343.65a1.8 1.8 0 0 1-.42 2.32 3.2 3.2 0 0 1-1.66.59 11.2 11.2 0 0 1-1.3.1 3.58 3.58 0 0 1-1.71-.29 2.2 2.2 0 0 1-.3-.19 4.4 4.4 0 0 0 .51-.69c.1.08.2.06.59 0a9.13 9.13 0 0 0 2.14-.36 2.38 2.38 0 0 0 .8-.39 2.48 2.48 0 0 0 .76-1.15ZM602.86 379.01a4.87 4.87 0 0 0 1.83.68 8.29 8.29 0 0 0 1.41.23 7.84 7.84 0 0 0 3.45-1",opacity:.1})))}},7156:(e,a,t)=>{t.d(a,{Z:()=>K});var c,l,r,i,n,s,m,o,f,d,h,p,y,E,Z,x,M,u,g,v,b,w,q,O,k,C,j,P,S,A,N,L,U,D,I,B,H,T,_,F,G,R,z,V,W,J=t(7294),Y=["title","titleId"];function X(){return X=Object.assign?Object.assign.bind():function(e){for(var a=1;a=0||(l[t]=e[t]);return l}(e,a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(c=0;c=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(l[t]=e[t])}return l}const K=function(e){var a=e.title,t=e.titleId,K=Q(e,Y);return J.createElement("svg",X({"data-name":"Layer 1",xmlns:"http://www.w3.org/2000/svg",width:1108,height:731.18,viewBox:"0 0 1108 731.18","aria-labelledby":t},K),void 0===a?J.createElement("title",{id:t},"react"):a?J.createElement("title",{id:t},a):null,c||(c=J.createElement("path",{d:"m767.68 330.79 6.89-2.7c.66-.26 1.31-.54 2-.81a59.85 59.85 0 0 1 15.28-115.77l-4.8 24.2 18.22-23.92h.16a59.87 59.87 0 0 1 51.16 67.45c-.15 1.13-.39 2.23-.6 3.34 5.61-4.43 10.87-9.32 14.81-15 8-11.54 10.71-25.76 13.47-43.17 5.47-34.48 10.4-69.34 14.84-104.18a59.83 59.83 0 0 1-42-65.36c.25-1.82.6-3.59 1-5.34.1-.44.2-.88.31-1.31.43-1.69.91-3.35 1.47-5 .09-.27.21-.52.3-.78.5-1.37 1-2.72 1.65-4 .22-.5.44-1 .67-1.47a57.69 57.69 0 0 1 2.22-4.19c.27-.45.56-.88.83-1.33.62-1 1.27-2 1.94-2.93.36-.5.71-1 1.08-1.49l.27-.39a59.81 59.81 0 0 1 74.64-17l-6.24 31.49 18-23.64a59.5 59.5 0 0 1 16.32 68.62h.07c-.17.4-.38.78-.55 1.18-.33.74-.67 1.47-1 2.2-.46.93-1 1.84-1.45 2.74-.38.68-.75 1.36-1.16 2-.59 1-1.23 1.9-1.87 2.83-.38.54-.73 1.1-1.12 1.63-1 1.39-2.12 2.72-3.26 4-.4.45-.83.86-1.25 1.3-.81.86-1.62 1.71-2.48 2.52-.53.5-1.09 1-1.64 1.46-.79.7-1.6 1.38-2.43 2-.59.47-1.19.92-1.79 1.36a77.101 77.101 0 0 1-4.45 2.96c-1 .61-2.05 1.17-3.1 1.72-.53.27-1 .57-1.59.83-1.58.77-3.2 1.48-4.85 2.11-.31.12-.64.21-.95.32-1.38.5-2.77 1-4.18 1.35-.61.17-1.23.31-1.85.46-1.15.28-2.31.54-3.48.76q-1 .18-2.07.33c-1.15.17-2.31.3-3.48.4-.69.06-1.37.12-2.07.16-1.26.06-2.53.07-3.8.06a2.08 2.08 0 0 0-.25 0q-2.82 22-5.92 44a59.82 59.82 0 0 1 86.4-10.32l-15.68 26.58 25.21-16.59a59.68 59.68 0 0 1 11.5 44.16 58.76 58.76 0 0 1-4.5 15.94 59.83 59.83 0 0 1-111.19-4c-.23 1.48-.45 3-.68 4.46-2.44 15.35-5.47 34.46-16.23 50-7.29 10.56-17.33 18.36-27.09 25.22q-9.52 6.7-19.48 12.77a59.85 59.85 0 0 1-24.53 13.74q-16 8.19-32.69 14.81l-6.95 2.72c-6.25 2.44-12.65 4.94-19 7.6 1 .09 2 .17 3 .3a59.9 59.9 0 0 1 50.86 49.05l-42.31 23.11 42.18-1.89A59.16 59.16 0 0 1 797 450.13a59.87 59.87 0 0 1-82.7 11.74l2.1 3.91c1.4 2.58 2.78 5.15 4.12 7.7 18.33 34.74 19.66 64.74 3.75 84.49l-13-10.45c15.49-19.22 3.2-49.77-5.5-66.27-1.32-2.5-2.68-5-4-7.56-11.77-21.83-25.12-46.57-19.77-72.9 8-39.7 51.05-56.5 85.68-70ZM269.6 519.01l-5.38-2.11c-.52-.2-1-.43-1.54-.63a46.75 46.75 0 0 0-11.94-90.42l3.75 18.9-14.22-18.68h-.13a46.76 46.76 0 0 0-40 52.68c.12.89.31 1.74.47 2.61a55.84 55.84 0 0 1-11.56-11.73c-6.23-9-8.37-20.12-10.53-33.71-4.23-26.93-8.07-54.15-11.52-81.33a46.72 46.72 0 0 0 32.77-51.05c-.2-1.42-.47-2.8-.79-4.17l-.24-1a48.36 48.36 0 0 0-1.15-3.88c-.07-.21-.16-.41-.24-.61a48.24 48.24 0 0 0-1.28-3.15c-.18-.38-.35-.77-.53-1.15-.54-1.11-1.11-2.2-1.73-3.26-.21-.36-.44-.7-.65-1-.49-.78-1-1.55-1.52-2.29-.28-.39-.55-.79-.84-1.17l-.21-.3a46.76 46.76 0 0 0-58.29-13.32l4.88 24.6-14.07-18.46a46.48 46.48 0 0 0-12.75 53.59h-.05c.13.31.29.61.43.92.26.58.52 1.15.8 1.72q.54 1.08 1.14 2.13c.29.54.58 1.07.9 1.59.46.75 1 1.48 1.46 2.21.3.42.57.86.88 1.27.8 1.08 1.65 2.12 2.54 3.13.31.35.65.67 1 1 .63.67 1.27 1.33 1.94 2 .41.4.85.77 1.28 1.14q.93.83 1.89 1.59c.46.36.93.71 1.4 1.06.68.49 1.37 1 2.06 1.41.47.31.94.61 1.42.9.79.48 1.6.91 2.42 1.34.42.22.82.45 1.24.66 1.24.6 2.5 1.15 3.79 1.64.24.1.5.16.74.25 1.07.39 2.16.75 3.27 1.06.47.13 1 .24 1.44.35.9.22 1.8.43 2.72.6l1.61.26c.9.13 1.81.23 2.72.31.54.05 1.07.09 1.62.12 1 .05 2 .06 3 .05h.19q2.2 17.22 4.62 34.41a46.71 46.71 0 0 0-67.48-8.14l12.14 20.64-19.68-12.95a46.57 46.57 0 0 0-9 34.49 45.8 45.8 0 0 0 3.53 12.46 46.73 46.73 0 0 0 86.84-3.12c.18 1.15.35 2.32.53 3.48 1.9 12 4.27 26.92 12.67 39.08 5.7 8.24 13.54 14.33 21.16 19.69q7.44 5.24 15.21 10a46.88 46.88 0 0 0 19.16 10.74c8.32 4.26 16.84 8.14 25.54 11.56l5.42 2.13c4.88 1.9 9.88 3.85 14.81 5.93-.78.07-1.57.13-2.36.24a46.77 46.77 0 0 0-39.72 38.27l33 18-32.94-1.47a46.78 46.78 0 0 0 73.57 29.2c-.55 1-1.09 2-1.64 3.05-1.09 2-2.17 4-3.22 6-14.31 27.13-15.35 50.57-2.92 66l10.13-8.16c-12.1-15-2.5-38.87 4.3-51.76 1-1.95 2.09-3.92 3.16-5.9 9.19-17 19.61-36.37 15.46-56.94-6.21-30.94-39.86-44.02-66.9-54.6Z",fill:"#f2f2f2"})),l||(l=J.createElement("ellipse",{cx:554,cy:707.68,rx:554,ry:23.5,fill:"#3f3d56"})),r||(r=J.createElement("ellipse",{cx:554,cy:707.68,rx:554,ry:23.5,opacity:.1})),i||(i=J.createElement("ellipse",{cx:554,cy:694.68,rx:554,ry:23.5,fill:"#3f3d56"})),n||(n=J.createElement("path",{d:"M85 686.32c-3-5.51.4-12.26 4.28-17.18s8.61-10 8.51-16.29c-.14-9-9.7-14.31-17.33-19.08a84.78 84.78 0 0 1-15.56-12.51 23 23 0 0 1-4.78-6.4c-1.58-3.52-1.53-7.52-1.43-11.38q.5-19.26 1.9-38.48",fill:"none",stroke:"#3f3d56",strokeMiterlimit:10,strokeWidth:4})),s||(s=J.createElement("path",{d:"M46.11 564.29a14 14 0 0 1 7-11.49l3.14 6.21-.09-7.52a13.86 13.86 0 0 1 4.62-.56 14 14 0 1 1-14.67 13.36ZM71.14 659.29a14 14 0 0 0 26.5-5.76 13.82 13.82 0 0 0-.91-5.69 14 14 0 0 0-26.27.15l8.77 7.13-9.64-2.24a13.89 13.89 0 0 0 1.55 6.41ZM78.07 632.04a14 14 0 0 0 4.46-27.54l.07 5.79-3.18-6.29a14.04 14.04 0 0 0-1.31 28.05ZM44 609.37a14.016 14.016 0 0 0 1.32-28 13.88 13.88 0 0 0-7.52 1.78l2.48 6.8-5.11-4.9a14 14 0 0 0-4.53 9.69 13.33 13.33 0 0 0 .36 3.85 14 14 0 0 0 13 10.78Z",fill:"#604687"})),m||(m=J.createElement("path",{d:"M48 568.03c3.24.36 6.39 1.37 9.64 1.57s6.82-.58 8.88-3.1c1.11-1.37 1.66-3.09 2.59-4.57a10.08 10.08 0 0 1 3.54-3.33 14 14 0 1 1-26.24 9.32c.53.02 1.06.06 1.59.11ZM44 609.37a14 14 0 0 0 13.35-20 10.4 10.4 0 0 0-2.82 2.83c-1 1.51-1.61 3.25-2.78 4.64-2.19 2.57-5.92 3.41-9.31 3.25s-6.66-1.11-10-1.42c-.47 0-.94-.08-1.41-.09A14 14 0 0 0 44 609.37ZM78.07 632.04a14 14 0 0 0 13.47-19.76 11.36 11.36 0 0 0-3 2.85c-1.09 1.54-1.77 3.31-3 4.73-2.36 2.64-6.34 3.57-9.93 3.48s-6.82-.93-10.28-1.19a14 14 0 0 0 12.74 9.89ZM71.14 659.29a14 14 0 0 0 26.5-5.76 13.82 13.82 0 0 0-.91-5.69 14 14 0 0 0-3.08 2.74c-1.34 1.63-2.21 3.47-3.76 5-2.87 2.82-7.5 4-11.62 4.09a62.35 62.35 0 0 1-7.13-.38Z",opacity:.1})),o||(o=J.createElement("path",{d:"M106.19 679.98s-11.08-.34-14.41-2.72-17-5.22-17.87-1.4-16.65 19-4.14 19.06 29.06-2 32.39-4 4.03-10.94 4.03-10.94Z",fill:"#656380"})),f||(f=J.createElement("path",{d:"M69.54 693.59c12.51.1 29.06-2 32.4-4 2.53-1.54 3.54-7.09 3.88-9.65h.37s-.7 8.93-4 11-19.89 4.08-32.39 4c-3.61 0-4.86-1.31-4.79-3.22.47 1.13 1.85 1.87 4.53 1.87Z",opacity:.2})),d||(d=J.createElement("path",{d:"M1055 695.32c-3-5.51.4-12.26 4.28-17.18s8.61-10 8.51-16.29c-.14-9-9.7-14.31-17.33-19.08a84.78 84.78 0 0 1-15.56-12.51 23 23 0 0 1-4.78-6.4c-1.58-3.52-1.53-7.52-1.43-11.38q.49-19.26 1.9-38.48",fill:"none",stroke:"#3f3d56",strokeMiterlimit:10,strokeWidth:4})),h||(h=J.createElement("path",{d:"M1016.11 573.29a14 14 0 0 1 7-11.49l3.14 6.21-.09-7.52a13.86 13.86 0 0 1 4.62-.56 14 14 0 1 1-14.68 13.36ZM1041.14 668.29a14 14 0 0 0 26.5-5.76 13.82 13.82 0 0 0-.91-5.69 14 14 0 0 0-26.27.15l8.77 7.13-9.64-2.24a13.89 13.89 0 0 0 1.55 6.41ZM1048.07 641.04a14 14 0 0 0 4.46-27.54l.07 5.79-3.18-6.29a14.04 14.04 0 0 0-1.31 28.05ZM1014 618.37a14.016 14.016 0 0 0 1.32-28 13.88 13.88 0 0 0-7.52 1.78l2.48 6.8-5.11-4.9a14 14 0 0 0-4.53 9.69 13.33 13.33 0 0 0 .36 3.85 14 14 0 0 0 13 10.78Z",fill:"#604687"})),p||(p=J.createElement("path",{d:"M1018 577.03c3.24.36 6.39 1.37 9.64 1.57s6.82-.58 8.88-3.1c1.11-1.37 1.66-3.09 2.59-4.57a10.08 10.08 0 0 1 3.54-3.33 14 14 0 1 1-26.24 9.32c.53.02 1.06.06 1.59.11ZM1014 618.37a14 14 0 0 0 13.35-20 10.4 10.4 0 0 0-2.82 2.83c-1 1.51-1.61 3.25-2.78 4.64-2.19 2.57-5.92 3.41-9.31 3.25s-6.66-1.11-10-1.42c-.47 0-.94-.08-1.41-.09a14 14 0 0 0 12.97 10.79ZM1048.07 641.04a14 14 0 0 0 13.47-19.76 11.36 11.36 0 0 0-3 2.85c-1.09 1.54-1.77 3.31-3 4.73-2.36 2.64-6.34 3.57-9.93 3.48s-6.82-.93-10.28-1.19a14 14 0 0 0 12.74 9.89ZM1041.14 668.29a14 14 0 0 0 26.5-5.76 13.82 13.82 0 0 0-.91-5.69 14 14 0 0 0-3.08 2.74c-1.34 1.63-2.21 3.47-3.76 5-2.87 2.82-7.5 4-11.62 4.09a62.35 62.35 0 0 1-7.13-.38Z",opacity:.1})),y||(y=J.createElement("path",{d:"M1076.19 688.98s-11.08-.34-14.41-2.72-17-5.22-17.87-1.4-16.65 19-4.14 19.06 29.06-2 32.39-4 4.03-10.94 4.03-10.94Z",fill:"#656380"})),E||(E=J.createElement("path",{d:"M1039.54 702.59c12.51.1 29.06-2 32.4-4 2.53-1.54 3.54-7.09 3.88-9.65h.37s-.7 8.93-4 11-19.89 4.08-32.39 4c-3.61 0-4.86-1.31-4.79-3.22.47 1.13 1.85 1.87 4.53 1.87Z",opacity:.2})),Z||(Z=J.createElement("path",{d:"M745.57 331.15q-9.92-3.4-20-6.3 1.66-6.79 3.09-13.65c15.14-73.51 5.24-132.73-28.57-152.22-32.42-18.7-85.44.8-139 47.39q-7.92 6.92-15.47 14.2-5.07-4.85-10.3-9.51c-56.11-49.83-112.32-70.82-146.14-51.27-32.39 18.75-42 74.42-28.35 144.09q2 10.35 4.59 20.58c-7.95 2.26-15.64 4.67-23 7.24-65.79 22.89-107.81 58.89-107.81 96.18 0 38.51 45.11 77.14 113.64 100.56q8.34 2.83 16.8 5.26-2.74 11-4.88 22.18c-13 68.46-2.84 122.82 29.46 141.45 33.37 19.26 89.37-.54 143.89-48.2 4.31-3.77 8.63-7.77 13-11.95q8.18 7.89 16.79 15.32c52.82 45.45 105 63.81 137.26 45.12 33.33-19.29 44.16-77.69 30.1-148.73q-1.6-8.14-3.73-16.61 5.91-1.74 11.56-3.61c71.24-23.6 117.6-61.76 117.6-100.79 0-37.43-43.38-73.62-110.5-96.73Z",fill:"#53c1de"})),x||(x=J.createElement("path",{d:"M730.12 503.47c-3.4 1.13-6.88 2.21-10.44 3.27a621.6 621.6 0 0 0-31.47-78.73 623.06 623.06 0 0 0 30.25-77.58c6.35 1.84 12.53 3.78 18.47 5.83 57.51 19.79 92.59 49.06 92.59 71.62 0 24-37.89 55.21-99.4 75.59Zm-25.52 50.58c6.22 31.41 7.1 59.81 3 82-3.7 19.95-11.14 33.25-20.34 38.58-19.59 11.33-61.47-3.4-106.64-42.27q-7.77-6.69-15.63-14.25a624.23 624.23 0 0 0 52.09-66.14 620.2 620.2 0 0 0 84.17-13q1.9 7.68 3.37 15ZM446.48 672.69c-19.14 6.76-34.38 6.95-43.59 1.64-19.6-11.31-27.75-55-16.63-113.5q2-10.37 4.53-20.63a625.79 625.79 0 0 0 83.75 12.13 645.09 645.09 0 0 0 53.35 65.9q-5.79 5.61-11.84 10.91c-24.11 21.08-48.28 36-69.57 43.55Zm-89.64-169.37c-30.31-10.36-55.33-23.82-72.49-38.5-15.41-13.2-23.19-26.31-23.19-36.94 0-22.63 33.74-51.5 90-71.11q10.6-3.69 21.39-6.73a637.08 637.08 0 0 0 30.29 78.48 646.29 646.29 0 0 0-30.66 79.6q-7.74-2.21-15.34-4.8Zm30.05-204.54c-11.68-59.69-3.93-104.72 15.59-116 20.79-12 66.76 5.12 115.22 48.15 3.1 2.75 6.21 5.63 9.32 8.6a635.89 635.89 0 0 0-52.93 65.52 648.42 648.42 0 0 0-82.93 12.89q-2.39-9.52-4.27-19.15ZM655 364.97q-9.11-15.74-18.89-31.08c19.83 2.51 38.82 5.83 56.66 9.91a565.54 565.54 0 0 1-19.89 53.51q-8.61-16.35-17.88-32.34ZM545.64 258.5a569.3 569.3 0 0 1 36.57 44.14q-36.71-1.73-73.45 0c12.07-15.92 24.44-30.72 36.88-44.13Zm-110 106.65q-9.15 15.87-17.55 32.14c-7.73-18.33-14.34-36.36-19.74-53.77 17.73-4 36.64-7.21 56.34-9.68q-9.92 15.44-19.07 31.31Zm19.61 158.65a564.64 564.64 0 0 1-57.25-9.21c5.49-17.71 12.25-36.13 20.15-54.86q8.43 16.29 17.61 32.16 9.34 16.19 19.47 31.91Zm91.14 75.33c-12.6-13.54-25.15-28.54-37.39-44.75q17.85.71 36.36.71 19 0 37.51-.84a563.94 563.94 0 0 1-36.5 44.88Zm126.69-140.35A562.82 562.82 0 0 1 694 513.44a561.35 561.35 0 0 1-58 9.89q9.85-15.63 19.08-31.63 9.38-16.26 18-32.92Zm-41 19.66q-14.12 24.52-29.81 48.1c-18.44 1.32-37.49 2-56.91 2s-38.15-.6-56.27-1.78q-16.09-23.5-30.39-48.17t-26.51-50.08q12.27-25.53 26.43-50.1 14.14-24.56 30.13-48c18.49-1.4 37.43-2.13 56.59-2.13s38.22.74 56.69 2.14q15.81 23.37 30 47.81t26.79 49.87q-12.45 25.62-26.71 50.3Zm54.77-296.46c20.81 12 28.9 60.4 15.83 123.87q-1.29 6.19-2.8 12.35a635.74 635.74 0 0 0-83.09-13.13 625.16 625.16 0 0 0-52.53-65.56q7-6.74 14.29-13.11c45.88-39.93 88.76-55.69 108.3-44.42Z",fill:"#fff"})),M||(M=J.createElement("path",{d:"M545.34 372.38a55.5 55.5 0 1 1-55.5 55.5 55.49 55.49 0 0 1 55.5-55.5",fill:"#53c1de"})),u||(u=J.createElement("path",{d:"M559.26 20.4a16.6 16.6 0 1 1-16.6-16.6 16.52 16.52 0 0 1 16.6 16.6Z",fill:"#3f3d56"})),g||(g=J.createElement("path",{d:"M529.4 24.59A16.62 16.62 0 0 1 541.89.05a16.6 16.6 0 1 0 1.41 33.07 16.6 16.6 0 0 1-13.9-8.53ZM521.91 43.52h44.47v69.37h-44.47z",fill:"#3f3d56"})),v||(v=J.createElement("path",{opacity:.1,d:"M521.91 43.52h44.47v69.37h-44.47z"})),b||(b=J.createElement("path",{d:"M451.66 295.2s-4.75 13.05-16 14.83-17.79 4.74-17.79 4.74l26.68 17.19 14.23-1.78s1.78-18.38 7.71-22.53-14.83-12.45-14.83-12.45ZM644.34 295.2s4.75 13.05 16 14.83 17.79 4.74 17.79 4.74l-26.68 17.19-14.23-1.78s-1.78-18.38-7.71-22.53 14.83-12.45 14.83-12.45Z",fill:"#a0616a"})),w||(w=J.createElement("path",{d:"M514.5 180.18s-7.11 3.56-9.48 10.68c0 0-13 4.15-20.16 15.41 0 0-8.9 9.49-10.08 14.23S460 253.7 460 253.7s-13.64 44.47-20.75 49.21c0 0 22.53-4.74 26.68 17.79 0 0 5.33 0 11.26-20.75s20.16-46.25 20.16-46.25 4.74-17.78 8.89-20.75 10.67-16.6 16.6-13 45.06-.6 45.06-.6 23.1 10.64 23.68 17.75 4.74 7.71 5.33 13.64 22.53 52.76 22.53 52.76 4.15 13 5.34 16c0 0 13-31.42 30.24-13.63 0 0-.6-11.86-5.93-19s-28.46-62.84-28.46-62.84-2.37-8.3-4.74-10.67-20.76-21.35-27.28-21.35c0 0-3.55-8.89-7.7-10.08ZM461.14 326.03a28.89 28.89 0 0 1-28.22-3.79 56.37 56.37 0 0 0-12.59-7.3c-6.29-2.54-13.81-4.42-16.1-.17-4.15 7.71 50.39 26.68 50.39 26.68s7.12-4.15 6.52-15.42ZM634.86 326.03a28.89 28.89 0 0 0 28.22-3.79 56.37 56.37 0 0 1 12.59-7.3c6.29-2.54 13.81-4.42 16.1-.17 4.15 7.71-50.39 26.68-50.39 26.68s-7.12-4.15-6.52-15.42Z",fill:"#3f3d56"})),q||(q=J.createElement("path",{d:"M533.88 82.67c-.22 2.06-.9 4.29-2.66 5.38-1.44.9-3.26.83-4.92 1.17a11.46 11.46 0 0 0-7.82 6.77 17.51 17.51 0 0 0-.75 10.55 39.22 39.22 0 0 0 1.52 5.06c1.74 4.92 3.84 9.8 7.09 13.89a59 59 0 0 0 9.3 8.77c2.11 1.72 4.29 3.47 6.89 4.28a21.75 21.75 0 0 0 5.4.72c2.25.1 4.65.17 6.6-.95 3-1.73 3.89-5.55 5.52-8.62 1.38-2.6 3.44-4.81 4.73-7.46a29.49 29.49 0 0 0 2-6.52l2.77-12.3c1-4.47 1.92-9.51-.59-13.34a2.28 2.28 0 0 0-.74-.77 2.79 2.79 0 0 0-1.52-.15 16.44 16.44 0 0 1-9.15-2.09 3.93 3.93 0 0 1-1.15-.9 4.72 4.72 0 0 1-.7-2.12 22.2 22.2 0 0 0-1.28-4.45 3 3 0 0 0-.87-1.34 3.15 3.15 0 0 0-1.41-.47 114.47 114.47 0 0 0-12.93-1.35c-1.42-.07-3.56-.64-4.54.62s-.67 4.12-.79 5.62Z",fill:"#a0616a"})),O||(O=J.createElement("path",{d:"M533.88 82.67c-.22 2.06-.9 4.29-2.66 5.38-1.44.9-3.26.83-4.92 1.17a11.46 11.46 0 0 0-7.82 6.77 17.51 17.51 0 0 0-.75 10.55 39.22 39.22 0 0 0 1.52 5.06c1.74 4.92 3.84 9.8 7.09 13.89a59 59 0 0 0 9.3 8.77c2.11 1.72 4.29 3.47 6.89 4.28a21.75 21.75 0 0 0 5.4.72c2.25.1 4.65.17 6.6-.95 3-1.73 3.89-5.55 5.52-8.62 1.38-2.6 3.44-4.81 4.73-7.46a29.49 29.49 0 0 0 2-6.52l2.77-12.3c1-4.47 1.92-9.51-.59-13.34a2.28 2.28 0 0 0-.74-.77 2.79 2.79 0 0 0-1.52-.15 16.44 16.44 0 0 1-9.15-2.09 3.93 3.93 0 0 1-1.15-.9 4.72 4.72 0 0 1-.7-2.12 22.2 22.2 0 0 0-1.28-4.45 3 3 0 0 0-.87-1.34 3.15 3.15 0 0 0-1.41-.47 114.47 114.47 0 0 0-12.93-1.35c-1.42-.07-3.56-.64-4.54.62s-.67 4.12-.79 5.62Z",opacity:.1})),k||(k=J.createElement("path",{d:"M525.85 89.74a26.93 26.93 0 0 0-7.13-1.12c-5.72-.14-11.84 1.83-15.14 6.5a15.34 15.34 0 0 0-2.29 11.47 23.57 23.57 0 0 0 5.2 10.66 32 32 0 0 1 4 5.24c1.58 3 1.63 6.59 2.06 10 1 8.12 4.46 15.75 5.83 23.82s.19 17.42-6.18 22.55c-1.07.86-2.37 1.77-2.46 3.14-.14 2.19 2.71 3.12 4.9 3.33 6.55.62 13.27 1.23 19.63-.46 2.63-.7 5.17-1.79 7.85-2.29 6.8-1.27 13.64 1.34 20.45 2.59a90.61 90.61 0 0 0 14.91 1.21 7.94 7.94 0 0 0 3.43-.45 2.75 2.75 0 0 0 1.74-2.74 4.76 4.76 0 0 0-1.18-2c-3.44-4.25-4.49-9.9-5.43-15.29l-3.15-18.11c-1.69-9.68-3.26-20.2 1.32-28.89 3.29-6.25 9.36-10.65 12.83-16.8a9.84 9.84 0 0 0 1.55-6.28c-.52-3.09-3.31-5.3-6.17-6.59a23.21 23.21 0 0 0-17.42-.64c.1 4.33-1 8.71-1.71 13l-1.21 7a88.83 88.83 0 0 1-2.71 12.2 12.85 12.85 0 0 1-2.17 4.42 11.43 11.43 0 0 1-3.83 2.79 22.83 22.83 0 0 1-10.14 2.32 13.54 13.54 0 0 1-4.48-.69 19 19 0 0 1-6.17-4.34 10.11 10.11 0 0 1-1.63-1.77 9.93 9.93 0 0 1-1.11-2.67 55.42 55.42 0 0 1-1.91-7.48c-.3-1.94-.4-3.91-.54-5.87-.39-5.79-.39-12.19-1.54-17.76Z",fill:"#604687"})),C||(C=J.createElement("path",{d:"M519.84 204.49s-2.37 31.43 12.45 36.76 1.78-26.09 1.78-26.09l-4.75-9.48ZM570.23 204.49s2.37 31.43-12.45 36.76-1.78-26.09-1.78-26.09l4.75-9.48Z",fill:"#a0616a"})),j||(j=J.createElement("path",{d:"m506.79 99.59-4.74 7.71s4.15 26.68 4.74 31.42a62.2 62.2 0 0 0 2.38 10.08s.59 14.23.59 19.57 3 14.23 3 14.23a64.82 64.82 0 0 0 3 14.82c2.37 6.52 4.74 14.23 4.74 14.23s3-8.3 14.82 4.15a7.18 7.18 0 0 0 0-10.08s-3.55-16-3.55-24.31-6.53-48-6.53-48-4.24-45.12-18.45-33.82Z",opacity:.1})),P||(P=J.createElement("path",{d:"m505.61 98.96-4.74 7.71s4.15 26.68 4.74 31.42a61.84 61.84 0 0 0 2.39 10.08s.59 14.23.59 19.56 3 14.23 3 14.23a64.53 64.53 0 0 0 3 14.82c2.37 6.53 4.75 14.23 4.75 14.23s3-8.3 14.82 4.15a7.18 7.18 0 0 0 0-10.07s-3.56-16-3.56-24.31-6.52-48-6.52-48-4.24-45.09-18.47-33.82Z",fill:"#604687"})),S||(S=J.createElement("path",{d:"m583.87 94.81 3 3.53s3.49 20.18-4.22 45.68l-2.37 23.12s-4.15 19.57-4.74 24.31-.59 5.33-1.78 7.11a2.29 2.29 0 0 0 0 3l-3.56 13s-5.33-6.52-16 1.78c0 0-3-4.74-.6-8.89s2.37-5.93 1.78-7.12 2.37-7.11 2.37-8.3 4.18-28.44 4.18-28.44 1.78-26.68 3.56-35.57c1.09-5.47 1.07-17.66.88-26.24-.19-8.94 10.63-13.78 17-7.5.15.16.33.31.5.53Z",opacity:.1})),A||(A=J.createElement("path",{d:"m585.65 93.59 3 3.53s3.49 20.19-4.22 45.68l-2.37 23.12s-4.15 19.57-4.74 24.31-.6 5.34-1.78 7.12a2.28 2.28 0 0 0 0 3L572 213.39s-5.33-6.53-16 1.77c0 0-3-4.74-.59-8.89s2.37-5.93 1.78-7.11 2.37-7.12 2.37-8.3 4.15-28.46 4.15-28.46 1.78-26.68 3.56-35.58.59-35.57.59-35.57 9.49-6.52 17.79 2.34Z",fill:"#604687"})),N||(N=J.createElement("circle",{cx:545.92,cy:61.61,r:23.72,fill:"#a0616a"})),L||(L=J.createElement("path",{d:"M558.29 26a16.6 16.6 0 0 1-31.09.44c9.26-3.73 18.72-.41 18.72-.41 4.73-1.66 8.83-1.51 12.37-.03Z",opacity:.1})),U||(U=J.createElement("path",{d:"M545.92 27.22s-45.65-16-34.38 61.66c0 0 10.08 6.52 17.78 2.37 0 0-5.33-53.95 15.42-51.58s17.19 50.4 17.19 50.4 11.86 3.55 15.42-3-1.19-70.48-31.43-59.85Z",fill:"#3f3d56"})),D||(D=J.createElement("path",{d:"M544.74 36.11c-14.24-1.62-16.2 23.27-16 39.05.17-15.69 2.81-37 16-35.49 14.81 1.69 17.24 26.66 17.41 40.8.17-12.98-1.25-42.51-17.41-44.36ZM511.54 85.32a159.38 159.38 0 0 1-1.77-20.53 152.12 152.12 0 0 0 1.77 24.09s10.08 6.52 17.78 2.37c0 0-.12-1.28-.26-3.43-7.67 3.87-17.52-2.5-17.52-2.5ZM577.35 83.59c-3.32 6.08-13.83 3.41-15.25 3-.07 2.2-.17 3.52-.17 3.52s11.86 3.55 15.42-3c.73-1.34 1.11-5.13 1-10.2-.1 3.25-.45 5.68-1 6.68Z",opacity:.1})),I||(I=J.createElement("path",{d:"M826.73 672.96c4.74-8.78-.64-19.54-6.82-27.37s-13.73-16-13.57-26c.23-14.35 15.45-22.81 27.62-30.42a134.77 134.77 0 0 0 24.79-19.93c3-3.05 5.87-6.31 7.62-10.21 2.52-5.6 2.45-12 2.29-18.12q-.79-30.71-3-61.34",fill:"none",stroke:"#3f3d56",strokeMiterlimit:10,strokeWidth:4})),B||(B=J.createElement("path",{d:"M888.74 478.49a22.31 22.31 0 0 0-11.16-18.32l-5 9.9.15-12a22.37 22.37 0 1 0 16 20.41ZM848.86 629.88a22.36 22.36 0 1 1 1.08-18l-14 11.37 15.37-3.57a22.25 22.25 0 0 1-2.45 10.2ZM837.81 586.45a22.37 22.37 0 0 1-7.09-43.86l-.12 9.22 5.06-10h.06a22.37 22.37 0 1 1 2.09 44.69ZM892.11 550.32a22.37 22.37 0 1 1 9.89-41.86l-4 10.83 8.13-7.8a22.37 22.37 0 0 1-14.07 38.83Z",fill:"#604687"})),H||(H=J.createElement("path",{d:"M885.74 484.45c-5.17.57-10.19 2.18-15.37 2.5s-10.87-.92-14.14-5c-1.77-2.17-2.65-4.91-4.14-7.28a16 16 0 0 0-5.63-5.3 22.37 22.37 0 1 0 41.81 14.84c-.85.09-1.69.15-2.53.24ZM892.11 550.32a22.39 22.39 0 0 1-21.28-31.91 16.37 16.37 0 0 1 4.5 4.51c1.59 2.4 2.56 5.18 4.43 7.39 3.48 4.09 9.44 5.43 14.84 5.19s10.6-1.78 16-2.28c.75-.06 1.5-.11 2.26-.13a22.37 22.37 0 0 1-20.75 17.23ZM837.81 586.45a22.37 22.37 0 0 1-21.46-31.49 17.83 17.83 0 0 1 4.73 4.55c1.74 2.45 2.82 5.27 4.86 7.54 3.77 4.2 10.11 5.68 15.83 5.54 5.54-.12 10.87-1.48 16.38-1.9a22.36 22.36 0 0 1-20.34 15.76ZM848.86 629.88a22.37 22.37 0 0 1-40.78-18.29 22.27 22.27 0 0 1 4.91 4.38c2.13 2.59 3.53 5.53 6 7.94 4.57 4.49 11.95 6.34 18.52 6.51a97.1 97.1 0 0 0 11.35-.54Z",opacity:.1})),T||(T=J.createElement("path",{d:"M793 662.85s17.65-.54 23-4.33 27.16-8.31 28.48-2.24 26.53 30.22 6.6 30.38-46.31-3.1-51.62-6.34-6.46-17.47-6.46-17.47Z",fill:"#656380"})),_||(_=J.createElement("path",{d:"M851.4 684.59c-19.93.16-46.31-3.11-51.62-6.34-4-2.47-5.65-11.3-6.19-15.38H793s1.12 14.24 6.43 17.47 31.69 6.5 51.62 6.34c5.75 0 7.74-2.09 7.63-5.12-.8 1.81-2.99 2.95-7.28 3.03Z",opacity:.2})),F||(F=J.createElement("path",{d:"m323 42.86-18.25 11.57 11.08-20.15a18 18 0 0 0-11-3.94h-.3a21.58 21.58 0 0 1-3.78-.28l-6.19 3.92 2.65-4.82a22.06 22.06 0 0 1-10.82-8.21l-11.07 7 7-12.72c-6.48-7.77-15.2-12.54-24.81-12.54-11.51 0-21.76 6.85-28.38 17.52a21.24 21.24 0 0 1-18.76 10.12h-.62c-12.71 0-23 14.41-23 32.19s10.3 32.18 23 32.18a17.2 17.2 0 0 0 8-2c8.29-4.31 19.17-4.39 27.85-.54a29 29 0 0 0 23.68.05c8.62-3.77 19.37-3.69 27.61.54a17.23 17.23 0 0 0 7.93 2c12.71 0 23-14.41 23-32.18A40.86 40.86 0 0 0 323 42.86Z",fill:"#f2f2f2"})),G||(G=J.createElement("path",{d:"M288.59 89.95a34 34 0 0 0-19.72 2.14 29 29 0 0 1-23.67-.05c-8.69-3.85-19.57-3.77-27.86.54a17.2 17.2 0 0 1-8 2c-11.29 0-20.68-11.38-22.64-26.38a21.58 21.58 0 0 0 5.64-6.08c6.66-10.66 16.87-17.53 28.38-17.53s21.64 6.77 28.26 17.32a21.79 21.79 0 0 0 18.76 10.31h.26c9 .01 16.8 7.22 20.59 17.73Z",opacity:.03})),R||(R=J.createElement("path",{d:"M800.07 66.42 791 72.19l5.53-10a9 9 0 0 0-5.51-2h-.14a10.79 10.79 0 0 1-1.89-.14l-3.09 2 1.3-2.46a11 11 0 0 1-5.4-4.09l-5.52 3.5 3.49-6.34a16.17 16.17 0 0 0-12.37-6.26c-5.75 0-10.86 3.42-14.16 8.74a10.57 10.57 0 0 1-9.36 5h-.31c-6.34 0-11.48 7.19-11.48 16s5.14 16.05 11.48 16.05a8.62 8.62 0 0 0 4-1 16.56 16.56 0 0 1 13.89-.27 14.52 14.52 0 0 0 11.81 0 16.58 16.58 0 0 1 13.77.27 8.61 8.61 0 0 0 4 1c6.34 0 11.48-7.18 11.48-16.05a20.28 20.28 0 0 0-2.45-9.72Z",fill:"#f2f2f2"})),z||(z=J.createElement("path",{d:"M782.92 89.91a17 17 0 0 0-9.83 1.07 14.52 14.52 0 0 1-11.81 0 16.58 16.58 0 0 0-13.9.27 8.55 8.55 0 0 1-4 1c-5.64 0-10.32-5.67-11.3-13.15a10.93 10.93 0 0 0 2.82-3c3.3-5.32 8.42-8.73 14.16-8.73s10.79 3.37 14.09 8.63a10.85 10.85 0 0 0 9.36 5.14h.15c4.49-.07 8.34 3.53 10.26 8.77Z",opacity:.03})),V||(V=J.createElement("path",{d:"m204.34 215.86 14.66 9.28-8.88-16.15a14.48 14.48 0 0 1 8.85-3.15h.23a17.08 17.08 0 0 0 3-.22l4.95 3.14-2.15-3.86a17.78 17.78 0 0 0 8.67-6.58l8.87 5.62-5.54-10.19c5.19-6.22 12.18-10 19.87-10 9.23 0 17.44 5.48 22.75 14a17 17 0 0 0 15 8.11h.5c10.18 0 18.43 11.54 18.43 25.78s-8.25 25.79-18.43 25.79a13.86 13.86 0 0 1-6.43-1.61 26.59 26.59 0 0 0-22.31-.43 23.28 23.28 0 0 1-19 0 26.64 26.64 0 0 0-22.12.43 13.9 13.9 0 0 1-6.35 1.57c-10.19 0-18.44-11.54-18.44-25.79a32.78 32.78 0 0 1 3.87-15.74Z",fill:"#f2f2f2"})),W||(W=J.createElement("path",{d:"M231.89 253.59a27.36 27.36 0 0 1 15.8 1.72 23.28 23.28 0 0 0 19 0 26.61 26.61 0 0 1 22.32.43 13.82 13.82 0 0 0 6.42 1.61c9.05 0 16.57-9.11 18.14-21.13a17.44 17.44 0 0 1-4.52-4.88c-5.31-8.54-13.52-14-22.75-14s-17.33 5.42-22.64 13.88a17.44 17.44 0 0 1-15 8.25h-.23c-7.26-.07-13.5 5.71-16.54 14.12Z",opacity:.03})))}},8538:(e,a,t)=>{t.d(a,{Z:()=>N});var c,l,r,i,n,s,m,o,f,d,h,p,y,E,Z,x,M,u,g,v,b,w,q,O,k,C,j=t(7294),P=["title","titleId"];function S(){return S=Object.assign?Object.assign.bind():function(e){for(var a=1;a=0||(l[t]=e[t]);return l}(e,a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(c=0;c=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(l[t]=e[t])}return l}const N=function(e){var a=e.title,t=e.titleId,N=A(e,P);return j.createElement("svg",S({"data-name":"Layer 1",xmlns:"http://www.w3.org/2000/svg",width:1038.23,height:693.31,viewBox:"0 0 1038.23 693.31","aria-labelledby":t},N),c||(c=j.createElement("defs",null,j.createElement("linearGradient",{id:"a",x1:320.96,y1:796.01,x2:320.96,y2:284.81,gradientUnits:"userSpaceOnUse"},j.createElement("stop",{offset:0,stopColor:"gray",stopOpacity:.25}),j.createElement("stop",{offset:.54,stopColor:"gray",stopOpacity:.12}),j.createElement("stop",{offset:1,stopColor:"gray",stopOpacity:.1})))),void 0===a?j.createElement("title",{id:t},"version control"):a?j.createElement("title",{id:t},a):null,l||(l=j.createElement("path",{d:"M615.24 111.4c-64.72-2.25-126.36-23.14-185.23-46S312.85 17.21 249.68 5.1c-40.63-7.79-87.09-8.89-119.83 12.89-31.5 21-41.68 57.15-47.16 90.72-4.11 25.27-6.54 51.85 4.75 75.5 7.83 16.42 21.74 30.22 31.36 45.95 33.46 54.72 9.81 122.2-26.46 175.63-17 25.06-36.74 49-49.87 75.66s-19.2 57.25-7.72 84.47c11.39 27 38.52 47.24 67.9 61.49 59.69 28.94 130 37.23 198.62 41.92 151.82 10.39 304.46 5.89 456.68 1.39 56.34-1.67 112.92-3.36 168.34-12.07 30.78-4.84 62.56-12.52 84.9-31 28.36-23.53 35.39-63.38 16.39-92.88-31.88-49.49-120-61.79-142.31-114.9-12.27-29.23.33-61.8 18.15-88.91 38.24-58.17 102.33-109.19 105.71-175.68 2.32-45.66-28.49-91.39-76.13-113-49.94-22.65-119.18-19.8-156 17.69-37.96 38.56-104.62 53.41-161.76 51.43Z",fill:"#6c63ff",opacity:.1})),r||(r=j.createElement("path",{d:"M529.62 754.84c-1-3.62-2-7.28-4-10.43a36.53 36.53 0 0 0-6.55-7.17c-7.25-6.58-16.15-13.26-25.76-11.6a34.39 34.39 0 0 0-8.54 3.12c-1.4.65-2.81 1.3-4.25 1.85a21.17 21.17 0 0 1-12.82 1.12c-2.2-.59-4.25-1.65-6.42-2.31a20.35 20.35 0 0 0-3.15-.68 53.64 53.64 0 0 0 6.09-3.21c10.78-6.6 19.38-18.53 18.18-31.29-.41-4.29-1.88-8.4-3.34-12.45l-3.84-10.62c-1.66-4.6-3.38-9.29-6.41-13.11-3.37-4.26-8.17-7.15-13.13-9.3-10.65-4.63-22.29-6.26-33.78-7.84l-.8-.11V516.68a8 8 0 0 0-8-8H398q-1-6.12-2-12.22c-1.9-11.61-3.87-23.43-9.22-33.88-3.5-6.84-9.07-13.37-16.58-14.71a16.08 16.08 0 0 1-4.31-1c-2.2-1.08-3.4-3.48-5.09-5.25-4.36-4.57-11.45-4.64-17.29-7-5.16-2.05-9.38-5.91-14.08-8.88s-10.54-5.08-15.74-3.15c0 .38-.07.76-.11 1.13l-3.34-1.54c-3.6-1.67-7.27-3.38-10.16-6.12-3.71-3.5-5.69-8.14-7.23-13.07-.16-.51-.31-1-.47-1.55a46.43 46.43 0 0 0 12.44-23.75l.81 2.63a17.45 17.45 0 0 0 .64 1.74 6.86 6.86 0 0 0 2 2.83 3.55 3.55 0 0 0 .84.49 3.5 3.5 0 0 0 .86.22 3.2 3.2 0 0 0 1.24-.09 4.73 4.73 0 0 0 3-2.78 6 6 0 0 0 .35-1.22 6.31 6.31 0 0 0 .07-.76v-1.04c0-.1 0-.33-.05-.5v-.26c0-.2-.06-.4-.1-.59s0-.11 0-.16c-.05-.25-.11-.51-.16-.76v-.19c0-.06-.09-.41-.14-.62s-.07-.27-.1-.41v-.06c-.1-.4-.19-.79-.28-1.19a34.38 34.38 0 0 1-.55-10.56 113.08 113.08 0 0 1 2.86-15.35l.21-.91c.08-.35.16-.7.23-1.06.16-.72.32-1.44.47-2.17l.36-1.84.27-1.64v-.21A47.41 47.41 0 0 0 318 330c-.46-5.23-2.08-10.18-5.63-14.12-2.51-2.79-5.82-4.85-8.15-7.78-2.18-2.74-3.41-6.12-5.67-8.81-6.24-7.45-22.26-13.19-32.09-14.19-11.26-1.14-29.45 1.74-38.53 8.39-3.36 2.45-5.66 6-8 9.36-4.3 6.25-9.18 12.49-16.07 16-2.6 1.32-5.58 2.32-7.31 4.62a12.49 12.49 0 0 0-1.95 5.18 102.71 102.71 0 0 0-2.06 19.78v2.5a18.23 18.23 0 0 0 1.56 7.23c.16.34.34.67.53 1l.12.21a39.78 39.78 0 0 1 3.2 5.45 7.22 7.22 0 0 1 .49 1.66 12.24 12.24 0 0 1-.28 4.38c0 .22-.09.44-.13.66l-.09.43c0 .15 0 .3-.08.44-.08.43-.15.86-.21 1.28a9 9 0 0 0 .22 3.46 4.55 4.55 0 0 0 2.22 3 6.5 6.5 0 0 0 1.8.56c.63.11 1.27.18 1.89.32a9.33 9.33 0 0 1 2.29.85 9.22 9.22 0 0 1 1.93 1.24 11 11 0 0 1 .83.84 14 14 0 0 1 1.42 1.94q.32.53.6 1.08a24.67 24.67 0 0 1 1.71 4.52c.26.93.48 1.87.67 2.81.09.42.17.84.24 1.25s.14.83.2 1.24a2.91 2.91 0 0 0 .8-.16c1.47-.53 2.29-2.24 2.75-3.9.08-.28.15-.55.21-.82.23-1 .47-2.1.7-3.15a46.37 46.37 0 0 0 18.25 20.1c.28.83.55 1.65.79 2.49 1.31 4.53 1.94 9.27-.33 13.23-1.62 2.81-4.34 4.54-7.38 5.74a4.88 4.88 0 0 0-1.65-1.4c-2.63-1.32-5.79.28-8 2.25-4 3.62-7.26 8.81-12.52 10-1.9.44-4 .35-5.58 1.51a13 13 0 0 0-2.59 3.4 11.92 11.92 0 0 1-10.23 5.1c-1.83-.09-4-.51-5.25.83-.93 1-1 2.58-2 3.53-1.34 1.32-3.54.68-5.41.6-3.56-.15-6.87 2.15-8.9 5.1s-3 6.48-4 10v.06a7.15 7.15 0 0 0-.73.61 10.55 10.55 0 0 0-2.21 3.58 170.87 170.87 0 0 0-14.1 58.18 6 6 0 0 1-.64 2.82 13.87 13.87 0 0 1-1.47 1.6 5.61 5.61 0 0 0 .93 8 6.3 6.3 0 0 1 1.07-1.42c-.11.46-.21.91-.28 1.32a35.49 35.49 0 0 0-.11 8.8q1.42 20.84 2.87 41.65c.27 3.93.54 7.85.9 11.77q1.05 11.38 3 22.67c.06.34.13.69.22 1-8.15 2.59-15.4 7.27-18.45 15.08-1.06 2.7-1.54 5.64-2.84 8.23-1.43 2.84-3.78 5.11-5.34 7.89-2.69 4.78-2.81 10.64-1.83 16 1.89 10.45 7.54 19.79 15 27.39h-1a15.64 15.64 0 0 0-6.83 2.45c-15.78 9.22-24.8 29-21.51 47.06.65 3.53 1.78 7.11 4.14 9.8a15.51 15.51 0 0 0 7.28 4.46 25.29 25.29 0 0 0 5.37 1c12.3 1 24.21-4.7 36.54-5.18a98 98 0 0 1 12.23.57q8.91.74 17.85.94c9.69.23 15.14-2.35 21.32-9.59a26.1 26.1 0 0 0 3.77-5.94c5.26-.3 11.07-.76 15.27-1.1l.06.58c.23 2 .58 4.3 2.18 5.56a7.61 7.61 0 0 0 3 1.23c10.1 2.48 20.32 5 30.72 5a129.71 129.71 0 0 0 14.59-1.12l18.27-2.11a91 91 0 0 1 15.7 3.42c5.28 1.79 10.21 4.45 15.37 6.56 12 4.86 24.9 6.6 37.68 8.3 2.18.29 4.68.49 6.29-1 2.08-2 1.39-5.34.8-8.14-.24-1.15-.42-2.3-.56-3.46a175.25 175.25 0 0 1 25.24 8.76l1.43.63c.42 2.18 2.43 3.92 4.36 6.27a16 16 0 0 0 2.21 2.74 7.37 7.37 0 0 0 3.17 1.14 147.82 147.82 0 0 0 40.93 1.85 41.86 41.86 0 0 1 8.44-.29 36.58 36.58 0 0 1 6.1 1.37l11.57 3.32c8.53 2.44 17.26 4.91 26.11 4.36a33.4 33.4 0 0 0 5.33-.77c7-1.62 13.52-5.53 16.88-11.82 4.75-8.55 2.56-19.07 0-28.47Z",transform:"translate(-80.89 -103.35)",fill:"url(#a)"})),i||(i=j.createElement("path",{d:"M125.02 649.54c-2.11-4.8-4.11-10.32-2-15.12a12.85 12.85 0 0 1 6.65-6.25 32 32 0 0 1 9-2.22 125.61 125.61 0 0 1 29.26-.4c.71 5.62-.79 11.32-2.08 16.75-1.17 5-1.84 5.74-7 6-3.34.18-33.04 3.01-33.83 1.24Z",fill:"#fbbebe"})),n||(n=j.createElement("ellipse",{cx:214.07,cy:577.16,rx:143,ry:40,fill:"#464353"})),s||(s=j.createElement("ellipse",{cx:214.07,cy:577.16,rx:143,ry:40,opacity:.1})),m||(m=j.createElement("path",{d:"M239.71 366a44.49 44.49 0 0 1-22.94 20.84 57.58 57.58 0 0 1-18.21 3.46c-6.79.31-13.72-.13-20.1-2.45-8.56-3.1-15.67-9.44-21-16.83s-9-15.83-12.19-24.34c-1.68-4.43-3.28-9.15-2.49-13.83 5.15-1.17 10.79-2.89 13.45-7.46 2.27-3.92 1.64-8.62.33-13.1-.37-1.27-.8-2.53-1.23-3.74-1-2.9-4.45-8.41-2-10.89 1.53-1.57 7.94-2.37 10.15-3.39 6.81-3.14 13.09-7.68 20.57-9.17 6.47-1.29 13.15-.08 19.61 1.26a6.45 6.45 0 0 1 2.42.87 5.82 5.82 0 0 1 1.8 2.7c1.84 4.48 2.92 9.43 4.4 14.1 1.54 4.89 3.52 9.48 7.23 12.95 2.89 2.71 6.57 4.41 10.17 6.06l8.86 4.06a11.65 11.65 0 0 1 4.19 2.71 10.61 10.61 0 0 1 2 5.44 50.82 50.82 0 0 1-5.02 30.75Z",fill:"#fbbebe"})),o||(o=j.createElement("path",{d:"M212.24 304.03a46 46 0 0 1-55.67 8.26c-.37-1.27-.8-2.53-1.23-3.74-1-2.9-4.45-8.41-2-10.89 1.53-1.57 7.94-2.37 10.15-3.39 6.81-3.14 13.09-7.68 20.57-9.17 6.47-1.29 13.15-.08 19.61 1.26a6.45 6.45 0 0 1 2.42.87 5.82 5.82 0 0 1 1.8 2.7c1.79 4.48 2.87 9.43 4.35 14.1Z",opacity:.1})),f||(f=j.createElement("circle",{cx:179.07,cy:270.16,r:46,fill:"#fbbebe"})),d||(d=j.createElement("path",{d:"m319.22 419.45-3.78-22.9c-1.91-11.49-3.88-23.2-9.22-33.55-3.51-6.78-9.08-13.24-16.59-14.58a16.05 16.05 0 0 1-4.32-1c-2.2-1.06-3.4-3.44-5.09-5.2-4.36-4.52-11.46-4.59-17.3-6.89-5.16-2-9.38-5.85-14.08-8.79s-10.55-5-15.75-3.12c-.84 8.95-1.73 18.1-5.53 26.25a39.28 39.28 0 0 1-59.26 14.76c-8.91-6.71-14.62-17.06-17.28-27.89-.65-2.64-1.39-5.67-3.82-6.88-2.63-1.32-5.79.28-8 2.22-4 3.59-7.27 8.73-12.53 9.94-1.9.44-4 .35-5.58 1.5a12.7 12.7 0 0 0-2.6 3.37 12 12 0 0 1-10.23 5.06c-1.83-.09-4-.51-5.25.82-.93 1-1 2.56-2 3.49-1.35 1.31-3.54.67-5.42.6-3.56-.15-6.87 2.13-8.91 5s-3 6.42-4 9.86c10.93 24.34 20.93 48.71 31.86 73.05a6.23 6.23 0 0 1 .79 3 7.31 7.31 0 0 1-1.36 3c-5.36 8.61-5.19 19.44-4.6 29.56s1.31 20.81-3.21 29.88c-1.23 2.49-2.83 4.77-4 7.26-2.74 5.64-3.73 23.68-2.13 29.74h226.08c-4.31-11.85-2.67-35.63-1.77-48.21.63-8.8-1-17.59-1.7-26.39-1.53-17.97-.45-35.02-3.42-52.96Z",fill:"#6c63ff"})),h||(h=j.createElement("path",{d:"M65.36 445.65a35.4 35.4 0 0 0-.12 8.73l2.87 41.27c.27 3.89.54 7.77.9 11.65.69 7.53 1.72 15 3 22.46a4 4 0 0 0 4.1 3.89c12.65 2.68 25.72 2.57 38.63 1.84 19.7-1.1 39.37-3.61 59.1-3.18 5.08.11 11 0 14.08-4s1.29-10.47-2.73-13.7-9.48-4-14.64-4c-6.83-.07-13.66.9-20.47.5-6.25-.37-12.36-1.88-18.42-3.39l-17-4.23c.65-5.15 2.61-10 4.47-14.89 3.34-8.67 6.46-17.63 6.52-26.92s-3.44-19.06-11.05-24.38c-6.26-4.37-14.32-5.18-21.95-5-5.55.16-15.14-1.17-20.21 1-4.01 1.76-6.33 8.42-7.08 12.35Z",fill:"#fbbebe"})),p||(p=j.createElement("path",{d:"M330.79 540.01c3.33-1.27 7-.81 10.57-.33 11.49 1.57 23.15 3.18 33.8 7.77 5 2.14 9.76 5 13.14 9.21 3 3.79 4.75 8.43 6.41 13l3.84 10.52c1.46 4 2.94 8.08 3.35 12.33 1.2 12.59-7.41 24.46-18.24 31s-23.58 8.87-36 11.31-24.89 5.14-37.26 8a150 150 0 0 1-17.53 3.45c-13.24 1.5-27.08-.71-39.66 3.67-5 1.75-9.91 4.35-15.1 5.56a93.93 93.93 0 0 1-10.44 1.59l-23.81 2.72a129.89 129.89 0 0 1-14.6 1.12c-10.4 0-20.63-2.46-30.73-4.92a7.77 7.77 0 0 1-3-1.21c-1.6-1.26-1.95-3.49-2.18-5.51q-1.53-13.41-2.68-26.85c-.24-2.91-.42-6.06 1.17-8.51 2-3 5.9-3.94 9.46-4.52a246.88 246.88 0 0 1 45.68-3.17c5.81-5.81 15.39-5.84 23-9a68.39 68.39 0 0 0 8.11-4.41 106 106 0 0 1 44.53-14.07 41.45 41.45 0 0 0 9.11-1.3c5.89-1.83 11.26-6.81 17.31-5.59.75-2.07 1.27-4.84 3-6.26.86-.73 1.92-1.22 2.71-2 1.67-1.69 1.82-4.35 1.57-6.71s-.81-4.78-.2-7.08a9.79 9.79 0 0 1 1.11-2.47c3-5.18 7.53-7.84 13.56-7.34Z",fill:"#464353"})),y||(y=j.createElement("path",{d:"M330.79 540.01c3.33-1.27 7-.81 10.57-.33 11.49 1.57 23.15 3.18 33.8 7.77 5 2.14 9.76 5 13.14 9.21 3 3.79 4.75 8.43 6.41 13l3.84 10.52c1.46 4 2.94 8.08 3.35 12.33 1.2 12.59-7.41 24.46-18.24 31s-23.58 8.87-36 11.31-24.89 5.14-37.26 8a150 150 0 0 1-17.53 3.45c-13.24 1.5-27.08-.71-39.66 3.67-5 1.75-9.91 4.35-15.1 5.56a93.93 93.93 0 0 1-10.44 1.59l-23.81 2.72a129.89 129.89 0 0 1-14.6 1.12c-10.4 0-20.63-2.46-30.73-4.92a7.77 7.77 0 0 1-3-1.21c-1.6-1.26-1.95-3.49-2.18-5.51q-1.53-13.41-2.68-26.85c-.24-2.91-.42-6.06 1.17-8.51 2-3 5.9-3.94 9.46-4.52a246.88 246.88 0 0 1 45.68-3.17c5.81-5.81 15.39-5.84 23-9a68.39 68.39 0 0 0 8.11-4.41 106 106 0 0 1 44.53-14.07 41.45 41.45 0 0 0 9.11-1.3c5.89-1.83 11.26-6.81 17.31-5.59.75-2.07 1.27-4.84 3-6.26.86-.73 1.92-1.22 2.71-2 1.67-1.69 1.82-4.35 1.57-6.71s-.81-4.78-.2-7.08a9.79 9.79 0 0 1 1.11-2.47c3-5.18 7.53-7.84 13.56-7.34Z",opacity:.05})),E||(E=j.createElement("path",{d:"M134.22 655.72c-6.19 7.17-11.64 9.73-21.33 9.5q-8.94-.21-17.86-.93a100.2 100.2 0 0 0-12.24-.57c-12.34.48-24.25 6.13-36.56 5.14a25.92 25.92 0 0 1-5.37-1 15.63 15.63 0 0 1-7.29-4.42c-2.36-2.67-3.49-6.21-4.14-9.71-3.29-17.94 5.73-37.48 21.52-46.61a15.78 15.78 0 0 1 6.84-2.43 16.21 16.21 0 0 1 6.92 1.52l.15.06A52.33 52.33 0 0 1 82 617.71a9.66 9.66 0 0 0 2.62 2.11 9 9 0 0 0 3.09.58l13.14.83a31.14 31.14 0 0 1 6.6.91 52.46 52.46 0 0 1 6.94 3c7.07 3.16 14.91 4 22.55 5.22a3.37 3.37 0 0 1 2 .8 3.13 3.13 0 0 1 .62 1.3 25.51 25.51 0 0 1-5.34 23.26Z",fill:"#3f3d56"})),Z||(Z=j.createElement("path",{d:"M64.86 606.28a78.9 78.9 0 0 0-13.15 16.44 82.28 82.28 0 0 0-10.74 32.54 60.4 60.4 0 0 0-.11 12.61 15.63 15.63 0 0 1-7.29-4.42c-2.36-2.67-3.49-6.21-4.14-9.71-3.29-17.94 5.73-37.48 21.52-46.61a15.78 15.78 0 0 1 6.84-2.43 16.21 16.21 0 0 1 6.92 1.52Z",opacity:.1})),x||(x=j.createElement("path",{d:"M319.35 631.16c7.35-.2 15.6-.57 21 4.38 5.15 4.68 5.83 12.4 6.17 19.35l.39 8.07c.12 2.46.22 5-.77 7.28-1.76 4-6.59 5.93-11 5.7s-8.46-2.16-12.49-3.9a175.7 175.7 0 0 0-34-10.71q.57-8.37 1.9-16.66c.61-3.83.71-10.24 3.27-13.42 2.71-3.36 6.24-1.54 9.92-.92a79.63 79.63 0 0 0 15.61.83Z",fill:"#fbbebe"})),M||(M=j.createElement("path",{d:"M125.11 550.07c0 1-1.57 0-1.71-1.07-1.1-8.09-7.52-14.76-15-18s-16-3.41-24.1-2.64c-12.25 1.16-26 5.85-30.48 17.3-1.06 2.68-1.54 5.58-2.84 8.15-1.44 2.82-3.79 5.07-5.35 7.81-2.69 4.74-2.8 10.55-1.83 15.91 2.61 14.3 12.39 26.53 24.24 35s25.7 13.53 39.51 18.09a685.19 685.19 0 0 0 112 26.75c6.16.93 12.38 1.79 18.28 3.77 5.28 1.77 10.22 4.42 15.38 6.5 12 4.82 24.91 6.54 37.7 8.23 2.18.28 4.68.48 6.29-1 2.08-1.93 1.39-5.29.8-8.06a43.35 43.35 0 0 1 5.11-30.76c2.14-3.6 4.92-7.29 4.52-11.46-.48-4.86-5.32-8.3-10.14-9.08s-9.72.37-14.56 1c-1.67.22-3.49.36-4.95-.49a9.89 9.89 0 0 1-1.94-1.72 21.93 21.93 0 0 0-25.54-3.57c-1.79 1-4.5-1.23-6.36-2.07l-21.03-9.52c-24.16-10.93-48.44-21.91-74-28.83a15.54 15.54 0 0 1-5.7-2.37c-1.27-1-2.18-2.36-3.35-3.47-2.55-2.41-6.1-3.37-9.16-5.08s-6.49-5.89-5.79-9.32Z",fill:"#464353"})),u||(u=j.createElement("path",{d:"M449.32 680.76c-3.36 6.23-9.88 10.11-16.88 11.71a33.5 33.5 0 0 1-5.34.76c-8.85.55-17.59-1.9-26.12-4.32l-11.58-3.26a36.55 36.55 0 0 0-6.1-1.36 41.86 41.86 0 0 0-8.44.29 149.59 149.59 0 0 1-41-1.84 7.23 7.23 0 0 1-3.17-1.13 15.75 15.75 0 0 1-2.21-2.71c-3.15-3.79-6.54-6-2.81-11 2.15-2.9 6.14-4.35 7.81-7.68s.6-8.06-.39-11.5c-1.35-4.75-5.79-6.8-7.38-11.16-1.19-3.29.81-7.11 3.82-8.9s6.73-1.93 10.2-1.47 6.87 1.44 10.36 1.71c10.26.82 20.75-4.47 30.6-1.49 2.17.66 4.22 1.71 6.42 2.29a21.35 21.35 0 0 0 12.83-1.11c1.44-.54 2.85-1.19 4.25-1.83a34.23 34.23 0 0 1 8.55-3.09c9.61-1.65 18.52 5 25.77 11.49a36.44 36.44 0 0 1 6.55 7.1c2 3.12 3.06 6.75 4 10.33 2.65 9.25 4.84 19.67.26 28.17Z",fill:"#3f3d56"})),g||(g=j.createElement("path",{d:"M449.32 680.76c-3.36 6.23-9.88 10.11-16.88 11.71a32.69 32.69 0 0 0 3.55-17.16c-.6-9.51-4.78-18.47-10.11-26.37a93.4 93.4 0 0 0-11.14-13.57c-3.18-3.2-7.09-5.74-10.51-8.67a34.23 34.23 0 0 1 8.55-3.09c9.61-1.65 18.52 5 25.77 11.49a36.44 36.44 0 0 1 6.55 7.1c2 3.12 3.06 6.75 4 10.33 2.61 9.31 4.8 19.73.22 28.23Z",opacity:.1})),v||(v=j.createElement("path",{d:"M82.11 372.26a10.35 10.35 0 0 0-2.22 3.55 167.86 167.86 0 0 0-14.1 57.62 5.76 5.76 0 0 1-.65 2.79 12.21 12.21 0 0 1-1.47 1.59 5.52 5.52 0 0 0 .94 8c1.65-3.11 5.6-4.12 9.11-4.39 16.81-1.33 33.23 6.49 50.09 5.9-1.19-4.11-2.9-8.06-3.87-12.22-4.29-18.47 6.41-38.58-.15-56.37-1.31-3.56-3.5-7.06-6.95-8.62a18.51 18.51 0 0 0-4.45-1.18c-4.26-.77-12.74-4.06-16.86-2.74-1.52.49-2.12 1.92-3.38 2.78-1.91 1.23-4.45 1.68-6.04 3.29Z",fill:"#6c63ff"})),b||(b=j.createElement("rect",{x:117.57,y:408.66,width:223,height:142,rx:7.97,fill:"#3f3d56"})),w||(w=j.createElement("circle",{cx:228.57,cy:479.66,r:6,fill:"#fff"})),q||(q=j.createElement("path",{d:"M147.29 195.5c-3.36 2.43-5.66 5.92-8 9.27-4.31 6.19-9.19 12.37-16.08 15.82-2.61 1.31-5.59 2.3-7.32 4.58a12.34 12.34 0 0 0-1.95 5.13 101.65 101.65 0 0 0-2.06 19.6c0 3.28.14 6.66 1.59 9.64 1.37 2.8 3.84 5.17 4.35 8.22.39 2.38-.49 4.75-.8 7.14s.23 5.22 2.44 6.36a14.79 14.79 0 0 0 3.7.87c6.65 1.48 8.88 9.28 9.89 15.73 2.26-.13 3.28-2.72 3.75-4.83l6.93-30.81c.75-3.34 2-7.21 5.33-8.38 2.23-.77 4.67-.05 7 .15 9.15.75 16.89-6.32 25.84-8.27a33 33 0 0 1 8.71-.58c7.06.35 15.27 3.25 16.77 9.84.25 1.07.4 2.35 1.4 2.88s2.05.08 3.1 0c4.48-.45 7.12 4.59 8.41 8.71l4.7 15c.7 2.27 1.88 4.94 4.34 5.23 2.27.28 4.2-1.87 4.54-4s-.4-4.34-.89-6.48c-2.21-9.85 1.17-19.93 3.23-29.8s2.43-21.21-4.48-28.81c-2.51-2.75-5.81-4.8-8.15-7.7-2.18-2.72-3.41-6.06-5.67-8.73-6.25-7.37-22.28-13.06-32.11-14-11.23-1.22-29.43 1.63-38.51 8.22Z",fill:"#3f3d56"})),O||(O=j.createElement("g",{opacity:.1},j.createElement("path",{d:"M229.37 279.8c-2.46-.3-3.64-3-4.34-5.23q-2.35-7.51-4.7-15c-1.29-4.13-3.93-9.17-8.41-8.71-1.05.11-2.18.52-3.1 0s-1.15-1.81-1.4-2.88c-1.5-6.6-9.71-9.49-16.77-9.84a33.43 33.43 0 0 0-8.71.57c-8.95 2-16.69 9-25.84 8.27-2.36-.19-4.8-.91-7-.14-3.37 1.16-4.58 5-5.33 8.38l-6.93 30.8c-.47 2.12-1.49 4.71-3.75 4.83-1-6.44-3.24-14.24-9.89-15.72a15.72 15.72 0 0 1-3.7-.87 4.34 4.34 0 0 1-1.93-2.15c-.18.93-.39 1.86-.51 2.79-.3 2.38.23 5.22 2.44 6.36a14.79 14.79 0 0 0 3.7.87c6.65 1.48 8.88 9.28 9.89 15.73 2.26-.13 3.28-2.72 3.75-4.83l6.93-30.81c.75-3.34 2-7.21 5.33-8.38 2.23-.77 4.67-.05 7 .15 9.15.75 16.89-6.32 25.84-8.27a33 33 0 0 1 8.71-.58c7.06.35 15.27 3.25 16.77 9.84.25 1.07.4 2.35 1.4 2.88s2.05.08 3.1 0c4.48-.45 7.12 4.59 8.41 8.71q2.34 7.51 4.7 15c.7 2.27 1.88 4.94 4.34 5.23 2.27.28 4.2-1.87 4.54-4a13.58 13.58 0 0 0-.6-5.31 4.13 4.13 0 0 1-3.94 2.31ZM117.83 260.76c-.51-3.05-3-5.42-4.35-8.22a16.45 16.45 0 0 1-1.48-6c0 1.12-.1 2.24-.11 3.37 0 3.28.14 6.66 1.59 9.64 1.11 2.27 2.94 4.27 3.86 6.58a15.06 15.06 0 0 0 .49-5.37ZM236.25 239.48c-1.82 8.72-4.66 17.6-3.78 26.34.57-6.45 2.45-12.94 3.78-19.34a51 51 0 0 0 1.16-14.83 61.14 61.14 0 0 1-1.16 7.83Z"}))),k||(k=j.createElement("g",{opacity:.8},j.createElement("path",{fill:"none",stroke:"#3f3d56",strokeMiterlimit:10,strokeWidth:3,d:"M330.04 290.49H955.1M385.57 290.48s29.89 4.15 14.41-27.92 42-26 42-26M584.64 290.48s29.89-4.14 14.41 27.93 42 26 42 26M871.27 290.48s-29.9-4.14-14.41 27.93-42 26-42 26M814.86 344.4H649.93"}),j.createElement("circle",{cx:330.04,cy:290.49,r:18.25,fill:"#6c63ff"}),j.createElement("circle",{cx:442.29,cy:236.3,r:18.25,fill:"#3acc6c"}),j.createElement("circle",{cx:442.29,cy:290.49,r:18.25,fill:"#6c63ff"}),j.createElement("circle",{cx:514.73,cy:290.49,r:18.25,fill:"#6c63ff"}),j.createElement("circle",{cx:641.35,cy:344.13,r:18.25,fill:"#ff6584"}),j.createElement("circle",{cx:737.03,cy:344.13,r:18.25,fill:"#ff6584"}),j.createElement("circle",{cx:732.04,cy:290.49,r:18.25,fill:"#6c63ff"}),j.createElement("circle",{cx:950.48,cy:290.49,r:18.25,fill:"#6c63ff"}),j.createElement("circle",{cx:861.12,cy:290.49,r:18.25,fill:"#6c63ff"}),j.createElement("path",{fill:"#6c63ff",d:"M299.38 122.66h61.23v42.2h-61.23z"}),j.createElement("path",{fill:"#3acc6c",d:"M411.9 122.66h61.23v42.2H411.9z"}),j.createElement("path",{fill:"#ff6584",d:"M610.48 122.66h61.23v42.2h-61.23z"}))),C||(C=j.createElement("path",{d:"M86.35 299.36s-74.77-31.44-84.57 25.29c0 0-5.11 8.84 2 16.14 0 0 1.53-3.92 8.75.13a37.17 37.17 0 0 0 8.16 3.32 18.36 18.36 0 0 0 11.62-.62s24.59-1.33 45.27-33.5c0 0 8.87-5.48 9.31-7.54l-14.82 1s1.14 10.85-5 17.36c0 0 5.44-16.84 2.83-17.31-.53-.1-7.83.86-7.83.86s1.89 18.87-8 28.63c0 0 9.18-19.19 5.19-28.29l-10.94 2.11s3 19.85-7.82 31.39c0 0 8.9-20.4 5.46-30.76l-10.47 3.52s2.52 19.41-6.53 29c0 0 7.9-24.61 4.18-28 0 0-9.42 3.82-11.43 6 0 0 1.49 14-4.26 19.05 0 0 3.53-17 1.78-17.7 0 0-10.94 8.24-14.28 15.35 0 0 4.16-10.86 12.91-17 0 0-7.35-1.24-13 1.83 0 0 3.78-7.21 15.65-3.79 0 0 8.79-6.09 10.55-6 0 0-11.23-5-19.34-4.38 0 0 8.7-5 22.08 3.35l10.45-3.77s-14.5-7.43-21.76-7.4c0 0 9.66-3.74 24.47 6.66l10.7-2.18s-12-7.35-20.09-9.06c0 0 9.7-1.54 23.18 8.55l7.31-.61s-8.85-5.22-11.53-6.49-2.56-2.09-2.56-2.09a34.89 34.89 0 0 1 17.14 8.18s15.18-.3 15.24-1.23ZM83.59 243s-26.48-61.27-64.63-33.17c0 0-8.06 2.34-8 10.7 0 0 3.14-1.46 5.13 5.07a30.1 30.1 0 0 0 3 6.61 15 15 0 0 0 7.25 6.25s15.37 13.22 46 5.89c0 0 8.4 1.79 9.83.83l-9.36-7.87s-5.51 7.1-12.89 7.44c0 0 12.83-6.9 11.55-8.67-.26-.36-5.15-3.94-5.15-3.94s-9.62 12.28-21 12.47c0 0 16.39-6.18 19.2-13.85l-7.7-5s-9.71 13.51-22.71 14.21c0 0 16.91-7.05 20.77-15.17l-8.23-3.87s-9.56 13-20.37 13.49c0 0 18.72-10.12 18.43-14.25 0 0-7.77-3.1-10.24-2.92 0 0-7.07 9.15-13.38 8.89 0 0 11.79-8.09 11.15-9.5 0 0-11.2-1.34-17.23 1 0 0 8.66-4.08 17.35-2.74 0 0-3.66-4.93-8.75-6.3 0 0 6.36-2.13 11.46 6.65 0 0 8.68 1.4 9.7 2.44 0 0-3.81-9.39-9-13.62 0 0 8 2 11.2 14.57l8.36 3.71s-4.38-12.68-8.72-16.79c0 0 7.87 3.28 10.75 17.9l7.6 4.79s-2.94-11.2-6.77-16.83c0 0 6.64 4.62 8.89 18.29l4.7 3.8s-2.29-8.14-3.16-10.42-.33-2.7-.33-2.7a28.65 28.65 0 0 1 5.49 14.68s9.24 8.44 9.81 7.93Z",fill:"#6c63ff",opacity:.1})))}},6566:(e,a,t)=>{t.d(a,{Z:()=>o});var c=t(7462),l=t(7294),r=t(6010);const i="features_xdhU",n="featureSvg__8YW";var s=[{title:"Gas-Grain Chemistry",Svg:t(7156).Z,description:l.createElement(l.Fragment,null,"Detailed, consistent treatment of chemistry across the gas phase and both the surface and the bulk of the ice mantles around dust grains.")},{title:"Modular Physics",Svg:t(4503).Z,description:l.createElement(l.Fragment,null,"Flexible, interchangeable modules to model all kinds of astrophysical objects such as molecular clouds, protostellar cores and C/J-type shocks.")},{title:"Active Development",Svg:t(8538).Z,description:l.createElement(l.Fragment,null,"Teams at UCL and Leiden Observatory are working with international collaborators to extend and improve UCLCHEM. Check our ",l.createElement("a",{href:"./blog/index.html"},"blog")," for recent updates.")}];function m(e){var a=e.Svg,t=e.title,c=e.description;return l.createElement("div",{className:(0,r.Z)("col col--4")},l.createElement("div",{className:"text--center"},l.createElement(a,{className:n,alt:t})),l.createElement("div",{className:"text--center padding-horiz--md"},l.createElement("h3",null,t),l.createElement("p",null,c)))}function o(){return l.createElement("section",{className:i},l.createElement("div",{className:"container"},l.createElement("div",{className:"row"},s.map((function(e,a){return l.createElement(m,(0,c.Z)({key:a},e))})))))}},3734:(e,a,t)=>{t.r(a),t.d(a,{default:()=>d});var c=t(7294),l=t(6010),r=t(2600),i=t(9960),n=t(2263),s=t(1207);t(6566);function m(){(0,n.Z)().siteConfig;return c.createElement("header",{className:(0,l.Z)("hero hero--primary",s.Z.heroBanner)},c.createElement("div",{className:"container"},c.createElement("h1",{className:"hero__title"},"UCLPDR"),c.createElement("div",{className:"mybuttons"},c.createElement(i.Z,{className:"mybuttons button button--secondary button--lg",to:"https://github.com/uclchem/uclpdr"},"View on GitHub"),c.createElement(i.Z,{className:"mybuttons button button--secondary button--lg",to:"https://github.com/uclchem/uclpdr/zipball/master"},"Get a Zip"),c.createElement(i.Z,{className:"mybuttons button button--secondary button--lg",to:"https://github.com/uclchem/uclpdr/tarball/master"},"Get a Tarball"))))}function o(){return c.createElement("div",{className:"mycontainer"},c.createElement("p",null," UCL_PDR is a one dimensional PDR code written in Fortran. It treats UV and X-ray radiation, with the radiation field either one- or two-sided. UCL_PDR can treat arbitrary, user-defined chemical networks, and provided collisional excitation data is available can compute line emission from any included molecular or atomic/ionic species. It can optionally calculate photorates from the wavelength-dependent cross-sections, if these are provided. The GitHub package comes with a selection of model clouds, radiation fields, chemical networks (including and excluding X-ray reactions), molecular cross-sections and collisional rate data for the main coolants in PDRs."),c.createElement("p",null," UCL_PDR uses the Sundials package to solve the chemical network ODEs, and is parallelised with OpenMP. This version is a substantially upgraded version of the original UCL_PDR (Bell et al. 2005, 2006, Bayet et al. 2011), written by Tom Bell and described in Priestley et al. (2017, in press). It currently compiles with ifort and gfortran."))}function f(){return c.createElement("div",{className:"mycontainer"},c.createElement("h2",null,"Authors, Contributors and Users"),c.createElement("h3",null,"Main author: Tom Bell."),c.createElement("p",null,"Contributors: Felix Priestley, Serena Viti, Michael J. Barlow, Jeremy Yates"),c.createElement("p",null,"You are free to download, modify, and use the code for your work The development of the code has been funded by STFC grants ST/H001794/1 and ST/J001511/1."))}function d(){var e=(0,n.Z)().siteConfig;return c.createElement(r.Z,{title:"UCLPDR - "+e.title,description:"Description will go into a meta tag in "},c.createElement(m,null),c.createElement("div",{className:"container"},c.createElement(o,null)),c.createElement("div",{className:"container"},c.createElement(f,null)))}},1207:(e,a,t)=>{t.d(a,{Z:()=>c});const c={heroBanner:"heroBanner_qdFl",buttons:"buttons_AeoN"}}}]); \ No newline at end of file +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1071],{4503:(e,a,t)=>{t.d(a,{Z:()=>Qe});var c,l,r,i,n,s,m,o,f,d,h,p,y,E,Z,x,M,u,g,v,b,w,q,O,k,C,j,P,S,A,N,L,U,D,I,B,H,T,_,F,G,R,z,V,W,J,Y,X,Q,K,$,ee,ae,te,ce,le,re,ie,ne,se,me,oe,fe,de,he,pe,ye,Ee,Ze,xe,Me,ue,ge,ve,be,we,qe,Oe,ke,Ce,je,Pe,Se,Ae,Ne,Le,Ue,De,Ie,Be,He,Te,_e,Fe,Ge,Re,ze,Ve,We=t(7294),Je=["title","titleId"];function Ye(){return Ye=Object.assign?Object.assign.bind():function(e){for(var a=1;a=0||(l[t]=e[t]);return l}(e,a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(c=0;c=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(l[t]=e[t])}return l}const Qe=function(e){var a=e.title,t=e.titleId,Qe=Xe(e,Je);return We.createElement("svg",Ye({"data-name":"Layer 1",xmlns:"http://www.w3.org/2000/svg",width:1100,height:806.74,viewBox:"0 0 1100 806.74","aria-labelledby":t},Qe),c||(c=We.createElement("defs",null,We.createElement("linearGradient",{id:"a",x1:459.23,y1:847.99,x2:459.23,y2:385.75,gradientTransform:"translate(250.84)",gradientUnits:"userSpaceOnUse"},We.createElement("stop",{offset:0,stopColor:"gray",stopOpacity:.25}),We.createElement("stop",{offset:.54,stopColor:"gray",stopOpacity:.12}),We.createElement("stop",{offset:1,stopColor:"gray",stopOpacity:.1})))),void 0===a?We.createElement("title",{id:t},"operating system"):a?We.createElement("title",{id:t},a):null,l||(l=We.createElement("ellipse",{cx:629.72,cy:780.56,rx:122.56,ry:26.18,fill:"#604687",opacity:.1})),r||(r=We.createElement("path",{d:"M1070.55 683.84c-24.35 20.2-59 28.56-92.51 33.84l-5.64.86c-58.57 8.74-118.32 10.52-177.79 12.28-165.87 4.91-332.17 9.81-497.6-1.51-73.16-5-148.13-13.76-212.25-43.7l-1.67-.79c-.83-.39-1.66-.78-2.49-1.19A224.11 224.11 0 0 1 48 664.54c-18.31-13.06-33.43-29-41.42-47.91-12.52-29.66-5.9-63 8.4-92s35.8-55.12 54.34-82.43c5.44-8 10.6-16.3 15.4-24.81 30-53.37 44.88-115.13 13.43-166.56a228.58 228.58 0 0 0-13.43-19c-7.67-10-15.47-20-20.74-31.07-12.29-25.76-9.65-54.73-5.17-82.25 6-36.59 17.05-76 51.38-98.86 35.67-23.74 86.3-22.54 130.57-14 68.83 13.19 132.36 40.8 196.49 65.7s131.35 47.58 201.86 50.02c62.26 2.17 134.89-14 176.23-56.08 40.15-40.85 115.6-43.94 170-19.27 51.91 23.54 85.48 73.36 83 123.12-3.16 62.1-54.93 111.83-95.9 164.7-6.81 8.79-13.33 17.68-19.28 26.72-19.42 29.53-33.15 65-19.78 96.88 7.5 17.85 21.81 31.47 39.06 43.36 38.65 26.63 92 44.55 116 81.83 20.67 32.16 13.01 75.56-17.89 101.21Z",fill:"#604687",opacity:.1})),i||(i=We.createElement("ellipse",{cx:972.5,cy:704.85,rx:57.01,ry:10.96,fill:"#604687"})),n||(n=We.createElement("ellipse",{cx:971.55,cy:700.19,rx:6.64,ry:8.69,fill:"#3f3d56"})),s||(s=We.createElement("ellipse",{cx:971.55,cy:689.57,rx:6.64,ry:8.69,fill:"#3f3d56"})),m||(m=We.createElement("ellipse",{cx:971.55,cy:678.94,rx:6.64,ry:8.69,fill:"#3f3d56"})),o||(o=We.createElement("ellipse",{cx:971.55,cy:668.32,rx:6.64,ry:8.69,fill:"#3f3d56"})),f||(f=We.createElement("ellipse",{cx:971.55,cy:657.7,rx:6.64,ry:8.69,fill:"#3f3d56"})),d||(d=We.createElement("ellipse",{cx:971.55,cy:647.08,rx:6.64,ry:8.69,fill:"#3f3d56"})),h||(h=We.createElement("ellipse",{cx:971.55,cy:636.46,rx:6.64,ry:8.69,fill:"#3f3d56"})),p||(p=We.createElement("path",{d:"M996.4 563.78a31 31 0 0 0 2.47-3.64l-17.44-2.86 18.86.14a31.78 31.78 0 0 0 .61-25.2l-25.31 13.15 23.34-17.15a31.8 31.8 0 1 0-52.51 35.58 31.55 31.55 0 0 0-3.63 5.8l22.64 11.77-24.14-8.1a31.79 31.79 0 0 0 5.13 29.86 31.8 31.8 0 1 0 50 0 31.78 31.78 0 0 0 0-39.32Z",fill:"#604687"})),y||(y=We.createElement("path",{d:"M939.61 583.44a31.68 31.68 0 0 0 6.81 19.66 31.8 31.8 0 1 0 50 0c4.24-5.41-56.81-23.23-56.81-19.66Z",opacity:.1})),E||(E=We.createElement("path",{d:"M134.73 673.91c0 5.59-21.81 10.21-50 10.87h-1.67c-.83-.39-1.66-.78-2.49-1.19A224.11 224.11 0 0 1 48 664.54c6.85-.8 14.64-1.34 23-1.52h1.13c1.82 0 3.67-.06 5.54-.06h7.05c28.2.73 50.01 5.41 50.01 10.95Z",fill:"#604687"})),Z||(Z=We.createElement("ellipse",{cx:76.76,cy:669.25,rx:6.64,ry:8.69,fill:"#3f3d56"})),x||(x=We.createElement("ellipse",{cx:76.76,cy:658.63,rx:6.64,ry:8.69,fill:"#3f3d56"})),M||(M=We.createElement("ellipse",{cx:76.76,cy:648.01,rx:6.64,ry:8.69,fill:"#3f3d56"})),u||(u=We.createElement("ellipse",{cx:76.76,cy:637.39,rx:6.64,ry:8.69,fill:"#3f3d56"})),g||(g=We.createElement("ellipse",{cx:76.76,cy:626.77,rx:6.64,ry:8.69,fill:"#3f3d56"})),v||(v=We.createElement("ellipse",{cx:76.76,cy:616.15,rx:6.64,ry:8.69,fill:"#3f3d56"})),b||(b=We.createElement("ellipse",{cx:76.76,cy:605.52,rx:6.64,ry:8.69,fill:"#3f3d56"})),w||(w=We.createElement("path",{d:"M101.61 532.84a32.28 32.28 0 0 0 2.48-3.63l-17.45-2.84 18.87.14a31.8 31.8 0 0 0 .6-25.19l-25.3 13.13 23.34-17.16a31.8 31.8 0 1 0-52.52 35.58 32.45 32.45 0 0 0-3.63 5.8l22.64 11.7-24.14-8.07a31.87 31.87 0 0 0 5.13 29.86 31.8 31.8 0 1 0 50 0 31.78 31.78 0 0 0 0-39.32Z",fill:"#604687"})),q||(q=We.createElement("path",{d:"M44.83 552.5a31.67 31.67 0 0 0 6.8 19.66 31.8 31.8 0 1 0 50 0c4.24-5.41-56.8-23.23-56.8-19.66Z",opacity:.1})),O||(O=We.createElement("g",{opacity:.2},We.createElement("path",{d:"M305.84 555.29c0 .94-.1 1.86-.2 2.76q-11.64-4.68-22.92-9.93a18.59 18.59 0 0 1-10.6-5.17c-2.19-1.1-4.37-2.24-6.54-3.39a26.82 26.82 0 0 1 1.66-3c4.2-6.66 10.6-10.83 17.65-10.6s13.15 4.78 16.93 11.66a34.37 34.37 0 0 1 4.02 17.67Z",fill:"#3f3d56"}),We.createElement("path",{d:"M307 520.37a34.56 34.56 0 0 1-5.13 17.32c-4.21 6.64-10.6 10.81-17.65 10.58-.49 0-1-.06-1.45-.1a18.59 18.59 0 0 1-10.6-5.17 25.27 25.27 0 0 1-4.88-6.37 35.82 35.82 0 0 1 1.1-35c4.21-6.66 10.6-10.83 17.65-10.6s13.15 4.78 16.93 11.66a34.47 34.47 0 0 1 4.03 17.68Z",fill:"#3f3d56"}),We.createElement("ellipse",{cx:336.18,cy:531.28,rx:28.63,ry:21.87,transform:"rotate(-88.19 287.148 533.775)",fill:"#3f3d56"}),We.createElement("ellipse",{cx:337.29,cy:496.31,rx:28.63,ry:21.87,transform:"rotate(-88.19 288.252 498.807)",fill:"#3f3d56"}),We.createElement("ellipse",{cx:338.39,cy:461.34,rx:28.63,ry:21.87,transform:"rotate(-88.19 289.351 463.833)",fill:"#3f3d56"}),We.createElement("path",{d:"M214.12 172.83a105.78 105.78 0 0 1-7.76-12.24l57.72-7.62-62.08-1.5a104.92 104.92 0 0 1 .62-83l82 45.85-75.15-58.95a104.75 104.75 0 1 1 169.22 122.65A105.13 105.13 0 0 1 390 197.48l-75.77 36.38 80.33-24.17a104.85 104.85 0 0 1-20 97.78A104.75 104.75 0 1 1 210 302.28a104.73 104.73 0 0 1 4.08-129.45Z",fill:"#604687"}),We.createElement("path",{d:"M399.05 243.45a104.29 104.29 0 0 1-24.44 64A104.75 104.75 0 1 1 210 302.28c-13.43-18.25 189.42-70.58 189.05-58.83Z",opacity:.1}))),k||(k=We.createElement("g",{opacity:.2},We.createElement("path",{d:"M798.18 480.51c0 .67-.07 1.32-.14 2q-8.31-3.29-16.31-7.06a13.31 13.31 0 0 1-7.55-3.68c-1.55-.79-3.11-1.6-4.65-2.41a19.78 19.78 0 0 1 1.18-2.13c3-4.74 7.54-7.7 12.56-7.54s9.36 3.4 12.05 8.3a24.5 24.5 0 0 1 2.86 12.52Z",fill:"#3f3d56"}),We.createElement("path",{d:"M799 455.62a24.56 24.56 0 0 1-3.65 12.33c-3 4.72-7.54 7.69-12.56 7.53l-1-.07a13.31 13.31 0 0 1-7.55-3.68 18.32 18.32 0 0 1-3.47-4.54 25.51 25.51 0 0 1 .78-24.88c3-4.74 7.55-7.71 12.56-7.55s9.37 3.4 12.05 8.3a24.55 24.55 0 0 1 2.84 12.56Z",fill:"#3f3d56"}),We.createElement("ellipse",{cx:834.19,cy:476.87,rx:20.37,ry:15.56,transform:"rotate(-88.19 785.171 479.34)",fill:"#3f3d56"}),We.createElement("ellipse",{cx:834.98,cy:451.98,rx:20.37,ry:15.56,transform:"rotate(-88.19 785.957 454.46)",fill:"#3f3d56"}),We.createElement("ellipse",{cx:835.76,cy:427.1,rx:20.37,ry:15.56,transform:"rotate(-88.19 786.738 429.573)",fill:"#3f3d56"}),We.createElement("path",{d:"M732.91 208.37a73.57 73.57 0 0 1-5.52-8.71l41.08-5.42-44.21-1.07a74.67 74.67 0 0 1 .43-59.07L783 166.69l-53.4-41.93A74.55 74.55 0 1 1 850 212.02a74.71 74.71 0 0 1 8.06 13.86l-53.89 25.89 57.17-17.2a74.55 74.55 0 0 1-14.22 69.58A74.54 74.54 0 1 1 730 300.46a74.55 74.55 0 0 1 2.91-92.09Z",fill:"#604687"}),We.createElement("path",{d:"M864.52 258.59a74.2 74.2 0 0 1-17.4 45.56A74.54 74.54 0 1 1 730 300.46c-9.58-13 134.78-50.23 134.52-41.87Z",opacity:.1}))),C||(C=We.createElement("g",{opacity:.2},We.createElement("path",{d:"M585 402.46c0 .67-.08 1.32-.15 2q-8.31-3.29-16.31-7.06a13.28 13.28 0 0 1-7.54-3.68c-1.56-.79-3.11-1.6-4.65-2.41a19 19 0 0 1 1.17-2.13c3-4.73 7.55-7.7 12.56-7.54s9.36 3.4 12.05 8.3a24.5 24.5 0 0 1 2.87 12.52Z",fill:"#3f3d56"}),We.createElement("path",{d:"M585.74 377.57a24.56 24.56 0 0 1-3.65 12.33c-3 4.72-7.54 7.69-12.56 7.53-.35 0-.68 0-1-.07a13.28 13.28 0 0 1-7.54-3.68 18.11 18.11 0 0 1-3.48-4.54 25.48 25.48 0 0 1 .79-24.88c3-4.74 7.54-7.71 12.56-7.55s9.36 3.4 12 8.3a24.54 24.54 0 0 1 2.88 12.56Z",fill:"#3f3d56"}),We.createElement("ellipse",{cx:620.97,cy:398.82,rx:20.37,ry:15.56,transform:"rotate(-88.3 571.11 401.206)",fill:"#3f3d56"}),We.createElement("ellipse",{cx:621.75,cy:373.93,rx:20.37,ry:15.56,transform:"rotate(-88.19 572.718 376.417)",fill:"#3f3d56"}),We.createElement("ellipse",{cx:622.54,cy:349.05,rx:20.37,ry:15.56,transform:"rotate(-88.19 573.504 351.525)",fill:"#3f3d56"}),We.createElement("path",{d:"M519.68 130.28a74.87 74.87 0 0 1-5.52-8.71l41.08-5.42-44.24-1.07a74.62 74.62 0 0 1 .44-59.07l58.33 32.63-53.39-41.93a74.54 74.54 0 1 1 120.42 87.26 74.76 74.76 0 0 1 8.07 13.86L591 173.72l57.16-17.2a74.55 74.55 0 0 1-14.22 69.58 74.54 74.54 0 1 1-117.16-3.73 74.57 74.57 0 0 1 2.9-92.13Z",fill:"#604687"}),We.createElement("path",{d:"M651.29 180.54a74.2 74.2 0 0 1-17.4 45.56 74.54 74.54 0 1 1-117.11-3.73c-9.59-12.95 134.77-50.19 134.51-41.83Z",opacity:.1}))),j||(j=We.createElement("path",{d:"M972.4 500.81v217.73c-58.57 8.74-118.32 10.52-177.79 12.28-165.87 4.91-332.17 9.81-497.6-1.51-73.16-5-148.13-13.76-212.25-43.7V417.37c.24-185-.76 0 0-185.56v-66.59a14.1 14.1 0 0 1 14.1-14.1H958.3a14.1 14.1 0 0 1 14.1 14.1v168.63c.6 166.52-.4.52 0 166.96Z",fill:"#3f3d56"})),P||(P=We.createElement("rect",{x:344.15,y:217.75,width:368.86,height:28.56,rx:5.22,fill:"#604687",opacity:.3})),S||(S=We.createElement("path",{d:"M687.94 233.22h-.61l-.23-.19a5.1 5.1 0 0 0 1.19-3.25 4.94 4.94 0 1 0-4.92 5 5.09 5.09 0 0 0 3.24-1.18l.22.19v.58l3.81 3.82 1.14-1.14Zm-4.57 0a3.44 3.44 0 1 1 3.43-3.44 3.42 3.42 0 0 1-3.43 3.44Z",fill:"#444053"})),A||(A=We.createElement("rect",{x:222.84,y:493.2,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),N||(N=We.createElement("rect",{x:222.84,y:522.95,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),L||(L=We.createElement("rect",{x:222.84,y:508.08,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),U||(U=We.createElement("path",{d:"M164.57 522.58a5.74 5.74 0 0 0-5.8 5.69 3.88 3.88 0 0 1-3.87 3.79 10 10 0 0 0 7.73 3.8 7.67 7.67 0 0 0 7.75-7.59 5.75 5.75 0 0 0-5.81-5.69Zm26.53-17.76-2.6-2.55a1.94 1.94 0 0 0-2.72 0l-17.34 17 5.32 5.22 17.32-17a1.86 1.86 0 0 0 .02-2.67Z",fill:"#604687"})),D||(D=We.createElement("rect",{x:222.84,y:345.66,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),I||(I=We.createElement("rect",{x:222.84,y:375.41,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),B||(B=We.createElement("rect",{x:222.84,y:360.53,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),H||(H=We.createElement("path",{d:"M191.18 378.15 176 362.87a10.82 10.82 0 0 0-2.51-11.58 11 11 0 0 0-12.35-2.18l7.18 7.22-5 5-7.32-7.18a10.86 10.86 0 0 0 2.17 12.41 10.66 10.66 0 0 0 11.51 2.52l15.15 15.29a1.61 1.61 0 0 0 2.34 0l3.84-3.86a1.51 1.51 0 0 0 .17-2.35Z",fill:"#604687"})),T||(T=We.createElement("rect",{x:509.6,y:493.2,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),_||(_=We.createElement("rect",{x:509.6,y:522.95,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),F||(F=We.createElement("rect",{x:509.6,y:508.08,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),G||(G=We.createElement("path",{d:"M459.44 526a10 10 0 0 1-9.89 0c-3.87 1.19-6.24 5.09-7.12 8.54h24.12c-.87-3.45-3.23-7.35-7.11-8.54Zm-4.94-18.37a8.69 8.69 0 1 0 8.69 8.68 8.69 8.69 0 0 0-8.69-8.68Zm0 15.3a6.71 6.71 0 0 1-6.07-4.14h12.14a6.71 6.71 0 0 1-6.07 4.14Z",fill:"#604687"})),R||(R=We.createElement("path",{d:"M472.09 521.37a10.07 10.07 0 0 1-8.4.69 12 12 0 0 1-2.3 2.86 11.24 11.24 0 0 1 4.9 4.33h12.91a10.72 10.72 0 0 0-7.11-7.88Zm-4.94-18.38a8.71 8.71 0 0 0-7.33 4 10.78 10.78 0 0 1 5.15 7.14h8.25a6.72 6.72 0 0 1-6.07 4.12 6 6 0 0 1-2.08-.38 11.65 11.65 0 0 1-.54 2.07 8.35 8.35 0 0 0 2.62.4 8.69 8.69 0 0 0 0-17.38Z",fill:"#604687"})),z||(z=We.createElement("rect",{x:222.84,y:603.86,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),V||(V=We.createElement("rect",{x:222.84,y:633.61,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),W||(W=We.createElement("rect",{x:222.84,y:618.74,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),J||(J=We.createElement("path",{d:"M176.57 607.62h-9.82a3.28 3.28 0 0 0-3.32 3.24v.7h-.62a3.28 3.28 0 0 0-3.32 3.24v23.63a3.34 3.34 0 0 0 3.32 3.32h17.08a3.27 3.27 0 0 0 3.23-3.32v-.62h.71a3.27 3.27 0 0 0 3.23-3.32v-16.37Zm0 3.66 6.84 6.84h-6.84Zm3.94 27.15a.67.67 0 0 1-.62.7h-17.08a.73.73 0 0 1-.69-.7V614.8a.67.67 0 0 1 .69-.62h.62v21c0 1.82.86 2.66 2.67 2.66h14.41Zm3.93-3.94a.66.66 0 0 1-.61.7h-17.08a.73.73 0 0 1-.69-.7v-23.63a.67.67 0 0 1 .69-.62h7.19v10.51h10.5Z",fill:"#604687"})),Y||(Y=We.createElement("rect",{x:509.6,y:345.66,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),X||(X=We.createElement("rect",{x:509.6,y:375.41,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),Q||(Q=We.createElement("rect",{x:509.6,y:360.53,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),K||(K=We.createElement("path",{d:"M457.32 353.37h-11.38a3.51 3.51 0 0 0-3.5 3.51v19.25a3.5 3.5 0 0 0 3.5 3.5h29.76a3.5 3.5 0 0 0 3.5-3.5v-15.34a3.51 3.51 0 0 0-3.5-3.5h-14.88l-3.5-3.94Z",fill:"#604687"})),$||($=We.createElement("rect",{x:792.79,y:493.2,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),ee||(ee=We.createElement("rect",{x:792.79,y:522.95,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),ae||(ae=We.createElement("rect",{x:792.79,y:508.08,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),te||(te=We.createElement("path",{d:"m762.93 509.28-6.77-.32-.4-4.41a1.7 1.7 0 0 0-1.88-1.52l-24.27 2a1.67 1.67 0 0 0-1.59 1.79l1.73 19.35a1.7 1.7 0 0 0 1.88 1.49l1.23-.09-.19 3.76a1.87 1.87 0 0 0 1.83 1.93l27.09 1.28a1.88 1.88 0 0 0 2-1.74l1.14-21.6a1.86 1.86 0 0 0-1.8-1.92Zm-29.12.44-.58 11.06-1.44 2-1.32-14.61v-.09a.89.89 0 0 1 .78-.77l21.42-1.75a.81.81 0 0 1 .87.64l.21 2.52-18-.86a1.9 1.9 0 0 0-1.94 1.86Zm27.4 19.44-7-8.17-3.07 2.82-5.67-6.63-10.07 10.72.86-16.33a.94.94 0 0 1 1-.74l23.9 1.16a.87.87 0 0 1 .85.83Z",fill:"#604687"})),ce||(ce=We.createElement("path",{d:"M756.89 518.79a2.63 2.63 0 1 0-2.62-2.63 2.64 2.64 0 0 0 2.62 2.63Z",fill:"#604687"})),le||(le=We.createElement("rect",{x:795.17,y:345.66,width:34.42,height:11.9,rx:5,fill:"#3f3d56",opacity:.7})),re||(re=We.createElement("rect",{x:795.17,y:375.41,width:53.54,height:11.9,rx:5,fill:"#604687",opacity:.3})),ie||(ie=We.createElement("rect",{x:795.17,y:360.53,width:107.09,height:11.9,rx:5,fill:"#604687",opacity:.3})),ne||(ne=We.createElement("circle",{cx:762.56,cy:356.63,r:5.25,fill:"#604687"})),se||(se=We.createElement("path",{d:"m758.53 362.82-10.42 6.94-14.44-9.62v-3.51l14.44 9.63 8.3-5.53a7.39 7.39 0 0 1-.1-8h-23.07a3.52 3.52 0 0 0-3.51 3.51v21.88a3.52 3.52 0 0 0 3.51 3.51H763a3.51 3.51 0 0 0 3.5-3.51v-15.2a7.37 7.37 0 0 1-8-.06Z",fill:"#604687"})),me||(me=We.createElement("ellipse",{cx:509.64,cy:746.02,rx:26.08,ry:5.01,fill:"#604687"})),oe||(oe=We.createElement("ellipse",{cx:509.21,cy:743.89,rx:3.04,ry:3.97,fill:"#3f3d56"})),fe||(fe=We.createElement("ellipse",{cx:509.21,cy:739.03,rx:3.04,ry:3.97,fill:"#3f3d56"})),de||(de=We.createElement("ellipse",{cx:509.21,cy:734.17,rx:3.04,ry:3.97,fill:"#3f3d56"})),he||(he=We.createElement("ellipse",{cx:509.21,cy:729.31,rx:3.04,ry:3.97,fill:"#3f3d56"})),pe||(pe=We.createElement("ellipse",{cx:509.21,cy:724.46,rx:3.04,ry:3.97,fill:"#3f3d56"})),ye||(ye=We.createElement("ellipse",{cx:509.21,cy:719.6,rx:3.04,ry:3.97,fill:"#3f3d56"})),Ee||(Ee=We.createElement("ellipse",{cx:509.21,cy:714.74,rx:3.04,ry:3.97,fill:"#3f3d56"})),Ze||(Ze=We.createElement("path",{d:"M520.57 681.5a13.59 13.59 0 0 0 1.13-1.67l-8-1.31 8.62.07a14.59 14.59 0 0 0 .28-11.52l-11.57 6 10.67-7.85a14.54 14.54 0 1 0-24 16.28 15.11 15.11 0 0 0-1.66 2.65l10.36 5.38-11-3.7a14.53 14.53 0 0 0 2.34 13.65 14.54 14.54 0 1 0 22.86 0 14.55 14.55 0 0 0 0-18Z",fill:"#604687"})),xe||(xe=We.createElement("path",{d:"M494.6 690.49a14.45 14.45 0 0 0 3.11 9 14.54 14.54 0 1 0 22.86 0c1.95-2.48-25.97-10.63-25.97-9Z",opacity:.1})),Me||(Me=We.createElement("path",{d:"M802 436.86a13.68 13.68 0 0 1-1-2.7c-.1-1.07.32-2.48-.63-3-.53-.29-1.27-.07-1.74-.45a2.15 2.15 0 0 1-.51-1.2 4.1 4.1 0 0 0-3.8-3c1-2.71 4.68-3.37 6.3-5.76.81-1.19.55-3.38-.88-3.39a2.49 2.49 0 0 0-1 .25l-5.33 2.2a27.35 27.35 0 0 0-3 1.39c-2.93 1.67-5.12 4.38-7.09 7.13a30.49 30.49 0 0 0-4.41 8 18 18 0 0 0-.94 5.49v.56c-.87.15-1.58.53-2.49.71l-2.07 5.47a6.93 6.93 0 0 1-1.35 2.49 12.52 12.52 0 0 1-1.46 1.15 8.45 8.45 0 0 0-2.91 7.37 7.93 7.93 0 0 0-4.66 9.78 9.31 9.31 0 0 0-6.81 6 4.43 4.43 0 0 1-.89 1.88 3.55 3.55 0 0 1-2.37.73c-2.34.15-4.38 2-6.49 1a13.21 13.21 0 0 0-7.71-1.08 5.77 5.77 0 0 1-1.65.15 4.43 4.43 0 0 1-1.35-.47 10.46 10.46 0 0 0-3.06-1.21 2.84 2.84 0 0 0-2.9 1.12c-.74-.81-1.18-1.86-1.85-2.73a3 3 0 0 0-2.82-1.35c.7-.63 0-1.89-.93-2.11a11.56 11.56 0 0 0-2.81.1c-2.44 0-4.32-2.24-6.69-2.83-2.18-.53-5.09.11-6.21-1.85-.35-.63-.45-1.45-1-1.92a3.64 3.64 0 0 0-.71-1.45c-.9-1-2.41-1.16-3.76-1.12a15.68 15.68 0 0 0-4.37.75c0-.17-.09-.36-.15-.56a11.09 11.09 0 0 0-4.84-5.94 20 20 0 0 0-5.66-2.26v-.53a22.55 22.55 0 0 1 1.16-7.43c.08-.26.18-.52.27-.78a26.6 26.6 0 0 0 12-44.63 6.83 6.83 0 0 0-.21-1.6 7.86 7.86 0 0 0-1.6-3.12c-1.22-2.72-3.12-3.92-5.55-5.06-.7-.33-1.44-.65-2.22-1-3.87-1.74-7.61-4.3-12-4.29-4 0-7.86 2.21-11.82 2.13h-.95c-1.11-.13-2.44-.39-3.17.46a4.5 4.5 0 0 0-.56 1.09 2.64 2.64 0 0 1-.2.37 4.4 4.4 0 0 1-.51.69c-1.28 1.4-3.43 2-5.2 2.94-4 2.05-6.62 6.23-7.66 10.61s-.68 9 .1 13.44c.4 2.22 1.26 4.74 2.84 6.14s-13.37 9.51-10.93 10.86c1.33.74 6.87-2.77 11.64-6.12.05.2.09.41.15.61a44 44 0 0 0 2.18 6.25c1 2.39 2.44 5 4.93 5.69a5.36 5.36 0 0 0 1.69.19h.44a39.39 39.39 0 0 1-1.15 10.87 6.61 6.61 0 0 0-4.09 1.13 3.29 3.29 0 0 1-1.66.88 2.89 2.89 0 0 1-1.71-.84 9.7 9.7 0 0 0-12.14.64c-4.84 4.57-4.29 13.49-10 16.95-1.56.95-3.56 1.46-4.48 3.05a11.41 11.41 0 0 1-.77 1.47 4.05 4.05 0 0 1-1.36 1 26.48 26.48 0 0 0-4.68 2.7 6.72 6.72 0 0 0-2.69 4.54 8.61 8.61 0 0 0 .82 3.81 36.44 36.44 0 0 0 3.12 6 6.38 6.38 0 0 0-1.26 2.95c-.4 2.81.94 5.58 1.09 8.42.13 2.48-.66 4.9-1.1 7.34-1.76 9.54 1.61 19.2 5 28.26a14.58 14.58 0 0 1 1.2 4.65c.09 3-1.6 5.67-2.07 8.59-1 6.14 3.53 11.92 3.63 18.13 0 2.87-.86 5.78-.14 8.55.47 1.85 1.62 3.44 2.44 5.17 1.44 3.06 1.83 6.53 3.21 9.62a23.07 23.07 0 0 0 7.12 8.48c1.73 5.49-.73 12.12 0 18q1.41-.56 2.85-1a41.17 41.17 0 0 0 6.3 24.84c1.55 2.42 3.37 4.68 4.54 7.31a34.26 34.26 0 0 1 1.77 5.79q2.51 10.47 5 20.92c1.36 5.65 2.73 11.4 2.32 17.2-.28 4-1.3 8.57 1.18 11.77a8.51 8.51 0 0 1 1.49 2.06 5.22 5.22 0 0 1 0 2.72 180.71 180.71 0 0 0-2.48 20.39c-.56.75-1.12 1.51-1.63 2.26-4.11 6-6.09 13.21-7.69 20.32a245.83 245.83 0 0 0-5.16 42.44 28.38 28.38 0 0 0-5.26 6.41c-2.15 4-2.43 8.7-2.66 13.24a4.73 4.73 0 0 0 .24 2.18 4.48 4.48 0 0 0 2.24 1.68l1.24.59c-.27 1-.51 2-.72 3.05-1.58-1.78-4.39-4.6-4.87-2.54a101.78 101.78 0 0 0-2.56 21 1.77 1.77 0 0 0 1.9 2.12A116.25 116.25 0 0 0 660 848c5.65 0 11.29-.46 16.92-.89l5.77-.44a127.7 127.7 0 0 0 17.67-2.19c2.55-.56 5.18-1.35 7.1-3.14s2.86-4.85 1.54-7.12c-1.61-2.74-5.37-2.94-8.51-3.38a27.85 27.85 0 0 1-8.92-2.84c-.63-.32-1.24-.68-1.85-1 .16 0 .33-.08.48-.14 2.7-.91 4.85-3 7.39-4.25 3-1.45 6.31-1.78 9.57-2.19s6.62-1 9.33-2.86c2.54-1.74 4.34-4.91 3.75-7.89a5.15 5.15 0 0 0-.16-.62c-1-3.23-4.5-5-7.76-5.8s-6.8-1.28-9.44-3.38l-.39-.31c-.22-.19-.45-.37-.69-.56a5.62 5.62 0 0 0 .77-3.26c-.14-1.79-1.18-3.37-1.89-5-1.39-3.25-1.5-6.88-1.88-10.39-.94-8.83-3.65-17.35-5.69-26-.23-1-.45-2-.67-3a62.86 62.86 0 0 1 7.27-11.64 38 38 0 0 0 7-13.77c.42-1.54.73-3.1 1.05-4.67Q713.18 694.18 718 667a45.19 45.19 0 0 0 .91-7.84 23.89 23.89 0 0 0 1.35-7.43c.94-3.67 1.89-7.52 1.12-9.92-.54-1.7-.81-7.51-1.11-13.08a50.24 50.24 0 0 0-.54-8.93c-.09-.51-.19-1-.3-1.51q-.09-.45-.18-.75a25.68 25.68 0 0 0-1.76-4.86 23.63 23.63 0 0 0-1.32-2.71 12.34 12.34 0 0 0-1-1.48 62 62 0 0 1 6.22.58c.5.07 1.12.11 1.43-.3a1.47 1.47 0 0 0 .18-.77 12.75 12.75 0 0 0-1.62-6.76c-.8-1.42-1.91-2.8-1.88-4.43a6.53 6.53 0 0 1 .55-2.2l2.77-7.44c2.35-6.29 1.23-13.58 2.45-20.18a118.46 118.46 0 0 0 1.82-15.61c.23-4.47.09-9.32-2.6-12.9a14.73 14.73 0 0 1-2-2.84 8.41 8.41 0 0 1-.48-3.39q-.07-10.51.42-21a206.38 206.38 0 0 0 35.05-4 22 22 0 0 0 4-1.08 20.19 20.19 0 0 0 4-2.53c3.93-2.84 7.92-5.73 10.91-9.55a32.36 32.36 0 0 0 6.46-15.94c2.84-2.63 4.35-6.37 5.77-10a15.42 15.42 0 0 0 1.32-4.85c.07-1.72-1.06-3.52-.74-5.21a13.78 13.78 0 0 1 4.19-7.58 2.74 2.74 0 0 0 1-1.33 2.12 2.12 0 0 0-.23-1.3l-.09-.15c.28-.17.54-.35.81-.53.93-.66 1.82-1.39 2.69-2.1a17 17 0 0 0 3.49-3.54 5.75 5.75 0 0 0 .94-4.7ZM673.69 820.15c-.24 0-.48 0-.71.06a9.57 9.57 0 0 0-2.54.73l-.19.1c1.1-2.38 2.14-4.8 3.08-7.26.11-.29.21-.58.32-.88l-.12 1.64a20.22 20.22 0 0 0 .16 5.61Z",transform:"translate(-50 -46.63)",fill:"url(#a)"})),ue||(ue=We.createElement("path",{d:"M638 409.1c.1 3.88 1.42 7.64 1.62 11.52-11.43.57-22.72-5-34-3.28 3.17-2.05 4.86-5.74 5.86-9.37a38.9 38.9 0 0 0 1.11-14.41 6.61 6.61 0 0 0-.14-.79c-.42-1.9-1.51-4.59-1.22-6.08.39-2 2.25-1.59 3.93-1.48a150.51 150.51 0 0 1 15.26 2c1.32.23 14.13 3.43 14.33 3.1a59.69 59.69 0 0 0-5.55 11.43 22.32 22.32 0 0 0-1.2 7.36ZM751.05 397.1a16.64 16.64 0 0 1-3.49 3.52c-.87.71-1.76 1.44-2.69 2.09a11.5 11.5 0 0 1-5.72 2.33c-2.72.18-8.51-1.42-10.2-3.75a6.77 6.77 0 0 1-1-3.91 17.88 17.88 0 0 1 .94-5.46 30.42 30.42 0 0 1 4.41-8c2-2.74 4.16-5.43 7.09-7.09a27.35 27.35 0 0 1 3-1.39l5.33-2.18a2.5 2.5 0 0 1 1-.26c1.43 0 1.69 2.2.88 3.38-1.62 2.38-5.27 3-6.3 5.73a4.09 4.09 0 0 1 3.8 2.95 2.11 2.11 0 0 0 .51 1.19c.47.37 1.21.16 1.74.45.95.5.53 1.91.63 3a13.5 13.5 0 0 0 1 2.68 5.69 5.69 0 0 1-.93 4.72Z",fill:"#ee8e9e"})),ge||(ge=We.createElement("path",{d:"M593.4 786.45c.88-.88 2.32-.73 3.55-.54a132 132 0 0 0 19.95 1.61c.84-4.08-1.59-8-2.37-12.14a10.76 10.76 0 0 0-.8-3.08c-.94-1.8-3.06-2.63-5.05-3-3.59-.76-9.21-2.09-11.22 1.54-2.41 4.31-3.18 10.75-4.06 15.61Z",fill:"#65617d"})),ve||(ve=We.createElement("path",{d:"M666.49 771.02c-2.71 1.85-6.07 2.42-9.33 2.84s-6.61.74-9.57 2.19c-2.54 1.26-4.69 3.32-7.39 4.22a15.31 15.31 0 0 1-7.67.12c-3-.57-6.26-1.67-7.89-4.29-1.46-2.32-1.31-5.27-1.11-8 .24-3.09.47-6.2.69-9.3a4.4 4.4 0 0 1 .58-2.24c2.19-3.2 7.52 1.33 10.37 1.33 4.52 0 9.37-2.46 12.62-5.45a3.89 3.89 0 0 1 1-.74c1.29-.58 2.58.49 3.72 1.42l.39.31c2.64 2.09 6.18 2.52 9.44 3.37s6.75 2.55 7.76 5.77a4.57 4.57 0 0 1 .16.61c.57 2.95-1.26 6.1-3.77 7.84Z",fill:"#3f3d56"})),be||(be=We.createElement("path",{d:"M666.49 771.02c-2.71 1.85-6.07 2.42-9.33 2.84s-6.61.74-9.57 2.19c-2.54 1.26-4.69 3.32-7.39 4.22a15.31 15.31 0 0 1-7.67.12c-3-.57-6.26-1.67-7.89-4.29-1.46-2.32-1.31-5.27-1.11-8 .24-3.09.47-6.2.69-9.3a4.4 4.4 0 0 1 .58-2.24c2.19-3.2 7.52 1.33 10.37 1.33 4.52 0 9.37-2.46 12.62-5.45a3.89 3.89 0 0 1 1-.74c1.29-.58 2.58.49 3.72 1.42l.39.31c2.64 2.09 6.18 2.52 9.44 3.37s6.75 2.55 7.76 5.77a4.57 4.57 0 0 1 .16.61c.57 2.95-1.26 6.1-3.77 7.84Z",fill:"#434175"})),we||(we=We.createElement("path",{d:"M666.49 772.06c-2.71 1.85-6.07 2.43-9.33 2.85s-6.61.73-9.57 2.18c-2.54 1.26-4.69 3.32-7.39 4.22a15.31 15.31 0 0 1-7.67.12 12.6 12.6 0 0 1-7.89-5.33c-1.46-2.32-1.31-5.27-1.11-8 .24-3.09.47-6.2.69-9.3a4.4 4.4 0 0 1 .58-2.24c2.19-3.2 7.52 1.33 10.37 1.33 4.52 0 9.37-2.46 12.62-5.45a3.89 3.89 0 0 1 1-.74c1.29-.58 2.58.49 3.72 1.42a26.4 26.4 0 0 1-3.17 6.56 13.63 13.63 0 0 1-10 6.22c-2 .15-4.09-.25-6 .27s-3.77 2.52-3.08 4.42 3.06 2.25 5 2.36a22.38 22.38 0 0 0 8.21-.58c1.6-.53 3.07-1.41 4.62-2.06 6.62-2.74 15-1.21 20.46-5.85a13 13 0 0 1 1.67-1.28c1.45 2.99-1.22 7.19-3.73 8.88Z",fill:"#e8eaf2"})),qe||(qe=We.createElement("path",{d:"M666.49 772.06c-2.71 1.85-6.07 2.43-9.33 2.85s-6.61.73-9.57 2.18c-2.54 1.26-4.69 3.32-7.39 4.22a15.31 15.31 0 0 1-7.67.12 12.6 12.6 0 0 1-7.89-5.33c-1.46-2.32-1.31-5.27-1.11-8 .24-3.09.47-6.2.69-9.3a4.4 4.4 0 0 1 .58-2.24c2.19-3.2 7.52 1.33 10.37 1.33 4.52 0 9.37-2.46 12.62-5.45a3.89 3.89 0 0 1 1-.74c1.29-.58 2.58.49 3.72 1.42a26.4 26.4 0 0 1-3.17 6.56 13.63 13.63 0 0 1-10 6.22c-2 .15-4.09-.25-6 .27s-3.77 2.52-3.08 4.42 3.06 2.25 5 2.36a22.38 22.38 0 0 0 8.21-.58c1.6-.53 3.07-1.41 4.62-2.06 6.62-2.74 15-1.21 20.46-5.85a13 13 0 0 1 1.67-1.28c1.45 2.99-1.22 7.19-3.73 8.88Z",opacity:.05})),Oe||(Oe=We.createElement("path",{d:"M594.64 569.44a40.77 40.77 0 0 0 5.58 30c1.55 2.4 3.37 4.66 4.54 7.27a33.77 33.77 0 0 1 1.77 5.77l5 20.8c1.36 5.62 2.73 11.34 2.32 17.11-.28 4-1.3 8.53 1.18 11.71a8.46 8.46 0 0 1 1.49 2.05 5.15 5.15 0 0 1 0 2.7c-2.54 15.11-4.43 30.9.16 45.51 4.17 13.25 4.41 27.93 7.95 41.35a9.24 9.24 0 0 0 2.19 4.59 7.27 7.27 0 0 0 3.3 1.56c5.22 1.25 10.73-.21 15.59-2.46 3.42-1.59 7.1-4.37 6.81-8.12-.14-1.79-1.18-3.36-1.89-5-1.39-3.23-1.5-6.83-1.88-10.33-.94-8.78-3.65-17.26-5.69-25.84s-3.44-17.57-1.71-26.23a229.79 229.79 0 0 1 16.87-51.9 6.27 6.27 0 0 1 1.55-2.32 16.86 16.86 0 0 0 2.19-1.49 6.66 6.66 0 0 0 1-2.72c.76-2.74 3-4.77 4.53-7.17 3.83-6.08 2.62-13.87 2.48-21.05-.14-7 .86-14-.28-20.92s-5.04-13.94-11.69-16.06c-3.29-1.07-6.85-.82-10.29-.48-18.23 1.8-35.95 5.11-53.07 11.67Z",fill:"#696791"})),ke||(ke=We.createElement("path",{d:"M594.64 570.44a40.77 40.77 0 0 0 5.58 30c1.55 2.4 3.37 4.66 4.54 7.27a33.77 33.77 0 0 1 1.77 5.77l5 20.8c1.36 5.62 2.73 11.34 2.32 17.11-.28 4-1.3 8.53 1.18 11.71a8.46 8.46 0 0 1 1.49 2.05 5.15 5.15 0 0 1 0 2.7c-2.54 15.11-4.43 30.9.16 45.51 4.17 13.25 4.41 27.93 7.95 41.35a9.24 9.24 0 0 0 2.19 4.59 7.27 7.27 0 0 0 3.3 1.56c5.22 1.25 10.73-.21 15.59-2.46 3.42-1.59 7.1-4.37 6.81-8.12-.14-1.79-1.18-3.36-1.89-5-1.39-3.23-1.5-6.83-1.88-10.33-.94-8.78-3.65-17.26-5.69-25.84s-3.44-17.57-1.71-26.23a229.79 229.79 0 0 1 16.87-51.9 6.27 6.27 0 0 1 1.55-2.32 16.86 16.86 0 0 0 2.19-1.49 6.66 6.66 0 0 0 1-2.72c.76-2.74 3-4.77 4.53-7.17 3.83-6.08 2.62-13.87 2.48-21.05-.14-7 .86-14-.28-20.92s-5.04-13.94-11.69-16.06c-3.29-1.07-6.85-.82-10.29-.48-18.23 1.8-35.95 5.11-53.07 11.67Z",opacity:.1})),Ce||(Ce=We.createElement("path",{d:"M668.92 613.23a44 44 0 0 1-.91 8.07q-4.83 27-10.28 54c-.32 1.56-.63 3.12-1.05 4.65a37.78 37.78 0 0 1-7 13.7c-15.15 18.89-16.46 46.32-24.68 69.1-.56 1.54-1.11 3.09-1.7 4.61a115.75 115.75 0 0 1-5.07 11.31 3.22 3.22 0 0 1-1 1.35 3.08 3.08 0 0 1-1.65.33 48.31 48.31 0 0 1-21.36-4.86 4.48 4.48 0 0 1-2.27-1.89 4.66 4.66 0 0 1-.24-2.17c.23-4.51.51-9.19 2.66-13.16a28.22 28.22 0 0 1 5.26-6.38 242.36 242.36 0 0 1 5.16-42.22c1.6-7.08 3.58-14.23 7.69-20.21 3-4.42 7.38-8.78 6.84-14.11-.23-2.34-1.21-5.25.69-6.62.83-.61 2.06-.69 2.63-1.55a3 3 0 0 0 .37-1.32 32.66 32.66 0 0 0-.68-10.93 58.79 58.79 0 0 1-1.63-7.13 9 9 0 0 1 1.79-6.88c.1-4.87 0-9.92.07-14.78a27.16 27.16 0 0 0-.69-8.25c-.36-1.27-.93-2.49-1.21-3.79-1-4.67 1.52-10.27-1.5-14-1.26-1.54-3.2-2.31-4.85-3.42a17.71 17.71 0 0 1-6.66-9.57 52.59 52.59 0 0 1-1.9-11.74 11.28 11.28 0 0 1 0-2.53 4.35 4.35 0 0 1 .34-1.27c.94-2.11 3.46-2.93 5.71-3.47a185.15 185.15 0 0 1 43.61-5.1c5.44-3.7 8.49-2.37 10.8 1.54a41.09 41.09 0 0 1 3.07 7.51c1 3.18 1.12 21 2.14 24.17 1.3 4.15-2.55 12.65-2.5 17.01Z",fill:"#696791"})),je||(je=We.createElement("path",{d:"M570.68 451.29c-.4 2.8.94 5.55 1.09 8.38.13 2.47-.66 4.88-1.1 7.31-1.76 9.48 1.61 19.09 5 28.11a14.4 14.4 0 0 1 1.2 4.62c.09 2.94-1.6 5.64-2.07 8.55-1 6.11 3.53 11.85 3.63 18 0 2.85-.86 5.75-.14 8.5.47 1.84 1.62 3.43 2.43 5.14 1.45 3 1.84 6.5 3.22 9.57 2.49 5.55 7.84 9.18 12.94 12.51 2.89-1 6-2.11 7.62-4.72a11.63 11.63 0 0 0 1.33-4.14c1.1-6.33 1.06-12.79 1-19.21a118.59 118.59 0 0 0-.83-16.54c-1-7-3.29-13.7-4.92-20.57-2-8.65-3.09-17.59-6.28-25.9-2.81-7.29-7.17-13.84-11.77-20.12-1.75-2.39-3.14-5.81-6.54-5.26a7.13 7.13 0 0 0-5.81 5.77Z",fill:"#434175"})),Pe||(Pe=We.createElement("path",{d:"M570.68 449.29c-.4 2.8.94 5.55 1.09 8.38.13 2.47-.66 4.88-1.1 7.31-1.76 9.48 1.61 19.09 5 28.11a14.4 14.4 0 0 1 1.2 4.62c.09 2.94-1.6 5.64-2.07 8.55-1 6.11 3.53 11.85 3.63 18 0 2.85-.86 5.75-.14 8.5.47 1.84 1.62 3.43 2.43 5.14 1.45 3 1.84 6.5 3.22 9.57 2.49 5.55 7.84 9.18 12.94 12.51 2.89-1 6-2.11 7.62-4.72a11.63 11.63 0 0 0 1.33-4.14c1.1-6.33 1.06-12.79 1-19.21a118.59 118.59 0 0 0-.83-16.54c-1-7-3.29-13.7-4.92-20.57-2-8.65-3.09-17.59-6.28-25.9-2.81-7.29-7.17-13.84-11.77-20.12-1.75-2.39-3.14-5.81-6.54-5.26a7.13 7.13 0 0 0-5.81 5.77Z",opacity:.05})),Se||(Se=We.createElement("path",{d:"M644.66 390.28a59.69 59.69 0 0 0-5.55 11.43 26.19 26.19 0 0 1-6.3.76c-8.25 0-14.08-4.69-18.93-10.62-.42-1.9-3-3.67-2.74-5.16.39-2 2.25-1.59 3.93-1.48a150.51 150.51 0 0 1 15.26 2c1.32.16 14.13 3.4 14.33 3.07Z",opacity:.1})),Ae||(Ae=We.createElement("circle",{cx:632.81,cy:375.34,r:26.41,fill:"#ee8e9e"})),Ne||(Ne=We.createElement("path",{d:"M666.18 564.56c-4.57-.27-9.18-.08-13.76.1a47.15 47.15 0 0 0-8.55.88c-3.47.79-6.71 2.37-10.13 3.36-5.48 1.59-11.26 1.66-16.93 2.22a94.36 94.36 0 0 0-11.09 1.74 4.35 4.35 0 0 1 .34-1.27c.94-2.11 3.46-2.93 5.71-3.47a185.15 185.15 0 0 1 43.61-5.1c5.44-3.65 8.49-2.37 10.8 1.54Z",opacity:.1})),Le||(Le=We.createElement("path",{d:"M648.18 418.58c-1.15 1.33-2.7 2.8-4.4 2.37a6.08 6.08 0 0 1-1.72-.92c-3-2-6.78-2.42-10.36-3a152.4 152.4 0 0 1-21.34-4.8 21.93 21.93 0 0 0-6.32-1.28c-4.47 0-8.44 3-11.24 6.48s-4.8 7.57-7.55 11.1c-2 2.52-4.3 4.74-6.13 7.35-4.62 6.59-5.62 15.19-4.42 23.15s4.37 15.47 7.53 22.88a78.47 78.47 0 0 0 6.14 12.46c-1.06 6-.5 13 2.38 18.4.93 1.77 2.08 3.49 2.39 5.47a13.85 13.85 0 0 1-.16 4l-1.35 9.56c-.41 2.91-.82 5.82-1.35 8.72-1 5.29-2.28 11 .17 15.82 2.93 5.74-.15 13.09.62 19.49a97.8 97.8 0 0 1 25.74-6.11c5.67-.56 11.45-.63 16.93-2.22 3.42-1 6.66-2.57 10.13-3.37a47 47 0 0 1 8.55-.87c6.33-.25 12.7-.51 19 .42.5.08 1.12.12 1.43-.29a1.47 1.47 0 0 0 .19-.75 12.63 12.63 0 0 0-1.62-6.72c-.8-1.41-1.91-2.79-1.88-4.41a6.48 6.48 0 0 1 .55-2.19l2.77-7.4c2.35-6.25 1.23-13.51 2.45-20.07a117.46 117.46 0 0 0 1.82-15.53c.23-4.45.09-9.27-2.6-12.83a14.67 14.67 0 0 1-2-2.83 8.34 8.34 0 0 1-.48-3.37q-.09-13.36.73-26.72c-2.34-4.21-4.79-8.51-7.13-12.72-2.73-4.9-5.49-9.9-6.59-15.4-.73-3.63-.71-7.38-1.23-11.05a4.9 4.9 0 0 0-.93-2.59 4.69 4.69 0 0 0-3.76-1.11 16.44 16.44 0 0 0-4.96.88Z",fill:"#434175"})),Ue||(Ue=We.createElement("path",{d:"M744.87 402.71a11.5 11.5 0 0 1-5.72 2.33c-2.72.18-8.51-1.42-10.2-3.75a6.77 6.77 0 0 1-1-3.91 4.91 4.91 0 0 1 1.14-.22 29.88 29.88 0 0 1 8.86.36c2.88.7 5.66 2.45 6.87 5.16Z",opacity:.1})),De||(De=We.createElement("path",{d:"M657 459.83c1.61 2 3.28 4.06 5.56 5.25 2.63 1.36 5.72 1.39 8.67 1.33a208 208 0 0 0 36.23-4 22.81 22.81 0 0 0 4-1.07 20.6 20.6 0 0 0 4-2.52c3.93-2.82 7.92-5.7 10.91-9.51a32.05 32.05 0 0 0 6.46-15.85c2.84-2.61 4.35-6.34 5.77-9.93a15.24 15.24 0 0 0 1.32-4.82c.07-1.71-1.06-3.5-.74-5.18a13.64 13.64 0 0 1 4.19-7.54 2.74 2.74 0 0 0 1-1.33 2.1 2.1 0 0 0-.23-1.29c-1.22-2.71-4-4.45-6.88-5.16a29.61 29.61 0 0 0-8.87-.36 20.06 20.06 0 0 0-2.9.78l-2.07 5.43a6.88 6.88 0 0 1-1.35 2.48 12.52 12.52 0 0 1-1.46 1.15 8.38 8.38 0 0 0-2.91 7.33 7.88 7.88 0 0 0-4.66 9.72 9.3 9.3 0 0 0-6.81 6 4.45 4.45 0 0 1-.89 1.87 3.66 3.66 0 0 1-2.34.76c-2.34.14-4.38 2-6.49 1a13.29 13.29 0 0 0-7.71-1.08 5.77 5.77 0 0 1-1.65.15 4.43 4.43 0 0 1-1.35-.47 10.72 10.72 0 0 0-3.06-1.2 2.84 2.84 0 0 0-2.9 1.12c-.74-.81-1.18-1.85-1.85-2.72a3 3 0 0 0-2.82-1.35c.7-.62 0-1.87-.93-2.1a12.66 12.66 0 0 0-2.81.1c-2.44 0-4.32-2.23-6.69-2.81-2.18-.53-5.09.11-6.21-1.84-.39-.69-.47-1.63-1.14-2a2.2 2.2 0 0 0-1.48-.17 14.24 14.24 0 0 0-4.45 1.35c-2.29 9-1.09 18.24.65 27.3a24.07 24.07 0 0 0 4.89 11.18Z",fill:"#434175"})),Ie||(Ie=We.createElement("path",{d:"m656.93 491.88-11.37 22.94c1.23-2.13 3.82-3 5.87-4.31a15.54 15.54 0 0 0 5.57-7.54 47.14 47.14 0 0 0 2.15-9.29c.23-1.45.71-3.49 0-4.81-1.26.27-1.68 1.94-2.22 3.01ZM624.21 511.37c-2.57 2.54-5.71 4.41-8.53 6.66-6.6 5.26-11.3 12.46-15.89 19.53a30.77 30.77 0 0 0-3.25 5.92c.54.46 1.34 0 1.88-.49l8.93-7.84a20.19 20.19 0 0 0 3-3c1.55-2.09 2.24-4.69 3.65-6.88a26.84 26.84 0 0 1 5.43-5.53c2.05-1.76 11.47-9.73 9.18-12.83-1.69.8-3.05 3.1-4.4 4.46Z",opacity:.1})),Be||(Be=We.createElement("path",{d:"M643.72 411.95a26.78 26.78 0 0 0-9.45-3.11 20 20 0 0 0-6-.43c-1.86.23-3.65.95-5.52 1-2.63.15-5.14-.92-7.68-1.61s-5.47-1-7.6.57a3.29 3.29 0 0 1-1.66.88 3 3 0 0 1-1.71-.84 9.74 9.74 0 0 0-12.14.64c-4.84 4.54-4.29 13.41-10 16.86-1.56 1-3.56 1.45-4.48 3a12 12 0 0 1-.77 1.46 4 4 0 0 1-1.36 1 26.43 26.43 0 0 0-4.68 2.69 6.66 6.66 0 0 0-2.69 4.51 8.53 8.53 0 0 0 .82 3.79 35.62 35.62 0 0 0 34.61 22.13 5.42 5.42 0 0 0 3.63-1.13 6.93 6.93 0 0 0 1.27-2.09c2.67-5.59 7.68-9.72 10.86-15 1.89-3.17 3.11-6.72 5.09-9.84 3-4.73 7.54-8.23 12-11.62 2.52-1.91 5.31-3.92 8.47-3.79 2.81.12 4.86.27 3.82-3.17a11 11 0 0 0-4.83-5.9Z",fill:"#434175"})),He||(He=We.createElement("path",{d:"M643.72 411.95a26.78 26.78 0 0 0-9.45-3.11 20 20 0 0 0-6-.43c-1.86.23-3.65.95-5.52 1-2.63.15-5.14-.92-7.68-1.61s-5.47-1-7.6.57a3.29 3.29 0 0 1-1.66.88 3 3 0 0 1-1.71-.84 9.74 9.74 0 0 0-12.14.64c-4.84 4.54-4.29 13.41-10 16.86-1.56 1-3.56 1.45-4.48 3a12 12 0 0 1-.77 1.46 4 4 0 0 1-1.36 1 26.43 26.43 0 0 0-4.68 2.69 6.66 6.66 0 0 0-2.69 4.51 8.53 8.53 0 0 0 .82 3.79 35.62 35.62 0 0 0 34.61 22.13 5.42 5.42 0 0 0 3.63-1.13 6.93 6.93 0 0 0 1.27-2.09c2.67-5.59 7.68-9.72 10.86-15 1.89-3.17 3.11-6.72 5.09-9.84 3-4.73 7.54-8.23 12-11.62 2.52-1.91 5.31-3.92 8.47-3.79 2.81.12 4.86.27 3.82-3.17a11 11 0 0 0-4.83-5.9Z",opacity:.05})),Te||(Te=We.createElement("path",{d:"M657.47 794.73c-1.92 1.79-4.55 2.57-7.1 3.12a127.7 127.7 0 0 1-17.67 2.19l-5.77.44c-5.63.43-11.27.86-16.92.88a117.17 117.17 0 0 1-20.82-1.8 2.28 2.28 0 0 1-1.65-.8 2.24 2.24 0 0 1-.25-1.31 100.74 100.74 0 0 1 2.56-20.9c.65-2.81 5.7 3.5 5.93 3.77a5.76 5.76 0 0 0 4.59 2.43c5.81.32 12.32-3.21 16.93-6.35a22.18 22.18 0 0 1 3.14-1.95 9.19 9.19 0 0 1 2.54-.72 15.28 15.28 0 0 1 8.64 1.75c3.47 1.72 6.51 4.19 10 6a28.06 28.06 0 0 0 8.92 2.82c3.14.43 6.9.64 8.51 3.36 1.28 2.25.32 5.29-1.58 7.07Z",fill:"#434175"})),_e||(_e=We.createElement("path",{d:"M657.47 795.77c-1.92 1.79-4.55 2.57-7.1 3.12a127.7 127.7 0 0 1-17.67 2.19l-5.77.44c-5.63.43-11.27.86-16.92.88a116.24 116.24 0 0 1-20.82-1.8 2.27 2.27 0 0 1-1.65-.79 9.26 9.26 0 0 1-1.29-2.36c.12-7 2-14.05 3.6-20.9.65-2.81 5.7 3.5 5.93 3.77a5.76 5.76 0 0 0 4.59 2.43c5.81.32 12.32-3.21 16.93-6.35a22.18 22.18 0 0 1 3.14-1.95 9.19 9.19 0 0 1 2.54-.72c-.75 4.18-6.74 9.23-9.84 10.77-6.26 3.11-13.7 1.55-20.68 1.92a3 3 0 0 0-1.47.35c-.83.56-.88 1.75-.86 2.75.06 1.66.27 3.62 1.72 4.46a4.94 4.94 0 0 0 2.32.49 327.89 327.89 0 0 0 51.57-1.81 28.23 28.23 0 0 0 8.4-1.87 21.44 21.44 0 0 0 4.87-3.14c2.2 1.72.36 6.34-1.54 8.12Z",fill:"#e8eaf2"})),Fe||(Fe=We.createElement("path",{d:"M643.09 375.06c-.1 2.73 1.76 8-3.35 6.55-3-.88-3.9-4.49-7.76-3.69s-4.76 5.57-6.06 8.68a16.59 16.59 0 0 1-12 9.72 7.26 7.26 0 0 1-3.31 0c-2.49-.71-3.91-3.28-4.93-5.66a44.08 44.08 0 0 1-2.18-6.22 25.31 25.31 0 0 1-.79-4.56 19.48 19.48 0 0 1 0-3.15c.46-6.21 4-11.87 8.52-16.15s10-7.38 15.45-10.43a22.9 22.9 0 0 1 5.7-2.54 19.21 19.21 0 0 1 6-.24 20.85 20.85 0 0 1 7.66 1.8 10.71 10.71 0 0 1 2.69 1.89 8.11 8.11 0 0 1 2.34 3.89c1 4-1.58 7.63-3.66 10.8-1.9 2.81-4.19 5.79-4.32 9.31Z",fill:"#434175"})),Ge||(Ge=We.createElement("path",{d:"M729 433.67c-1.09-2.75-5.67-10.36-4.35-13a33.77 33.77 0 0 1 3.49 6.24c.86 2.15.18 5.01.86 6.76ZM647.47 365.74c2.08-3.17 4.64-6.79 3.66-10.8a8.35 8.35 0 0 0-3-4.44 7.27 7.27 0 0 1 .76 1.87c1 4-1.58 7.62-3.66 10.8-1.85 2.82-4.14 5.81-4.28 9.32-.1 2.73 1.77 8-3.34 6.55-3-.88-3.9-4.49-7.77-3.69s-4.75 5.56-6.06 8.68a16.57 16.57 0 0 1-12 9.72 7.26 7.26 0 0 1-3.31 0 5.05 5.05 0 0 1-1.56-.77 6.76 6.76 0 0 0 3.77 3.34 7.44 7.44 0 0 0 3.32 0 16.63 16.63 0 0 0 12-9.73c1.31-3.12 2.16-7.86 6.06-8.67s4.72 2.8 7.77 3.68c5.11 1.48 3.24-3.82 3.34-6.55.16-3.5 2.46-6.49 4.3-9.31Z",opacity:.1})),Re||(Re=We.createElement("path",{d:"M648.6 360.31a21.84 21.84 0 0 1-1.56 2.24 26.58 26.58 0 0 1-3.61 3.74c-.79.68-1.6 1.31-2.44 1.91a38.47 38.47 0 0 1-4.93 2.95 91.47 91.47 0 0 1-15.78 5.65l-10.54 3.07c-1.3 1-3.67 2.74-6.28 4.57a25.31 25.31 0 0 1-.79-4.56 19.48 19.48 0 0 1 0-3.15c.46-6.21 4-11.87 8.52-16.15s10-7.38 15.45-10.43a22.9 22.9 0 0 1 5.7-2.54 19.21 19.21 0 0 1 6-.24 20.85 20.85 0 0 1 7.66 1.8 10.71 10.71 0 0 1 2.69 1.89 10.14 10.14 0 0 1 1.35 2.86c.66 2.15-.26 4.45-1.44 6.39Z",opacity:.1})),ze||(ze=We.createElement("path",{d:"M648.6 359.6a21.84 21.84 0 0 1-1.56 2.24 26.58 26.58 0 0 1-3.61 3.74c-.79.68-1.6 1.31-2.44 1.91a39.65 39.65 0 0 1-4.93 2.95 91.47 91.47 0 0 1-15.78 5.65l-10.54 3.06c-3.68 2.79-16 11.91-18.07 10.77-2.44-1.34 10.93-10.81 10.93-10.81l.61.47c-2-1.23-3-4.08-3.42-6.55-.78-4.42-1.15-9-.1-13.37s3.67-8.51 7.66-10.55c1.77-.92 3.92-1.53 5.2-2.93a4.4 4.4 0 0 0 .51-.69 2.08 2.08 0 0 0 .2-.36 4.32 4.32 0 0 1 .56-1.09c.73-.84 2.06-.59 3.17-.45h.36a5.68 5.68 0 0 0 .59 0c4 .09 7.81-2.12 11.82-2.12 4.39 0 8.13 2.54 12 4.28.78.35 1.52.67 2.22 1 2.8 1.3 4.9 2.69 6 6.38.72 2.24-.2 4.55-1.38 6.47Z",fill:"#604687"})),Ve||(Ve=We.createElement("path",{d:"M617.94 343.65a1.8 1.8 0 0 1-.42 2.32 3.2 3.2 0 0 1-1.66.59 11.2 11.2 0 0 1-1.3.1 3.58 3.58 0 0 1-1.71-.29 2.2 2.2 0 0 1-.3-.19 4.4 4.4 0 0 0 .51-.69c.1.08.2.06.59 0a9.13 9.13 0 0 0 2.14-.36 2.38 2.38 0 0 0 .8-.39 2.48 2.48 0 0 0 .76-1.15ZM602.86 379.01a4.87 4.87 0 0 0 1.83.68 8.29 8.29 0 0 0 1.41.23 7.84 7.84 0 0 0 3.45-1",opacity:.1})))}},7156:(e,a,t)=>{t.d(a,{Z:()=>K});var c,l,r,i,n,s,m,o,f,d,h,p,y,E,Z,x,M,u,g,v,b,w,q,O,k,C,j,P,S,A,N,L,U,D,I,B,H,T,_,F,G,R,z,V,W,J=t(7294),Y=["title","titleId"];function X(){return X=Object.assign?Object.assign.bind():function(e){for(var a=1;a=0||(l[t]=e[t]);return l}(e,a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(c=0;c=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(l[t]=e[t])}return l}const K=function(e){var a=e.title,t=e.titleId,K=Q(e,Y);return J.createElement("svg",X({"data-name":"Layer 1",xmlns:"http://www.w3.org/2000/svg",width:1108,height:731.18,viewBox:"0 0 1108 731.18","aria-labelledby":t},K),void 0===a?J.createElement("title",{id:t},"react"):a?J.createElement("title",{id:t},a):null,c||(c=J.createElement("path",{d:"m767.68 330.79 6.89-2.7c.66-.26 1.31-.54 2-.81a59.85 59.85 0 0 1 15.28-115.77l-4.8 24.2 18.22-23.92h.16a59.87 59.87 0 0 1 51.16 67.45c-.15 1.13-.39 2.23-.6 3.34 5.61-4.43 10.87-9.32 14.81-15 8-11.54 10.71-25.76 13.47-43.17 5.47-34.48 10.4-69.34 14.84-104.18a59.83 59.83 0 0 1-42-65.36c.25-1.82.6-3.59 1-5.34.1-.44.2-.88.31-1.31.43-1.69.91-3.35 1.47-5 .09-.27.21-.52.3-.78.5-1.37 1-2.72 1.65-4 .22-.5.44-1 .67-1.47a57.69 57.69 0 0 1 2.22-4.19c.27-.45.56-.88.83-1.33.62-1 1.27-2 1.94-2.93.36-.5.71-1 1.08-1.49l.27-.39a59.81 59.81 0 0 1 74.64-17l-6.24 31.49 18-23.64a59.5 59.5 0 0 1 16.32 68.62h.07c-.17.4-.38.78-.55 1.18-.33.74-.67 1.47-1 2.2-.46.93-1 1.84-1.45 2.74-.38.68-.75 1.36-1.16 2-.59 1-1.23 1.9-1.87 2.83-.38.54-.73 1.1-1.12 1.63-1 1.39-2.12 2.72-3.26 4-.4.45-.83.86-1.25 1.3-.81.86-1.62 1.71-2.48 2.52-.53.5-1.09 1-1.64 1.46-.79.7-1.6 1.38-2.43 2-.59.47-1.19.92-1.79 1.36a77.101 77.101 0 0 1-4.45 2.96c-1 .61-2.05 1.17-3.1 1.72-.53.27-1 .57-1.59.83-1.58.77-3.2 1.48-4.85 2.11-.31.12-.64.21-.95.32-1.38.5-2.77 1-4.18 1.35-.61.17-1.23.31-1.85.46-1.15.28-2.31.54-3.48.76q-1 .18-2.07.33c-1.15.17-2.31.3-3.48.4-.69.06-1.37.12-2.07.16-1.26.06-2.53.07-3.8.06a2.08 2.08 0 0 0-.25 0q-2.82 22-5.92 44a59.82 59.82 0 0 1 86.4-10.32l-15.68 26.58 25.21-16.59a59.68 59.68 0 0 1 11.5 44.16 58.76 58.76 0 0 1-4.5 15.94 59.83 59.83 0 0 1-111.19-4c-.23 1.48-.45 3-.68 4.46-2.44 15.35-5.47 34.46-16.23 50-7.29 10.56-17.33 18.36-27.09 25.22q-9.52 6.7-19.48 12.77a59.85 59.85 0 0 1-24.53 13.74q-16 8.19-32.69 14.81l-6.95 2.72c-6.25 2.44-12.65 4.94-19 7.6 1 .09 2 .17 3 .3a59.9 59.9 0 0 1 50.86 49.05l-42.31 23.11 42.18-1.89A59.16 59.16 0 0 1 797 450.13a59.87 59.87 0 0 1-82.7 11.74l2.1 3.91c1.4 2.58 2.78 5.15 4.12 7.7 18.33 34.74 19.66 64.74 3.75 84.49l-13-10.45c15.49-19.22 3.2-49.77-5.5-66.27-1.32-2.5-2.68-5-4-7.56-11.77-21.83-25.12-46.57-19.77-72.9 8-39.7 51.05-56.5 85.68-70ZM269.6 519.01l-5.38-2.11c-.52-.2-1-.43-1.54-.63a46.75 46.75 0 0 0-11.94-90.42l3.75 18.9-14.22-18.68h-.13a46.76 46.76 0 0 0-40 52.68c.12.89.31 1.74.47 2.61a55.84 55.84 0 0 1-11.56-11.73c-6.23-9-8.37-20.12-10.53-33.71-4.23-26.93-8.07-54.15-11.52-81.33a46.72 46.72 0 0 0 32.77-51.05c-.2-1.42-.47-2.8-.79-4.17l-.24-1a48.36 48.36 0 0 0-1.15-3.88c-.07-.21-.16-.41-.24-.61a48.24 48.24 0 0 0-1.28-3.15c-.18-.38-.35-.77-.53-1.15-.54-1.11-1.11-2.2-1.73-3.26-.21-.36-.44-.7-.65-1-.49-.78-1-1.55-1.52-2.29-.28-.39-.55-.79-.84-1.17l-.21-.3a46.76 46.76 0 0 0-58.29-13.32l4.88 24.6-14.07-18.46a46.48 46.48 0 0 0-12.75 53.59h-.05c.13.31.29.61.43.92.26.58.52 1.15.8 1.72q.54 1.08 1.14 2.13c.29.54.58 1.07.9 1.59.46.75 1 1.48 1.46 2.21.3.42.57.86.88 1.27.8 1.08 1.65 2.12 2.54 3.13.31.35.65.67 1 1 .63.67 1.27 1.33 1.94 2 .41.4.85.77 1.28 1.14q.93.83 1.89 1.59c.46.36.93.71 1.4 1.06.68.49 1.37 1 2.06 1.41.47.31.94.61 1.42.9.79.48 1.6.91 2.42 1.34.42.22.82.45 1.24.66 1.24.6 2.5 1.15 3.79 1.64.24.1.5.16.74.25 1.07.39 2.16.75 3.27 1.06.47.13 1 .24 1.44.35.9.22 1.8.43 2.72.6l1.61.26c.9.13 1.81.23 2.72.31.54.05 1.07.09 1.62.12 1 .05 2 .06 3 .05h.19q2.2 17.22 4.62 34.41a46.71 46.71 0 0 0-67.48-8.14l12.14 20.64-19.68-12.95a46.57 46.57 0 0 0-9 34.49 45.8 45.8 0 0 0 3.53 12.46 46.73 46.73 0 0 0 86.84-3.12c.18 1.15.35 2.32.53 3.48 1.9 12 4.27 26.92 12.67 39.08 5.7 8.24 13.54 14.33 21.16 19.69q7.44 5.24 15.21 10a46.88 46.88 0 0 0 19.16 10.74c8.32 4.26 16.84 8.14 25.54 11.56l5.42 2.13c4.88 1.9 9.88 3.85 14.81 5.93-.78.07-1.57.13-2.36.24a46.77 46.77 0 0 0-39.72 38.27l33 18-32.94-1.47a46.78 46.78 0 0 0 73.57 29.2c-.55 1-1.09 2-1.64 3.05-1.09 2-2.17 4-3.22 6-14.31 27.13-15.35 50.57-2.92 66l10.13-8.16c-12.1-15-2.5-38.87 4.3-51.76 1-1.95 2.09-3.92 3.16-5.9 9.19-17 19.61-36.37 15.46-56.94-6.21-30.94-39.86-44.02-66.9-54.6Z",fill:"#f2f2f2"})),l||(l=J.createElement("ellipse",{cx:554,cy:707.68,rx:554,ry:23.5,fill:"#3f3d56"})),r||(r=J.createElement("ellipse",{cx:554,cy:707.68,rx:554,ry:23.5,opacity:.1})),i||(i=J.createElement("ellipse",{cx:554,cy:694.68,rx:554,ry:23.5,fill:"#3f3d56"})),n||(n=J.createElement("path",{d:"M85 686.32c-3-5.51.4-12.26 4.28-17.18s8.61-10 8.51-16.29c-.14-9-9.7-14.31-17.33-19.08a84.78 84.78 0 0 1-15.56-12.51 23 23 0 0 1-4.78-6.4c-1.58-3.52-1.53-7.52-1.43-11.38q.5-19.26 1.9-38.48",fill:"none",stroke:"#3f3d56",strokeMiterlimit:10,strokeWidth:4})),s||(s=J.createElement("path",{d:"M46.11 564.29a14 14 0 0 1 7-11.49l3.14 6.21-.09-7.52a13.86 13.86 0 0 1 4.62-.56 14 14 0 1 1-14.67 13.36ZM71.14 659.29a14 14 0 0 0 26.5-5.76 13.82 13.82 0 0 0-.91-5.69 14 14 0 0 0-26.27.15l8.77 7.13-9.64-2.24a13.89 13.89 0 0 0 1.55 6.41ZM78.07 632.04a14 14 0 0 0 4.46-27.54l.07 5.79-3.18-6.29a14.04 14.04 0 0 0-1.31 28.05ZM44 609.37a14.016 14.016 0 0 0 1.32-28 13.88 13.88 0 0 0-7.52 1.78l2.48 6.8-5.11-4.9a14 14 0 0 0-4.53 9.69 13.33 13.33 0 0 0 .36 3.85 14 14 0 0 0 13 10.78Z",fill:"#604687"})),m||(m=J.createElement("path",{d:"M48 568.03c3.24.36 6.39 1.37 9.64 1.57s6.82-.58 8.88-3.1c1.11-1.37 1.66-3.09 2.59-4.57a10.08 10.08 0 0 1 3.54-3.33 14 14 0 1 1-26.24 9.32c.53.02 1.06.06 1.59.11ZM44 609.37a14 14 0 0 0 13.35-20 10.4 10.4 0 0 0-2.82 2.83c-1 1.51-1.61 3.25-2.78 4.64-2.19 2.57-5.92 3.41-9.31 3.25s-6.66-1.11-10-1.42c-.47 0-.94-.08-1.41-.09A14 14 0 0 0 44 609.37ZM78.07 632.04a14 14 0 0 0 13.47-19.76 11.36 11.36 0 0 0-3 2.85c-1.09 1.54-1.77 3.31-3 4.73-2.36 2.64-6.34 3.57-9.93 3.48s-6.82-.93-10.28-1.19a14 14 0 0 0 12.74 9.89ZM71.14 659.29a14 14 0 0 0 26.5-5.76 13.82 13.82 0 0 0-.91-5.69 14 14 0 0 0-3.08 2.74c-1.34 1.63-2.21 3.47-3.76 5-2.87 2.82-7.5 4-11.62 4.09a62.35 62.35 0 0 1-7.13-.38Z",opacity:.1})),o||(o=J.createElement("path",{d:"M106.19 679.98s-11.08-.34-14.41-2.72-17-5.22-17.87-1.4-16.65 19-4.14 19.06 29.06-2 32.39-4 4.03-10.94 4.03-10.94Z",fill:"#656380"})),f||(f=J.createElement("path",{d:"M69.54 693.59c12.51.1 29.06-2 32.4-4 2.53-1.54 3.54-7.09 3.88-9.65h.37s-.7 8.93-4 11-19.89 4.08-32.39 4c-3.61 0-4.86-1.31-4.79-3.22.47 1.13 1.85 1.87 4.53 1.87Z",opacity:.2})),d||(d=J.createElement("path",{d:"M1055 695.32c-3-5.51.4-12.26 4.28-17.18s8.61-10 8.51-16.29c-.14-9-9.7-14.31-17.33-19.08a84.78 84.78 0 0 1-15.56-12.51 23 23 0 0 1-4.78-6.4c-1.58-3.52-1.53-7.52-1.43-11.38q.49-19.26 1.9-38.48",fill:"none",stroke:"#3f3d56",strokeMiterlimit:10,strokeWidth:4})),h||(h=J.createElement("path",{d:"M1016.11 573.29a14 14 0 0 1 7-11.49l3.14 6.21-.09-7.52a13.86 13.86 0 0 1 4.62-.56 14 14 0 1 1-14.68 13.36ZM1041.14 668.29a14 14 0 0 0 26.5-5.76 13.82 13.82 0 0 0-.91-5.69 14 14 0 0 0-26.27.15l8.77 7.13-9.64-2.24a13.89 13.89 0 0 0 1.55 6.41ZM1048.07 641.04a14 14 0 0 0 4.46-27.54l.07 5.79-3.18-6.29a14.04 14.04 0 0 0-1.31 28.05ZM1014 618.37a14.016 14.016 0 0 0 1.32-28 13.88 13.88 0 0 0-7.52 1.78l2.48 6.8-5.11-4.9a14 14 0 0 0-4.53 9.69 13.33 13.33 0 0 0 .36 3.85 14 14 0 0 0 13 10.78Z",fill:"#604687"})),p||(p=J.createElement("path",{d:"M1018 577.03c3.24.36 6.39 1.37 9.64 1.57s6.82-.58 8.88-3.1c1.11-1.37 1.66-3.09 2.59-4.57a10.08 10.08 0 0 1 3.54-3.33 14 14 0 1 1-26.24 9.32c.53.02 1.06.06 1.59.11ZM1014 618.37a14 14 0 0 0 13.35-20 10.4 10.4 0 0 0-2.82 2.83c-1 1.51-1.61 3.25-2.78 4.64-2.19 2.57-5.92 3.41-9.31 3.25s-6.66-1.11-10-1.42c-.47 0-.94-.08-1.41-.09a14 14 0 0 0 12.97 10.79ZM1048.07 641.04a14 14 0 0 0 13.47-19.76 11.36 11.36 0 0 0-3 2.85c-1.09 1.54-1.77 3.31-3 4.73-2.36 2.64-6.34 3.57-9.93 3.48s-6.82-.93-10.28-1.19a14 14 0 0 0 12.74 9.89ZM1041.14 668.29a14 14 0 0 0 26.5-5.76 13.82 13.82 0 0 0-.91-5.69 14 14 0 0 0-3.08 2.74c-1.34 1.63-2.21 3.47-3.76 5-2.87 2.82-7.5 4-11.62 4.09a62.35 62.35 0 0 1-7.13-.38Z",opacity:.1})),y||(y=J.createElement("path",{d:"M1076.19 688.98s-11.08-.34-14.41-2.72-17-5.22-17.87-1.4-16.65 19-4.14 19.06 29.06-2 32.39-4 4.03-10.94 4.03-10.94Z",fill:"#656380"})),E||(E=J.createElement("path",{d:"M1039.54 702.59c12.51.1 29.06-2 32.4-4 2.53-1.54 3.54-7.09 3.88-9.65h.37s-.7 8.93-4 11-19.89 4.08-32.39 4c-3.61 0-4.86-1.31-4.79-3.22.47 1.13 1.85 1.87 4.53 1.87Z",opacity:.2})),Z||(Z=J.createElement("path",{d:"M745.57 331.15q-9.92-3.4-20-6.3 1.66-6.79 3.09-13.65c15.14-73.51 5.24-132.73-28.57-152.22-32.42-18.7-85.44.8-139 47.39q-7.92 6.92-15.47 14.2-5.07-4.85-10.3-9.51c-56.11-49.83-112.32-70.82-146.14-51.27-32.39 18.75-42 74.42-28.35 144.09q2 10.35 4.59 20.58c-7.95 2.26-15.64 4.67-23 7.24-65.79 22.89-107.81 58.89-107.81 96.18 0 38.51 45.11 77.14 113.64 100.56q8.34 2.83 16.8 5.26-2.74 11-4.88 22.18c-13 68.46-2.84 122.82 29.46 141.45 33.37 19.26 89.37-.54 143.89-48.2 4.31-3.77 8.63-7.77 13-11.95q8.18 7.89 16.79 15.32c52.82 45.45 105 63.81 137.26 45.12 33.33-19.29 44.16-77.69 30.1-148.73q-1.6-8.14-3.73-16.61 5.91-1.74 11.56-3.61c71.24-23.6 117.6-61.76 117.6-100.79 0-37.43-43.38-73.62-110.5-96.73Z",fill:"#53c1de"})),x||(x=J.createElement("path",{d:"M730.12 503.47c-3.4 1.13-6.88 2.21-10.44 3.27a621.6 621.6 0 0 0-31.47-78.73 623.06 623.06 0 0 0 30.25-77.58c6.35 1.84 12.53 3.78 18.47 5.83 57.51 19.79 92.59 49.06 92.59 71.62 0 24-37.89 55.21-99.4 75.59Zm-25.52 50.58c6.22 31.41 7.1 59.81 3 82-3.7 19.95-11.14 33.25-20.34 38.58-19.59 11.33-61.47-3.4-106.64-42.27q-7.77-6.69-15.63-14.25a624.23 624.23 0 0 0 52.09-66.14 620.2 620.2 0 0 0 84.17-13q1.9 7.68 3.37 15ZM446.48 672.69c-19.14 6.76-34.38 6.95-43.59 1.64-19.6-11.31-27.75-55-16.63-113.5q2-10.37 4.53-20.63a625.79 625.79 0 0 0 83.75 12.13 645.09 645.09 0 0 0 53.35 65.9q-5.79 5.61-11.84 10.91c-24.11 21.08-48.28 36-69.57 43.55Zm-89.64-169.37c-30.31-10.36-55.33-23.82-72.49-38.5-15.41-13.2-23.19-26.31-23.19-36.94 0-22.63 33.74-51.5 90-71.11q10.6-3.69 21.39-6.73a637.08 637.08 0 0 0 30.29 78.48 646.29 646.29 0 0 0-30.66 79.6q-7.74-2.21-15.34-4.8Zm30.05-204.54c-11.68-59.69-3.93-104.72 15.59-116 20.79-12 66.76 5.12 115.22 48.15 3.1 2.75 6.21 5.63 9.32 8.6a635.89 635.89 0 0 0-52.93 65.52 648.42 648.42 0 0 0-82.93 12.89q-2.39-9.52-4.27-19.15ZM655 364.97q-9.11-15.74-18.89-31.08c19.83 2.51 38.82 5.83 56.66 9.91a565.54 565.54 0 0 1-19.89 53.51q-8.61-16.35-17.88-32.34ZM545.64 258.5a569.3 569.3 0 0 1 36.57 44.14q-36.71-1.73-73.45 0c12.07-15.92 24.44-30.72 36.88-44.13Zm-110 106.65q-9.15 15.87-17.55 32.14c-7.73-18.33-14.34-36.36-19.74-53.77 17.73-4 36.64-7.21 56.34-9.68q-9.92 15.44-19.07 31.31Zm19.61 158.65a564.64 564.64 0 0 1-57.25-9.21c5.49-17.71 12.25-36.13 20.15-54.86q8.43 16.29 17.61 32.16 9.34 16.19 19.47 31.91Zm91.14 75.33c-12.6-13.54-25.15-28.54-37.39-44.75q17.85.71 36.36.71 19 0 37.51-.84a563.94 563.94 0 0 1-36.5 44.88Zm126.69-140.35A562.82 562.82 0 0 1 694 513.44a561.35 561.35 0 0 1-58 9.89q9.85-15.63 19.08-31.63 9.38-16.26 18-32.92Zm-41 19.66q-14.12 24.52-29.81 48.1c-18.44 1.32-37.49 2-56.91 2s-38.15-.6-56.27-1.78q-16.09-23.5-30.39-48.17t-26.51-50.08q12.27-25.53 26.43-50.1 14.14-24.56 30.13-48c18.49-1.4 37.43-2.13 56.59-2.13s38.22.74 56.69 2.14q15.81 23.37 30 47.81t26.79 49.87q-12.45 25.62-26.71 50.3Zm54.77-296.46c20.81 12 28.9 60.4 15.83 123.87q-1.29 6.19-2.8 12.35a635.74 635.74 0 0 0-83.09-13.13 625.16 625.16 0 0 0-52.53-65.56q7-6.74 14.29-13.11c45.88-39.93 88.76-55.69 108.3-44.42Z",fill:"#fff"})),M||(M=J.createElement("path",{d:"M545.34 372.38a55.5 55.5 0 1 1-55.5 55.5 55.49 55.49 0 0 1 55.5-55.5",fill:"#53c1de"})),u||(u=J.createElement("path",{d:"M559.26 20.4a16.6 16.6 0 1 1-16.6-16.6 16.52 16.52 0 0 1 16.6 16.6Z",fill:"#3f3d56"})),g||(g=J.createElement("path",{d:"M529.4 24.59A16.62 16.62 0 0 1 541.89.05a16.6 16.6 0 1 0 1.41 33.07 16.6 16.6 0 0 1-13.9-8.53ZM521.91 43.52h44.47v69.37h-44.47z",fill:"#3f3d56"})),v||(v=J.createElement("path",{opacity:.1,d:"M521.91 43.52h44.47v69.37h-44.47z"})),b||(b=J.createElement("path",{d:"M451.66 295.2s-4.75 13.05-16 14.83-17.79 4.74-17.79 4.74l26.68 17.19 14.23-1.78s1.78-18.38 7.71-22.53-14.83-12.45-14.83-12.45ZM644.34 295.2s4.75 13.05 16 14.83 17.79 4.74 17.79 4.74l-26.68 17.19-14.23-1.78s-1.78-18.38-7.71-22.53 14.83-12.45 14.83-12.45Z",fill:"#a0616a"})),w||(w=J.createElement("path",{d:"M514.5 180.18s-7.11 3.56-9.48 10.68c0 0-13 4.15-20.16 15.41 0 0-8.9 9.49-10.08 14.23S460 253.7 460 253.7s-13.64 44.47-20.75 49.21c0 0 22.53-4.74 26.68 17.79 0 0 5.33 0 11.26-20.75s20.16-46.25 20.16-46.25 4.74-17.78 8.89-20.75 10.67-16.6 16.6-13 45.06-.6 45.06-.6 23.1 10.64 23.68 17.75 4.74 7.71 5.33 13.64 22.53 52.76 22.53 52.76 4.15 13 5.34 16c0 0 13-31.42 30.24-13.63 0 0-.6-11.86-5.93-19s-28.46-62.84-28.46-62.84-2.37-8.3-4.74-10.67-20.76-21.35-27.28-21.35c0 0-3.55-8.89-7.7-10.08ZM461.14 326.03a28.89 28.89 0 0 1-28.22-3.79 56.37 56.37 0 0 0-12.59-7.3c-6.29-2.54-13.81-4.42-16.1-.17-4.15 7.71 50.39 26.68 50.39 26.68s7.12-4.15 6.52-15.42ZM634.86 326.03a28.89 28.89 0 0 0 28.22-3.79 56.37 56.37 0 0 1 12.59-7.3c6.29-2.54 13.81-4.42 16.1-.17 4.15 7.71-50.39 26.68-50.39 26.68s-7.12-4.15-6.52-15.42Z",fill:"#3f3d56"})),q||(q=J.createElement("path",{d:"M533.88 82.67c-.22 2.06-.9 4.29-2.66 5.38-1.44.9-3.26.83-4.92 1.17a11.46 11.46 0 0 0-7.82 6.77 17.51 17.51 0 0 0-.75 10.55 39.22 39.22 0 0 0 1.52 5.06c1.74 4.92 3.84 9.8 7.09 13.89a59 59 0 0 0 9.3 8.77c2.11 1.72 4.29 3.47 6.89 4.28a21.75 21.75 0 0 0 5.4.72c2.25.1 4.65.17 6.6-.95 3-1.73 3.89-5.55 5.52-8.62 1.38-2.6 3.44-4.81 4.73-7.46a29.49 29.49 0 0 0 2-6.52l2.77-12.3c1-4.47 1.92-9.51-.59-13.34a2.28 2.28 0 0 0-.74-.77 2.79 2.79 0 0 0-1.52-.15 16.44 16.44 0 0 1-9.15-2.09 3.93 3.93 0 0 1-1.15-.9 4.72 4.72 0 0 1-.7-2.12 22.2 22.2 0 0 0-1.28-4.45 3 3 0 0 0-.87-1.34 3.15 3.15 0 0 0-1.41-.47 114.47 114.47 0 0 0-12.93-1.35c-1.42-.07-3.56-.64-4.54.62s-.67 4.12-.79 5.62Z",fill:"#a0616a"})),O||(O=J.createElement("path",{d:"M533.88 82.67c-.22 2.06-.9 4.29-2.66 5.38-1.44.9-3.26.83-4.92 1.17a11.46 11.46 0 0 0-7.82 6.77 17.51 17.51 0 0 0-.75 10.55 39.22 39.22 0 0 0 1.52 5.06c1.74 4.92 3.84 9.8 7.09 13.89a59 59 0 0 0 9.3 8.77c2.11 1.72 4.29 3.47 6.89 4.28a21.75 21.75 0 0 0 5.4.72c2.25.1 4.65.17 6.6-.95 3-1.73 3.89-5.55 5.52-8.62 1.38-2.6 3.44-4.81 4.73-7.46a29.49 29.49 0 0 0 2-6.52l2.77-12.3c1-4.47 1.92-9.51-.59-13.34a2.28 2.28 0 0 0-.74-.77 2.79 2.79 0 0 0-1.52-.15 16.44 16.44 0 0 1-9.15-2.09 3.93 3.93 0 0 1-1.15-.9 4.72 4.72 0 0 1-.7-2.12 22.2 22.2 0 0 0-1.28-4.45 3 3 0 0 0-.87-1.34 3.15 3.15 0 0 0-1.41-.47 114.47 114.47 0 0 0-12.93-1.35c-1.42-.07-3.56-.64-4.54.62s-.67 4.12-.79 5.62Z",opacity:.1})),k||(k=J.createElement("path",{d:"M525.85 89.74a26.93 26.93 0 0 0-7.13-1.12c-5.72-.14-11.84 1.83-15.14 6.5a15.34 15.34 0 0 0-2.29 11.47 23.57 23.57 0 0 0 5.2 10.66 32 32 0 0 1 4 5.24c1.58 3 1.63 6.59 2.06 10 1 8.12 4.46 15.75 5.83 23.82s.19 17.42-6.18 22.55c-1.07.86-2.37 1.77-2.46 3.14-.14 2.19 2.71 3.12 4.9 3.33 6.55.62 13.27 1.23 19.63-.46 2.63-.7 5.17-1.79 7.85-2.29 6.8-1.27 13.64 1.34 20.45 2.59a90.61 90.61 0 0 0 14.91 1.21 7.94 7.94 0 0 0 3.43-.45 2.75 2.75 0 0 0 1.74-2.74 4.76 4.76 0 0 0-1.18-2c-3.44-4.25-4.49-9.9-5.43-15.29l-3.15-18.11c-1.69-9.68-3.26-20.2 1.32-28.89 3.29-6.25 9.36-10.65 12.83-16.8a9.84 9.84 0 0 0 1.55-6.28c-.52-3.09-3.31-5.3-6.17-6.59a23.21 23.21 0 0 0-17.42-.64c.1 4.33-1 8.71-1.71 13l-1.21 7a88.83 88.83 0 0 1-2.71 12.2 12.85 12.85 0 0 1-2.17 4.42 11.43 11.43 0 0 1-3.83 2.79 22.83 22.83 0 0 1-10.14 2.32 13.54 13.54 0 0 1-4.48-.69 19 19 0 0 1-6.17-4.34 10.11 10.11 0 0 1-1.63-1.77 9.93 9.93 0 0 1-1.11-2.67 55.42 55.42 0 0 1-1.91-7.48c-.3-1.94-.4-3.91-.54-5.87-.39-5.79-.39-12.19-1.54-17.76Z",fill:"#604687"})),C||(C=J.createElement("path",{d:"M519.84 204.49s-2.37 31.43 12.45 36.76 1.78-26.09 1.78-26.09l-4.75-9.48ZM570.23 204.49s2.37 31.43-12.45 36.76-1.78-26.09-1.78-26.09l4.75-9.48Z",fill:"#a0616a"})),j||(j=J.createElement("path",{d:"m506.79 99.59-4.74 7.71s4.15 26.68 4.74 31.42a62.2 62.2 0 0 0 2.38 10.08s.59 14.23.59 19.57 3 14.23 3 14.23a64.82 64.82 0 0 0 3 14.82c2.37 6.52 4.74 14.23 4.74 14.23s3-8.3 14.82 4.15a7.18 7.18 0 0 0 0-10.08s-3.55-16-3.55-24.31-6.53-48-6.53-48-4.24-45.12-18.45-33.82Z",opacity:.1})),P||(P=J.createElement("path",{d:"m505.61 98.96-4.74 7.71s4.15 26.68 4.74 31.42a61.84 61.84 0 0 0 2.39 10.08s.59 14.23.59 19.56 3 14.23 3 14.23a64.53 64.53 0 0 0 3 14.82c2.37 6.53 4.75 14.23 4.75 14.23s3-8.3 14.82 4.15a7.18 7.18 0 0 0 0-10.07s-3.56-16-3.56-24.31-6.52-48-6.52-48-4.24-45.09-18.47-33.82Z",fill:"#604687"})),S||(S=J.createElement("path",{d:"m583.87 94.81 3 3.53s3.49 20.18-4.22 45.68l-2.37 23.12s-4.15 19.57-4.74 24.31-.59 5.33-1.78 7.11a2.29 2.29 0 0 0 0 3l-3.56 13s-5.33-6.52-16 1.78c0 0-3-4.74-.6-8.89s2.37-5.93 1.78-7.12 2.37-7.11 2.37-8.3 4.18-28.44 4.18-28.44 1.78-26.68 3.56-35.57c1.09-5.47 1.07-17.66.88-26.24-.19-8.94 10.63-13.78 17-7.5.15.16.33.31.5.53Z",opacity:.1})),A||(A=J.createElement("path",{d:"m585.65 93.59 3 3.53s3.49 20.19-4.22 45.68l-2.37 23.12s-4.15 19.57-4.74 24.31-.6 5.34-1.78 7.12a2.28 2.28 0 0 0 0 3L572 213.39s-5.33-6.53-16 1.77c0 0-3-4.74-.59-8.89s2.37-5.93 1.78-7.11 2.37-7.12 2.37-8.3 4.15-28.46 4.15-28.46 1.78-26.68 3.56-35.58.59-35.57.59-35.57 9.49-6.52 17.79 2.34Z",fill:"#604687"})),N||(N=J.createElement("circle",{cx:545.92,cy:61.61,r:23.72,fill:"#a0616a"})),L||(L=J.createElement("path",{d:"M558.29 26a16.6 16.6 0 0 1-31.09.44c9.26-3.73 18.72-.41 18.72-.41 4.73-1.66 8.83-1.51 12.37-.03Z",opacity:.1})),U||(U=J.createElement("path",{d:"M545.92 27.22s-45.65-16-34.38 61.66c0 0 10.08 6.52 17.78 2.37 0 0-5.33-53.95 15.42-51.58s17.19 50.4 17.19 50.4 11.86 3.55 15.42-3-1.19-70.48-31.43-59.85Z",fill:"#3f3d56"})),D||(D=J.createElement("path",{d:"M544.74 36.11c-14.24-1.62-16.2 23.27-16 39.05.17-15.69 2.81-37 16-35.49 14.81 1.69 17.24 26.66 17.41 40.8.17-12.98-1.25-42.51-17.41-44.36ZM511.54 85.32a159.38 159.38 0 0 1-1.77-20.53 152.12 152.12 0 0 0 1.77 24.09s10.08 6.52 17.78 2.37c0 0-.12-1.28-.26-3.43-7.67 3.87-17.52-2.5-17.52-2.5ZM577.35 83.59c-3.32 6.08-13.83 3.41-15.25 3-.07 2.2-.17 3.52-.17 3.52s11.86 3.55 15.42-3c.73-1.34 1.11-5.13 1-10.2-.1 3.25-.45 5.68-1 6.68Z",opacity:.1})),I||(I=J.createElement("path",{d:"M826.73 672.96c4.74-8.78-.64-19.54-6.82-27.37s-13.73-16-13.57-26c.23-14.35 15.45-22.81 27.62-30.42a134.77 134.77 0 0 0 24.79-19.93c3-3.05 5.87-6.31 7.62-10.21 2.52-5.6 2.45-12 2.29-18.12q-.79-30.71-3-61.34",fill:"none",stroke:"#3f3d56",strokeMiterlimit:10,strokeWidth:4})),B||(B=J.createElement("path",{d:"M888.74 478.49a22.31 22.31 0 0 0-11.16-18.32l-5 9.9.15-12a22.37 22.37 0 1 0 16 20.41ZM848.86 629.88a22.36 22.36 0 1 1 1.08-18l-14 11.37 15.37-3.57a22.25 22.25 0 0 1-2.45 10.2ZM837.81 586.45a22.37 22.37 0 0 1-7.09-43.86l-.12 9.22 5.06-10h.06a22.37 22.37 0 1 1 2.09 44.69ZM892.11 550.32a22.37 22.37 0 1 1 9.89-41.86l-4 10.83 8.13-7.8a22.37 22.37 0 0 1-14.07 38.83Z",fill:"#604687"})),H||(H=J.createElement("path",{d:"M885.74 484.45c-5.17.57-10.19 2.18-15.37 2.5s-10.87-.92-14.14-5c-1.77-2.17-2.65-4.91-4.14-7.28a16 16 0 0 0-5.63-5.3 22.37 22.37 0 1 0 41.81 14.84c-.85.09-1.69.15-2.53.24ZM892.11 550.32a22.39 22.39 0 0 1-21.28-31.91 16.37 16.37 0 0 1 4.5 4.51c1.59 2.4 2.56 5.18 4.43 7.39 3.48 4.09 9.44 5.43 14.84 5.19s10.6-1.78 16-2.28c.75-.06 1.5-.11 2.26-.13a22.37 22.37 0 0 1-20.75 17.23ZM837.81 586.45a22.37 22.37 0 0 1-21.46-31.49 17.83 17.83 0 0 1 4.73 4.55c1.74 2.45 2.82 5.27 4.86 7.54 3.77 4.2 10.11 5.68 15.83 5.54 5.54-.12 10.87-1.48 16.38-1.9a22.36 22.36 0 0 1-20.34 15.76ZM848.86 629.88a22.37 22.37 0 0 1-40.78-18.29 22.27 22.27 0 0 1 4.91 4.38c2.13 2.59 3.53 5.53 6 7.94 4.57 4.49 11.95 6.34 18.52 6.51a97.1 97.1 0 0 0 11.35-.54Z",opacity:.1})),T||(T=J.createElement("path",{d:"M793 662.85s17.65-.54 23-4.33 27.16-8.31 28.48-2.24 26.53 30.22 6.6 30.38-46.31-3.1-51.62-6.34-6.46-17.47-6.46-17.47Z",fill:"#656380"})),_||(_=J.createElement("path",{d:"M851.4 684.59c-19.93.16-46.31-3.11-51.62-6.34-4-2.47-5.65-11.3-6.19-15.38H793s1.12 14.24 6.43 17.47 31.69 6.5 51.62 6.34c5.75 0 7.74-2.09 7.63-5.12-.8 1.81-2.99 2.95-7.28 3.03Z",opacity:.2})),F||(F=J.createElement("path",{d:"m323 42.86-18.25 11.57 11.08-20.15a18 18 0 0 0-11-3.94h-.3a21.58 21.58 0 0 1-3.78-.28l-6.19 3.92 2.65-4.82a22.06 22.06 0 0 1-10.82-8.21l-11.07 7 7-12.72c-6.48-7.77-15.2-12.54-24.81-12.54-11.51 0-21.76 6.85-28.38 17.52a21.24 21.24 0 0 1-18.76 10.12h-.62c-12.71 0-23 14.41-23 32.19s10.3 32.18 23 32.18a17.2 17.2 0 0 0 8-2c8.29-4.31 19.17-4.39 27.85-.54a29 29 0 0 0 23.68.05c8.62-3.77 19.37-3.69 27.61.54a17.23 17.23 0 0 0 7.93 2c12.71 0 23-14.41 23-32.18A40.86 40.86 0 0 0 323 42.86Z",fill:"#f2f2f2"})),G||(G=J.createElement("path",{d:"M288.59 89.95a34 34 0 0 0-19.72 2.14 29 29 0 0 1-23.67-.05c-8.69-3.85-19.57-3.77-27.86.54a17.2 17.2 0 0 1-8 2c-11.29 0-20.68-11.38-22.64-26.38a21.58 21.58 0 0 0 5.64-6.08c6.66-10.66 16.87-17.53 28.38-17.53s21.64 6.77 28.26 17.32a21.79 21.79 0 0 0 18.76 10.31h.26c9 .01 16.8 7.22 20.59 17.73Z",opacity:.03})),R||(R=J.createElement("path",{d:"M800.07 66.42 791 72.19l5.53-10a9 9 0 0 0-5.51-2h-.14a10.79 10.79 0 0 1-1.89-.14l-3.09 2 1.3-2.46a11 11 0 0 1-5.4-4.09l-5.52 3.5 3.49-6.34a16.17 16.17 0 0 0-12.37-6.26c-5.75 0-10.86 3.42-14.16 8.74a10.57 10.57 0 0 1-9.36 5h-.31c-6.34 0-11.48 7.19-11.48 16s5.14 16.05 11.48 16.05a8.62 8.62 0 0 0 4-1 16.56 16.56 0 0 1 13.89-.27 14.52 14.52 0 0 0 11.81 0 16.58 16.58 0 0 1 13.77.27 8.61 8.61 0 0 0 4 1c6.34 0 11.48-7.18 11.48-16.05a20.28 20.28 0 0 0-2.45-9.72Z",fill:"#f2f2f2"})),z||(z=J.createElement("path",{d:"M782.92 89.91a17 17 0 0 0-9.83 1.07 14.52 14.52 0 0 1-11.81 0 16.58 16.58 0 0 0-13.9.27 8.55 8.55 0 0 1-4 1c-5.64 0-10.32-5.67-11.3-13.15a10.93 10.93 0 0 0 2.82-3c3.3-5.32 8.42-8.73 14.16-8.73s10.79 3.37 14.09 8.63a10.85 10.85 0 0 0 9.36 5.14h.15c4.49-.07 8.34 3.53 10.26 8.77Z",opacity:.03})),V||(V=J.createElement("path",{d:"m204.34 215.86 14.66 9.28-8.88-16.15a14.48 14.48 0 0 1 8.85-3.15h.23a17.08 17.08 0 0 0 3-.22l4.95 3.14-2.15-3.86a17.78 17.78 0 0 0 8.67-6.58l8.87 5.62-5.54-10.19c5.19-6.22 12.18-10 19.87-10 9.23 0 17.44 5.48 22.75 14a17 17 0 0 0 15 8.11h.5c10.18 0 18.43 11.54 18.43 25.78s-8.25 25.79-18.43 25.79a13.86 13.86 0 0 1-6.43-1.61 26.59 26.59 0 0 0-22.31-.43 23.28 23.28 0 0 1-19 0 26.64 26.64 0 0 0-22.12.43 13.9 13.9 0 0 1-6.35 1.57c-10.19 0-18.44-11.54-18.44-25.79a32.78 32.78 0 0 1 3.87-15.74Z",fill:"#f2f2f2"})),W||(W=J.createElement("path",{d:"M231.89 253.59a27.36 27.36 0 0 1 15.8 1.72 23.28 23.28 0 0 0 19 0 26.61 26.61 0 0 1 22.32.43 13.82 13.82 0 0 0 6.42 1.61c9.05 0 16.57-9.11 18.14-21.13a17.44 17.44 0 0 1-4.52-4.88c-5.31-8.54-13.52-14-22.75-14s-17.33 5.42-22.64 13.88a17.44 17.44 0 0 1-15 8.25h-.23c-7.26-.07-13.5 5.71-16.54 14.12Z",opacity:.03})))}},8538:(e,a,t)=>{t.d(a,{Z:()=>N});var c,l,r,i,n,s,m,o,f,d,h,p,y,E,Z,x,M,u,g,v,b,w,q,O,k,C,j=t(7294),P=["title","titleId"];function S(){return S=Object.assign?Object.assign.bind():function(e){for(var a=1;a=0||(l[t]=e[t]);return l}(e,a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(c=0;c=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(l[t]=e[t])}return l}const N=function(e){var a=e.title,t=e.titleId,N=A(e,P);return j.createElement("svg",S({"data-name":"Layer 1",xmlns:"http://www.w3.org/2000/svg",width:1038.23,height:693.31,viewBox:"0 0 1038.23 693.31","aria-labelledby":t},N),c||(c=j.createElement("defs",null,j.createElement("linearGradient",{id:"a",x1:320.96,y1:796.01,x2:320.96,y2:284.81,gradientUnits:"userSpaceOnUse"},j.createElement("stop",{offset:0,stopColor:"gray",stopOpacity:.25}),j.createElement("stop",{offset:.54,stopColor:"gray",stopOpacity:.12}),j.createElement("stop",{offset:1,stopColor:"gray",stopOpacity:.1})))),void 0===a?j.createElement("title",{id:t},"version control"):a?j.createElement("title",{id:t},a):null,l||(l=j.createElement("path",{d:"M615.24 111.4c-64.72-2.25-126.36-23.14-185.23-46S312.85 17.21 249.68 5.1c-40.63-7.79-87.09-8.89-119.83 12.89-31.5 21-41.68 57.15-47.16 90.72-4.11 25.27-6.54 51.85 4.75 75.5 7.83 16.42 21.74 30.22 31.36 45.95 33.46 54.72 9.81 122.2-26.46 175.63-17 25.06-36.74 49-49.87 75.66s-19.2 57.25-7.72 84.47c11.39 27 38.52 47.24 67.9 61.49 59.69 28.94 130 37.23 198.62 41.92 151.82 10.39 304.46 5.89 456.68 1.39 56.34-1.67 112.92-3.36 168.34-12.07 30.78-4.84 62.56-12.52 84.9-31 28.36-23.53 35.39-63.38 16.39-92.88-31.88-49.49-120-61.79-142.31-114.9-12.27-29.23.33-61.8 18.15-88.91 38.24-58.17 102.33-109.19 105.71-175.68 2.32-45.66-28.49-91.39-76.13-113-49.94-22.65-119.18-19.8-156 17.69-37.96 38.56-104.62 53.41-161.76 51.43Z",fill:"#6c63ff",opacity:.1})),r||(r=j.createElement("path",{d:"M529.62 754.84c-1-3.62-2-7.28-4-10.43a36.53 36.53 0 0 0-6.55-7.17c-7.25-6.58-16.15-13.26-25.76-11.6a34.39 34.39 0 0 0-8.54 3.12c-1.4.65-2.81 1.3-4.25 1.85a21.17 21.17 0 0 1-12.82 1.12c-2.2-.59-4.25-1.65-6.42-2.31a20.35 20.35 0 0 0-3.15-.68 53.64 53.64 0 0 0 6.09-3.21c10.78-6.6 19.38-18.53 18.18-31.29-.41-4.29-1.88-8.4-3.34-12.45l-3.84-10.62c-1.66-4.6-3.38-9.29-6.41-13.11-3.37-4.26-8.17-7.15-13.13-9.3-10.65-4.63-22.29-6.26-33.78-7.84l-.8-.11V516.68a8 8 0 0 0-8-8H398q-1-6.12-2-12.22c-1.9-11.61-3.87-23.43-9.22-33.88-3.5-6.84-9.07-13.37-16.58-14.71a16.08 16.08 0 0 1-4.31-1c-2.2-1.08-3.4-3.48-5.09-5.25-4.36-4.57-11.45-4.64-17.29-7-5.16-2.05-9.38-5.91-14.08-8.88s-10.54-5.08-15.74-3.15c0 .38-.07.76-.11 1.13l-3.34-1.54c-3.6-1.67-7.27-3.38-10.16-6.12-3.71-3.5-5.69-8.14-7.23-13.07-.16-.51-.31-1-.47-1.55a46.43 46.43 0 0 0 12.44-23.75l.81 2.63a17.45 17.45 0 0 0 .64 1.74 6.86 6.86 0 0 0 2 2.83 3.55 3.55 0 0 0 .84.49 3.5 3.5 0 0 0 .86.22 3.2 3.2 0 0 0 1.24-.09 4.73 4.73 0 0 0 3-2.78 6 6 0 0 0 .35-1.22 6.31 6.31 0 0 0 .07-.76v-1.04c0-.1 0-.33-.05-.5v-.26c0-.2-.06-.4-.1-.59s0-.11 0-.16c-.05-.25-.11-.51-.16-.76v-.19c0-.06-.09-.41-.14-.62s-.07-.27-.1-.41v-.06c-.1-.4-.19-.79-.28-1.19a34.38 34.38 0 0 1-.55-10.56 113.08 113.08 0 0 1 2.86-15.35l.21-.91c.08-.35.16-.7.23-1.06.16-.72.32-1.44.47-2.17l.36-1.84.27-1.64v-.21A47.41 47.41 0 0 0 318 330c-.46-5.23-2.08-10.18-5.63-14.12-2.51-2.79-5.82-4.85-8.15-7.78-2.18-2.74-3.41-6.12-5.67-8.81-6.24-7.45-22.26-13.19-32.09-14.19-11.26-1.14-29.45 1.74-38.53 8.39-3.36 2.45-5.66 6-8 9.36-4.3 6.25-9.18 12.49-16.07 16-2.6 1.32-5.58 2.32-7.31 4.62a12.49 12.49 0 0 0-1.95 5.18 102.71 102.71 0 0 0-2.06 19.78v2.5a18.23 18.23 0 0 0 1.56 7.23c.16.34.34.67.53 1l.12.21a39.78 39.78 0 0 1 3.2 5.45 7.22 7.22 0 0 1 .49 1.66 12.24 12.24 0 0 1-.28 4.38c0 .22-.09.44-.13.66l-.09.43c0 .15 0 .3-.08.44-.08.43-.15.86-.21 1.28a9 9 0 0 0 .22 3.46 4.55 4.55 0 0 0 2.22 3 6.5 6.5 0 0 0 1.8.56c.63.11 1.27.18 1.89.32a9.33 9.33 0 0 1 2.29.85 9.22 9.22 0 0 1 1.93 1.24 11 11 0 0 1 .83.84 14 14 0 0 1 1.42 1.94q.32.53.6 1.08a24.67 24.67 0 0 1 1.71 4.52c.26.93.48 1.87.67 2.81.09.42.17.84.24 1.25s.14.83.2 1.24a2.91 2.91 0 0 0 .8-.16c1.47-.53 2.29-2.24 2.75-3.9.08-.28.15-.55.21-.82.23-1 .47-2.1.7-3.15a46.37 46.37 0 0 0 18.25 20.1c.28.83.55 1.65.79 2.49 1.31 4.53 1.94 9.27-.33 13.23-1.62 2.81-4.34 4.54-7.38 5.74a4.88 4.88 0 0 0-1.65-1.4c-2.63-1.32-5.79.28-8 2.25-4 3.62-7.26 8.81-12.52 10-1.9.44-4 .35-5.58 1.51a13 13 0 0 0-2.59 3.4 11.92 11.92 0 0 1-10.23 5.1c-1.83-.09-4-.51-5.25.83-.93 1-1 2.58-2 3.53-1.34 1.32-3.54.68-5.41.6-3.56-.15-6.87 2.15-8.9 5.1s-3 6.48-4 10v.06a7.15 7.15 0 0 0-.73.61 10.55 10.55 0 0 0-2.21 3.58 170.87 170.87 0 0 0-14.1 58.18 6 6 0 0 1-.64 2.82 13.87 13.87 0 0 1-1.47 1.6 5.61 5.61 0 0 0 .93 8 6.3 6.3 0 0 1 1.07-1.42c-.11.46-.21.91-.28 1.32a35.49 35.49 0 0 0-.11 8.8q1.42 20.84 2.87 41.65c.27 3.93.54 7.85.9 11.77q1.05 11.38 3 22.67c.06.34.13.69.22 1-8.15 2.59-15.4 7.27-18.45 15.08-1.06 2.7-1.54 5.64-2.84 8.23-1.43 2.84-3.78 5.11-5.34 7.89-2.69 4.78-2.81 10.64-1.83 16 1.89 10.45 7.54 19.79 15 27.39h-1a15.64 15.64 0 0 0-6.83 2.45c-15.78 9.22-24.8 29-21.51 47.06.65 3.53 1.78 7.11 4.14 9.8a15.51 15.51 0 0 0 7.28 4.46 25.29 25.29 0 0 0 5.37 1c12.3 1 24.21-4.7 36.54-5.18a98 98 0 0 1 12.23.57q8.91.74 17.85.94c9.69.23 15.14-2.35 21.32-9.59a26.1 26.1 0 0 0 3.77-5.94c5.26-.3 11.07-.76 15.27-1.1l.06.58c.23 2 .58 4.3 2.18 5.56a7.61 7.61 0 0 0 3 1.23c10.1 2.48 20.32 5 30.72 5a129.71 129.71 0 0 0 14.59-1.12l18.27-2.11a91 91 0 0 1 15.7 3.42c5.28 1.79 10.21 4.45 15.37 6.56 12 4.86 24.9 6.6 37.68 8.3 2.18.29 4.68.49 6.29-1 2.08-2 1.39-5.34.8-8.14-.24-1.15-.42-2.3-.56-3.46a175.25 175.25 0 0 1 25.24 8.76l1.43.63c.42 2.18 2.43 3.92 4.36 6.27a16 16 0 0 0 2.21 2.74 7.37 7.37 0 0 0 3.17 1.14 147.82 147.82 0 0 0 40.93 1.85 41.86 41.86 0 0 1 8.44-.29 36.58 36.58 0 0 1 6.1 1.37l11.57 3.32c8.53 2.44 17.26 4.91 26.11 4.36a33.4 33.4 0 0 0 5.33-.77c7-1.62 13.52-5.53 16.88-11.82 4.75-8.55 2.56-19.07 0-28.47Z",transform:"translate(-80.89 -103.35)",fill:"url(#a)"})),i||(i=j.createElement("path",{d:"M125.02 649.54c-2.11-4.8-4.11-10.32-2-15.12a12.85 12.85 0 0 1 6.65-6.25 32 32 0 0 1 9-2.22 125.61 125.61 0 0 1 29.26-.4c.71 5.62-.79 11.32-2.08 16.75-1.17 5-1.84 5.74-7 6-3.34.18-33.04 3.01-33.83 1.24Z",fill:"#fbbebe"})),n||(n=j.createElement("ellipse",{cx:214.07,cy:577.16,rx:143,ry:40,fill:"#464353"})),s||(s=j.createElement("ellipse",{cx:214.07,cy:577.16,rx:143,ry:40,opacity:.1})),m||(m=j.createElement("path",{d:"M239.71 366a44.49 44.49 0 0 1-22.94 20.84 57.58 57.58 0 0 1-18.21 3.46c-6.79.31-13.72-.13-20.1-2.45-8.56-3.1-15.67-9.44-21-16.83s-9-15.83-12.19-24.34c-1.68-4.43-3.28-9.15-2.49-13.83 5.15-1.17 10.79-2.89 13.45-7.46 2.27-3.92 1.64-8.62.33-13.1-.37-1.27-.8-2.53-1.23-3.74-1-2.9-4.45-8.41-2-10.89 1.53-1.57 7.94-2.37 10.15-3.39 6.81-3.14 13.09-7.68 20.57-9.17 6.47-1.29 13.15-.08 19.61 1.26a6.45 6.45 0 0 1 2.42.87 5.82 5.82 0 0 1 1.8 2.7c1.84 4.48 2.92 9.43 4.4 14.1 1.54 4.89 3.52 9.48 7.23 12.95 2.89 2.71 6.57 4.41 10.17 6.06l8.86 4.06a11.65 11.65 0 0 1 4.19 2.71 10.61 10.61 0 0 1 2 5.44 50.82 50.82 0 0 1-5.02 30.75Z",fill:"#fbbebe"})),o||(o=j.createElement("path",{d:"M212.24 304.03a46 46 0 0 1-55.67 8.26c-.37-1.27-.8-2.53-1.23-3.74-1-2.9-4.45-8.41-2-10.89 1.53-1.57 7.94-2.37 10.15-3.39 6.81-3.14 13.09-7.68 20.57-9.17 6.47-1.29 13.15-.08 19.61 1.26a6.45 6.45 0 0 1 2.42.87 5.82 5.82 0 0 1 1.8 2.7c1.79 4.48 2.87 9.43 4.35 14.1Z",opacity:.1})),f||(f=j.createElement("circle",{cx:179.07,cy:270.16,r:46,fill:"#fbbebe"})),d||(d=j.createElement("path",{d:"m319.22 419.45-3.78-22.9c-1.91-11.49-3.88-23.2-9.22-33.55-3.51-6.78-9.08-13.24-16.59-14.58a16.05 16.05 0 0 1-4.32-1c-2.2-1.06-3.4-3.44-5.09-5.2-4.36-4.52-11.46-4.59-17.3-6.89-5.16-2-9.38-5.85-14.08-8.79s-10.55-5-15.75-3.12c-.84 8.95-1.73 18.1-5.53 26.25a39.28 39.28 0 0 1-59.26 14.76c-8.91-6.71-14.62-17.06-17.28-27.89-.65-2.64-1.39-5.67-3.82-6.88-2.63-1.32-5.79.28-8 2.22-4 3.59-7.27 8.73-12.53 9.94-1.9.44-4 .35-5.58 1.5a12.7 12.7 0 0 0-2.6 3.37 12 12 0 0 1-10.23 5.06c-1.83-.09-4-.51-5.25.82-.93 1-1 2.56-2 3.49-1.35 1.31-3.54.67-5.42.6-3.56-.15-6.87 2.13-8.91 5s-3 6.42-4 9.86c10.93 24.34 20.93 48.71 31.86 73.05a6.23 6.23 0 0 1 .79 3 7.31 7.31 0 0 1-1.36 3c-5.36 8.61-5.19 19.44-4.6 29.56s1.31 20.81-3.21 29.88c-1.23 2.49-2.83 4.77-4 7.26-2.74 5.64-3.73 23.68-2.13 29.74h226.08c-4.31-11.85-2.67-35.63-1.77-48.21.63-8.8-1-17.59-1.7-26.39-1.53-17.97-.45-35.02-3.42-52.96Z",fill:"#6c63ff"})),h||(h=j.createElement("path",{d:"M65.36 445.65a35.4 35.4 0 0 0-.12 8.73l2.87 41.27c.27 3.89.54 7.77.9 11.65.69 7.53 1.72 15 3 22.46a4 4 0 0 0 4.1 3.89c12.65 2.68 25.72 2.57 38.63 1.84 19.7-1.1 39.37-3.61 59.1-3.18 5.08.11 11 0 14.08-4s1.29-10.47-2.73-13.7-9.48-4-14.64-4c-6.83-.07-13.66.9-20.47.5-6.25-.37-12.36-1.88-18.42-3.39l-17-4.23c.65-5.15 2.61-10 4.47-14.89 3.34-8.67 6.46-17.63 6.52-26.92s-3.44-19.06-11.05-24.38c-6.26-4.37-14.32-5.18-21.95-5-5.55.16-15.14-1.17-20.21 1-4.01 1.76-6.33 8.42-7.08 12.35Z",fill:"#fbbebe"})),p||(p=j.createElement("path",{d:"M330.79 540.01c3.33-1.27 7-.81 10.57-.33 11.49 1.57 23.15 3.18 33.8 7.77 5 2.14 9.76 5 13.14 9.21 3 3.79 4.75 8.43 6.41 13l3.84 10.52c1.46 4 2.94 8.08 3.35 12.33 1.2 12.59-7.41 24.46-18.24 31s-23.58 8.87-36 11.31-24.89 5.14-37.26 8a150 150 0 0 1-17.53 3.45c-13.24 1.5-27.08-.71-39.66 3.67-5 1.75-9.91 4.35-15.1 5.56a93.93 93.93 0 0 1-10.44 1.59l-23.81 2.72a129.89 129.89 0 0 1-14.6 1.12c-10.4 0-20.63-2.46-30.73-4.92a7.77 7.77 0 0 1-3-1.21c-1.6-1.26-1.95-3.49-2.18-5.51q-1.53-13.41-2.68-26.85c-.24-2.91-.42-6.06 1.17-8.51 2-3 5.9-3.94 9.46-4.52a246.88 246.88 0 0 1 45.68-3.17c5.81-5.81 15.39-5.84 23-9a68.39 68.39 0 0 0 8.11-4.41 106 106 0 0 1 44.53-14.07 41.45 41.45 0 0 0 9.11-1.3c5.89-1.83 11.26-6.81 17.31-5.59.75-2.07 1.27-4.84 3-6.26.86-.73 1.92-1.22 2.71-2 1.67-1.69 1.82-4.35 1.57-6.71s-.81-4.78-.2-7.08a9.79 9.79 0 0 1 1.11-2.47c3-5.18 7.53-7.84 13.56-7.34Z",fill:"#464353"})),y||(y=j.createElement("path",{d:"M330.79 540.01c3.33-1.27 7-.81 10.57-.33 11.49 1.57 23.15 3.18 33.8 7.77 5 2.14 9.76 5 13.14 9.21 3 3.79 4.75 8.43 6.41 13l3.84 10.52c1.46 4 2.94 8.08 3.35 12.33 1.2 12.59-7.41 24.46-18.24 31s-23.58 8.87-36 11.31-24.89 5.14-37.26 8a150 150 0 0 1-17.53 3.45c-13.24 1.5-27.08-.71-39.66 3.67-5 1.75-9.91 4.35-15.1 5.56a93.93 93.93 0 0 1-10.44 1.59l-23.81 2.72a129.89 129.89 0 0 1-14.6 1.12c-10.4 0-20.63-2.46-30.73-4.92a7.77 7.77 0 0 1-3-1.21c-1.6-1.26-1.95-3.49-2.18-5.51q-1.53-13.41-2.68-26.85c-.24-2.91-.42-6.06 1.17-8.51 2-3 5.9-3.94 9.46-4.52a246.88 246.88 0 0 1 45.68-3.17c5.81-5.81 15.39-5.84 23-9a68.39 68.39 0 0 0 8.11-4.41 106 106 0 0 1 44.53-14.07 41.45 41.45 0 0 0 9.11-1.3c5.89-1.83 11.26-6.81 17.31-5.59.75-2.07 1.27-4.84 3-6.26.86-.73 1.92-1.22 2.71-2 1.67-1.69 1.82-4.35 1.57-6.71s-.81-4.78-.2-7.08a9.79 9.79 0 0 1 1.11-2.47c3-5.18 7.53-7.84 13.56-7.34Z",opacity:.05})),E||(E=j.createElement("path",{d:"M134.22 655.72c-6.19 7.17-11.64 9.73-21.33 9.5q-8.94-.21-17.86-.93a100.2 100.2 0 0 0-12.24-.57c-12.34.48-24.25 6.13-36.56 5.14a25.92 25.92 0 0 1-5.37-1 15.63 15.63 0 0 1-7.29-4.42c-2.36-2.67-3.49-6.21-4.14-9.71-3.29-17.94 5.73-37.48 21.52-46.61a15.78 15.78 0 0 1 6.84-2.43 16.21 16.21 0 0 1 6.92 1.52l.15.06A52.33 52.33 0 0 1 82 617.71a9.66 9.66 0 0 0 2.62 2.11 9 9 0 0 0 3.09.58l13.14.83a31.14 31.14 0 0 1 6.6.91 52.46 52.46 0 0 1 6.94 3c7.07 3.16 14.91 4 22.55 5.22a3.37 3.37 0 0 1 2 .8 3.13 3.13 0 0 1 .62 1.3 25.51 25.51 0 0 1-5.34 23.26Z",fill:"#3f3d56"})),Z||(Z=j.createElement("path",{d:"M64.86 606.28a78.9 78.9 0 0 0-13.15 16.44 82.28 82.28 0 0 0-10.74 32.54 60.4 60.4 0 0 0-.11 12.61 15.63 15.63 0 0 1-7.29-4.42c-2.36-2.67-3.49-6.21-4.14-9.71-3.29-17.94 5.73-37.48 21.52-46.61a15.78 15.78 0 0 1 6.84-2.43 16.21 16.21 0 0 1 6.92 1.52Z",opacity:.1})),x||(x=j.createElement("path",{d:"M319.35 631.16c7.35-.2 15.6-.57 21 4.38 5.15 4.68 5.83 12.4 6.17 19.35l.39 8.07c.12 2.46.22 5-.77 7.28-1.76 4-6.59 5.93-11 5.7s-8.46-2.16-12.49-3.9a175.7 175.7 0 0 0-34-10.71q.57-8.37 1.9-16.66c.61-3.83.71-10.24 3.27-13.42 2.71-3.36 6.24-1.54 9.92-.92a79.63 79.63 0 0 0 15.61.83Z",fill:"#fbbebe"})),M||(M=j.createElement("path",{d:"M125.11 550.07c0 1-1.57 0-1.71-1.07-1.1-8.09-7.52-14.76-15-18s-16-3.41-24.1-2.64c-12.25 1.16-26 5.85-30.48 17.3-1.06 2.68-1.54 5.58-2.84 8.15-1.44 2.82-3.79 5.07-5.35 7.81-2.69 4.74-2.8 10.55-1.83 15.91 2.61 14.3 12.39 26.53 24.24 35s25.7 13.53 39.51 18.09a685.19 685.19 0 0 0 112 26.75c6.16.93 12.38 1.79 18.28 3.77 5.28 1.77 10.22 4.42 15.38 6.5 12 4.82 24.91 6.54 37.7 8.23 2.18.28 4.68.48 6.29-1 2.08-1.93 1.39-5.29.8-8.06a43.35 43.35 0 0 1 5.11-30.76c2.14-3.6 4.92-7.29 4.52-11.46-.48-4.86-5.32-8.3-10.14-9.08s-9.72.37-14.56 1c-1.67.22-3.49.36-4.95-.49a9.89 9.89 0 0 1-1.94-1.72 21.93 21.93 0 0 0-25.54-3.57c-1.79 1-4.5-1.23-6.36-2.07l-21.03-9.52c-24.16-10.93-48.44-21.91-74-28.83a15.54 15.54 0 0 1-5.7-2.37c-1.27-1-2.18-2.36-3.35-3.47-2.55-2.41-6.1-3.37-9.16-5.08s-6.49-5.89-5.79-9.32Z",fill:"#464353"})),u||(u=j.createElement("path",{d:"M449.32 680.76c-3.36 6.23-9.88 10.11-16.88 11.71a33.5 33.5 0 0 1-5.34.76c-8.85.55-17.59-1.9-26.12-4.32l-11.58-3.26a36.55 36.55 0 0 0-6.1-1.36 41.86 41.86 0 0 0-8.44.29 149.59 149.59 0 0 1-41-1.84 7.23 7.23 0 0 1-3.17-1.13 15.75 15.75 0 0 1-2.21-2.71c-3.15-3.79-6.54-6-2.81-11 2.15-2.9 6.14-4.35 7.81-7.68s.6-8.06-.39-11.5c-1.35-4.75-5.79-6.8-7.38-11.16-1.19-3.29.81-7.11 3.82-8.9s6.73-1.93 10.2-1.47 6.87 1.44 10.36 1.71c10.26.82 20.75-4.47 30.6-1.49 2.17.66 4.22 1.71 6.42 2.29a21.35 21.35 0 0 0 12.83-1.11c1.44-.54 2.85-1.19 4.25-1.83a34.23 34.23 0 0 1 8.55-3.09c9.61-1.65 18.52 5 25.77 11.49a36.44 36.44 0 0 1 6.55 7.1c2 3.12 3.06 6.75 4 10.33 2.65 9.25 4.84 19.67.26 28.17Z",fill:"#3f3d56"})),g||(g=j.createElement("path",{d:"M449.32 680.76c-3.36 6.23-9.88 10.11-16.88 11.71a32.69 32.69 0 0 0 3.55-17.16c-.6-9.51-4.78-18.47-10.11-26.37a93.4 93.4 0 0 0-11.14-13.57c-3.18-3.2-7.09-5.74-10.51-8.67a34.23 34.23 0 0 1 8.55-3.09c9.61-1.65 18.52 5 25.77 11.49a36.44 36.44 0 0 1 6.55 7.1c2 3.12 3.06 6.75 4 10.33 2.61 9.31 4.8 19.73.22 28.23Z",opacity:.1})),v||(v=j.createElement("path",{d:"M82.11 372.26a10.35 10.35 0 0 0-2.22 3.55 167.86 167.86 0 0 0-14.1 57.62 5.76 5.76 0 0 1-.65 2.79 12.21 12.21 0 0 1-1.47 1.59 5.52 5.52 0 0 0 .94 8c1.65-3.11 5.6-4.12 9.11-4.39 16.81-1.33 33.23 6.49 50.09 5.9-1.19-4.11-2.9-8.06-3.87-12.22-4.29-18.47 6.41-38.58-.15-56.37-1.31-3.56-3.5-7.06-6.95-8.62a18.51 18.51 0 0 0-4.45-1.18c-4.26-.77-12.74-4.06-16.86-2.74-1.52.49-2.12 1.92-3.38 2.78-1.91 1.23-4.45 1.68-6.04 3.29Z",fill:"#6c63ff"})),b||(b=j.createElement("rect",{x:117.57,y:408.66,width:223,height:142,rx:7.97,fill:"#3f3d56"})),w||(w=j.createElement("circle",{cx:228.57,cy:479.66,r:6,fill:"#fff"})),q||(q=j.createElement("path",{d:"M147.29 195.5c-3.36 2.43-5.66 5.92-8 9.27-4.31 6.19-9.19 12.37-16.08 15.82-2.61 1.31-5.59 2.3-7.32 4.58a12.34 12.34 0 0 0-1.95 5.13 101.65 101.65 0 0 0-2.06 19.6c0 3.28.14 6.66 1.59 9.64 1.37 2.8 3.84 5.17 4.35 8.22.39 2.38-.49 4.75-.8 7.14s.23 5.22 2.44 6.36a14.79 14.79 0 0 0 3.7.87c6.65 1.48 8.88 9.28 9.89 15.73 2.26-.13 3.28-2.72 3.75-4.83l6.93-30.81c.75-3.34 2-7.21 5.33-8.38 2.23-.77 4.67-.05 7 .15 9.15.75 16.89-6.32 25.84-8.27a33 33 0 0 1 8.71-.58c7.06.35 15.27 3.25 16.77 9.84.25 1.07.4 2.35 1.4 2.88s2.05.08 3.1 0c4.48-.45 7.12 4.59 8.41 8.71l4.7 15c.7 2.27 1.88 4.94 4.34 5.23 2.27.28 4.2-1.87 4.54-4s-.4-4.34-.89-6.48c-2.21-9.85 1.17-19.93 3.23-29.8s2.43-21.21-4.48-28.81c-2.51-2.75-5.81-4.8-8.15-7.7-2.18-2.72-3.41-6.06-5.67-8.73-6.25-7.37-22.28-13.06-32.11-14-11.23-1.22-29.43 1.63-38.51 8.22Z",fill:"#3f3d56"})),O||(O=j.createElement("g",{opacity:.1},j.createElement("path",{d:"M229.37 279.8c-2.46-.3-3.64-3-4.34-5.23q-2.35-7.51-4.7-15c-1.29-4.13-3.93-9.17-8.41-8.71-1.05.11-2.18.52-3.1 0s-1.15-1.81-1.4-2.88c-1.5-6.6-9.71-9.49-16.77-9.84a33.43 33.43 0 0 0-8.71.57c-8.95 2-16.69 9-25.84 8.27-2.36-.19-4.8-.91-7-.14-3.37 1.16-4.58 5-5.33 8.38l-6.93 30.8c-.47 2.12-1.49 4.71-3.75 4.83-1-6.44-3.24-14.24-9.89-15.72a15.72 15.72 0 0 1-3.7-.87 4.34 4.34 0 0 1-1.93-2.15c-.18.93-.39 1.86-.51 2.79-.3 2.38.23 5.22 2.44 6.36a14.79 14.79 0 0 0 3.7.87c6.65 1.48 8.88 9.28 9.89 15.73 2.26-.13 3.28-2.72 3.75-4.83l6.93-30.81c.75-3.34 2-7.21 5.33-8.38 2.23-.77 4.67-.05 7 .15 9.15.75 16.89-6.32 25.84-8.27a33 33 0 0 1 8.71-.58c7.06.35 15.27 3.25 16.77 9.84.25 1.07.4 2.35 1.4 2.88s2.05.08 3.1 0c4.48-.45 7.12 4.59 8.41 8.71q2.34 7.51 4.7 15c.7 2.27 1.88 4.94 4.34 5.23 2.27.28 4.2-1.87 4.54-4a13.58 13.58 0 0 0-.6-5.31 4.13 4.13 0 0 1-3.94 2.31ZM117.83 260.76c-.51-3.05-3-5.42-4.35-8.22a16.45 16.45 0 0 1-1.48-6c0 1.12-.1 2.24-.11 3.37 0 3.28.14 6.66 1.59 9.64 1.11 2.27 2.94 4.27 3.86 6.58a15.06 15.06 0 0 0 .49-5.37ZM236.25 239.48c-1.82 8.72-4.66 17.6-3.78 26.34.57-6.45 2.45-12.94 3.78-19.34a51 51 0 0 0 1.16-14.83 61.14 61.14 0 0 1-1.16 7.83Z"}))),k||(k=j.createElement("g",{opacity:.8},j.createElement("path",{fill:"none",stroke:"#3f3d56",strokeMiterlimit:10,strokeWidth:3,d:"M330.04 290.49H955.1M385.57 290.48s29.89 4.15 14.41-27.92 42-26 42-26M584.64 290.48s29.89-4.14 14.41 27.93 42 26 42 26M871.27 290.48s-29.9-4.14-14.41 27.93-42 26-42 26M814.86 344.4H649.93"}),j.createElement("circle",{cx:330.04,cy:290.49,r:18.25,fill:"#6c63ff"}),j.createElement("circle",{cx:442.29,cy:236.3,r:18.25,fill:"#3acc6c"}),j.createElement("circle",{cx:442.29,cy:290.49,r:18.25,fill:"#6c63ff"}),j.createElement("circle",{cx:514.73,cy:290.49,r:18.25,fill:"#6c63ff"}),j.createElement("circle",{cx:641.35,cy:344.13,r:18.25,fill:"#ff6584"}),j.createElement("circle",{cx:737.03,cy:344.13,r:18.25,fill:"#ff6584"}),j.createElement("circle",{cx:732.04,cy:290.49,r:18.25,fill:"#6c63ff"}),j.createElement("circle",{cx:950.48,cy:290.49,r:18.25,fill:"#6c63ff"}),j.createElement("circle",{cx:861.12,cy:290.49,r:18.25,fill:"#6c63ff"}),j.createElement("path",{fill:"#6c63ff",d:"M299.38 122.66h61.23v42.2h-61.23z"}),j.createElement("path",{fill:"#3acc6c",d:"M411.9 122.66h61.23v42.2H411.9z"}),j.createElement("path",{fill:"#ff6584",d:"M610.48 122.66h61.23v42.2h-61.23z"}))),C||(C=j.createElement("path",{d:"M86.35 299.36s-74.77-31.44-84.57 25.29c0 0-5.11 8.84 2 16.14 0 0 1.53-3.92 8.75.13a37.17 37.17 0 0 0 8.16 3.32 18.36 18.36 0 0 0 11.62-.62s24.59-1.33 45.27-33.5c0 0 8.87-5.48 9.31-7.54l-14.82 1s1.14 10.85-5 17.36c0 0 5.44-16.84 2.83-17.31-.53-.1-7.83.86-7.83.86s1.89 18.87-8 28.63c0 0 9.18-19.19 5.19-28.29l-10.94 2.11s3 19.85-7.82 31.39c0 0 8.9-20.4 5.46-30.76l-10.47 3.52s2.52 19.41-6.53 29c0 0 7.9-24.61 4.18-28 0 0-9.42 3.82-11.43 6 0 0 1.49 14-4.26 19.05 0 0 3.53-17 1.78-17.7 0 0-10.94 8.24-14.28 15.35 0 0 4.16-10.86 12.91-17 0 0-7.35-1.24-13 1.83 0 0 3.78-7.21 15.65-3.79 0 0 8.79-6.09 10.55-6 0 0-11.23-5-19.34-4.38 0 0 8.7-5 22.08 3.35l10.45-3.77s-14.5-7.43-21.76-7.4c0 0 9.66-3.74 24.47 6.66l10.7-2.18s-12-7.35-20.09-9.06c0 0 9.7-1.54 23.18 8.55l7.31-.61s-8.85-5.22-11.53-6.49-2.56-2.09-2.56-2.09a34.89 34.89 0 0 1 17.14 8.18s15.18-.3 15.24-1.23ZM83.59 243s-26.48-61.27-64.63-33.17c0 0-8.06 2.34-8 10.7 0 0 3.14-1.46 5.13 5.07a30.1 30.1 0 0 0 3 6.61 15 15 0 0 0 7.25 6.25s15.37 13.22 46 5.89c0 0 8.4 1.79 9.83.83l-9.36-7.87s-5.51 7.1-12.89 7.44c0 0 12.83-6.9 11.55-8.67-.26-.36-5.15-3.94-5.15-3.94s-9.62 12.28-21 12.47c0 0 16.39-6.18 19.2-13.85l-7.7-5s-9.71 13.51-22.71 14.21c0 0 16.91-7.05 20.77-15.17l-8.23-3.87s-9.56 13-20.37 13.49c0 0 18.72-10.12 18.43-14.25 0 0-7.77-3.1-10.24-2.92 0 0-7.07 9.15-13.38 8.89 0 0 11.79-8.09 11.15-9.5 0 0-11.2-1.34-17.23 1 0 0 8.66-4.08 17.35-2.74 0 0-3.66-4.93-8.75-6.3 0 0 6.36-2.13 11.46 6.65 0 0 8.68 1.4 9.7 2.44 0 0-3.81-9.39-9-13.62 0 0 8 2 11.2 14.57l8.36 3.71s-4.38-12.68-8.72-16.79c0 0 7.87 3.28 10.75 17.9l7.6 4.79s-2.94-11.2-6.77-16.83c0 0 6.64 4.62 8.89 18.29l4.7 3.8s-2.29-8.14-3.16-10.42-.33-2.7-.33-2.7a28.65 28.65 0 0 1 5.49 14.68s9.24 8.44 9.81 7.93Z",fill:"#6c63ff",opacity:.1})))}},6566:(e,a,t)=>{t.d(a,{Z:()=>o});var c=t(7462),l=t(7294),r=t(6010);const i="features_xdhU",n="featureSvg__8YW";var s=[{title:"Gas-Grain Chemistry",Svg:t(7156).Z,description:l.createElement(l.Fragment,null,"Detailed, consistent treatment of chemistry across the gas phase and both the surface and the bulk of the ice mantles around dust grains.")},{title:"Modular Physics",Svg:t(4503).Z,description:l.createElement(l.Fragment,null,"Flexible, interchangeable modules to model all kinds of astrophysical objects such as molecular clouds, protostellar cores and C/J-type shocks.")},{title:"Active Development",Svg:t(8538).Z,description:l.createElement(l.Fragment,null,"Teams at UCL and Leiden Observatory are working with international collaborators to extend and improve UCLCHEM. Check our ",l.createElement("a",{href:"./blog/index.html"},"blog")," for recent updates.")}];function m(e){var a=e.Svg,t=e.title,c=e.description;return l.createElement("div",{className:(0,r.Z)("col col--4")},l.createElement("div",{className:"text--center"},l.createElement(a,{className:n,alt:t})),l.createElement("div",{className:"text--center padding-horiz--md"},l.createElement("h3",null,t),l.createElement("p",null,c)))}function o(){return l.createElement("section",{className:i},l.createElement("div",{className:"container"},l.createElement("div",{className:"row"},s.map((function(e,a){return l.createElement(m,(0,c.Z)({key:a},e))})))))}},3734:(e,a,t)=>{t.r(a),t.d(a,{default:()=>d});var c=t(7294),l=t(6010),r=t(7961),i=t(9960),n=t(2263),s=t(1207);t(6566);function m(){(0,n.Z)().siteConfig;return c.createElement("header",{className:(0,l.Z)("hero hero--primary",s.Z.heroBanner)},c.createElement("div",{className:"container"},c.createElement("h1",{className:"hero__title"},"UCLPDR"),c.createElement("div",{className:"mybuttons"},c.createElement(i.Z,{className:"mybuttons button button--secondary button--lg",to:"https://github.com/uclchem/uclpdr"},"View on GitHub"),c.createElement(i.Z,{className:"mybuttons button button--secondary button--lg",to:"https://github.com/uclchem/uclpdr/zipball/master"},"Get a Zip"),c.createElement(i.Z,{className:"mybuttons button button--secondary button--lg",to:"https://github.com/uclchem/uclpdr/tarball/master"},"Get a Tarball"))))}function o(){return c.createElement("div",{className:"mycontainer"},c.createElement("p",null," UCL_PDR is a one dimensional PDR code written in Fortran. It treats UV and X-ray radiation, with the radiation field either one- or two-sided. UCL_PDR can treat arbitrary, user-defined chemical networks, and provided collisional excitation data is available can compute line emission from any included molecular or atomic/ionic species. It can optionally calculate photorates from the wavelength-dependent cross-sections, if these are provided. The GitHub package comes with a selection of model clouds, radiation fields, chemical networks (including and excluding X-ray reactions), molecular cross-sections and collisional rate data for the main coolants in PDRs."),c.createElement("p",null," UCL_PDR uses the Sundials package to solve the chemical network ODEs, and is parallelised with OpenMP. This version is a substantially upgraded version of the original UCL_PDR (Bell et al. 2005, 2006, Bayet et al. 2011), written by Tom Bell and described in Priestley et al. (2017, in press). It currently compiles with ifort and gfortran."))}function f(){return c.createElement("div",{className:"mycontainer"},c.createElement("h2",null,"Authors, Contributors and Users"),c.createElement("h3",null,"Main author: Tom Bell."),c.createElement("p",null,"Contributors: Felix Priestley, Serena Viti, Michael J. Barlow, Jeremy Yates"),c.createElement("p",null,"You are free to download, modify, and use the code for your work The development of the code has been funded by STFC grants ST/H001794/1 and ST/J001511/1."))}function d(){var e=(0,n.Z)().siteConfig;return c.createElement(r.Z,{title:"UCLPDR - "+e.title,description:"Description will go into a meta tag in "},c.createElement(m,null),c.createElement("div",{className:"container"},c.createElement(o,null)),c.createElement("div",{className:"container"},c.createElement(f,null)))}},1207:(e,a,t)=>{t.d(a,{Z:()=>c});const c={heroBanner:"heroBanner_qdFl",buttons:"buttons_AeoN"}}}]); \ No newline at end of file diff --git a/assets/js/e2bcb55a.37d0aa5a.js b/assets/js/e2bcb55a.af2c7063.js similarity index 60% rename from assets/js/e2bcb55a.37d0aa5a.js rename to assets/js/e2bcb55a.af2c7063.js index 6a928b6a..233049fa 100644 --- a/assets/js/e2bcb55a.37d0aa5a.js +++ b/assets/js/e2bcb55a.af2c7063.js @@ -1 +1 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7964],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>m});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},f={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(n),m=a,d=u["".concat(s,".").concat(m)]||u[m]||f[m]||o;return n?r.createElement(d,i(i({ref:t},p),{},{components:n})):r.createElement(d,i({ref:t},p))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:a,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>m,frontMatter:()=>l,metadata:()=>c,toc:()=>f});var r=n(7462),a=n(3366),o=(n(7294),n(3905)),i=["components"],l={title:"Nitrogen fractionation in external galaxies",authors:"serena"},s=void 0,c={permalink:"/blog/2019/04/19/serena-nitrogen-frac",source:"@site/blog/2019-04-19-serena-nitrogen-frac.md",title:"Nitrogen fractionation in external galaxies",description:"UCLCHEM has recently been used to study nitrogen fractionation in external galaxies. You can find the paper here and the abstract below.",date:"2019-04-19T00:00:00.000Z",formattedDate:"April 19, 2019",tags:[],readingTime:.81,truncated:!1,authors:[{name:"Serena Viti",title:"UCLCHEM PI",url:"https://home.strw.leidenuniv.nl/~viti/",imageURL:"/img/viti.jpg",key:"serena"}],frontMatter:{title:"Nitrogen fractionation in external galaxies",authors:"serena"},prevItem:{title:"Ambipolar diffusion and the molecular abundances inprestellar cores",permalink:"/blog/2019/07/08/felix-ambipolar"},nextItem:{title:"Collapsing Prestellar Cores - a new physics module",permalink:"/blog/2018/07/12/felix-collapse"}},p={authorsImageUrls:[void 0]},f=[],u={toc:f};function m(e){var t=e.components,n=(0,a.Z)(e,i);return(0,o.kt)("wrapper",(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"UCLCHEM has recently been used to study nitrogen fractionation in external galaxies. You can find ",(0,o.kt)("a",{parentName:"p",href:"https://arxiv.org/pdf/1904.11725.pdf"},"the paper here")," and the abstract below."),(0,o.kt)("p",null,"In star-forming regions in our own Galaxy, the 14N/15N ratio is found to vary from \u223c100 in meteorites, comets, and protoplanetary discs up to \u223c1000 in pre-stellar and star-forming cores, while in external galaxies the very few single-dish large-scale measurements of this ratio lead to values of 100-450. The extent of the contribution of isotopic fractionation to these variations is, to date, unknown. In this paper, we present a theoretical chemical study of nitrogen fractionation in external galaxies in order to determine the physical conditions that may lead to a spread of the 14N/15N ratio from the solar value of \u223c440 and hence evaluate the contribution of chemical reactions in the interstellar medium (ISM) to nitrogen fractionation. We find that the main cause of ISM enrichment of nitrogen fractionation is high gas densities, aided by high fluxes of cosmic rays."))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7964],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>m});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},f={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(n),m=a,d=u["".concat(s,".").concat(m)]||u[m]||f[m]||o;return n?r.createElement(d,i(i({ref:t},p),{},{components:n})):r.createElement(d,i({ref:t},p))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:a,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>m,frontMatter:()=>l,metadata:()=>c,toc:()=>f});var r=n(7462),a=n(3366),o=(n(7294),n(3905)),i=["components"],l={title:"Nitrogen fractionation in external galaxies",authors:"serena"},s=void 0,c={permalink:"/blog/2019/04/19/serena-nitrogen-frac",source:"@site/blog/2019-04-19-serena-nitrogen-frac.md",title:"Nitrogen fractionation in external galaxies",description:"UCLCHEM has recently been used to study nitrogen fractionation in external galaxies. You can find the paper here and the abstract below.",date:"2019-04-19T00:00:00.000Z",formattedDate:"April 19, 2019",tags:[],readingTime:.81,hasTruncateMarker:!1,authors:[{name:"Serena Viti",title:"UCLCHEM PI",url:"https://home.strw.leidenuniv.nl/~viti/",imageURL:"/img/viti.jpg",key:"serena"}],frontMatter:{title:"Nitrogen fractionation in external galaxies",authors:"serena"},prevItem:{title:"Ambipolar diffusion and the molecular abundances inprestellar cores",permalink:"/blog/2019/07/08/felix-ambipolar"},nextItem:{title:"Collapsing Prestellar Cores - a new physics module",permalink:"/blog/2018/07/12/felix-collapse"}},p={authorsImageUrls:[void 0]},f=[],u={toc:f};function m(e){var t=e.components,n=(0,a.Z)(e,i);return(0,o.kt)("wrapper",(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"UCLCHEM has recently been used to study nitrogen fractionation in external galaxies. You can find ",(0,o.kt)("a",{parentName:"p",href:"https://arxiv.org/pdf/1904.11725.pdf"},"the paper here")," and the abstract below."),(0,o.kt)("p",null,"In star-forming regions in our own Galaxy, the 14N/15N ratio is found to vary from \u223c100 in meteorites, comets, and protoplanetary discs up to \u223c1000 in pre-stellar and star-forming cores, while in external galaxies the very few single-dish large-scale measurements of this ratio lead to values of 100-450. The extent of the contribution of isotopic fractionation to these variations is, to date, unknown. In this paper, we present a theoretical chemical study of nitrogen fractionation in external galaxies in order to determine the physical conditions that may lead to a spread of the 14N/15N ratio from the solar value of \u223c440 and hence evaluate the contribution of chemical reactions in the interstellar medium (ISM) to nitrogen fractionation. We find that the main cause of ISM enrichment of nitrogen fractionation is high gas densities, aided by high fluxes of cosmic rays."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e39b6181.18678411.js b/assets/js/e39b6181.18678411.js new file mode 100644 index 00000000..e4e8ecae --- /dev/null +++ b/assets/js/e39b6181.18678411.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4730],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var i=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=i.createContext({}),c=function(e){var t=i.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=c(e.components);return i.createElement(s.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},u=i.forwardRef((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(n),h=a,m=u["".concat(s,".").concat(h)]||u[h]||d[h]||r;return n?i.createElement(m,o(o({ref:t},p),{},{components:n})):i.createElement(m,o({ref:t},p))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,o=new Array(r);o[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:a,o[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>h,frontMatter:()=>l,metadata:()=>c,toc:()=>d});var i=n(7462),a=n(3366),r=(n(7294),n(3905)),o=["components"],l={id:"dev-overview",title:"Overview of the Code"},s=void 0,c={unversionedId:"dev-overview",id:"dev-overview",title:"Overview of the Code",description:"The page is designed to give a brief overview of the code's structure. It's less about the scientific justification for the various treatments in the code and more about how the code is segmented and where to look for things.",source:"@site/docs/dev-overview.md",sourceDirName:".",slug:"/dev-overview",permalink:"/docs/next/dev-overview",draft:!1,tags:[],version:"current",lastUpdatedBy:"jonholdship",lastUpdatedAt:1651073142,formattedLastUpdatedAt:"Apr 27, 2022",frontMatter:{id:"dev-overview",title:"Overview of the Code"},sidebar:"docs",previous:{title:"Developer",permalink:"/docs/next/category/developer"},next:{title:"Writing The Python Interface",permalink:"/docs/next/dev-python-wrap"}},p={},d=[{value:"Basic Algorithm",id:"basic-algorithm",level:2},{value:"Physics",id:"physics",level:2},{value:"Chemistry",id:"chemistry",level:2},{value:"Constants",id:"constants",level:2}],u={toc:d};function h(e){var t=e.components,n=(0,a.Z)(e,o);return(0,r.kt)("wrapper",(0,i.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The page is designed to give a brief overview of the code's structure. It's less about the scientific justification for the various treatments in the code and more about how the code is segmented and where to look for things."),(0,r.kt)("h2",{id:"basic-algorithm"},"Basic Algorithm"),(0,r.kt)("p",null,"Centering the code on the python wrap has made the underlying algorithm more difficult to follow than in older versions of the code. However, you can more or less see the whole procedure of solving the chemical model in ",(0,r.kt)("inlineCode",{parentName:"p"},"solveAbundances")," in ",(0,r.kt)("inlineCode",{parentName:"p"},"src/fortran_src/wrap.f90"),". The steps are:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Set all parameters to defaultparameters.f90 values")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Read parameters from the dictionary input")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Initialize physics variables such as column density and model specific values")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Initialize chemical variables like initial abundances")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"While ",(0,r.kt)("inlineCode",{parentName:"p"},"time < finalTime")," or ",(0,r.kt)("inlineCode",{parentName:"p"},"density")," < ",(0,r.kt)("inlineCode",{parentName:"p"},"finalDens")),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"get a new target time"),(0,r.kt)("li",{parentName:"ul"},"update abundances from current time to target time"),(0,r.kt)("li",{parentName:"ul"},"update physics variables to new time"),(0,r.kt)("li",{parentName:"ul"},"Allow physics modules to affect abundances directly (eg to sputter ices)"),(0,r.kt)("li",{parentName:"ul"},"output parameters"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"output final abundances if ",(0,r.kt)("inlineCode",{parentName:"p"},"abundSaveFile")," set."))),(0,r.kt)("p",null,"Exactly what happens in the initialize physics and update physics sections depends on the physical model in question."),(0,r.kt)("h2",{id:"physics"},"Physics"),(0,r.kt)("p",null,"There are a number of physics modules which all implement the same subroutines in different ways. They also all pull from core-physics.f90, a module that contains all the non-optional physics variables. When we initialize or update physics, we first call the initialize/update subroutine from core-physics.f90 and then call it from the physics module. This is achieved by passing the relevant physics module's subroutines to ",(0,r.kt)("inlineCode",{parentName:"p"},"solveAbundances")," from each of the various subroutines in wrap.f90."),(0,r.kt)("p",null,"If you'd like to implement your own physics model, you should try as closely as possible to follow this structure. Since core-physics is always updated first, you can override it with your module. For example, core-physics will calculate the Av and column density in the standard way but you could recalculate your column density in your updatePhysics subroutine to get new behaviour."),(0,r.kt)("h2",{id:"chemistry"},"Chemistry"),(0,r.kt)("p",null,"A large number of the fortran files make up the chemistry module. There's:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"chemistry.f90")," which contains the core chemistry routines and variables."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"rates.f90")," which is actually directly included in ",(0,r.kt)("inlineCode",{parentName:"li"},"chemistry.f90")," and just contains most of the reaction rate calculations"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"surfacereactions.f90")," and ",(0,r.kt)("inlineCode",{parentName:"li"},"photoreactions.f90")," which each contain a lot of the surface or photon chemistry related variables and subroutines. These are often so involved that we just separated them out to avoid overfilling ",(0,r.kt)("inlineCode",{parentName:"li"},"rates.f90"),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"odes.f90")," which is generated by MakeRates and is a huge file of ordinary differential equations."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"network.f90")," is also generated by MakeRates and contains lists of things like species names, reaction types, the index of the species that is the nth reactant of each reaction, etc. ",(0,r.kt)("strong",{parentName:"li"},"If you want to store something like the index of a species or reaction, consider having MakeRates add to this file."))),(0,r.kt)("h2",{id:"constants"},"Constants"),(0,r.kt)("p",null,"All constants are defined in ",(0,r.kt)("inlineCode",{parentName:"p"},"constants.f90")," and are accessed by the ",(0,r.kt)("inlineCode",{parentName:"p"},"constants")," module. If you need a physical constant, it's best check if it's here before defining it. There should be no harm at all in importing this module into any other code as it compiles first and nothing is modifiable (eg you can't overwrite the value of ",(0,r.kt)("inlineCode",{parentName:"p"},"PI")," defined in constants.f90)."),(0,r.kt)("p",null,"It's also where we declare ",(0,r.kt)("inlineCode",{parentName:"p"},"dp"),", which allows us to declare real64 variables in the iso standard way. All the ",(0,r.kt)("inlineCode",{parentName:"p"},"real(dp)")," variables you see declared in the code come from this."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e39b6181.6bd7fdfc.js b/assets/js/e39b6181.6bd7fdfc.js deleted file mode 100644 index 4cf8d7e8..00000000 --- a/assets/js/e39b6181.6bd7fdfc.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4730],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var i=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=i.createContext({}),c=function(e){var t=i.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=c(e.components);return i.createElement(s.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},u=i.forwardRef((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(n),h=a,m=u["".concat(s,".").concat(h)]||u[h]||d[h]||r;return n?i.createElement(m,o(o({ref:t},p),{},{components:n})):i.createElement(m,o({ref:t},p))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,o=new Array(r);o[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:a,o[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>h,frontMatter:()=>l,metadata:()=>c,toc:()=>d});var i=n(7462),a=n(3366),r=(n(7294),n(3905)),o=["components"],l={id:"dev-overview",title:"Overview of the Code"},s=void 0,c={unversionedId:"dev-overview",id:"dev-overview",title:"Overview of the Code",description:"The page is designed to give a brief overview of the code's structure. It's less about the scientific justification for the various treatments in the code and more about how the code is segmented and where to look for things.",source:"@site/docs/dev-overview.md",sourceDirName:".",slug:"/dev-overview",permalink:"/docs/next/dev-overview",tags:[],version:"current",lastUpdatedBy:"jonholdship",lastUpdatedAt:1651073142,formattedLastUpdatedAt:"4/27/2022",frontMatter:{id:"dev-overview",title:"Overview of the Code"},sidebar:"docs",previous:{title:"Developer",permalink:"/docs/next/category/developer"},next:{title:"Writing The Python Interface",permalink:"/docs/next/dev-python-wrap"}},p={},d=[{value:"Basic Algorithm",id:"basic-algorithm",level:2},{value:"Physics",id:"physics",level:2},{value:"Chemistry",id:"chemistry",level:2},{value:"Constants",id:"constants",level:2}],u={toc:d};function h(e){var t=e.components,n=(0,a.Z)(e,o);return(0,r.kt)("wrapper",(0,i.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"The page is designed to give a brief overview of the code's structure. It's less about the scientific justification for the various treatments in the code and more about how the code is segmented and where to look for things."),(0,r.kt)("h2",{id:"basic-algorithm"},"Basic Algorithm"),(0,r.kt)("p",null,"Centering the code on the python wrap has made the underlying algorithm more difficult to follow than in older versions of the code. However, you can more or less see the whole procedure of solving the chemical model in ",(0,r.kt)("inlineCode",{parentName:"p"},"solveAbundances")," in ",(0,r.kt)("inlineCode",{parentName:"p"},"src/fortran_src/wrap.f90"),". The steps are:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Set all parameters to defaultparameters.f90 values")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Read parameters from the dictionary input")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Initialize physics variables such as column density and model specific values")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"Initialize chemical variables like initial abundances")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"While ",(0,r.kt)("inlineCode",{parentName:"p"},"time < finalTime")," or ",(0,r.kt)("inlineCode",{parentName:"p"},"density")," < ",(0,r.kt)("inlineCode",{parentName:"p"},"finalDens")),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"get a new target time"),(0,r.kt)("li",{parentName:"ul"},"update abundances from current time to target time"),(0,r.kt)("li",{parentName:"ul"},"update physics variables to new time"),(0,r.kt)("li",{parentName:"ul"},"Allow physics modules to affect abundances directly (eg to sputter ices)"),(0,r.kt)("li",{parentName:"ul"},"output parameters"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"output final abundances if ",(0,r.kt)("inlineCode",{parentName:"p"},"abundSaveFile")," set."))),(0,r.kt)("p",null,"Exactly what happens in the initialize physics and update physics sections depends on the physical model in question."),(0,r.kt)("h2",{id:"physics"},"Physics"),(0,r.kt)("p",null,"There are a number of physics modules which all implement the same subroutines in different ways. They also all pull from core-physics.f90, a module that contains all the non-optional physics variables. When we initialize or update physics, we first call the initialize/update subroutine from core-physics.f90 and then call it from the physics module. This is achieved by passing the relevant physics module's subroutines to ",(0,r.kt)("inlineCode",{parentName:"p"},"solveAbundances")," from each of the various subroutines in wrap.f90."),(0,r.kt)("p",null,"If you'd like to implement your own physics model, you should try as closely as possible to follow this structure. Since core-physics is always updated first, you can override it with your module. For example, core-physics will calculate the Av and column density in the standard way but you could recalculate your column density in your updatePhysics subroutine to get new behaviour."),(0,r.kt)("h2",{id:"chemistry"},"Chemistry"),(0,r.kt)("p",null,"A large number of the fortran files make up the chemistry module. There's:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"chemistry.f90")," which contains the core chemistry routines and variables."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"rates.f90")," which is actually directly included in ",(0,r.kt)("inlineCode",{parentName:"li"},"chemistry.f90")," and just contains most of the reaction rate calculations"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"surfacereactions.f90")," and ",(0,r.kt)("inlineCode",{parentName:"li"},"photoreactions.f90")," which each contain a lot of the surface or photon chemistry related variables and subroutines. These are often so involved that we just separated them out to avoid overfilling ",(0,r.kt)("inlineCode",{parentName:"li"},"rates.f90"),"."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"odes.f90")," which is generated by MakeRates and is a huge file of ordinary differential equations."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"network.f90")," is also generated by MakeRates and contains lists of things like species names, reaction types, the index of the species that is the nth reactant of each reaction, etc. ",(0,r.kt)("strong",{parentName:"li"},"If you want to store something like the index of a species or reaction, consider having MakeRates add to this file."))),(0,r.kt)("h2",{id:"constants"},"Constants"),(0,r.kt)("p",null,"All constants are defined in ",(0,r.kt)("inlineCode",{parentName:"p"},"constants.f90")," and are accessed by the ",(0,r.kt)("inlineCode",{parentName:"p"},"constants")," module. If you need a physical constant, it's best check if it's here before defining it. There should be no harm at all in importing this module into any other code as it compiles first and nothing is modifiable (eg you can't overwrite the value of ",(0,r.kt)("inlineCode",{parentName:"p"},"PI")," defined in constants.f90)."),(0,r.kt)("p",null,"It's also where we declare ",(0,r.kt)("inlineCode",{parentName:"p"},"dp"),", which allows us to declare real64 variables in the iso standard way. All the ",(0,r.kt)("inlineCode",{parentName:"p"},"real(dp)")," variables you see declared in the code come from this."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e7ddec96.1f4158cf.js b/assets/js/e7ddec96.1f4158cf.js deleted file mode 100644 index 7e8db923..00000000 --- a/assets/js/e7ddec96.1f4158cf.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5226],{3905:(a,e,s)=>{s.d(e,{Zo:()=>i,kt:()=>o});var t=s(7294);function m(a,e,s){return e in a?Object.defineProperty(a,e,{value:s,enumerable:!0,configurable:!0,writable:!0}):a[e]=s,a}function n(a,e){var s=Object.keys(a);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(a);e&&(t=t.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),s.push.apply(s,t)}return s}function p(a){for(var e=1;e=0||(m[s]=a[s]);return m}(a,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(a);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(a,s)&&(m[s]=a[s])}return m}var N=t.createContext({}),l=function(a){var e=t.useContext(N),s=e;return a&&(s="function"==typeof a?a(e):p(p({},e),a)),s},i=function(a){var e=l(a.components);return t.createElement(N.Provider,{value:e},a.children)},k={inlineCode:"code",wrapper:function(a){var e=a.children;return t.createElement(t.Fragment,{},e)}},c=t.forwardRef((function(a,e){var s=a.components,m=a.mdxType,n=a.originalType,N=a.parentName,i=r(a,["components","mdxType","originalType","parentName"]),c=l(s),o=m,h=c["".concat(N,".").concat(o)]||c[o]||k[o]||n;return s?t.createElement(h,p(p({ref:e},i),{},{components:s})):t.createElement(h,p({ref:e},i))}));function o(a,e){var s=arguments,m=e&&e.mdxType;if("string"==typeof a||m){var n=s.length,p=new Array(n);p[0]=c;var r={};for(var N in e)hasOwnProperty.call(e,N)&&(r[N]=e[N]);r.originalType=a,r.mdxType="string"==typeof a?a:m,p[1]=r;for(var l=2;l{s.r(e),s.d(e,{assets:()=>i,contentTitle:()=>N,default:()=>o,frontMatter:()=>r,metadata:()=>l,toc:()=>k});var t=s(7462),m=s(3366),n=(s(7294),s(3905)),p=["components"],r={id:"grain",title:"Grain Surface Reactions"},N=void 0,l={unversionedId:"grain",id:"version-v3.1.0/grain",title:"Grain Surface Reactions",description:"Whilst the basic treatment of gas phase chemistry is well established, grain surface chemistry is more complex. There are three possible ways to treat grain surface chemistry in UCLCHEM. In general we assume that:",source:"@site/versioned_docs/version-v3.1.0/chem-grain.md",sourceDirName:".",slug:"/grain",permalink:"/docs/v3.1.0/grain",tags:[],version:"v3.1.0",frontMatter:{id:"grain",title:"Grain Surface Reactions"},sidebar:"docs",previous:{title:"Gas Phase Reactions",permalink:"/docs/v3.1.0/gas"},next:{title:"Adsorption & Desorption Reactions",permalink:"/docs/v3.1.0/desorb"}},i={},k=[{value:"Langmuir-Hinshelwood Mechanism",id:"langmuir-hinshelwood-mechanism",level:3},{value:"Eley-Rideal Mechanism",id:"eley-rideal-mechanism",level:3}],c={toc:k};function o(a){var e=a.components,s=(0,m.Z)(a,p);return(0,n.kt)("wrapper",(0,t.Z)({},c,s,{components:e,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"Whilst the basic treatment of gas phase chemistry is well established, grain surface chemistry is more complex. There are three possible ways to treat grain surface chemistry in UCLCHEM. In general we assume that:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"All dust grains are well covered by the species in question so we can take a rate equation approach based on fractional abundance rather than tracking if molecule A is on the same dust grain as molecule B."),(0,n.kt)("li",{parentName:"ul"},"Grains are spherical objects of a uniform size."),(0,n.kt)("li",{parentName:"ul"},"All species are thermalized on the grains.")),(0,n.kt)("p",null,"This allows a fairly straight forward treatment of the grain chemistry. Below we list several processes that are important in UCLCHEM's treatment of the grain chemistry."),(0,n.kt)("h3",{id:"langmuir-hinshelwood-mechanism"},"Langmuir-Hinshelwood Mechanism"),(0,n.kt)("p",null,"Reactions via diffusion of reactants across the grain surface was added to UCLCHEM by ",(0,n.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1093/mnras/stx2960"},"Quenard et al. 2018"),", drawing their formalism from ",(0,n.kt)("a",{parentName:"p",href:"http://adsabs.harvard.edu/doi/10.1086/191713"},"Hasegawa et al. 1992"),", ",(0,n.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1088/0004-637X/735/1/15"},"Garrod & Pauly 2011"),", and ",(0,n.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1093/mnras/stw887"},"Ruaud et al. 2016"),". These reactions can be included in your grain file in the form,"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre"},"#H,#CO,LH,#HCO,,,,alpha,0.0,gamma,,,\n")),(0,n.kt)("p",null,"where alpha is a branching ratio if you include multiple versions of the same reaction and gamma is the energy barrier to the reaction. Including this reaction in your MakeRates input will result in two reactions being created in the actual network: one with gas phase products and one with grain surface products. This is to account for the desorption of products of exothermic reactions and the branching ratio is determined within UCLCHEM using the binding energy of the products and energy released by the reaction following ",(0,n.kt)("a",{parentName:"p",href:"https://www.aanda.org/10.1051/0004-6361/201525981"},"Minissale et al. 2016"),". The equivalent reactions will also be generated for the ice bulk if you are using a three phase network so you only need to list LH reactions with surface reactants and products."),(0,n.kt)("p",null,"If we follow the rate of change of the absolute number of a species on the surface of a grain (",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mi",{parentName:"msub"},"S"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"N_S")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05764em"}},"S")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))))),"), we get"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"j"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"f")))),(0,n.kt)("msub",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"t"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"s")))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dN_s(i)}{dt} = -\\frac{k_{ij} k_{diff}}{N_{sites}} N_s(i)N_s(j)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.20744em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,"where ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"j")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k_{ij}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the reaction rate when species i and j are in adjacent sites, ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"f")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k_{diff}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the rate at which these species diffuse between sites and ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"t"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"s")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"N_{sites}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the number of binding sites on the surface. For reactions in the bulk ice, we multiply the number of sites per layer by the number of mantle layers. If we multiply both sides by the dust concentration, we get the LHS in the standard form of rate of change of concentration and convert one N on the RHS to a concentration. We can also multiply the RHS by ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"d"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_d")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))))),"/",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"d"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_d")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," to convert the other N."),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"j"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"f")))),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"t"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"s"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"d")))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dn_s(i)}{dt} = -\\frac{k_{ij} k_{diff}}{N_{sites} n_d} n_s(i)n_s(j)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.20744em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,"Finally, we want a rate of change of fractional abundance so we can divide through by ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"H"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_H")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))))),". Since ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"d")),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"d")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"H"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_d = X_d n_H")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))))),", we can also cancel a factor of ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"H"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_H")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," in the RHS."),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"j"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"f")))),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"t"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"s"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"d")))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dX_s(i)}{dt} = -\\frac{k_{ij} k_{diff}}{N_{sites} X_d} X_s(i)X_s(j)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.20744em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,"This is the final rate of change which is sent to the ODE solver. See ",(0,n.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1093/mnras/stx2960"},"Quenard et al. 2018")," for a discussion of ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"j")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k_{ij}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," and ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"K"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"f")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"K_{diff}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.969438em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07153em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))))))),"."),(0,n.kt)("p",null,"Note, these reactions can become ",(0,n.kt)("em",{parentName:"p"},"very")," fast at high temperatures and will eventually break the integrator with a careful, network depedent choice of tolerances. To avoid this, we stop all grain chemistry at MAX_GRAIN_TEMP in UCLCHEM which is set by default to 150 K. By this temperature, the ice will have almost entirely sublimated and so stopping the chemistry will have a negligible effect on abundances."),(0,n.kt)("h3",{id:"eley-rideal-mechanism"},"Eley-Rideal Mechanism"),(0,n.kt)("p",null,"Reactions that occur when a species colliding with a dust grain lands on a binding site occupied by another reactant are also included in UCLCHEM. They can be included in your grain file in the form,"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre"},"H,#CO,ER,#HCO,,,,alpha,0.0,gamma,,,\n")),(0,n.kt)("p",null,"and produce gas and grain surface products in the same way as the Langmuir-Hinshelwood reactions. These reactions have an ODE of the form"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"r"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"z"),(0,n.kt)("mi",{parentName:"mrow"},"e"))),(0,n.kt)("mi",{parentName:"mrow"},"exp"),(0,n.kt)("mo",{parentName:"mrow"},"\u2061"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"E")),(0,n.kt)("mi",{parentName:"mfrac"},"T")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("msub",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dn_s(i)}{dt} = -k_{i,freeze} \\exp(\\frac{-E}{T}) \\frac{n_s(j)}{n_{s}} n_s(i)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.263em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mpunct mtight"},","),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.02778em"}},"r"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.04398em"}},"z"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,n.kt)("span",{parentName:"span",className:"mop"},"exp"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05764em"}},"E")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,"where ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"r"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"z"),(0,n.kt)("mi",{parentName:"mrow"},"e")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k_{i,freeze}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mpunct mtight"},","),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.02778em"}},"r"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.04398em"}},"z"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the freeze out rate of the gas phase reactant (ie the rate at which it collides with the grains), ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"exp"),(0,n.kt)("mo",{parentName:"mrow"},"\u2061"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"E")),(0,n.kt)("mi",{parentName:"mfrac"},"T")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\exp(\\frac{-E}{T})")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"1.217331em",verticalAlign:"-0.345em"}}),(0,n.kt)("span",{parentName:"span",className:"mop"},"exp"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.872331em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.6550000000000002em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.13889em"}},"T")))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.394em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05764em"}},"E"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.345em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))," is the probability of a reaction occuring given the energy barrier, ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_s")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the total concentration of ice species, and therefore ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("msub",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"t"),(0,n.kt)("mi",{parentName:"mrow"},"o"),(0,n.kt)("mi",{parentName:"mrow"},"t"),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"l"))))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{n_s(j)}{n_{s,total}}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"1.55808em",verticalAlign:"-0.5480799999999999em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.01em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.6550000000000002em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3448em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3487714285714287em",marginLeft:"0em",marginRight:"0.07142857142857144em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.5em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mpunct mtight"},","),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.01968em"}},"l"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.29011428571428566em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.485em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.16454285714285719em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.357em",marginLeft:"0em",marginRight:"0.07142857142857144em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.5em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.143em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen mtight"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose mtight"},")"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.5480799999999999em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"}))))))," is the fraction of surface sites occupied by the surface reactant. This reduces to"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"r"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"z"),(0,n.kt)("mi",{parentName:"mrow"},"e"))),(0,n.kt)("mi",{parentName:"mrow"},"exp"),(0,n.kt)("mo",{parentName:"mrow"},"\u2061"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"E")),(0,n.kt)("mi",{parentName:"mfrac"},"T")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("msub",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dX_s(i)}{dt} = -k_{i,freeze} \\exp(\\frac{-E}{T}) \\frac{X_s(j)}{X_{s}} X_s(i)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.263em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mpunct mtight"},","),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.02778em"}},"r"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.04398em"}},"z"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,n.kt)("span",{parentName:"span",className:"mop"},"exp"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05764em"}},"E")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))))}o.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e7ddec96.e505dd17.js b/assets/js/e7ddec96.e505dd17.js new file mode 100644 index 00000000..48aa662e --- /dev/null +++ b/assets/js/e7ddec96.e505dd17.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5226],{3905:(a,e,s)=>{s.d(e,{Zo:()=>i,kt:()=>o});var t=s(7294);function m(a,e,s){return e in a?Object.defineProperty(a,e,{value:s,enumerable:!0,configurable:!0,writable:!0}):a[e]=s,a}function n(a,e){var s=Object.keys(a);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(a);e&&(t=t.filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),s.push.apply(s,t)}return s}function p(a){for(var e=1;e=0||(m[s]=a[s]);return m}(a,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(a);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(a,s)&&(m[s]=a[s])}return m}var N=t.createContext({}),l=function(a){var e=t.useContext(N),s=e;return a&&(s="function"==typeof a?a(e):p(p({},e),a)),s},i=function(a){var e=l(a.components);return t.createElement(N.Provider,{value:e},a.children)},k={inlineCode:"code",wrapper:function(a){var e=a.children;return t.createElement(t.Fragment,{},e)}},c=t.forwardRef((function(a,e){var s=a.components,m=a.mdxType,n=a.originalType,N=a.parentName,i=r(a,["components","mdxType","originalType","parentName"]),c=l(s),o=m,h=c["".concat(N,".").concat(o)]||c[o]||k[o]||n;return s?t.createElement(h,p(p({ref:e},i),{},{components:s})):t.createElement(h,p({ref:e},i))}));function o(a,e){var s=arguments,m=e&&e.mdxType;if("string"==typeof a||m){var n=s.length,p=new Array(n);p[0]=c;var r={};for(var N in e)hasOwnProperty.call(e,N)&&(r[N]=e[N]);r.originalType=a,r.mdxType="string"==typeof a?a:m,p[1]=r;for(var l=2;l{s.r(e),s.d(e,{assets:()=>i,contentTitle:()=>N,default:()=>o,frontMatter:()=>r,metadata:()=>l,toc:()=>k});var t=s(7462),m=s(3366),n=(s(7294),s(3905)),p=["components"],r={id:"grain",title:"Grain Surface Reactions"},N=void 0,l={unversionedId:"grain",id:"version-v3.1.0/grain",title:"Grain Surface Reactions",description:"Whilst the basic treatment of gas phase chemistry is well established, grain surface chemistry is more complex. There are three possible ways to treat grain surface chemistry in UCLCHEM. In general we assume that:",source:"@site/versioned_docs/version-v3.1.0/chem-grain.md",sourceDirName:".",slug:"/grain",permalink:"/docs/v3.1.0/grain",draft:!1,tags:[],version:"v3.1.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"grain",title:"Grain Surface Reactions"},sidebar:"docs",previous:{title:"Gas Phase Reactions",permalink:"/docs/v3.1.0/gas"},next:{title:"Adsorption & Desorption Reactions",permalink:"/docs/v3.1.0/desorb"}},i={},k=[{value:"Langmuir-Hinshelwood Mechanism",id:"langmuir-hinshelwood-mechanism",level:3},{value:"Eley-Rideal Mechanism",id:"eley-rideal-mechanism",level:3}],c={toc:k};function o(a){var e=a.components,s=(0,m.Z)(a,p);return(0,n.kt)("wrapper",(0,t.Z)({},c,s,{components:e,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"Whilst the basic treatment of gas phase chemistry is well established, grain surface chemistry is more complex. There are three possible ways to treat grain surface chemistry in UCLCHEM. In general we assume that:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"All dust grains are well covered by the species in question so we can take a rate equation approach based on fractional abundance rather than tracking if molecule A is on the same dust grain as molecule B."),(0,n.kt)("li",{parentName:"ul"},"Grains are spherical objects of a uniform size."),(0,n.kt)("li",{parentName:"ul"},"All species are thermalized on the grains.")),(0,n.kt)("p",null,"This allows a fairly straight forward treatment of the grain chemistry. Below we list several processes that are important in UCLCHEM's treatment of the grain chemistry."),(0,n.kt)("h3",{id:"langmuir-hinshelwood-mechanism"},"Langmuir-Hinshelwood Mechanism"),(0,n.kt)("p",null,"Reactions via diffusion of reactants across the grain surface was added to UCLCHEM by ",(0,n.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1093/mnras/stx2960"},"Quenard et al. 2018"),", drawing their formalism from ",(0,n.kt)("a",{parentName:"p",href:"http://adsabs.harvard.edu/doi/10.1086/191713"},"Hasegawa et al. 1992"),", ",(0,n.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1088/0004-637X/735/1/15"},"Garrod & Pauly 2011"),", and ",(0,n.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1093/mnras/stw887"},"Ruaud et al. 2016"),". These reactions can be included in your grain file in the form,"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre"},"#H,#CO,LH,#HCO,,,,alpha,0.0,gamma,,,\n")),(0,n.kt)("p",null,"where alpha is a branching ratio if you include multiple versions of the same reaction and gamma is the energy barrier to the reaction. Including this reaction in your MakeRates input will result in two reactions being created in the actual network: one with gas phase products and one with grain surface products. This is to account for the desorption of products of exothermic reactions and the branching ratio is determined within UCLCHEM using the binding energy of the products and energy released by the reaction following ",(0,n.kt)("a",{parentName:"p",href:"https://www.aanda.org/10.1051/0004-6361/201525981"},"Minissale et al. 2016"),". The equivalent reactions will also be generated for the ice bulk if you are using a three phase network so you only need to list LH reactions with surface reactants and products."),(0,n.kt)("p",null,"If we follow the rate of change of the absolute number of a species on the surface of a grain (",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mi",{parentName:"msub"},"S"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"N_S")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05764em"}},"S")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))))),"), we get"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"j"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"f")))),(0,n.kt)("msub",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"t"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"s")))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dN_s(i)}{dt} = -\\frac{k_{ij} k_{diff}}{N_{sites}} N_s(i)N_s(j)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.20744em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,"where ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"j")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k_{ij}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the reaction rate when species i and j are in adjacent sites, ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"f")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k_{diff}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the rate at which these species diffuse between sites and ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"t"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"s")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"N_{sites}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the number of binding sites on the surface. For reactions in the bulk ice, we multiply the number of sites per layer by the number of mantle layers. If we multiply both sides by the dust concentration, we get the LHS in the standard form of rate of change of concentration and convert one N on the RHS to a concentration. We can also multiply the RHS by ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"d"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_d")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))))),"/",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"d"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_d")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," to convert the other N."),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"j"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"f")))),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"t"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"s"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"d")))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dn_s(i)}{dt} = -\\frac{k_{ij} k_{diff}}{N_{sites} n_d} n_s(i)n_s(j)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.20744em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,"Finally, we want a rate of change of fractional abundance so we can divide through by ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"H"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_H")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))))),". Since ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"d")),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"d")),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"H"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_d = X_d n_H")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.83333em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))))),", we can also cancel a factor of ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"H"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_H")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.32833099999999993em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.08125em"}},"H")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," in the RHS."),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"j"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"f")))),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"N"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"t"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"s"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"d")))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dX_s(i)}{dt} = -\\frac{k_{ij} k_{diff}}{N_{sites} X_d} X_s(i)X_s(j)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.20744em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.37144em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.10903em"}},"N"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.31166399999999994em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.10903em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.33610799999999996em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,"This is the final rate of change which is sent to the ODE solver. See ",(0,n.kt)("a",{parentName:"p",href:"https://dx.doi.org/10.1093/mnras/stx2960"},"Quenard et al. 2018")," for a discussion of ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"j")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k_{ij}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.311664em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," and ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"K"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"f")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"K_{diff}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.969438em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07153em"}},"K"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07153em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))))))),"."),(0,n.kt)("p",null,"Note, these reactions can become ",(0,n.kt)("em",{parentName:"p"},"very")," fast at high temperatures and will eventually break the integrator with a careful, network depedent choice of tolerances. To avoid this, we stop all grain chemistry at MAX_GRAIN_TEMP in UCLCHEM which is set by default to 150 K. By this temperature, the ice will have almost entirely sublimated and so stopping the chemistry will have a negligible effect on abundances."),(0,n.kt)("h3",{id:"eley-rideal-mechanism"},"Eley-Rideal Mechanism"),(0,n.kt)("p",null,"Reactions that occur when a species colliding with a dust grain lands on a binding site occupied by another reactant are also included in UCLCHEM. They can be included in your grain file in the form,"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre"},"H,#CO,ER,#HCO,,,,alpha,0.0,gamma,,,\n")),(0,n.kt)("p",null,"and produce gas and grain surface products in the same way as the Langmuir-Hinshelwood reactions. These reactions have an ODE of the form"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"r"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"z"),(0,n.kt)("mi",{parentName:"mrow"},"e"))),(0,n.kt)("mi",{parentName:"mrow"},"exp"),(0,n.kt)("mo",{parentName:"mrow"},"\u2061"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"E")),(0,n.kt)("mi",{parentName:"mfrac"},"T")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("msub",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dn_s(i)}{dt} = -k_{i,freeze} \\exp(\\frac{-E}{T}) \\frac{n_s(j)}{n_{s}} n_s(i)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.263em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mpunct mtight"},","),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.02778em"}},"r"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.04398em"}},"z"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,n.kt)("span",{parentName:"span",className:"mop"},"exp"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05764em"}},"E")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))),(0,n.kt)("p",null,"where ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"r"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"z"),(0,n.kt)("mi",{parentName:"mrow"},"e")))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"k_{i,freeze}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.980548em",verticalAlign:"-0.286108em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mpunct mtight"},","),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.02778em"}},"r"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.04398em"}},"z"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the freeze out rate of the gas phase reactant (ie the rate at which it collides with the grains), ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mi",{parentName:"mrow"},"exp"),(0,n.kt)("mo",{parentName:"mrow"},"\u2061"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"E")),(0,n.kt)("mi",{parentName:"mfrac"},"T")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\exp(\\frac{-E}{T})")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"1.217331em",verticalAlign:"-0.345em"}}),(0,n.kt)("span",{parentName:"span",className:"mop"},"exp"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.872331em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.6550000000000002em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.13889em"}},"T")))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.394em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05764em"}},"E"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.345em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))," is the probability of a reaction occuring given the energy barrier, ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s"))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"n_s")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"0.58056em",verticalAlign:"-0.15em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"0em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"}))))))))))," is the total concentration of ice species, and therefore ",(0,n.kt)("span",{parentName:"p",className:"math math-inline"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("msub",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"msub"},"n"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"s"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"t"),(0,n.kt)("mi",{parentName:"mrow"},"o"),(0,n.kt)("mi",{parentName:"mrow"},"t"),(0,n.kt)("mi",{parentName:"mrow"},"a"),(0,n.kt)("mi",{parentName:"mrow"},"l"))))),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{n_s(j)}{n_{s,total}}")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"1.55808em",verticalAlign:"-0.5480799999999999em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.01em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.6550000000000002em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3448em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3487714285714287em",marginLeft:"0em",marginRight:"0.07142857142857144em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.5em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"),(0,n.kt)("span",{parentName:"span",className:"mpunct mtight"},","),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"o"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"t"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"a"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.01968em"}},"l"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.29011428571428566em"}},(0,n.kt)("span",{parentName:"span"}))))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.485em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"n"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.16454285714285719em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.357em",marginLeft:"0em",marginRight:"0.07142857142857144em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.5em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size3 size1 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.143em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen mtight"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose mtight"},")"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.5480799999999999em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"}))))))," is the fraction of surface sites occupied by the surface reactant. This reduces to"),(0,n.kt)("div",{className:"math math-display"},(0,n.kt)("span",{parentName:"div",className:"katex-display"},(0,n.kt)("span",{parentName:"span",className:"katex"},(0,n.kt)("span",{parentName:"span",className:"katex-mathml"},(0,n.kt)("math",{parentName:"span",xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},(0,n.kt)("semantics",{parentName:"math"},(0,n.kt)("mrow",{parentName:"semantics"},(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"mrow"},"d"),(0,n.kt)("mi",{parentName:"mrow"},"t"))),(0,n.kt)("mo",{parentName:"mrow"},"="),(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"k"),(0,n.kt)("mrow",{parentName:"msub"},(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",separator:"true"},","),(0,n.kt)("mi",{parentName:"mrow"},"f"),(0,n.kt)("mi",{parentName:"mrow"},"r"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"e"),(0,n.kt)("mi",{parentName:"mrow"},"z"),(0,n.kt)("mi",{parentName:"mrow"},"e"))),(0,n.kt)("mi",{parentName:"mrow"},"exp"),(0,n.kt)("mo",{parentName:"mrow"},"\u2061"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("mo",{parentName:"mrow"},"\u2212"),(0,n.kt)("mi",{parentName:"mrow"},"E")),(0,n.kt)("mi",{parentName:"mfrac"},"T")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")"),(0,n.kt)("mfrac",{parentName:"mrow"},(0,n.kt)("mrow",{parentName:"mfrac"},(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"j"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("msub",{parentName:"mfrac"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s"))),(0,n.kt)("msub",{parentName:"mrow"},(0,n.kt)("mi",{parentName:"msub"},"X"),(0,n.kt)("mi",{parentName:"msub"},"s")),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},"("),(0,n.kt)("mi",{parentName:"mrow"},"i"),(0,n.kt)("mo",{parentName:"mrow",stretchy:"false"},")")),(0,n.kt)("annotation",{parentName:"semantics",encoding:"application/x-tex"},"\\frac{dX_s(i)}{dt} = -k_{i,freeze} \\exp(\\frac{-E}{T}) \\frac{X_s(j)}{X_{s}} X_s(i)")))),(0,n.kt)("span",{parentName:"span",className:"katex-html","aria-hidden":"true"},(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.113em",verticalAlign:"-0.686em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"t"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"d"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}}),(0,n.kt)("span",{parentName:"span",className:"mrel"},"="),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.2777777777777778em"}})),(0,n.kt)("span",{parentName:"span",className:"base"},(0,n.kt)("span",{parentName:"span",className:"strut",style:{height:"2.263em",verticalAlign:"-0.8360000000000001em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.03148em"}},"k"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.3361079999999999em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.03148em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"i"),(0,n.kt)("span",{parentName:"span",className:"mpunct mtight"},","),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.10764em"}},"f"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.02778em"}},"r"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight",style:{marginRight:"0.04398em"}},"z"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"e"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.286108em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mspace",style:{marginRight:"0.16666666666666666em"}}),(0,n.kt)("span",{parentName:"span",className:"mop"},"exp"),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.36033em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.314em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.13889em"}},"T"))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},"\u2212"),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05764em"}},"E")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.686em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mclose"},")"),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mopen nulldelimiter"}),(0,n.kt)("span",{parentName:"span",className:"mfrac"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"1.427em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.3139999999999996em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s"))))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))))),(0,n.kt)("span",{parentName:"span",style:{top:"-3.23em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"frac-line",style:{borderBottomWidth:"0.04em"}})),(0,n.kt)("span",{parentName:"span",style:{top:"-3.677em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"3em"}}),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.05724em"}},"j"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.8360000000000001em"}},(0,n.kt)("span",{parentName:"span"}))))),(0,n.kt)("span",{parentName:"span",className:"mclose nulldelimiter"})),(0,n.kt)("span",{parentName:"span",className:"mord"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal",style:{marginRight:"0.07847em"}},"X"),(0,n.kt)("span",{parentName:"span",className:"msupsub"},(0,n.kt)("span",{parentName:"span",className:"vlist-t vlist-t2"},(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.151392em"}},(0,n.kt)("span",{parentName:"span",style:{top:"-2.5500000000000003em",marginLeft:"-0.07847em",marginRight:"0.05em"}},(0,n.kt)("span",{parentName:"span",className:"pstrut",style:{height:"2.7em"}}),(0,n.kt)("span",{parentName:"span",className:"sizing reset-size6 size3 mtight"},(0,n.kt)("span",{parentName:"span",className:"mord mathnormal mtight"},"s")))),(0,n.kt)("span",{parentName:"span",className:"vlist-s"},"\u200b")),(0,n.kt)("span",{parentName:"span",className:"vlist-r"},(0,n.kt)("span",{parentName:"span",className:"vlist",style:{height:"0.15em"}},(0,n.kt)("span",{parentName:"span"})))))),(0,n.kt)("span",{parentName:"span",className:"mopen"},"("),(0,n.kt)("span",{parentName:"span",className:"mord mathnormal"},"i"),(0,n.kt)("span",{parentName:"span",className:"mclose"},")")))))))}o.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e8abc400.24227f27.js b/assets/js/e8abc400.24227f27.js new file mode 100644 index 00000000..352781fa --- /dev/null +++ b/assets/js/e8abc400.24227f27.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4274],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>p});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},c=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),h=u(n),p=o,m=h["".concat(l,".").concat(p)]||h[p]||d[p]||i;return n?a.createElement(m,r(r({ref:t},c),{},{components:n})):a.createElement(m,r({ref:t},c))}));function p(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,r=new Array(i);r[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:o,r[1]=s;for(var u=2;u{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>p,frontMatter:()=>s,metadata:()=>u,toc:()=>d});var a=n(7462),o=n(3366),i=(n(7294),n(3905)),r=["components"],s={id:"dev-web",title:"Maintaining the Website"},l=void 0,u={unversionedId:"dev-web",id:"version-v3.1.0/dev-web",title:"Maintaining the Website",description:"We use Docusaurus to maintain our website. The upside is that documentation and blog posts can all be created as simple markdown files. The downside is a slightly convoluted workflow which we explain here.",source:"@site/versioned_docs/version-v3.1.0/dev-web.md",sourceDirName:".",slug:"/dev-web",permalink:"/docs/v3.1.0/dev-web",draft:!1,tags:[],version:"v3.1.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"dev-web",title:"Maintaining the Website"},sidebar:"docs",previous:{title:"Debugging",permalink:"/docs/v3.1.0/dev-debugging"}},c={},d=[{value:"Repository Structure",id:"repository-structure",level:2},{value:"Setting Up",id:"setting-up",level:2},{value:"Requirements",id:"requirements",level:3},{value:"Cloning",id:"cloning",level:3},{value:"Making Changes",id:"making-changes",level:2},{value:"Docs",id:"docs",level:3},{value:"Blog",id:"blog",level:3},{value:"Main pages",id:"main-pages",level:3},{value:"Pushing Changes",id:"pushing-changes",level:2}],h={toc:d};function p(e){var t=e.components,n=(0,o.Z)(e,r);return(0,i.kt)("wrapper",(0,a.Z)({},h,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"We use ",(0,i.kt)("a",{parentName:"p",href:"https://docusaurus.io"},"Docusaurus")," to maintain our website. The upside is that documentation and blog posts can all be created as simple markdown files. The downside is a slightly convoluted workflow which we explain here."),(0,i.kt)("h2",{id:"repository-structure"},"Repository Structure"),(0,i.kt)("p",null,"The website is generated from a ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/uclchem/uclchem.github.io"},"dedicated repository")," which has two branches: ",(0,i.kt)("strong",{parentName:"p"},"master")," and ",(0,i.kt)("strong",{parentName:"p"},"docusaurus"),". Master is the branch from which the website is actually served and it is not to be edited by users. Instead, it is automatically generated from the source code by Docusaurus. ",(0,i.kt)("strong",{parentName:"p"},"Users modify the docusaurus branch.")),(0,i.kt)("h2",{id:"setting-up"},"Setting Up"),(0,i.kt)("h3",{id:"requirements"},"Requirements"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You'll need ",(0,i.kt)("a",{parentName:"li",href:"https://classic.yarnpkg.com/lang/en/docs/install/#debian-stable"},"yarn")," or npm installed to run docusaurus, we'll assume yarn as it's simplest but the ",(0,i.kt)("a",{parentName:"li",href:"https://docusaurus.io/docs"},"docusaurus docs")," explain how to use either."),(0,i.kt)("li",{parentName:"ul"},"You need to set up github to use SSH keys to authenticate your pushes. ",(0,i.kt)("a",{parentName:"li",href:"https://docs.github.com/en/authentication/connecting-to-github-with-ssh"},"The github docs explain this"))),(0,i.kt)("h3",{id:"cloning"},"Cloning"),(0,i.kt)("p",null,"To get a copy of the website and start looking around, you can do the following:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"git clone git@github.com:uclchem/uclchem.github.io.git\ncd uclchem.github.io\ngit checkout docusaurus\n")),(0,i.kt)("p",null,"which will clone the repository and move to the development branch. The parent directory is not particularly useful, most content is in ",(0,i.kt)("inlineCode",{parentName:"p"},"website/"),", users can run the site locally with:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"cd website\nyarn start\n")),(0,i.kt)("h2",{id:"making-changes"},"Making Changes"),(0,i.kt)("h3",{id:"docs"},"Docs"),(0,i.kt)("p",null,"The docs pages are generated from markdown files in ",(0,i.kt)("inlineCode",{parentName:"p"},"website/docs"),". There's a script in the ",(0,i.kt)("inlineCode",{parentName:"p"},"utils")," directory of the main UCLCHEM repository (",(0,i.kt)("inlineCode",{parentName:"p"},"utils/make_python_docs.sh"),") to automatically generate the parameters docs, the Python API reference, and the tutorial pages from the code and tutorial files. You need to supply the path to your uclchem.github.io repository to have it automatically move the files there. If you want to add or modify any other docs, you can just create or edit a markdown file."),(0,i.kt)("p",null,"The only docs that are actually included in the side are those listed in ",(0,i.kt)("inlineCode",{parentName:"p"},"website/sidebars.json"),". There's some structure to it but we define categories in a simple JSON format and then each cateogory has an items list where you can add new pages. If you want to add a completely new category, just compare the category declaration in this file with the docs online. The docs listed in sidebars.json should match the ",(0,i.kt)("inlineCode",{parentName:"p"},"id")," at the top of each markdown file."),(0,i.kt)("h3",{id:"blog"},"Blog"),(0,i.kt)("p",null,"We're attempting to add a blog post for each publication that uses UCLCHEM. Blog posts are again just markdown files which can be found in ",(0,i.kt)("inlineCode",{parentName:"p"},"website/blog"),". Everything in that directory is included in the blog, the date from the file name is used to order them."),(0,i.kt)("h3",{id:"main-pages"},"Main pages"),(0,i.kt)("p",null,"The other pages on the site are either js files in ",(0,i.kt)("inlineCode",{parentName:"p"},"website/src/pages")," or static html files in ",(0,i.kt)("inlineCode",{parentName:"p"},"website/static"),". Docusaurus does not like you to work with the static files so where possible, you should use the js files. We use very simple js where we just put the HTML we would put into a normal webpage into functions and then call the functions in the main part of the file to produce a simple HMTL page. It's best to use existing pages as templates."),(0,i.kt)("h2",{id:"pushing-changes"},"Pushing Changes"),(0,i.kt)("p",null,"Once you've made your edits, you do the following steps:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},'# Let docusaurus update the website\nUSE_SSH=true GIT_USER=you_username yarn deploy\n\n# Push your changes to the docusaurus branch as normal\ngit add . -A\ngit commit -m "useful update message"\ngit push\n\n')),(0,i.kt)("p",null,"If your github is set up with to use private key authentication and ssh (highly recommended), docusaurus will build the website and push it to master for you when you use yarn deploy. You then push to docusaurus branch as normal to make sure others work from your changes."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e8abc400.2580cce8.js b/assets/js/e8abc400.2580cce8.js deleted file mode 100644 index 810c6f37..00000000 --- a/assets/js/e8abc400.2580cce8.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4274],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>p});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},c=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),h=u(n),p=o,m=h["".concat(l,".").concat(p)]||h[p]||d[p]||i;return n?a.createElement(m,r(r({ref:t},c),{},{components:n})):a.createElement(m,r({ref:t},c))}));function p(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,r=new Array(i);r[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:o,r[1]=s;for(var u=2;u{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>p,frontMatter:()=>s,metadata:()=>u,toc:()=>d});var a=n(7462),o=n(3366),i=(n(7294),n(3905)),r=["components"],s={id:"dev-web",title:"Maintaining the Website"},l=void 0,u={unversionedId:"dev-web",id:"version-v3.1.0/dev-web",title:"Maintaining the Website",description:"We use Docusaurus to maintain our website. The upside is that documentation and blog posts can all be created as simple markdown files. The downside is a slightly convoluted workflow which we explain here.",source:"@site/versioned_docs/version-v3.1.0/dev-web.md",sourceDirName:".",slug:"/dev-web",permalink:"/docs/v3.1.0/dev-web",tags:[],version:"v3.1.0",frontMatter:{id:"dev-web",title:"Maintaining the Website"},sidebar:"docs",previous:{title:"Debugging",permalink:"/docs/v3.1.0/dev-debugging"}},c={},d=[{value:"Repository Structure",id:"repository-structure",level:2},{value:"Setting Up",id:"setting-up",level:2},{value:"Requirements",id:"requirements",level:3},{value:"Cloning",id:"cloning",level:3},{value:"Making Changes",id:"making-changes",level:2},{value:"Docs",id:"docs",level:3},{value:"Blog",id:"blog",level:3},{value:"Main pages",id:"main-pages",level:3},{value:"Pushing Changes",id:"pushing-changes",level:2}],h={toc:d};function p(e){var t=e.components,n=(0,o.Z)(e,r);return(0,i.kt)("wrapper",(0,a.Z)({},h,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"We use ",(0,i.kt)("a",{parentName:"p",href:"https://docusaurus.io"},"Docusaurus")," to maintain our website. The upside is that documentation and blog posts can all be created as simple markdown files. The downside is a slightly convoluted workflow which we explain here."),(0,i.kt)("h2",{id:"repository-structure"},"Repository Structure"),(0,i.kt)("p",null,"The website is generated from a ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/uclchem/uclchem.github.io"},"dedicated repository")," which has two branches: ",(0,i.kt)("strong",{parentName:"p"},"master")," and ",(0,i.kt)("strong",{parentName:"p"},"docusaurus"),". Master is the branch from which the website is actually served and it is not to be edited by users. Instead, it is automatically generated from the source code by Docusaurus. ",(0,i.kt)("strong",{parentName:"p"},"Users modify the docusaurus branch.")),(0,i.kt)("h2",{id:"setting-up"},"Setting Up"),(0,i.kt)("h3",{id:"requirements"},"Requirements"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"You'll need ",(0,i.kt)("a",{parentName:"li",href:"https://classic.yarnpkg.com/lang/en/docs/install/#debian-stable"},"yarn")," or npm installed to run docusaurus, we'll assume yarn as it's simplest but the ",(0,i.kt)("a",{parentName:"li",href:"https://docusaurus.io/docs"},"docusaurus docs")," explain how to use either."),(0,i.kt)("li",{parentName:"ul"},"You need to set up github to use SSH keys to authenticate your pushes. ",(0,i.kt)("a",{parentName:"li",href:"https://docs.github.com/en/authentication/connecting-to-github-with-ssh"},"The github docs explain this"))),(0,i.kt)("h3",{id:"cloning"},"Cloning"),(0,i.kt)("p",null,"To get a copy of the website and start looking around, you can do the following:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"git clone git@github.com:uclchem/uclchem.github.io.git\ncd uclchem.github.io\ngit checkout docusaurus\n")),(0,i.kt)("p",null,"which will clone the repository and move to the development branch. The parent directory is not particularly useful, most content is in ",(0,i.kt)("inlineCode",{parentName:"p"},"website/"),", users can run the site locally with:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"cd website\nyarn start\n")),(0,i.kt)("h2",{id:"making-changes"},"Making Changes"),(0,i.kt)("h3",{id:"docs"},"Docs"),(0,i.kt)("p",null,"The docs pages are generated from markdown files in ",(0,i.kt)("inlineCode",{parentName:"p"},"website/docs"),". There's a script in the ",(0,i.kt)("inlineCode",{parentName:"p"},"utils")," directory of the main UCLCHEM repository (",(0,i.kt)("inlineCode",{parentName:"p"},"utils/make_python_docs.sh"),") to automatically generate the parameters docs, the Python API reference, and the tutorial pages from the code and tutorial files. You need to supply the path to your uclchem.github.io repository to have it automatically move the files there. If you want to add or modify any other docs, you can just create or edit a markdown file."),(0,i.kt)("p",null,"The only docs that are actually included in the side are those listed in ",(0,i.kt)("inlineCode",{parentName:"p"},"website/sidebars.json"),". There's some structure to it but we define categories in a simple JSON format and then each cateogory has an items list where you can add new pages. If you want to add a completely new category, just compare the category declaration in this file with the docs online. The docs listed in sidebars.json should match the ",(0,i.kt)("inlineCode",{parentName:"p"},"id")," at the top of each markdown file."),(0,i.kt)("h3",{id:"blog"},"Blog"),(0,i.kt)("p",null,"We're attempting to add a blog post for each publication that uses UCLCHEM. Blog posts are again just markdown files which can be found in ",(0,i.kt)("inlineCode",{parentName:"p"},"website/blog"),". Everything in that directory is included in the blog, the date from the file name is used to order them."),(0,i.kt)("h3",{id:"main-pages"},"Main pages"),(0,i.kt)("p",null,"The other pages on the site are either js files in ",(0,i.kt)("inlineCode",{parentName:"p"},"website/src/pages")," or static html files in ",(0,i.kt)("inlineCode",{parentName:"p"},"website/static"),". Docusaurus does not like you to work with the static files so where possible, you should use the js files. We use very simple js where we just put the HTML we would put into a normal webpage into functions and then call the functions in the main part of the file to produce a simple HMTL page. It's best to use existing pages as templates."),(0,i.kt)("h2",{id:"pushing-changes"},"Pushing Changes"),(0,i.kt)("p",null,"Once you've made your edits, you do the following steps:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},'# Let docusaurus update the website\nUSE_SSH=true GIT_USER=you_username yarn deploy\n\n# Push your changes to the docusaurus branch as normal\ngit add . -A\ngit commit -m "useful update message"\ngit push\n\n')),(0,i.kt)("p",null,"If your github is set up with to use private key authentication and ssh (highly recommended), docusaurus will build the website and push it to master for you when you use yarn deploy. You then push to docusaurus branch as normal to make sure others work from your changes."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f4b3c076.4273c748.js b/assets/js/f4b3c076.523b50d9.js similarity index 55% rename from assets/js/f4b3c076.4273c748.js rename to assets/js/f4b3c076.523b50d9.js index 2ef42567..64a0797b 100644 --- a/assets/js/f4b3c076.4273c748.js +++ b/assets/js/f4b3c076.523b50d9.js @@ -1 +1 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[204],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),c=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(r),f=a,m=u["".concat(s,".").concat(f)]||u[f]||d[f]||i;return r?n.createElement(m,o(o({ref:t},p),{},{components:r})):n.createElement(m,o({ref:t},p))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,o=new Array(i);o[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:a,o[1]=l;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>f,frontMatter:()=>l,metadata:()=>c,toc:()=>d});var n=r(7462),a=r(3366),i=(r(7294),r(3905)),o=["components"],l={title:"Ambipolar diffusion and the molecular abundances inprestellar cores",authors:"jonholdship"},s=void 0,c={permalink:"/blog/2019/07/08/felix-ambipolar",source:"@site/blog/2019-07-08-felix-ambipolar.md",title:"Ambipolar diffusion and the molecular abundances inprestellar cores",description:"Felix Priestley has used UCLCHEM in an investigation of the chemical differences caused by the magnetic fields in prestellar cores. You can find the paper here and the abstract below.",date:"2019-07-08T00:00:00.000Z",formattedDate:"July 8, 2019",tags:[],readingTime:.99,truncated:!1,authors:[{name:"Jonathan Holdship",title:"UCLCHEM developer",url:"https://jonholdship.github.io",imageURL:"/img/jon.png",key:"jonholdship"}],frontMatter:{title:"Ambipolar diffusion and the molecular abundances inprestellar cores",authors:"jonholdship"},prevItem:{title:"A chemical study of carbon fractionation in external galaxies",permalink:"/blog/2019/08/13/serena-carbon-frac"},nextItem:{title:"Nitrogen fractionation in external galaxies",permalink:"/blog/2019/04/19/serena-nitrogen-frac"}},p={authorsImageUrls:[void 0]},d=[],u={toc:d};function f(e){var t=e.components,r=(0,a.Z)(e,o);return(0,i.kt)("wrapper",(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"https://fpriestley.github.io/"},"Felix Priestley")," has used UCLCHEM in an investigation of the chemical differences caused by the magnetic fields in prestellar cores. You can find ",(0,i.kt)("a",{parentName:"p",href:"https://arxiv.org/pdf/1907.02736.pdf"},"the paper here")," and the abstract below."),(0,i.kt)("p",null,"We investigate differences in the molecular abundances between magnetically super- and subcritical pre-stellar cores, performing three-dimensional non-ideal magnetohydrodynamical (MHD) simulations with varying densities and magnetic field strengths, and post-processing the results with a time-dependent gas-grain chemical code. Most molecular species show significantly more central depletion in subcritical models, due to the longer duration of collapse. However, the directly observable quantities - the molecule to hydrogen column density ratios - are generally too similar for observational data to discriminate between models. The profiles of N2H+ and HCO+ show qualitative differences between supercritical and subcritical models on scales of 0.01 pc, which may allow the two cases to be distinguished. However, this requires knowledge of the hydrogen column density, which is not directly measureable, and predicted line intensity profiles from radiative transfer modelling are similar for these molecules. Other commonly observed species, such as HCN and CH3OH, have line intensity profiles that differ more strongly between models, and so are more promising as tracers of the mechanism of cloud collapse."))}f.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[204],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),c=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(r),f=a,m=u["".concat(s,".").concat(f)]||u[f]||d[f]||i;return r?n.createElement(m,o(o({ref:t},p),{},{components:r})):n.createElement(m,o({ref:t},p))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,o=new Array(i);o[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:a,o[1]=l;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>f,frontMatter:()=>l,metadata:()=>c,toc:()=>d});var n=r(7462),a=r(3366),i=(r(7294),r(3905)),o=["components"],l={title:"Ambipolar diffusion and the molecular abundances inprestellar cores",authors:"jonholdship"},s=void 0,c={permalink:"/blog/2019/07/08/felix-ambipolar",source:"@site/blog/2019-07-08-felix-ambipolar.md",title:"Ambipolar diffusion and the molecular abundances inprestellar cores",description:"Felix Priestley has used UCLCHEM in an investigation of the chemical differences caused by the magnetic fields in prestellar cores. You can find the paper here and the abstract below.",date:"2019-07-08T00:00:00.000Z",formattedDate:"July 8, 2019",tags:[],readingTime:.99,hasTruncateMarker:!1,authors:[{name:"Jonathan Holdship",title:"UCLCHEM developer",url:"https://jonholdship.github.io",imageURL:"/img/jon.png",key:"jonholdship"}],frontMatter:{title:"Ambipolar diffusion and the molecular abundances inprestellar cores",authors:"jonholdship"},prevItem:{title:"A chemical study of carbon fractionation in external galaxies",permalink:"/blog/2019/08/13/serena-carbon-frac"},nextItem:{title:"Nitrogen fractionation in external galaxies",permalink:"/blog/2019/04/19/serena-nitrogen-frac"}},p={authorsImageUrls:[void 0]},d=[],u={toc:d};function f(e){var t=e.components,r=(0,a.Z)(e,o);return(0,i.kt)("wrapper",(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"https://fpriestley.github.io/"},"Felix Priestley")," has used UCLCHEM in an investigation of the chemical differences caused by the magnetic fields in prestellar cores. You can find ",(0,i.kt)("a",{parentName:"p",href:"https://arxiv.org/pdf/1907.02736.pdf"},"the paper here")," and the abstract below."),(0,i.kt)("p",null,"We investigate differences in the molecular abundances between magnetically super- and subcritical pre-stellar cores, performing three-dimensional non-ideal magnetohydrodynamical (MHD) simulations with varying densities and magnetic field strengths, and post-processing the results with a time-dependent gas-grain chemical code. Most molecular species show significantly more central depletion in subcritical models, due to the longer duration of collapse. However, the directly observable quantities - the molecule to hydrogen column density ratios - are generally too similar for observational data to discriminate between models. The profiles of N2H+ and HCO+ show qualitative differences between supercritical and subcritical models on scales of 0.01 pc, which may allow the two cases to be distinguished. However, this requires knowledge of the hydrogen column density, which is not directly measureable, and predicted line intensity profiles from radiative transfer modelling are similar for these molecules. Other commonly observed species, such as HCN and CH3OH, have line intensity profiles that differ more strongly between models, and so are more promising as tracers of the mechanism of cloud collapse."))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f85ff90a.015b3de4.js b/assets/js/f85ff90a.015b3de4.js new file mode 100644 index 00000000..31214880 --- /dev/null +++ b/assets/js/f85ff90a.015b3de4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1667],{3905:(e,r,t)=>{t.d(r,{Zo:()=>p,kt:()=>d});var n=t(7294);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function s(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var c=n.createContext({}),l=function(e){var r=n.useContext(c),t=r;return e&&(t="function"==typeof e?e(r):s(s({},r),e)),t},p=function(e){var r=l(e.components);return n.createElement(c.Provider,{value:r},e.children)},h={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},u=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=l(t),d=o,m=u["".concat(c,".").concat(d)]||u[d]||h[d]||a;return t?n.createElement(m,s(s({ref:r},p),{},{components:t})):n.createElement(m,s({ref:r},p))}));function d(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,s=new Array(a);s[0]=u;var i={};for(var c in r)hasOwnProperty.call(r,c)&&(i[c]=r[c]);i.originalType=e,i.mdxType="string"==typeof e?e:o,s[1]=i;for(var l=2;l{t.r(r),t.d(r,{assets:()=>p,contentTitle:()=>c,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>h});var n=t(7462),o=t(3366),a=(t(7294),t(3905)),s=["components"],i={title:"The Chemistry of Phosphorus-bearing Molecules under Energetic Phenomena",author:"jonholdship"},c=void 0,l={permalink:"/blog/2018/06/20/izaskun-phosphorus",source:"@site/blog/2018-06-20-izaskun-phosphorus.md",title:"The Chemistry of Phosphorus-bearing Molecules under Energetic Phenomena",description:"Izaskun Jimenez-Serra has published a study of the chemistry of phosophorus bearing species using UCLCHEM. The paper can be found here and the abstract is below.",date:"2018-06-20T00:00:00.000Z",formattedDate:"June 20, 2018",tags:[],readingTime:1.3,hasTruncateMarker:!1,authors:[{name:"jonholdship"}],frontMatter:{title:"The Chemistry of Phosphorus-bearing Molecules under Energetic Phenomena",author:"jonholdship"},prevItem:{title:"Collapsing Prestellar Cores - a new physics module",permalink:"/blog/2018/07/12/felix-collapse"},nextItem:{title:"Chemical modelling of glycolaldehyde and ethylene glycol in star-forming regions",permalink:"/blog/2018/03/27/audrey-coms"}},p={authorsImageUrls:[void 0]},h=[],u={toc:h};function d(e){var r=e.components,t=(0,o.Z)(e,s);return(0,a.kt)("wrapper",(0,n.Z)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Izaskun Jimenez-Serra has published a study of the chemistry of phosophorus bearing species using UCLCHEM. The ",(0,a.kt)("a",{parentName:"p",href:"https://arxiv.org/pdf/1806.07281.pdf"},"paper can be found here")," and the abstract is below."),(0,a.kt)("p",null,"For decades, the detection of phosphorus-bearing molecules in the interstellar medium was restricted to high-mass star-forming regions (e.g., SgrB2 and Orion KL) and the circumstellar envelopes of evolved stars. However, recent higher-sensitivity observations have revealed that molecules such as PN and PO are present not only toward cold massive cores and low-mass star-forming regions with PO/PN ratios \u22651 but also toward the giant molecular clouds in the Galactic center known to be exposed to highly energetic phenomena such as intense UV radiation fields, shock waves, and cosmic rays. In this paper, we carry out a comprehensive study of the chemistry of phosphorus-bearing molecules across different astrophysical environments that cover a range of physical conditions (cold molecular dark clouds, warm clouds, and hot cores/hot corinos) and are exposed to different physical processes and energetic phenomena (proto-stellar heating, shock waves, intense UV radiation, and cosmic rays). We show how the measured PO/PN ratio (either \u22651, as in, e.g., hot molecular cores, or \u22641, as in UV strongly illuminated environments) can provide constraints on the physical conditions and energetic processing of the source. We propose that the reaction P + OH \u2192 PO + H, not included in previous works, could be an efficient gas-phase PO formation route in shocks. Our modeling provides a template with which to study the detectability of P-bearing species not only in regions in our own Galaxy but also in extragalactic sources."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f85ff90a.ecf544c6.js b/assets/js/f85ff90a.ecf544c6.js deleted file mode 100644 index 6c06acb2..00000000 --- a/assets/js/f85ff90a.ecf544c6.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1667],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>d});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function s(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),l=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=l(r),d=o,m=u["".concat(c,".").concat(d)]||u[d]||h[d]||a;return r?n.createElement(m,s(s({ref:t},p),{},{components:r})):n.createElement(m,s({ref:t},p))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,s=new Array(a);s[0]=u;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:o,s[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>h});var n=r(7462),o=r(3366),a=(r(7294),r(3905)),s=["components"],i={title:"The Chemistry of Phosphorus-bearing Molecules under Energetic Phenomena",author:"jonholdship"},c=void 0,l={permalink:"/blog/2018/06/20/izaskun-phosphorus",source:"@site/blog/2018-06-20-izaskun-phosphorus.md",title:"The Chemistry of Phosphorus-bearing Molecules under Energetic Phenomena",description:"Izaskun Jimenez-Serra has published a study of the chemistry of phosophorus bearing species using UCLCHEM. The paper can be found here and the abstract is below.",date:"2018-06-20T00:00:00.000Z",formattedDate:"June 20, 2018",tags:[],readingTime:1.3,truncated:!1,authors:[{name:"jonholdship"}],frontMatter:{title:"The Chemistry of Phosphorus-bearing Molecules under Energetic Phenomena",author:"jonholdship"},prevItem:{title:"Collapsing Prestellar Cores - a new physics module",permalink:"/blog/2018/07/12/felix-collapse"},nextItem:{title:"Chemical modelling of glycolaldehyde and ethylene glycol in star-forming regions",permalink:"/blog/2018/03/27/audrey-coms"}},p={authorsImageUrls:[void 0]},h=[],u={toc:h};function d(e){var t=e.components,r=(0,o.Z)(e,s);return(0,a.kt)("wrapper",(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Izaskun Jimenez-Serra has published a study of the chemistry of phosophorus bearing species using UCLCHEM. The ",(0,a.kt)("a",{parentName:"p",href:"https://arxiv.org/pdf/1806.07281.pdf"},"paper can be found here")," and the abstract is below."),(0,a.kt)("p",null,"For decades, the detection of phosphorus-bearing molecules in the interstellar medium was restricted to high-mass star-forming regions (e.g., SgrB2 and Orion KL) and the circumstellar envelopes of evolved stars. However, recent higher-sensitivity observations have revealed that molecules such as PN and PO are present not only toward cold massive cores and low-mass star-forming regions with PO/PN ratios \u22651 but also toward the giant molecular clouds in the Galactic center known to be exposed to highly energetic phenomena such as intense UV radiation fields, shock waves, and cosmic rays. In this paper, we carry out a comprehensive study of the chemistry of phosphorus-bearing molecules across different astrophysical environments that cover a range of physical conditions (cold molecular dark clouds, warm clouds, and hot cores/hot corinos) and are exposed to different physical processes and energetic phenomena (proto-stellar heating, shock waves, intense UV radiation, and cosmic rays). We show how the measured PO/PN ratio (either \u22651, as in, e.g., hot molecular cores, or \u22641, as in UV strongly illuminated environments) can provide constraints on the physical conditions and energetic processing of the source. We propose that the reaction P + OH \u2192 PO + H, not included in previous works, could be an efficient gas-phase PO formation route in shocks. Our modeling provides a template with which to study the detectability of P-bearing species not only in regions in our own Galaxy but also in extragalactic sources."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fb9afbe1.3f51edcf.js b/assets/js/fb9afbe1.3f51edcf.js new file mode 100644 index 00000000..5046fb7e --- /dev/null +++ b/assets/js/fb9afbe1.3f51edcf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3433],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),d=u(n),h=a,m=d["".concat(l,".").concat(h)]||d[h]||p[h]||o;return n?r.createElement(m,i(i({ref:t},c),{},{components:n})):r.createElement(m,i({ref:t},c))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:a,i[1]=s;for(var u=2;u{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>s,metadata:()=>u,toc:()=>p});var r=n(7462),a=n(3366),o=(n(7294),n(3905)),i=["components"],s={id:"dev-python-wrap",title:"Writing The Python Interface"},l=void 0,u={unversionedId:"dev-python-wrap",id:"version-v3.2.0/dev-python-wrap",title:"Writing The Python Interface",description:"The python interface is a relatively complex bit of code, a lot of work is put on the development side to make the user side a smooth experience. Writing the core of UCLCHEM in Fortran gives great performance benefits but compiling it to python with F2PY has its peculiarities. Here, we discuss the steps needed to adjust the code.",source:"@site/versioned_docs/version-v3.2.0/dev-python-wrap.md",sourceDirName:".",slug:"/dev-python-wrap",permalink:"/docs/dev-python-wrap",draft:!1,tags:[],version:"v3.2.0",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1679910175,formattedLastUpdatedAt:"Mar 27, 2023",frontMatter:{id:"dev-python-wrap",title:"Writing The Python Interface"},sidebar:"docs",previous:{title:"Overview of the Code",permalink:"/docs/dev-overview"},next:{title:"Debugging",permalink:"/docs/dev-debugging"}},c={},p=[{value:"The Fortran Side",id:"the-fortran-side",level:2},{value:"The Python Side",id:"the-python-side",level:2},{value:"Tips and Tricks",id:"tips-and-tricks",level:2}],d={toc:p};function h(e){var t=e.components,n=(0,a.Z)(e,i);return(0,o.kt)("wrapper",(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"The python interface is a relatively complex bit of code, a lot of work is put on the development side to make the user side a smooth experience. Writing the core of UCLCHEM in Fortran gives great performance benefits but compiling it to python with F2PY has its peculiarities. Here, we discuss the steps needed to adjust the code."),(0,o.kt)("h2",{id:"the-fortran-side"},"The Fortran Side"),(0,o.kt)("p",null,"The fortran side is the more difficult. We define a module in ",(0,o.kt)("inlineCode",{parentName:"p"},"src/fortran_src/wrap.f90")," which is a Fortran module that F2PY will turn into a python module. Any subroutine declared in ",(0,o.kt)("inlineCode",{parentName:"p"},"wrap.f90")," will become a function in the Python module."),(0,o.kt)("p",null,"The most likely change you'll want to make is to add a physics module so we'll look at cloud as an example. In ",(0,o.kt)("inlineCode",{parentName:"p"},"wrap.f90")," cloud is declared:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-fortran"}," SUBROUTINE cloud(dictionary, outSpeciesIn,abundance_out,successFlag)\n USE cloud_mod\n\n CHARACTER(LEN=*) :: dictionary, outSpeciesIn\n DOUBLE PRECISION :: abundance_out(500)\n INTEGER :: successFlag\n !f2py intent(in) dictionary,outSpeciesIn\n !f2py intent(out) abundance_out,successFlag\n ...\n END SUBROUTINE\n")),(0,o.kt)("p",null,"where we've dropped the bulk of the code since we only care about the declaration. Once compiled, you will be able to call this function using ",(0,o.kt)("inlineCode",{parentName:"p"},"uclchem.wrap.cloud(dictionary,outSpeciesIn)"),"."),(0,o.kt)("p",null,"This works because we've done two things. First, we've declared both the two inputs and the two outputs as arguments in Fortran in the normal way. Both inputs and outputs of a subroutine are declared as arguments in Fortran, usually with an ",(0,o.kt)("inlineCode",{parentName:"p"},"INTENT(IN)")," or ",(0,o.kt)("inlineCode",{parentName:"p"},"INTENT(OUT)")," statement, although that is unnecessary. We then declare the intent of those argument for F2PY using the comments that start ",(0,o.kt)("inlineCode",{parentName:"p"},"!f2py")," to tell F2PY which arguments should be arguments of the corresponding python function and which should be outputs."),(0,o.kt)("h2",{id:"the-python-side"},"The Python Side"),(0,o.kt)("p",null,"We could leave it at that. However, for ease of use, we write pure python functions in the uclchem module which call the underlying wrap functions rather than having users directly access the f2py functions. For example, in ",(0,o.kt)("inlineCode",{parentName:"p"},"uclchem.model"),", we define a cloud function which calls ",(0,o.kt)("inlineCode",{parentName:"p"},"wrap.cloud"),":"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-python"},'\ndef cloud(param_dict=None, out_species=None):\n """Run cloud model from UCLCHEM\n\n Args:\n param_dict (dict,optional): A dictionary of parameters where keys are any of the variables in defaultparameters.f90 and values are value for current run.\n out_species (list, optional): A list of species for which final abundance will be returned. If None, no abundances will be returned.. Defaults to None.\n\n Returns:\n int,list: A integer which is negative if the model failed to run, or a list of abundances of all species in `outSpecies`\n """\n n_out,param_dict,out_species=_reform_inputs(param_dict,out_species)\n abunds, success_flag = wrap.cloud(dictionary=param_dict, outspeciesin=out_species)\n if success_flag < 0 or n_out == 0:\n return success_flag\n else:\n return abunds[: n_out]\n')),(0,o.kt)("p",null,"This allows us to make some arguments optional using python's keyword arguments. It also lets us write docstrings from which we can generate documentation for the functions. Finally, it lets us tidy up the output! For example, arrays passed too and from the Fortran subroutines must be of fixed length so in this function, we cut the output abundance array down to just the elements the user actually wanted."),(0,o.kt)("h2",{id:"tips-and-tricks"},"Tips and Tricks"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Once imported, all values are initialized in UCLCHEM. Calling a subroutine multiple times does not reset variables. That is to say that if your Fortran modules declare variables with an initial value, those variables will not return to those initial values. Instead, you'll notice all our modules reset their variables manually in the initialize functions such as initializePhysics.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Debugging your fortran code can be greatly complicated by the F2PY interface. Consider compiling the fortran source to test any code changes before trying to compile the python version.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},"Python handles errors much more gracefully than Fortran. We have tried to use ",(0,o.kt)("inlineCode",{parentName:"p"},"successFlag")," as a return from most subroutines as a way to tell Python that the Fortran run failed. It can be a pain to set up the chain of successFlag returns from modules in Fortran but if you use something like Fortran's ",(0,o.kt)("inlineCode",{parentName:"p"},"STOP"),", you'll likely kill your python in a way that won't let you use ",(0,o.kt)("inlineCode",{parentName:"p"},"try:, except:")," statements to handle it."))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fb9afbe1.afddabe5.js b/assets/js/fb9afbe1.afddabe5.js deleted file mode 100644 index 5b5b2feb..00000000 --- a/assets/js/fb9afbe1.afddabe5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[3433],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>h});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),d=u(n),h=o,m=d["".concat(l,".").concat(h)]||d[h]||p[h]||a;return n?r.createElement(m,i(i({ref:t},c),{},{components:n})):r.createElement(m,i({ref:t},c))}));function h(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:o,i[1]=s;for(var u=2;u{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>h,frontMatter:()=>s,metadata:()=>u,toc:()=>p});var r=n(7462),o=n(3366),a=(n(7294),n(3905)),i=["components"],s={id:"dev-python-wrap",title:"Writing The Python Interface"},l=void 0,u={unversionedId:"dev-python-wrap",id:"version-v3.2.0/dev-python-wrap",title:"Writing The Python Interface",description:"The python interface is a relatively complex bit of code, a lot of work is put on the development side to make the user side a smooth experience. Writing the core of UCLCHEM in Fortran gives great performance benefits but compiling it to python with F2PY has its peculiarities. Here, we discuss the steps needed to adjust the code.",source:"@site/versioned_docs/version-v3.2.0/dev-python-wrap.md",sourceDirName:".",slug:"/dev-python-wrap",permalink:"/docs/dev-python-wrap",tags:[],version:"v3.2.0",frontMatter:{id:"dev-python-wrap",title:"Writing The Python Interface"},sidebar:"docs",previous:{title:"Overview of the Code",permalink:"/docs/dev-overview"},next:{title:"Debugging",permalink:"/docs/dev-debugging"}},c={},p=[{value:"The Fortran Side",id:"the-fortran-side",level:2},{value:"The Python Side",id:"the-python-side",level:2},{value:"Tips and Tricks",id:"tips-and-tricks",level:2}],d={toc:p};function h(e){var t=e.components,n=(0,o.Z)(e,i);return(0,a.kt)("wrapper",(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The python interface is a relatively complex bit of code, a lot of work is put on the development side to make the user side a smooth experience. Writing the core of UCLCHEM in Fortran gives great performance benefits but compiling it to python with F2PY has its peculiarities. Here, we discuss the steps needed to adjust the code."),(0,a.kt)("h2",{id:"the-fortran-side"},"The Fortran Side"),(0,a.kt)("p",null,"The fortran side is the more difficult. We define a module in ",(0,a.kt)("inlineCode",{parentName:"p"},"src/fortran_src/wrap.f90")," which is a Fortran module that F2PY will turn into a python module. Any subroutine declared in ",(0,a.kt)("inlineCode",{parentName:"p"},"wrap.f90")," will become a function in the Python module."),(0,a.kt)("p",null,"The most likely change you'll want to make is to add a physics module so we'll look at cloud as an example. In ",(0,a.kt)("inlineCode",{parentName:"p"},"wrap.f90")," cloud is declared:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-fortran"}," SUBROUTINE cloud(dictionary, outSpeciesIn,abundance_out,successFlag)\n USE cloud_mod\n\n CHARACTER(LEN=*) :: dictionary, outSpeciesIn\n DOUBLE PRECISION :: abundance_out(500)\n INTEGER :: successFlag\n !f2py intent(in) dictionary,outSpeciesIn\n !f2py intent(out) abundance_out,successFlag\n ...\n END SUBROUTINE\n")),(0,a.kt)("p",null,"where we've dropped the bulk of the code since we only care about the declaration. Once compiled, you will be able to call this function using ",(0,a.kt)("inlineCode",{parentName:"p"},"uclchem.wrap.cloud(dictionary,outSpeciesIn)"),"."),(0,a.kt)("p",null,"This works because we've done two things. First, we've declared both the two inputs and the two outputs as arguments in Fortran in the normal way. Both inputs and outputs of a subroutine are declared as arguments in Fortran, usually with an ",(0,a.kt)("inlineCode",{parentName:"p"},"INTENT(IN)")," or ",(0,a.kt)("inlineCode",{parentName:"p"},"INTENT(OUT)")," statement, although that is unnecessary. We then declare the intent of those argument for F2PY using the comments that start ",(0,a.kt)("inlineCode",{parentName:"p"},"!f2py")," to tell F2PY which arguments should be arguments of the corresponding python function and which should be outputs."),(0,a.kt)("h2",{id:"the-python-side"},"The Python Side"),(0,a.kt)("p",null,"We could leave it at that. However, for ease of use, we write pure python functions in the uclchem module which call the underlying wrap functions rather than having users directly access the f2py functions. For example, in ",(0,a.kt)("inlineCode",{parentName:"p"},"uclchem.model"),", we define a cloud function which calls ",(0,a.kt)("inlineCode",{parentName:"p"},"wrap.cloud"),":"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},'\ndef cloud(param_dict=None, out_species=None):\n """Run cloud model from UCLCHEM\n\n Args:\n param_dict (dict,optional): A dictionary of parameters where keys are any of the variables in defaultparameters.f90 and values are value for current run.\n out_species (list, optional): A list of species for which final abundance will be returned. If None, no abundances will be returned.. Defaults to None.\n\n Returns:\n int,list: A integer which is negative if the model failed to run, or a list of abundances of all species in `outSpecies`\n """\n n_out,param_dict,out_species=_reform_inputs(param_dict,out_species)\n abunds, success_flag = wrap.cloud(dictionary=param_dict, outspeciesin=out_species)\n if success_flag < 0 or n_out == 0:\n return success_flag\n else:\n return abunds[: n_out]\n')),(0,a.kt)("p",null,"This allows us to make some arguments optional using python's keyword arguments. It also lets us write docstrings from which we can generate documentation for the functions. Finally, it lets us tidy up the output! For example, arrays passed too and from the Fortran subroutines must be of fixed length so in this function, we cut the output abundance array down to just the elements the user actually wanted."),(0,a.kt)("h2",{id:"tips-and-tricks"},"Tips and Tricks"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Once imported, all values are initialized in UCLCHEM. Calling a subroutine multiple times does not reset variables. That is to say that if your Fortran modules declare variables with an initial value, those variables will not return to those initial values. Instead, you'll notice all our modules reset their variables manually in the initialize functions such as initializePhysics.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Debugging your fortran code can be greatly complicated by the F2PY interface. Consider compiling the fortran source to test any code changes before trying to compile the python version.")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Python handles errors much more gracefully than Fortran. We have tried to use ",(0,a.kt)("inlineCode",{parentName:"p"},"successFlag")," as a return from most subroutines as a way to tell Python that the Fortran run failed. It can be a pain to set up the chain of successFlag returns from modules in Fortran but if you use something like Fortran's ",(0,a.kt)("inlineCode",{parentName:"p"},"STOP"),", you'll likely kill your python in a way that won't let you use ",(0,a.kt)("inlineCode",{parentName:"p"},"try:, except:")," statements to handle it."))))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fc1c51fa.ba1e2ff3.js b/assets/js/fc1c51fa.ba1e2ff3.js new file mode 100644 index 00000000..1dcf7f9f --- /dev/null +++ b/assets/js/fc1c51fa.ba1e2ff3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6257],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>p});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),h=u(n),p=o,m=h["".concat(l,".").concat(p)]||h[p]||d[p]||r;return n?a.createElement(m,i(i({ref:t},c),{},{components:n})):a.createElement(m,i({ref:t},c))}));function p(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:o,i[1]=s;for(var u=2;u{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>p,frontMatter:()=>s,metadata:()=>u,toc:()=>d});var a=n(7462),o=n(3366),r=(n(7294),n(3905)),i=["components"],s={id:"dev-web",title:"Maintaining the Website"},l=void 0,u={unversionedId:"dev-web",id:"dev-web",title:"Maintaining the Website",description:"We use Docusaurus to maintain our website. The upside is that documentation and blog posts can all be created as simple markdown files. The downside is a slightly convoluted workflow which we explain here.",source:"@site/docs/dev-web.md",sourceDirName:".",slug:"/dev-web",permalink:"/docs/next/dev-web",draft:!1,tags:[],version:"current",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1676552141,formattedLastUpdatedAt:"Feb 16, 2023",frontMatter:{id:"dev-web",title:"Maintaining the Website"},sidebar:"docs",previous:{title:"Debugging",permalink:"/docs/next/dev-debugging"}},c={},d=[{value:"Repository Structure",id:"repository-structure",level:2},{value:"Setting Up",id:"setting-up",level:2},{value:"Requirements",id:"requirements",level:3},{value:"Cloning",id:"cloning",level:3},{value:"Making Changes",id:"making-changes",level:2},{value:"Docs",id:"docs",level:3},{value:"Blog",id:"blog",level:3},{value:"Main pages",id:"main-pages",level:3},{value:"Pushing Changes",id:"pushing-changes",level:2}],h={toc:d};function p(e){var t=e.components,n=(0,o.Z)(e,i);return(0,r.kt)("wrapper",(0,a.Z)({},h,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"We use ",(0,r.kt)("a",{parentName:"p",href:"https://docusaurus.io"},"Docusaurus")," to maintain our website. The upside is that documentation and blog posts can all be created as simple markdown files. The downside is a slightly convoluted workflow which we explain here."),(0,r.kt)("h2",{id:"repository-structure"},"Repository Structure"),(0,r.kt)("p",null,"The website is generated from a ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/uclchem/uclchem.github.io"},"dedicated repository")," which has two branches: ",(0,r.kt)("strong",{parentName:"p"},"master")," and ",(0,r.kt)("strong",{parentName:"p"},"docusaurus"),". Master is the branch from which the website is actually served and it is not to be edited by users. Instead, it is automatically generated from the source code by Docusaurus. ",(0,r.kt)("strong",{parentName:"p"},"Users modify the docusaurus branch.")),(0,r.kt)("h2",{id:"setting-up"},"Setting Up"),(0,r.kt)("h3",{id:"requirements"},"Requirements"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"You'll need ",(0,r.kt)("a",{parentName:"li",href:"https://classic.yarnpkg.com/lang/en/docs/install/#debian-stable"},"yarn")," or npm installed to run docusaurus, we'll assume yarn as it's simplest but the ",(0,r.kt)("a",{parentName:"li",href:"https://docusaurus.io/docs"},"docusaurus docs")," explain how to use either."),(0,r.kt)("li",{parentName:"ul"},"You need to set up github to use SSH keys to authenticate your pushes. ",(0,r.kt)("a",{parentName:"li",href:"https://docs.github.com/en/authentication/connecting-to-github-with-ssh"},"The github docs explain this"))),(0,r.kt)("h3",{id:"cloning"},"Cloning"),(0,r.kt)("p",null,"To get a copy of the website and start looking around, you can do the following:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"git clone git@github.com:uclchem/uclchem.github.io.git\ncd uclchem.github.io\ngit checkout docusaurus\n")),(0,r.kt)("p",null,"which will clone the repository and move to the development branch. The parent directory is not particularly useful, most content is in ",(0,r.kt)("inlineCode",{parentName:"p"},"website/"),", users can run the site locally with:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"cd website\nyarn start\n")),(0,r.kt)("h2",{id:"making-changes"},"Making Changes"),(0,r.kt)("h3",{id:"docs"},"Docs"),(0,r.kt)("p",null,"The docs pages are generated from markdown files in ",(0,r.kt)("inlineCode",{parentName:"p"},"website/docs"),". There's a script in the ",(0,r.kt)("inlineCode",{parentName:"p"},"utils")," directory of the main UCLCHEM repository (",(0,r.kt)("inlineCode",{parentName:"p"},"utils/make_python_docs.sh"),") to automatically generate the parameters docs, the Python API reference, and the tutorial pages from the code and tutorial files. You need to supply the path to your uclchem.github.io repository to have it automatically move the files there. If you want to add or modify any other docs, you can just create or edit a markdown file."),(0,r.kt)("p",null,"The only docs that are actually included in the side are those listed in ",(0,r.kt)("inlineCode",{parentName:"p"},"website/sidebars.json"),". There's some structure to it but we define categories in a simple JSON format and then each cateogory has an items list where you can add new pages. If you want to add a completely new category, just compare the category declaration in this file with the docs online. The docs listed in sidebars.json should match the ",(0,r.kt)("inlineCode",{parentName:"p"},"id")," at the top of each markdown file."),(0,r.kt)("h3",{id:"blog"},"Blog"),(0,r.kt)("p",null,"We're attempting to add a blog post for each publication that uses UCLCHEM. Blog posts are again just markdown files which can be found in ",(0,r.kt)("inlineCode",{parentName:"p"},"website/blog"),". Everything in that directory is included in the blog, the date from the file name is used to order them."),(0,r.kt)("h3",{id:"main-pages"},"Main pages"),(0,r.kt)("p",null,"The other pages on the site are either js files in ",(0,r.kt)("inlineCode",{parentName:"p"},"website/src/pages")," or static html files in ",(0,r.kt)("inlineCode",{parentName:"p"},"website/static"),". Docusaurus does not like you to work with the static files so where possible, you should use the js files. We use very simple js where we just put the HTML we would put into a normal webpage into functions and then call the functions in the main part of the file to produce a simple HMTL page. It's best to use existing pages as templates."),(0,r.kt)("h2",{id:"pushing-changes"},"Pushing Changes"),(0,r.kt)("p",null,"Once you've made your edits, you do the following steps:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},'# Let docusaurus update the website\nUSE_SSH=true GIT_USER=gijsvermarien DEPLOYMENT_BRANCH=master yarn deploy\n\n# Push your changes to the docusaurus branch as normal\ngit add . -A\ngit commit -m "useful update message"\ngit push\n\n')),(0,r.kt)("p",null,"If your github is set up with to use private key authentication and ssh (highly recommended), docusaurus will build the website and push it to master for you when you use yarn deploy. You then push to docusaurus branch as normal to make sure others work from your changes."),(0,r.kt)("p",null,"If there is a major release, one should make a new version, which can be done using:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"yarn docusaurus docs:version 3.X\n")),(0,r.kt)("p",null,"Between the patch numbers, the documentation should only change little, so either you can leave the documentation identical, or if changes were made, just supersede the lower patch number and upload the newer documentation. Depending on how many version we support, one can delete older documentation versions or deprecate them."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fc1c51fa.bdf58d7b.js b/assets/js/fc1c51fa.bdf58d7b.js deleted file mode 100644 index 3849404e..00000000 --- a/assets/js/fc1c51fa.bdf58d7b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[6257],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>p});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),h=u(n),p=o,m=h["".concat(l,".").concat(p)]||h[p]||d[p]||r;return n?a.createElement(m,i(i({ref:t},c),{},{components:n})):a.createElement(m,i({ref:t},c))}));function p(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:o,i[1]=s;for(var u=2;u{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>p,frontMatter:()=>s,metadata:()=>u,toc:()=>d});var a=n(7462),o=n(3366),r=(n(7294),n(3905)),i=["components"],s={id:"dev-web",title:"Maintaining the Website"},l=void 0,u={unversionedId:"dev-web",id:"dev-web",title:"Maintaining the Website",description:"We use Docusaurus to maintain our website. The upside is that documentation and blog posts can all be created as simple markdown files. The downside is a slightly convoluted workflow which we explain here.",source:"@site/docs/dev-web.md",sourceDirName:".",slug:"/dev-web",permalink:"/docs/next/dev-web",tags:[],version:"current",lastUpdatedBy:"Gijs Vermari\xebn",lastUpdatedAt:1676552141,formattedLastUpdatedAt:"2/16/2023",frontMatter:{id:"dev-web",title:"Maintaining the Website"},sidebar:"docs",previous:{title:"Debugging",permalink:"/docs/next/dev-debugging"}},c={},d=[{value:"Repository Structure",id:"repository-structure",level:2},{value:"Setting Up",id:"setting-up",level:2},{value:"Requirements",id:"requirements",level:3},{value:"Cloning",id:"cloning",level:3},{value:"Making Changes",id:"making-changes",level:2},{value:"Docs",id:"docs",level:3},{value:"Blog",id:"blog",level:3},{value:"Main pages",id:"main-pages",level:3},{value:"Pushing Changes",id:"pushing-changes",level:2}],h={toc:d};function p(e){var t=e.components,n=(0,o.Z)(e,i);return(0,r.kt)("wrapper",(0,a.Z)({},h,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"We use ",(0,r.kt)("a",{parentName:"p",href:"https://docusaurus.io"},"Docusaurus")," to maintain our website. The upside is that documentation and blog posts can all be created as simple markdown files. The downside is a slightly convoluted workflow which we explain here."),(0,r.kt)("h2",{id:"repository-structure"},"Repository Structure"),(0,r.kt)("p",null,"The website is generated from a ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/uclchem/uclchem.github.io"},"dedicated repository")," which has two branches: ",(0,r.kt)("strong",{parentName:"p"},"master")," and ",(0,r.kt)("strong",{parentName:"p"},"docusaurus"),". Master is the branch from which the website is actually served and it is not to be edited by users. Instead, it is automatically generated from the source code by Docusaurus. ",(0,r.kt)("strong",{parentName:"p"},"Users modify the docusaurus branch.")),(0,r.kt)("h2",{id:"setting-up"},"Setting Up"),(0,r.kt)("h3",{id:"requirements"},"Requirements"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"You'll need ",(0,r.kt)("a",{parentName:"li",href:"https://classic.yarnpkg.com/lang/en/docs/install/#debian-stable"},"yarn")," or npm installed to run docusaurus, we'll assume yarn as it's simplest but the ",(0,r.kt)("a",{parentName:"li",href:"https://docusaurus.io/docs"},"docusaurus docs")," explain how to use either."),(0,r.kt)("li",{parentName:"ul"},"You need to set up github to use SSH keys to authenticate your pushes. ",(0,r.kt)("a",{parentName:"li",href:"https://docs.github.com/en/authentication/connecting-to-github-with-ssh"},"The github docs explain this"))),(0,r.kt)("h3",{id:"cloning"},"Cloning"),(0,r.kt)("p",null,"To get a copy of the website and start looking around, you can do the following:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"git clone git@github.com:uclchem/uclchem.github.io.git\ncd uclchem.github.io\ngit checkout docusaurus\n")),(0,r.kt)("p",null,"which will clone the repository and move to the development branch. The parent directory is not particularly useful, most content is in ",(0,r.kt)("inlineCode",{parentName:"p"},"website/"),", users can run the site locally with:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"cd website\nyarn start\n")),(0,r.kt)("h2",{id:"making-changes"},"Making Changes"),(0,r.kt)("h3",{id:"docs"},"Docs"),(0,r.kt)("p",null,"The docs pages are generated from markdown files in ",(0,r.kt)("inlineCode",{parentName:"p"},"website/docs"),". There's a script in the ",(0,r.kt)("inlineCode",{parentName:"p"},"utils")," directory of the main UCLCHEM repository (",(0,r.kt)("inlineCode",{parentName:"p"},"utils/make_python_docs.sh"),") to automatically generate the parameters docs, the Python API reference, and the tutorial pages from the code and tutorial files. You need to supply the path to your uclchem.github.io repository to have it automatically move the files there. If you want to add or modify any other docs, you can just create or edit a markdown file."),(0,r.kt)("p",null,"The only docs that are actually included in the side are those listed in ",(0,r.kt)("inlineCode",{parentName:"p"},"website/sidebars.json"),". There's some structure to it but we define categories in a simple JSON format and then each cateogory has an items list where you can add new pages. If you want to add a completely new category, just compare the category declaration in this file with the docs online. The docs listed in sidebars.json should match the ",(0,r.kt)("inlineCode",{parentName:"p"},"id")," at the top of each markdown file."),(0,r.kt)("h3",{id:"blog"},"Blog"),(0,r.kt)("p",null,"We're attempting to add a blog post for each publication that uses UCLCHEM. Blog posts are again just markdown files which can be found in ",(0,r.kt)("inlineCode",{parentName:"p"},"website/blog"),". Everything in that directory is included in the blog, the date from the file name is used to order them."),(0,r.kt)("h3",{id:"main-pages"},"Main pages"),(0,r.kt)("p",null,"The other pages on the site are either js files in ",(0,r.kt)("inlineCode",{parentName:"p"},"website/src/pages")," or static html files in ",(0,r.kt)("inlineCode",{parentName:"p"},"website/static"),". Docusaurus does not like you to work with the static files so where possible, you should use the js files. We use very simple js where we just put the HTML we would put into a normal webpage into functions and then call the functions in the main part of the file to produce a simple HMTL page. It's best to use existing pages as templates."),(0,r.kt)("h2",{id:"pushing-changes"},"Pushing Changes"),(0,r.kt)("p",null,"Once you've made your edits, you do the following steps:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},'# Let docusaurus update the website\nUSE_SSH=true GIT_USER=gijsvermarien DEPLOYMENT_BRANCH=master yarn deploy\n\n# Push your changes to the docusaurus branch as normal\ngit add . -A\ngit commit -m "useful update message"\ngit push\n\n')),(0,r.kt)("p",null,"If your github is set up with to use private key authentication and ssh (highly recommended), docusaurus will build the website and push it to master for you when you use yarn deploy. You then push to docusaurus branch as normal to make sure others work from your changes."),(0,r.kt)("p",null,"If there is a major release, one should make a new version, which can be done using:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"yarn docusaurus docs:version 3.X\n")),(0,r.kt)("p",null,"Between the patch numbers, the documentation should only change little, so either you can leave the documentation identical, or if changes were made, just supersede the lower patch number and upload the newer documentation. Depending on how many version we support, one can delete older documentation versions or deprecate them."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/main.3486a980.js b/assets/js/main.3486a980.js new file mode 100644 index 00000000..9aa33130 --- /dev/null +++ b/assets/js/main.3486a980.js @@ -0,0 +1,2 @@ +/*! For license information please see main.3486a980.js.LICENSE.txt */ +(self.webpackChunk=self.webpackChunk||[]).push([[179],{1205:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/=d.reach);_+=k.value.length,k=k.next){var x=k.value;if(t.length>e.length)return;if(!(x instanceof a)){var S,C=1;if(b){if(!(S=o(E,_,e,v))||S.index>=e.length)break;var T=S.index,A=S.index+S[0].length,L=_;for(L+=k.value.length;T>=L;)L+=(k=k.next).value.length;if(_=L-=k.value.length,k.value instanceof a)continue;for(var N=k;N!==t.tail&&(Ld.reach&&(d.reach=R);var D=k.prev;if(P&&(D=s(t,D,P),_+=P.length),c(t,D,C),k=s(t,D,new a(f,g?r.tokenize(O,g):O,y,O)),I&&s(t,k,I),C>1){var M={cause:f+","+m,reach:R};i(e,t,n,k.prev,_,M),d&&M.reach>d.reach&&(d.reach=M.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function s(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function c(e,t,n){for(var r=t.next,a=0;a"+o.content+""},r}(),a=r;r.default=r,a.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},a.languages.markup.tag.inside["attr-value"].inside.entity=a.languages.markup.entity,a.languages.markup.doctype.inside["internal-subset"].inside=a.languages.markup,a.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(a.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:a.languages[t]},n.cdata=/^$/i;var r={"included-cdata":{pattern://i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:a.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},a.languages.insertBefore("markup","cdata",o)}}),Object.defineProperty(a.languages.markup.tag,"addAttribute",{value:function(e,t){a.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:a.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),a.languages.html=a.languages.markup,a.languages.mathml=a.languages.markup,a.languages.svg=a.languages.markup,a.languages.xml=a.languages.extend("markup",{}),a.languages.ssml=a.languages.xml,a.languages.atom=a.languages.xml,a.languages.rss=a.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=r.variable[1].inside,i=0;i]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},a.languages.c=a.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),a.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),a.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},a.languages.c.string],char:a.languages.c.char,comment:a.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:a.languages.c}}}}),a.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete a.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(a),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(a),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},a={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:a,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:a})}(a),a.languages.javascript=a.languages.extend("clike",{"class-name":[a.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),a.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,a.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:a.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:a.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:a.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:a.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:a.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),a.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:a.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),a.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),a.languages.markup&&(a.languages.markup.tag.addInlined("script","javascript"),a.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),a.languages.js=a.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(a),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return"(?:"+a+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(a),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(//g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~))+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(a),a.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:a.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},a.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n0)){var l=f(/^\{$/,/^\}$/);if(-1===l)continue;for(var s=n;s=0&&p(c,"variable-input")}}}}function u(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],o=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function s(t,n,r){var a={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(a.code,a.grammar),e.hooks.run("after-tokenize",a),a.tokens}function c(t){var n={};n["interpolation-punctuation"]=a;var o=e.tokenize(t,n);if(3===o.length){var i=[1,1];i.push.apply(i,s(o[1],e.languages.javascript,"javascript")),o.splice.apply(o,i)}return new e.Token("interpolation",o,r.alias,t)}function u(t,n,r){var a=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),i=0,u={},d=s(a.map((function(e){if("string"==typeof e)return e;for(var n,a=e.content;-1!==t.indexOf(n=l(i++,r)););return u[n]=a,n})).join(""),n,r),f=Object.keys(u);return i=0,function e(t){for(var n=0;n=f.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var a=f[i],o="string"==typeof r?r:r.content,l=o.indexOf(a);if(-1!==l){++i;var s=o.substring(0,l),d=c(u[a]),p=o.substring(l+a.length),m=[];if(s&&m.push(s),m.push(d),p){var h=[p];e(h),m.push.apply(m,h)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function f(e){return"string"==typeof e?e:Array.isArray(e)?e.map(f).join(""):f(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,a=n.length;r]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(a),function(e){function t(e,t){return RegExp(e.replace(//g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:(?:\s*,\s*(?:\*\s*as\s+|\{[^{}]*\}))?|\*\s*as\s+|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r*\.{3}(?:[^{}]|)*\})/.source;function o(e,t){return e=e.replace(//g,(function(){return n})).replace(//g,(function(){return r})).replace(//g,(function(){return a})),RegExp(e,t)}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|))?|))**\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(//.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},l=function(t){for(var n=[],r=0;r0&&n[n.length-1].tagName===i(a.content[0].content[1])&&n.pop():"/>"===a.content[a.content.length-1].content||n.push({tagName:i(a.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof a)&&n.length>0&&0===n[n.length-1].openedBraces){var s=i(a);r0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(s=i(t[r-1])+s,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",s,null,s)}a.content&&"string"!=typeof a.content&&l(a.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||l(e.tokens)}))}(a),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],a=[];/^\w+$/.test(n)||a.push(/\w+/.exec(n)[0]),"diff"===n&&a.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:a,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(a),a.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},a.languages.go=a.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),a.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete a.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,l=i.length;-1!==n.code.indexOf(a=t(r,l));)++l;return i[l]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,o=Object.keys(n.tokenStack);!function i(l){for(var s=0;s=o.length);s++){var c=l[s];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=o[a],d=n.tokenStack[u],f="string"==typeof c?c:c.content,p=t(r,u),m=f.indexOf(p);if(m>-1){++a;var h=f.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),v=f.substring(m+p.length),b=[];h&&b.push.apply(b,i([h])),b.push(g),v&&b.push.apply(b,i([v])),"string"==typeof c?l.splice.apply(l,[s,1].concat(b)):c.content=b}}else c.content&&i(c.content)}return l}(n.tokens)}}}})}(a),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(a),a.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},a.languages.webmanifest=a.languages.json,a.languages.less=a.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),a.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),a.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},a.languages.objectivec=a.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete a.languages.objectivec["class-name"],a.languages.objc=a.languages.objectivec,a.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},a.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},a.languages.python["string-interpolation"].inside.interpolation.inside.rest=a.languages.python,a.languages.py=a.languages.python,a.languages.reason=a.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),a.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete a.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(a),a.languages.scss=a.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),a.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),a.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),a.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),a.languages.scss.atrule.inside.rest=a.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(a),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(a),a.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const o=a},723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7294),a=n(7462),o=n(8356),i=n.n(o),l=n(6887);const s={"04f8940c":[function(){return n.e(9977).then(n.bind(n,3090))},"@site/versioned_docs/version-v3.2.0/chem-desorb.md",3090],"0588cae0":[function(){return n.e(2472).then(n.t.bind(n,2815,19))},"~docs/default/category-docs-docs-category-chemistry-ff8.json",2815],"08daa2f3":[function(){return n.e(7942).then(n.bind(n,9539))},"@site/versioned_docs/version-v3.2.0/start-pythonapi.md",9539],"0a312c56":[function(){return n.e(1089).then(n.bind(n,1479))},"@site/versioned_docs/version-v3.1.0/modelling_objects.md",1479],"0e89b35c":[function(){return n.e(3609).then(n.bind(n,6046))},"@site/blog/2018-06-20-izaskun-phosphorus.md?truncated=true",6046],"14eb3368":[function(){return Promise.all([n.e(532),n.e(9817)]).then(n.bind(n,4228))},"@theme/DocCategoryGeneratedIndexPage",4228],17896441:[function(){return Promise.all([n.e(532),n.e(7080),n.e(7918)]).then(n.bind(n,5154))},"@theme/DocItem",5154],"197ac2f1":[function(){return n.e(6556).then(n.bind(n,8172))},"@site/docs/first_model.md",8172],"19d37fc1":[function(){return n.e(8530).then(n.bind(n,6295))},"@site/blog/2022-02-06-holdship-hits.md",6295],"1ba038cd":[function(){return n.e(2091).then(n.bind(n,3269))},"@site/versioned_docs/version-v3.1.0/chemical_analysis.md",3269],"1be78505":[function(){return Promise.all([n.e(532),n.e(9514)]).then(n.bind(n,9963))},"@theme/DocPage",9963],"1cd6d774":[function(){return Promise.all([n.e(532),n.e(1898)]).then(n.bind(n,1247))},"@site/src/pages/emulators.js",1247],"1dba9094":[function(){return n.e(5217).then(n.bind(n,7264))},"@site/src/pages/users.js",7264],"1e1adb0b":[function(){return n.e(2569).then(n.bind(n,6003))},"@site/versioned_docs/version-v3.1.0/start-basicuse.md",6003],"1f072b81":[function(){return n.e(1417).then(n.bind(n,3812))},"@site/versioned_docs/version-v3.1.0/start-pythonapi.md",3812],"236d4ea4":[function(){return n.e(3738).then(n.bind(n,7950))},"@site/docs/dev-debugging.md",7950],"236fea48":[function(){return n.e(8877).then(n.bind(n,3649))},"@site/blog/2020-12-07-milena-nitrogen-solis.md?truncated=true",3649],"25925e1d":[function(){return n.e(5559).then(n.bind(n,2050))},"@site/blog/2019-12-10-tom-shock.md?truncated=true",2050],"27f461e9":[function(){return n.e(1847).then(n.bind(n,1368))},"@site/docs/hydro.md",1368],"297e8b98":[function(){return n.e(5550).then(n.bind(n,8134))},"@site/versioned_docs/version-v3.2.0/chemical_analysis.md",8134],"2dbc3c34":[function(){return n.e(3357).then(n.bind(n,40))},"@site/docs/trouble-integration.md",40],30669678:[function(){return n.e(4129).then(n.bind(n,3015))},"@site/blog/2019-08-13-serena-carbon-frac.md",3015],"32e9b7cb":[function(){return n.e(2927).then(n.bind(n,7501))},"@site/versioned_docs/version-v3.1.0/start-network.md",7501],"33e58627":[function(){return n.e(1007).then(n.bind(n,6459))},"@site/versioned_docs/version-v3.1.0/trouble-compile.md",6459],"3492d4cd":[function(){return n.e(872).then(n.bind(n,8660))},"@site/blog/2020-02-14-New-Website.md",8660],"37df37e5":[function(){return n.e(3412).then(n.bind(n,6521))},"@site/docs/start-pythonapi.md",6521],"3ca268a2":[function(){return n.e(3065).then(n.bind(n,4808))},"@site/docs/start-basicuse.md",4808],"3ca94418":[function(){return n.e(814).then(n.bind(n,1632))},"@site/versioned_docs/version-v3.2.0/physics-hotcore.md",1632],"4029de32":[function(){return n.e(5973).then(n.bind(n,14))},"@site/versioned_docs/version-v3.2.0/start-parameters.md",14],"405e629b":[function(){return n.e(8807).then(n.t.bind(n,7039,19))},"~docs/default/category-docsnext-docs-category-getting-started-8a4.json",7039],"43cd5493":[function(){return n.e(4401).then(n.bind(n,9659))},"@site/docs/chem-gas.md",9659],"441d6760":[function(){return n.e(551).then(n.t.bind(n,5882,19))},"~docs/default/category-docsnext-docs-category-developer-notes-781.json",5882],"44815e26":[function(){return n.e(9125).then(n.bind(n,491))},"@site/blog/2018-03-27-audrey-coms.md?truncated=true",491],"44936c8a":[function(){return n.e(6901).then(n.bind(n,4751))},"@site/versioned_docs/version-v3.2.0/chem-gas.md",4751],45922241:[function(){return n.e(7441).then(n.t.bind(n,7658,19))},"~docs/default/category-docsv-310-docs-category-getting-started-cb5.json",7658],"463275cf":[function(){return n.e(7197).then(n.bind(n,116))},"@site/versioned_docs/version-v3.1.0/chem-bulk.md",116],"4791faca":[function(){return n.e(1702).then(n.bind(n,5476))},"@site/versioned_docs/version-v3.1.0/physics-shocks.md",5476],"4b111dda":[function(){return n.e(5241).then(n.bind(n,8034))},"@site/blog/2018-03-27-audrey-coms.md",8034],"4c70ee09":[function(){return n.e(1841).then(n.bind(n,8879))},"@site/blog/2018-07-12-felix-collapse.md?truncated=true",8879],"4c7304f4":[function(){return n.e(2764).then(n.bind(n,7544))},"@site/docs/running_a_grid.md",7544],"4f352dd6":[function(){return n.e(4908).then(n.bind(n,2325))},"@site/blog/2022-04-14-crir-ngc253.md",2325],"512466b5":[function(){return n.e(2080).then(n.bind(n,8332))},"@site/docs/physics-shocks.md",8332],"52addc0b":[function(){return n.e(3245).then(n.t.bind(n,6056,19))},"~docs/default/category-docs-docs-category-getting-started-0e8.json",6056],"538f2129":[function(){return n.e(9561).then(n.bind(n,2744))},"@site/versioned_docs/version-v3.1.0/running_a_grid.md",2744],54674114:[function(){return n.e(9920).then(n.t.bind(n,8828,19))},"~docs/default/category-docs-docs-category-developer-notes-fb9.json",8828],"565aba73":[function(){return n.e(6416).then(n.t.bind(n,7398,19))},"~docs/default/category-docsv-310-docs-category-developer-notes-0bd.json",7398],"56e1034f":[function(){return n.e(6137).then(n.bind(n,9803))},"@site/blog/2020-02-14-New-Website.md?truncated=true",9803],"5a334135":[function(){return n.e(7950).then(n.bind(n,4178))},"@site/versioned_docs/version-v3.2.0/trouble-integration.md",4178],"5a7d93ee":[function(){return n.e(9364).then(n.bind(n,2962))},"@site/versioned_docs/version-v3.2.0/dev-overview.md",2962],"5bfb9a5a":[function(){return n.e(978).then(n.bind(n,968))},"@site/blog/2022-04-14-crir-ngc253.md?truncated=true",968],"5dbea504":[function(){return n.e(5138).then(n.bind(n,2472))},"@site/versioned_docs/version-v3.1.0/physics-cloud.md",2472],"5e9f5e1a":[function(){return Promise.resolve().then(n.bind(n,6809))},"@generated/docusaurus.config",6809],"607afc38":[function(){return n.e(6275).then(n.bind(n,2087))},"@site/docs/dev-python-wrap.md",2087],"6101527a":[function(){return n.e(2471).then(n.bind(n,3519))},"@site/blog/2020-12-07-milena-nitrogen-solis.md",3519],"61e2a305":[function(){return n.e(193).then(n.bind(n,4104))},"@site/versioned_docs/version-v3.2.0/first_model.md",4104],"640703ca":[function(){return n.e(1231).then(n.bind(n,8004))},"@site/blog/2019-08-13-serena-carbon-frac.md?truncated=true",8004],"670f431a":[function(){return n.e(4723).then(n.bind(n,121))},"@site/docs/trouble-compile.md",121],"689d9eaa":[function(){return Promise.all([n.e(532),n.e(7737)]).then(n.bind(n,1154))},"@site/src/pages/othersoftware.js",1154],"6a488aa2":[function(){return n.e(4455).then(n.bind(n,5326))},"@site/blog/2018-02-05-david-grains.md",5326],"6a4b9492":[function(){return n.e(3119).then(n.bind(n,3542))},"@site/docs/modelling_objects.md",3542],"6ba1b442":[function(){return n.e(3828).then(n.bind(n,2557))},"@site/versioned_docs/version-v3.1.0/chem-desorb.md",2557],"6bb3e248":[function(){return n.e(7524).then(n.bind(n,3941))},"@site/docs/physics-collapse.md",3941],"6c2487b5":[function(){return n.e(2468).then(n.bind(n,3619))},"@site/versioned_docs/version-v3.1.0/trouble-integration.md",3619],"6c5fb57f":[function(){return n.e(3817).then(n.bind(n,8459))},"@site/versioned_docs/version-v3.1.0/physics-core.md",8459],"71908c5e":[function(){return n.e(2433).then(n.bind(n,574))},"@site/blog/2018-07-12-felix-collapse.md",574],"7aa4d0e1":[function(){return n.e(9002).then(n.bind(n,1545))},"@site/docs/start-parameters.md",1545],"7b253f47":[function(){return n.e(9260).then(n.bind(n,91))},"@site/versioned_docs/version-v3.1.0/physics-hotcore.md",91],"7bc80f3c":[function(){return n.e(1757).then(n.bind(n,4513))},"@site/blog/2019-04-19-serena-nitrogen-frac.md",4513],"7c193f36":[function(){return n.e(7474).then(n.bind(n,6624))},"@site/docs/physics-hotcore.md",6624],"7cbbac6d":[function(){return n.e(9206).then(n.bind(n,7132))},"@site/versioned_docs/version-v3.1.0/first_model.md",7132],"7e37206e":[function(){return n.e(2740).then(n.bind(n,5401))},"@site/src/pages/help.js",5401],"7f120b4d":[function(){return n.e(6764).then(n.bind(n,8517))},"@site/docs/chem-desorb.md",8517],"812cb1a9":[function(){return n.e(968).then(n.bind(n,7209))},"@site/blog/2022-02-06-holdship-hits.md?truncated=true",7209],"814f3328":[function(){return n.e(2535).then(n.t.bind(n,5641,19))},"~blog/default/blog-post-list-prop-default.json",5641],"82de2e50":[function(){return n.e(7928).then(n.bind(n,9997))},"@site/docs/chem-grain.md",9997],"82e83611":[function(){return n.e(7732).then(n.bind(n,4038))},"@site/versioned_docs/version-v3.1.0/chem-gas.md",4038],"8524628b":[function(){return n.e(8662).then(n.bind(n,4746))},"@site/versioned_docs/version-v3.2.0/physics-core.md",4746],"87033a11":[function(){return n.e(1157).then(n.bind(n,13))},"@site/blog/2022-04-29-uclchem-v3.md?truncated=true",13],"8762eb7f":[function(){return n.e(5013).then(n.bind(n,9511))},"@site/docs/chemical_analysis.md",9511],87956035:[function(){return n.e(8489).then(n.t.bind(n,6954,19))},"~docs/default/category-docsnext-docs-category-chemistry-2ce.json",6954],"8b9fbec9":[function(){return n.e(4392).then(n.bind(n,8008))},"@site/docs/chem-notation.md",8008],"8cd0bbdb":[function(){return n.e(4463).then(n.bind(n,7677))},"@site/versioned_docs/version-v3.2.0/trouble-compile.md",7677],"8e6ea0e6":[function(){return n.e(4486).then(n.bind(n,148))},"@site/blog/2022-04-29-uclchem-v3.md",148],"8eb4e46b":[function(){return n.e(1).then(n.t.bind(n,2638,19))},"~blog/default/blog-page-2-677.json",2638],"8eef9ab5":[function(){return Promise.all([n.e(532),n.e(6995)]).then(n.bind(n,9235))},"@site/src/pages/3dpdr.js",9235],"8f25fbab":[function(){return n.e(9707).then(n.bind(n,1113))},"@site/versioned_docs/version-v3.2.0/dev-debugging.md",1113],"935f2afb":[function(){return n.e(53).then(n.t.bind(n,1109,19))},"~docs/default/version-current-metadata-prop-751.json",1109],"93b8a6b4":[function(){return n.e(9780).then(n.bind(n,4111))},"@site/versioned_docs/version-v3.2.0/dev-web.md",4111],"950fd243":[function(){return n.e(2408).then(n.bind(n,817))},"@site/versioned_docs/version-v3.2.0/start-network.md",817],"957548e4":[function(){return n.e(5114).then(n.bind(n,6476))},"@site/blog/2018-02-05-david-grains.md?truncated=true",6476],"95c680a9":[function(){return n.e(5251).then(n.bind(n,7905))},"@site/blog/2019-07-08-felix-ambipolar.md",7905],"968bdb06":[function(){return n.e(1859).then(n.bind(n,8573))},"@site/versioned_docs/version-v3.1.0/hydro.md",8573],"9968756c":[function(){return n.e(6639).then(n.bind(n,2348))},"@site/versioned_docs/version-v3.1.0/dev-python-wrap.md",2348],"9b050cce":[function(){return n.e(692).then(n.t.bind(n,6932,19))},"~docs/default/version-v-3-1-0-metadata-prop-f5c.json",6932],"9e4087bc":[function(){return n.e(3608).then(n.bind(n,3169))},"@theme/BlogArchivePage",3169],"9faf9bc8":[function(){return n.e(1754).then(n.bind(n,3134))},"@site/versioned_docs/version-v3.1.0/physics-collapse.md",3134],a070733c:[function(){return n.e(4621).then(n.bind(n,7639))},"@site/versioned_docs/version-v3.1.0/dev-overview.md",7639],a30e1db8:[function(){return n.e(8585).then(n.bind(n,9322))},"@site/docs/physics-core.md",9322],a392f71d:[function(){return n.e(7561).then(n.bind(n,3885))},"@site/versioned_docs/version-v3.2.0/chem-bulk.md",3885],a6aa9e1f:[function(){return Promise.all([n.e(532),n.e(7080),n.e(8218),n.e(3089)]).then(n.bind(n,6167))},"@theme/BlogListPage",6167],a6d620e2:[function(){return n.e(6357).then(n.t.bind(n,3769,19))},"/Users/gijsv/uclchem/uclchem.github.io/website/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],a9bdb9a1:[function(){return n.e(9445).then(n.bind(n,8905))},"@site/blog/2019-12-10-tom-shock.md",8905],b2b675dd:[function(){return n.e(533).then(n.t.bind(n,8017,19))},"~blog/default/blog-c06.json",8017],b2effb50:[function(){return n.e(5626).then(n.t.bind(n,943,19))},"~docs/default/version-v-3-2-0-metadata-prop-4e3.json",943],b2f554cd:[function(){return n.e(1477).then(n.t.bind(n,10,19))},"~blog/default/blog-archive-80c.json",10],b4779a4a:[function(){return n.e(1299).then(n.bind(n,9096))},"@site/versioned_docs/version-v3.2.0/physics-cloud.md",9096],ba4d4e72:[function(){return n.e(7209).then(n.bind(n,2648))},"@site/versioned_docs/version-v3.1.0/start-parameters.md",2648],bef14caa:[function(){return n.e(9697).then(n.t.bind(n,4469,19))},"/Users/gijsv/uclchem/uclchem.github.io/website/.docusaurus/docusaurus-plugin-content-blog/default/plugin-route-context-module-100.json",4469],c17a6496:[function(){return n.e(5401).then(n.bind(n,6489))},"@site/versioned_docs/version-v3.2.0/running_a_grid.md",6489],c2a99c14:[function(){return n.e(9217).then(n.bind(n,4375))},"@site/versioned_docs/version-v3.1.0/dev-debugging.md",4375],c491cf8e:[function(){return n.e(6152).then(n.t.bind(n,5745,19))},"/Users/gijsv/uclchem/uclchem.github.io/website/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",5745],c4e6c98a:[function(){return n.e(9011).then(n.bind(n,7856))},"@site/versioned_docs/version-v3.2.0/modelling_objects.md",7856],c4f5d8e4:[function(){return Promise.all([n.e(532),n.e(4195)]).then(n.bind(n,2841))},"@site/src/pages/index.js",2841],c8755060:[function(){return n.e(3501).then(n.bind(n,4875))},"@site/docs/physics-cloud.md",4875],ca07b522:[function(){return n.e(1069).then(n.bind(n,3467))},"@site/docs/chem-bulk.md",3467],cb3beda6:[function(){return n.e(6439).then(n.bind(n,899))},"@site/versioned_docs/version-v3.2.0/hydro.md",899],cb646038:[function(){return n.e(1428).then(n.bind(n,8707))},"@site/versioned_docs/version-v3.2.0/chem-grain.md",8707],ccc49370:[function(){return Promise.all([n.e(532),n.e(7080),n.e(8218),n.e(6103)]).then(n.bind(n,5203))},"@theme/BlogPostPage",5203],d226c097:[function(){return n.e(6742).then(n.bind(n,1313))},"@site/versioned_docs/version-v3.2.0/physics-shocks.md",1313],d26b1119:[function(){return n.e(3053).then(n.bind(n,2448))},"@site/docs/start-network.md",2448],d59b2eda:[function(){return n.e(3029).then(n.bind(n,7289))},"@site/versioned_docs/version-v3.2.0/start-basicuse.md",7289],d778b222:[function(){return n.e(4883).then(n.bind(n,2198))},"@site/versioned_docs/version-v3.2.0/physics-collapse.md",2198],d81cd816:[function(){return Promise.all([n.e(532),n.e(1071)]).then(n.bind(n,3734))},"@site/src/pages/ucl_pdr.js",3734],e2bcb55a:[function(){return n.e(7964).then(n.bind(n,445))},"@site/blog/2019-04-19-serena-nitrogen-frac.md?truncated=true",445],e39b6181:[function(){return n.e(4730).then(n.bind(n,8917))},"@site/docs/dev-overview.md",8917],e7ddec96:[function(){return n.e(5226).then(n.bind(n,1591))},"@site/versioned_docs/version-v3.1.0/chem-grain.md",1591],e8abc400:[function(){return n.e(4274).then(n.bind(n,7427))},"@site/versioned_docs/version-v3.1.0/dev-web.md",7427],f2741056:[function(){return n.e(826).then(n.t.bind(n,6982,19))},"~docs/default/category-docs-docs-category-tutorials-a53.json",6982],f38a4f40:[function(){return n.e(6807).then(n.t.bind(n,3410,19))},"~docs/default/category-docsv-310-docs-category-tutorials-c56.json",3410],f4b3c076:[function(){return n.e(204).then(n.bind(n,4829))},"@site/blog/2019-07-08-felix-ambipolar.md?truncated=true",4829],f85ff90a:[function(){return n.e(1667).then(n.bind(n,9931))},"@site/blog/2018-06-20-izaskun-phosphorus.md",9931],faeac2ec:[function(){return n.e(9194).then(n.t.bind(n,8183,19))},"~docs/default/category-docsv-310-docs-category-chemistry-0f4.json",8183],fb9afbe1:[function(){return n.e(3433).then(n.bind(n,5239))},"@site/versioned_docs/version-v3.2.0/dev-python-wrap.md",5239],fc02e47e:[function(){return n.e(3521).then(n.t.bind(n,7505,19))},"~docs/default/category-docsnext-docs-category-tutorials-3fb.json",7505],fc1c51fa:[function(){return n.e(6257).then(n.bind(n,7360))},"@site/docs/dev-web.md",7360]};function c(e){var t=e.error,n=e.retry,a=e.pastDelay;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):a?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var u=n(9670),d=n(226);function f(e,t){if("*"===e)return i()({loading:c,loader:function(){return n.e(4972).then(n.bind(n,4972))},modules:["@theme/NotFound"],webpack:function(){return[4972]},render:function(e,t){var n=e.default;return r.createElement(d.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});var o=l[e+"-"+t],f={},p=[],m=[],h=(0,u.Z)(o);return Object.entries(h).forEach((function(e){var t=e[0],n=e[1],r=s[n];r&&(f[t]=r[0],p.push(r[1]),m.push(r[2]))})),i().Map({loading:c,loader:f,modules:p,webpack:function(){return m},render:function(t,n){var i=JSON.parse(JSON.stringify(o));Object.entries(t).forEach((function(t){var n=t[0],r=t[1],a=r.default;if(!a)throw new Error("The page component at "+e+" doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.");"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((function(e){return"default"!==e})).forEach((function(e){a[e]=r[e]}));var o=i,l=n.split(".");l.slice(0,-1).forEach((function(e){o=o[e]})),o[l[l.length-1]]=a}));var l=i.__comp;delete i.__comp;var s=i.__context;return delete i.__context,r.createElement(d.z,{value:s},r.createElement(l,(0,a.Z)({},i,n)))}})}const p=[{path:"/3dpdr",component:f("/3dpdr","fbd"),exact:!0},{path:"/blog",component:f("/blog","a75"),exact:!0},{path:"/blog/2018/02/05/david-grains",component:f("/blog/2018/02/05/david-grains","70c"),exact:!0},{path:"/blog/2018/03/27/audrey-coms",component:f("/blog/2018/03/27/audrey-coms","e4f"),exact:!0},{path:"/blog/2018/06/20/izaskun-phosphorus",component:f("/blog/2018/06/20/izaskun-phosphorus","3c8"),exact:!0},{path:"/blog/2018/07/12/felix-collapse",component:f("/blog/2018/07/12/felix-collapse","038"),exact:!0},{path:"/blog/2019/04/19/serena-nitrogen-frac",component:f("/blog/2019/04/19/serena-nitrogen-frac","4ee"),exact:!0},{path:"/blog/2019/07/08/felix-ambipolar",component:f("/blog/2019/07/08/felix-ambipolar","790"),exact:!0},{path:"/blog/2019/08/13/serena-carbon-frac",component:f("/blog/2019/08/13/serena-carbon-frac","aad"),exact:!0},{path:"/blog/2019/12/10/tom-shock",component:f("/blog/2019/12/10/tom-shock","804"),exact:!0},{path:"/blog/2020/02/14/New-Website",component:f("/blog/2020/02/14/New-Website","6e6"),exact:!0},{path:"/blog/2020/12/07/milena-nitrogen-solis",component:f("/blog/2020/12/07/milena-nitrogen-solis","e7b"),exact:!0},{path:"/blog/2022/02/06/holdship-hits",component:f("/blog/2022/02/06/holdship-hits","828"),exact:!0},{path:"/blog/2022/04/14/crir-ngc253",component:f("/blog/2022/04/14/crir-ngc253","4c3"),exact:!0},{path:"/blog/2022/04/29/uclchem-v3",component:f("/blog/2022/04/29/uclchem-v3","5ef"),exact:!0},{path:"/blog/archive",component:f("/blog/archive","9ae"),exact:!0},{path:"/blog/page/2",component:f("/blog/page/2","a6a"),exact:!0},{path:"/emulators",component:f("/emulators","c95"),exact:!0},{path:"/help",component:f("/help","cb7"),exact:!0},{path:"/othersoftware",component:f("/othersoftware","3f0"),exact:!0},{path:"/ucl_pdr",component:f("/ucl_pdr","aa8"),exact:!0},{path:"/users",component:f("/users","06f"),exact:!0},{path:"/docs/next",component:f("/docs/next","4f0"),routes:[{path:"/docs/next/",component:f("/docs/next/","ead"),exact:!0,sidebar:"docs"},{path:"/docs/next/bulk",component:f("/docs/next/bulk","508"),exact:!0,sidebar:"docs"},{path:"/docs/next/category/chemistry",component:f("/docs/next/category/chemistry","bd6"),exact:!0,sidebar:"docs"},{path:"/docs/next/category/developer",component:f("/docs/next/category/developer","a3e"),exact:!0,sidebar:"docs"},{path:"/docs/next/category/getting-started",component:f("/docs/next/category/getting-started","a42"),exact:!0,sidebar:"docs"},{path:"/docs/next/category/tutorials",component:f("/docs/next/category/tutorials","e3c"),exact:!0,sidebar:"docs"},{path:"/docs/next/chemical_analysis",component:f("/docs/next/chemical_analysis","a15"),exact:!0,sidebar:"docs"},{path:"/docs/next/desorb",component:f("/docs/next/desorb","94f"),exact:!0,sidebar:"docs"},{path:"/docs/next/dev-debugging",component:f("/docs/next/dev-debugging","21d"),exact:!0,sidebar:"docs"},{path:"/docs/next/dev-overview",component:f("/docs/next/dev-overview","f69"),exact:!0,sidebar:"docs"},{path:"/docs/next/dev-python-wrap",component:f("/docs/next/dev-python-wrap","cd5"),exact:!0,sidebar:"docs"},{path:"/docs/next/dev-web",component:f("/docs/next/dev-web","58c"),exact:!0,sidebar:"docs"},{path:"/docs/next/first_model",component:f("/docs/next/first_model","6ea"),exact:!0,sidebar:"docs"},{path:"/docs/next/gas",component:f("/docs/next/gas","7db"),exact:!0,sidebar:"docs"},{path:"/docs/next/grain",component:f("/docs/next/grain","649"),exact:!0,sidebar:"docs"},{path:"/docs/next/hydro",component:f("/docs/next/hydro","a9f"),exact:!0},{path:"/docs/next/modelling_objects",component:f("/docs/next/modelling_objects","598"),exact:!0,sidebar:"docs"},{path:"/docs/next/network",component:f("/docs/next/network","956"),exact:!0,sidebar:"docs"},{path:"/docs/next/notation",component:f("/docs/next/notation","19f"),exact:!0,sidebar:"docs"},{path:"/docs/next/parameters",component:f("/docs/next/parameters","70c"),exact:!0,sidebar:"docs"},{path:"/docs/next/physics-cloud",component:f("/docs/next/physics-cloud","719"),exact:!0,sidebar:"docs"},{path:"/docs/next/physics-collapse",component:f("/docs/next/physics-collapse","f22"),exact:!0,sidebar:"docs"},{path:"/docs/next/physics-core",component:f("/docs/next/physics-core","cb2"),exact:!0,sidebar:"docs"},{path:"/docs/next/physics-hotcore",component:f("/docs/next/physics-hotcore","652"),exact:!0,sidebar:"docs"},{path:"/docs/next/physics-shocks",component:f("/docs/next/physics-shocks","2d5"),exact:!0,sidebar:"docs"},{path:"/docs/next/pythonapi",component:f("/docs/next/pythonapi","144"),exact:!0,sidebar:"docs"},{path:"/docs/next/running_a_grid",component:f("/docs/next/running_a_grid","c01"),exact:!0,sidebar:"docs"},{path:"/docs/next/trouble-compile",component:f("/docs/next/trouble-compile","863"),exact:!0,sidebar:"docs"},{path:"/docs/next/trouble-integration",component:f("/docs/next/trouble-integration","7de"),exact:!0,sidebar:"docs"}]},{path:"/docs/v3.1.0",component:f("/docs/v3.1.0","a46"),routes:[{path:"/docs/v3.1.0/",component:f("/docs/v3.1.0/","e39"),exact:!0,sidebar:"docs"},{path:"/docs/v3.1.0/bulk",component:f("/docs/v3.1.0/bulk","412"),exact:!0,sidebar:"docs"},{path:"/docs/v3.1.0/category/chemistry",component:f("/docs/v3.1.0/category/chemistry","c8f"),exact:!0,sidebar:"docs"},{path:"/docs/v3.1.0/category/developer",component:f("/docs/v3.1.0/category/developer","b09"),exact:!0,sidebar:"docs"},{path:"/docs/v3.1.0/category/getting-started",component:f("/docs/v3.1.0/category/getting-started","0e4"),exact:!0,sidebar:"docs"},{path:"/docs/v3.1.0/category/tutorials",component:f("/docs/v3.1.0/category/tutorials","ae1"),exact:!0,sidebar:"docs"},{path:"/docs/v3.1.0/chemical_analysis",component:f("/docs/v3.1.0/chemical_analysis","52b"),exact:!0,sidebar:"docs"},{path:"/docs/v3.1.0/desorb",component:f("/docs/v3.1.0/desorb","2ca"),exact:!0,sidebar:"docs"},{path:"/docs/v3.1.0/dev-debugging",component:f("/docs/v3.1.0/dev-debugging","346"),exact:!0,sidebar:"docs"},{path:"/docs/v3.1.0/dev-overview",component:f("/docs/v3.1.0/dev-overview","a5a"),exact:!0,sidebar:"docs"},{path:"/docs/v3.1.0/dev-python-wrap",component:f("/docs/v3.1.0/dev-python-wrap","c71"),exact:!0,sidebar:"docs"},{path:"/docs/v3.1.0/dev-web",component:f("/docs/v3.1.0/dev-web","894"),exact:!0,sidebar:"docs"},{path:"/docs/v3.1.0/first_model",component:f("/docs/v3.1.0/first_model","098"),exact:!0,sidebar:"docs"},{path:"/docs/v3.1.0/gas",component:f("/docs/v3.1.0/gas","857"),exact:!0,sidebar:"docs"},{path:"/docs/v3.1.0/grain",component:f("/docs/v3.1.0/grain","899"),exact:!0,sidebar:"docs"},{path:"/docs/v3.1.0/hydro",component:f("/docs/v3.1.0/hydro","4a7"),exact:!0},{path:"/docs/v3.1.0/modelling_objects",component:f("/docs/v3.1.0/modelling_objects","a78"),exact:!0,sidebar:"docs"},{path:"/docs/v3.1.0/network",component:f("/docs/v3.1.0/network","e1e"),exact:!0,sidebar:"docs"},{path:"/docs/v3.1.0/parameters",component:f("/docs/v3.1.0/parameters","b52"),exact:!0,sidebar:"docs"},{path:"/docs/v3.1.0/physics-cloud",component:f("/docs/v3.1.0/physics-cloud","514"),exact:!0,sidebar:"docs"},{path:"/docs/v3.1.0/physics-collapse",component:f("/docs/v3.1.0/physics-collapse","c40"),exact:!0,sidebar:"docs"},{path:"/docs/v3.1.0/physics-core",component:f("/docs/v3.1.0/physics-core","16b"),exact:!0,sidebar:"docs"},{path:"/docs/v3.1.0/physics-hotcore",component:f("/docs/v3.1.0/physics-hotcore","4a5"),exact:!0,sidebar:"docs"},{path:"/docs/v3.1.0/physics-shocks",component:f("/docs/v3.1.0/physics-shocks","956"),exact:!0,sidebar:"docs"},{path:"/docs/v3.1.0/pythonapi",component:f("/docs/v3.1.0/pythonapi","76c"),exact:!0,sidebar:"docs"},{path:"/docs/v3.1.0/running_a_grid",component:f("/docs/v3.1.0/running_a_grid","ad8"),exact:!0,sidebar:"docs"},{path:"/docs/v3.1.0/trouble-compile",component:f("/docs/v3.1.0/trouble-compile","e83"),exact:!0,sidebar:"docs"},{path:"/docs/v3.1.0/trouble-integration",component:f("/docs/v3.1.0/trouble-integration","30d"),exact:!0,sidebar:"docs"}]},{path:"/docs",component:f("/docs","16b"),routes:[{path:"/docs/",component:f("/docs/","bd5"),exact:!0,sidebar:"docs"},{path:"/docs/bulk",component:f("/docs/bulk","15c"),exact:!0,sidebar:"docs"},{path:"/docs/category/chemistry",component:f("/docs/category/chemistry","356"),exact:!0,sidebar:"docs"},{path:"/docs/category/developer",component:f("/docs/category/developer","1c7"),exact:!0,sidebar:"docs"},{path:"/docs/category/getting-started",component:f("/docs/category/getting-started","066"),exact:!0,sidebar:"docs"},{path:"/docs/category/tutorials",component:f("/docs/category/tutorials","ef4"),exact:!0,sidebar:"docs"},{path:"/docs/chemical_analysis",component:f("/docs/chemical_analysis","d91"),exact:!0,sidebar:"docs"},{path:"/docs/desorb",component:f("/docs/desorb","01e"),exact:!0,sidebar:"docs"},{path:"/docs/dev-debugging",component:f("/docs/dev-debugging","d05"),exact:!0,sidebar:"docs"},{path:"/docs/dev-overview",component:f("/docs/dev-overview","16d"),exact:!0,sidebar:"docs"},{path:"/docs/dev-python-wrap",component:f("/docs/dev-python-wrap","18b"),exact:!0,sidebar:"docs"},{path:"/docs/dev-web",component:f("/docs/dev-web","42a"),exact:!0,sidebar:"docs"},{path:"/docs/first_model",component:f("/docs/first_model","8bc"),exact:!0,sidebar:"docs"},{path:"/docs/gas",component:f("/docs/gas","77c"),exact:!0,sidebar:"docs"},{path:"/docs/grain",component:f("/docs/grain","683"),exact:!0,sidebar:"docs"},{path:"/docs/hydro",component:f("/docs/hydro","f7a"),exact:!0},{path:"/docs/modelling_objects",component:f("/docs/modelling_objects","35c"),exact:!0,sidebar:"docs"},{path:"/docs/network",component:f("/docs/network","23f"),exact:!0,sidebar:"docs"},{path:"/docs/parameters",component:f("/docs/parameters","b10"),exact:!0,sidebar:"docs"},{path:"/docs/physics-cloud",component:f("/docs/physics-cloud","238"),exact:!0,sidebar:"docs"},{path:"/docs/physics-collapse",component:f("/docs/physics-collapse","c0c"),exact:!0,sidebar:"docs"},{path:"/docs/physics-core",component:f("/docs/physics-core","b37"),exact:!0,sidebar:"docs"},{path:"/docs/physics-hotcore",component:f("/docs/physics-hotcore","287"),exact:!0,sidebar:"docs"},{path:"/docs/physics-shocks",component:f("/docs/physics-shocks","962"),exact:!0,sidebar:"docs"},{path:"/docs/pythonapi",component:f("/docs/pythonapi","1fc"),exact:!0,sidebar:"docs"},{path:"/docs/running_a_grid",component:f("/docs/running_a_grid","faf"),exact:!0,sidebar:"docs"},{path:"/docs/trouble-compile",component:f("/docs/trouble-compile","75f"),exact:!0,sidebar:"docs"},{path:"/docs/trouble-integration",component:f("/docs/trouble-integration","c8a"),exact:!0,sidebar:"docs"}]},{path:"/",component:f("/","e1e"),exact:!0},{path:"*",component:f("*")}]},8934:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,t:()=>o});var r=n(7294),a=r.createContext(!1);function o(e){var t=e.children,n=(0,r.useState)(!1),o=n[0],i=n[1];return(0,r.useEffect)((function(){i(!0)}),[]),r.createElement(a.Provider,{value:o},t)}},9383:(e,t,n)=>{"use strict";var r=n(7294),a=n(3935),o=n(3727),i=n(405),l=n(412);const s=[n(4367),n(2497),n(7021),n(8320),n(2295)];var c=n(723),u=n(6550),d=n(8790);function f(e){var t=e.children;return r.createElement(r.Fragment,null,t)}var p=n(7462),m=n(5742),h=n(2263),g=n(4996),v=n(6668),b=n(1944),y=n(4711),w=n(9727),E=n(3320),k=n(197);function _(){var e=(0,h.Z)().i18n,t=e.defaultLocale,n=e.localeConfigs,a=(0,y.l)();return r.createElement(m.Z,null,Object.entries(n).map((function(e){var t=e[0],n=e[1].htmlLang;return r.createElement("link",{key:t,rel:"alternate",href:a.createUrl({locale:t,fullyQualified:!0}),hrefLang:n})})),r.createElement("link",{rel:"alternate",href:a.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}))}function x(e){var t=e.permalink,n=(0,h.Z)().siteConfig.url,a=function(){var e=(0,h.Z)().siteConfig.url,t=(0,u.TH)().pathname;return e+(0,g.Z)(t)}(),o=t?""+n+t:a;return r.createElement(m.Z,null,r.createElement("meta",{property:"og:url",content:o}),r.createElement("link",{rel:"canonical",href:o}))}function S(){var e=(0,h.Z)().i18n.currentLocale,t=(0,v.L)(),n=t.metadata,a=t.image;return r.createElement(r.Fragment,null,r.createElement(m.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:w.h})),a&&r.createElement(b.d,{image:a}),r.createElement(x,null),r.createElement(_,null),r.createElement(k.Z,{tag:E.HX,locale:e}),r.createElement(m.Z,null,n.map((function(e,t){return r.createElement("meta",(0,p.Z)({key:t},e))}))))}var C=new Map;function T(e){if(C.has(e.pathname))return Object.assign({},e,{pathname:C.get(e.pathname)});if((0,d.f)(c.Z,e.pathname).some((function(e){return!0===e.route.exact})))return C.set(e.pathname,e.pathname),e;var t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return C.set(e.pathname,t),Object.assign({},e,{pathname:t})}var A=n(8934),L=n(8940),N=n(4578);function O(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r\n

Your Docusaurus site did not load properly.

\n

A very common reason is a wrong site baseUrl configuration.

\n

Current configured baseUrl = '+e+" "+("/"===e?" (default value)":"")+'

\n

We suggest trying baseUrl =

\n\n'}(e)).replace(/{"use strict";n.d(t,{_:()=>u,M:()=>d});var r=n(7294),a=n(6809);const o=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/docs","versions":[{"name":"current","label":"Develop \ud83d\udea7","isLast":false,"path":"/docs/next","mainDocId":"install","docs":[{"id":"bulk","path":"/docs/next/bulk","sidebar":"docs"},{"id":"chemical_analysis","path":"/docs/next/chemical_analysis","sidebar":"docs"},{"id":"desorb","path":"/docs/next/desorb","sidebar":"docs"},{"id":"dev-debugging","path":"/docs/next/dev-debugging","sidebar":"docs"},{"id":"dev-overview","path":"/docs/next/dev-overview","sidebar":"docs"},{"id":"dev-python-wrap","path":"/docs/next/dev-python-wrap","sidebar":"docs"},{"id":"dev-web","path":"/docs/next/dev-web","sidebar":"docs"},{"id":"first_model","path":"/docs/next/first_model","sidebar":"docs"},{"id":"gas","path":"/docs/next/gas","sidebar":"docs"},{"id":"grain","path":"/docs/next/grain","sidebar":"docs"},{"id":"hydro","path":"/docs/next/hydro"},{"id":"install","path":"/docs/next/","sidebar":"docs"},{"id":"modelling_objects","path":"/docs/next/modelling_objects","sidebar":"docs"},{"id":"network","path":"/docs/next/network","sidebar":"docs"},{"id":"notation","path":"/docs/next/notation","sidebar":"docs"},{"id":"parameters","path":"/docs/next/parameters","sidebar":"docs"},{"id":"physics-cloud","path":"/docs/next/physics-cloud","sidebar":"docs"},{"id":"physics-collapse","path":"/docs/next/physics-collapse","sidebar":"docs"},{"id":"physics-core","path":"/docs/next/physics-core","sidebar":"docs"},{"id":"physics-hotcore","path":"/docs/next/physics-hotcore","sidebar":"docs"},{"id":"physics-shocks","path":"/docs/next/physics-shocks","sidebar":"docs"},{"id":"pythonapi","path":"/docs/next/pythonapi","sidebar":"docs"},{"id":"running_a_grid","path":"/docs/next/running_a_grid","sidebar":"docs"},{"id":"trouble-compile","path":"/docs/next/trouble-compile","sidebar":"docs"},{"id":"trouble-integration","path":"/docs/next/trouble-integration","sidebar":"docs"},{"id":"/category/getting-started","path":"/docs/next/category/getting-started","sidebar":"docs"},{"id":"/category/tutorials","path":"/docs/next/category/tutorials","sidebar":"docs"},{"id":"/category/chemistry","path":"/docs/next/category/chemistry","sidebar":"docs"},{"id":"/category/developer","path":"/docs/next/category/developer","sidebar":"docs"}],"draftIds":[],"sidebars":{"docs":{"link":{"path":"/docs/next/category/getting-started","label":"Getting Started"}}}},{"name":"v3.2.0","label":"v3.2.0","isLast":true,"path":"/docs","mainDocId":"install","docs":[{"id":"bulk","path":"/docs/bulk","sidebar":"docs"},{"id":"chemical_analysis","path":"/docs/chemical_analysis","sidebar":"docs"},{"id":"desorb","path":"/docs/desorb","sidebar":"docs"},{"id":"dev-debugging","path":"/docs/dev-debugging","sidebar":"docs"},{"id":"dev-overview","path":"/docs/dev-overview","sidebar":"docs"},{"id":"dev-python-wrap","path":"/docs/dev-python-wrap","sidebar":"docs"},{"id":"dev-web","path":"/docs/dev-web","sidebar":"docs"},{"id":"first_model","path":"/docs/first_model","sidebar":"docs"},{"id":"gas","path":"/docs/gas","sidebar":"docs"},{"id":"grain","path":"/docs/grain","sidebar":"docs"},{"id":"hydro","path":"/docs/hydro"},{"id":"install","path":"/docs/","sidebar":"docs"},{"id":"modelling_objects","path":"/docs/modelling_objects","sidebar":"docs"},{"id":"network","path":"/docs/network","sidebar":"docs"},{"id":"parameters","path":"/docs/parameters","sidebar":"docs"},{"id":"physics-cloud","path":"/docs/physics-cloud","sidebar":"docs"},{"id":"physics-collapse","path":"/docs/physics-collapse","sidebar":"docs"},{"id":"physics-core","path":"/docs/physics-core","sidebar":"docs"},{"id":"physics-hotcore","path":"/docs/physics-hotcore","sidebar":"docs"},{"id":"physics-shocks","path":"/docs/physics-shocks","sidebar":"docs"},{"id":"pythonapi","path":"/docs/pythonapi","sidebar":"docs"},{"id":"running_a_grid","path":"/docs/running_a_grid","sidebar":"docs"},{"id":"trouble-compile","path":"/docs/trouble-compile","sidebar":"docs"},{"id":"trouble-integration","path":"/docs/trouble-integration","sidebar":"docs"},{"id":"/category/getting-started","path":"/docs/category/getting-started","sidebar":"docs"},{"id":"/category/tutorials","path":"/docs/category/tutorials","sidebar":"docs"},{"id":"/category/chemistry","path":"/docs/category/chemistry","sidebar":"docs"},{"id":"/category/developer","path":"/docs/category/developer","sidebar":"docs"}],"draftIds":[],"sidebars":{"docs":{"link":{"path":"/docs/category/getting-started","label":"Getting Started"}}}},{"name":"v3.1.0","label":"v3.1.0","isLast":false,"path":"/docs/v3.1.0","mainDocId":"install","docs":[{"id":"bulk","path":"/docs/v3.1.0/bulk","sidebar":"docs"},{"id":"chemical_analysis","path":"/docs/v3.1.0/chemical_analysis","sidebar":"docs"},{"id":"desorb","path":"/docs/v3.1.0/desorb","sidebar":"docs"},{"id":"dev-debugging","path":"/docs/v3.1.0/dev-debugging","sidebar":"docs"},{"id":"dev-overview","path":"/docs/v3.1.0/dev-overview","sidebar":"docs"},{"id":"dev-python-wrap","path":"/docs/v3.1.0/dev-python-wrap","sidebar":"docs"},{"id":"dev-web","path":"/docs/v3.1.0/dev-web","sidebar":"docs"},{"id":"first_model","path":"/docs/v3.1.0/first_model","sidebar":"docs"},{"id":"gas","path":"/docs/v3.1.0/gas","sidebar":"docs"},{"id":"grain","path":"/docs/v3.1.0/grain","sidebar":"docs"},{"id":"hydro","path":"/docs/v3.1.0/hydro"},{"id":"install","path":"/docs/v3.1.0/","sidebar":"docs"},{"id":"modelling_objects","path":"/docs/v3.1.0/modelling_objects","sidebar":"docs"},{"id":"network","path":"/docs/v3.1.0/network","sidebar":"docs"},{"id":"parameters","path":"/docs/v3.1.0/parameters","sidebar":"docs"},{"id":"physics-cloud","path":"/docs/v3.1.0/physics-cloud","sidebar":"docs"},{"id":"physics-collapse","path":"/docs/v3.1.0/physics-collapse","sidebar":"docs"},{"id":"physics-core","path":"/docs/v3.1.0/physics-core","sidebar":"docs"},{"id":"physics-hotcore","path":"/docs/v3.1.0/physics-hotcore","sidebar":"docs"},{"id":"physics-shocks","path":"/docs/v3.1.0/physics-shocks","sidebar":"docs"},{"id":"pythonapi","path":"/docs/v3.1.0/pythonapi","sidebar":"docs"},{"id":"running_a_grid","path":"/docs/v3.1.0/running_a_grid","sidebar":"docs"},{"id":"trouble-compile","path":"/docs/v3.1.0/trouble-compile","sidebar":"docs"},{"id":"trouble-integration","path":"/docs/v3.1.0/trouble-integration","sidebar":"docs"},{"id":"/category/getting-started","path":"/docs/v3.1.0/category/getting-started","sidebar":"docs"},{"id":"/category/tutorials","path":"/docs/v3.1.0/category/tutorials","sidebar":"docs"},{"id":"/category/chemistry","path":"/docs/v3.1.0/category/chemistry","sidebar":"docs"},{"id":"/category/developer","path":"/docs/v3.1.0/category/developer","sidebar":"docs"}],"draftIds":[],"sidebars":{"docs":{"link":{"path":"/docs/v3.1.0/category/getting-started","label":"Getting Started"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var l=n(7529);const s=JSON.parse('{"docusaurusVersion":"2.4.1","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.4.1"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.4.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.4.1"},"docusaurus-plugin-google-analytics":{"type":"package","name":"@docusaurus/plugin-google-analytics","version":"2.4.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.4.1"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.4.1"}}}');var c={siteConfig:a.default,siteMetadata:s,globalData:o,i18n:i,codeTranslations:l},u=r.createContext(c);function d(e){var t=e.children;return r.createElement(u.Provider,{value:c},t)}},4763:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(4578),a=n(7294),o=n(412),i=n(5742),l=n(8780),s=n(7961);function c(e){var t=e.error,n=e.tryAgain;return a.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"}},a.createElement("h1",{style:{fontSize:"3rem"}},"This page crashed"),a.createElement("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"}},"Try again"),a.createElement(u,{error:t}))}function u(e){var t=e.error,n=(0,l.getErrorCausalChain)(t).map((function(e){return e.message})).join("\n\nCause:\n");return a.createElement("p",{style:{whiteSpace:"pre-wrap"}},n)}function d(e){var t=e.error,n=e.tryAgain;return a.createElement(p,{fallback:function(){return a.createElement(c,{error:t,tryAgain:n})}},a.createElement(i.Z,null,a.createElement("title",null,"Page Error")),a.createElement(s.Z,null,a.createElement(c,{error:t,tryAgain:n})))}var f=function(e){return a.createElement(d,e)},p=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={error:null},n}(0,r.Z)(t,e);var n=t.prototype;return n.componentDidCatch=function(e){o.Z.canUseDOM&&this.setState({error:e})},n.render=function(){var e=this,t=this.props.children,n=this.state.error;if(n){var r,a={error:n,tryAgain:function(){return e.setState({error:null})}};return(null!=(r=this.props.fallback)?r:f)(a)}return null!=t?t:null},t}(a.Component)},412:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document;const a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5742:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(405);function o(e){return r.createElement(a.ql,e)}},9960:(e,t,n)=>{"use strict";n.d(t,{Z:()=>h});var r=n(7462),a=n(3366),o=n(7294),i=n(3727),l=n(8780),s=n(2263),c=n(3919),u=n(412),d=o.createContext({collectLink:function(){}});var f=n(4996),p=["isNavLink","to","href","activeClassName","isActive","data-noBrokenLinkCheck","autoAddBaseUrl"];function m(e,t){var n,m,h=e.isNavLink,g=e.to,v=e.href,b=e.activeClassName,y=e.isActive,w=e["data-noBrokenLinkCheck"],E=e.autoAddBaseUrl,k=void 0===E||E,_=(0,a.Z)(e,p),x=(0,s.Z)().siteConfig,S=x.trailingSlash,C=x.baseUrl,T=(0,f.C)().withBaseUrl,A=(0,o.useContext)(d),L=(0,o.useRef)(null);(0,o.useImperativeHandle)(t,(function(){return L.current}));var N=g||v;var O,P=(0,c.Z)(N),I=null==N?void 0:N.replace("pathname://",""),R=void 0!==I?(O=I,k&&function(e){return e.startsWith("/")}(O)?T(O):O):void 0;R&&P&&(R=(0,l.applyTrailingSlash)(R,{trailingSlash:S,baseUrl:C}));var D=(0,o.useRef)(!1),M=h?i.OL:i.rU,F=u.Z.canUseIntersectionObserver,B=(0,o.useRef)(),U=function(){D.current||null==R||(window.docusaurus.preload(R),D.current=!0)};(0,o.useEffect)((function(){return!F&&P&&null!=R&&window.docusaurus.prefetch(R),function(){F&&B.current&&B.current.disconnect()}}),[B,R,F,P]);var j=null!=(n=null==(m=R)?void 0:m.startsWith("#"))&&n,z=!R||!P||j;return z||w||A.collectLink(R),z?o.createElement("a",(0,r.Z)({ref:L,href:R},N&&!P&&{target:"_blank",rel:"noopener noreferrer"},_)):o.createElement(M,(0,r.Z)({},_,{onMouseEnter:U,onTouchStart:U,innerRef:function(e){L.current=e,F&&e&&P&&(B.current=new window.IntersectionObserver((function(t){t.forEach((function(t){e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(B.current.unobserve(e),B.current.disconnect(),null!=R&&window.docusaurus.prefetch(R))}))})),B.current.observe(e))},to:R},h&&{isActive:y,activeClassName:b}))}const h=o.forwardRef(m)},1875:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r=function(){return null}},5999:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s,I:()=>l});var r=n(7294);function a(e,t){var n=e.split(/(\{\w+\})/).map((function(e,n){if(n%2==1){var r=null==t?void 0:t[e.slice(1,-1)];if(void 0!==r)return r}return e}));return n.some((function(e){return(0,r.isValidElement)(e)}))?n.map((function(e,t){return(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e})).filter((function(e){return""!==e})):n.join("")}var o=n(7529);function i(e){var t,n,r=e.id,a=e.message;if(void 0===r&&void 0===a)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return null!=(t=null!=(n=o[null!=r?r:a])?n:a)?t:r}function l(e,t){return a(i({message:e.message,id:e.id}),t)}function s(e){var t=e.children,n=e.id,o=e.values;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");var l=i({message:t,id:n});return r.createElement(r.Fragment,null,a(l,o))}},9935:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});var r="default"},3919:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>a,b:()=>r})},4996:(e,t,n)=>{"use strict";n.d(t,{C:()=>i,Z:()=>l});var r=n(7294),a=n(2263),o=n(3919);function i(){var e=(0,a.Z)().siteConfig,t=e.baseUrl,n=e.url,i=(0,r.useCallback)((function(e,r){return function(e,t,n,r){var a=void 0===r?{}:r,i=a.forcePrependBaseUrl,l=void 0!==i&&i,s=a.absolute,c=void 0!==s&&s;if(!n||n.startsWith("#")||(0,o.b)(n))return n;if(l)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;var u=n.startsWith(t)?n:t+n.replace(/^\//,"");return c?e+u:u}(n,t,e,r)}),[n,t]);return{withBaseUrl:i}}function l(e,t){return void 0===t&&(t={}),(0,i().withBaseUrl)(e,t)}},2263:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8940);function o(){return(0,r.useContext)(a._)}},2389:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8934);function o(){return(0,r.useContext)(a._)}},9670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});function r(e){var t={};return function e(n,r){Object.entries(n).forEach((function(n){var a,o=n[0],i=n[1],l=r?r+"."+o:o;"object"==typeof(a=i)&&a&&Object.keys(a).length>0?e(i,l):t[l]=i}))}(e),t}},226:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,z:()=>o});var r=n(7294),a=r.createContext(null);function o(e){var t=e.children,n=e.value,o=r.useContext(a),i=(0,r.useMemo)((function(){return function(e){var t=e.parent,n=e.value;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}var r=Object.assign({},t.data,null==n?void 0:n.data);return{plugin:t.plugin,data:r}}({parent:o,value:n})}),[o,n]);return r.createElement(a.Provider,{value:i},t)}},143:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>h,gA:()=>f,_r:()=>u,Jo:()=>g,zh:()=>d,yW:()=>m,gB:()=>p});var r=n(6550),a=n(2263),o=n(9935);function i(e,t){void 0===t&&(t={});var n=(0,a.Z)().globalData[e];if(!n&&t.failfast)throw new Error('Docusaurus plugin global data not found for "'+e+'" plugin.');return n}var l=function(e){return e.versions.find((function(e){return e.isLast}))};function s(e,t){var n,a,o=function(e,t){var n=l(e);return[].concat(e.versions.filter((function(e){return e!==n})),[n]).find((function(e){return!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})}))}(e,t),i=null==o?void 0:o.docs.find((function(e){return!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})}));return{activeVersion:o,activeDoc:i,alternateDocVersions:i?(n=i.id,a={},e.versions.forEach((function(e){e.docs.forEach((function(t){t.id===n&&(a[e.name]=t)}))})),a):{}}}var c={},u=function(){var e;return null!=(e=i("docusaurus-plugin-content-docs"))?e:c},d=function(e){return function(e,t,n){void 0===t&&(t=o.m),void 0===n&&(n={});var r=i(e),a=null==r?void 0:r[t];if(!a&&n.failfast)throw new Error('Docusaurus plugin global data not found for "'+e+'" plugin with id "'+t+'".');return a}("docusaurus-plugin-content-docs",e,{failfast:!0})};function f(e){return void 0===e&&(e={}),function(e,t,n){void 0===n&&(n={});var a=Object.entries(e).sort((function(e,t){return t[1].path.localeCompare(e[1].path)})).find((function(e){var n=e[1];return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw new Error("Can't find active docs plugin for \""+t+'" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: '+Object.values(e).map((function(e){return e.path})).join(", "));return o}(u(),(0,r.TH)().pathname,e)}function p(e){return d(e).versions}function m(e){var t=d(e);return l(t)}function h(e){return s(d(e),(0,r.TH)().pathname)}function g(e){return function(e,t){var n=l(e);return{latestDocSuggestion:s(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(d(e),(0,r.TH)().pathname)}},4367:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={onRouteDidUpdate:function(e){var t=e.location,n=e.previousLocation;!n||t.pathname===n.pathname&&t.search===n.search&&t.hash===n.hash||(window.ga("set","page",t.pathname+t.search+t.hash),window.ga("send","pageview"))}}},8320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(4865),a=n.n(r);a().configure({showSpinner:!1});const o={onRouteUpdate:function(e){var t=e.location,n=e.previousLocation;if(n&&t.pathname!==n.pathname){var r=window.setTimeout((function(){a().start()}),200);return function(){return window.clearTimeout(r)}}},onRouteDidUpdate:function(){a().done()}}},7021:(e,t,n)=>{"use strict";n.r(t);var r=n(1205),a=n(412),o=n(6809);(function(e){if(a.Z.canUseDOM){var t=o.default.themeConfig.prism,r=(t=void 0===t?{}:t).additionalLanguages,i=void 0===r?[]:r;window.Prism=e,i.forEach((function(e){n(4833)("./prism-"+e)})),delete window.Prism}})(r.Z)},9471:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294);const a="iconExternalLink_nPIU";function o(e){var t=e.width,n=void 0===t?13.5:t,o=e.height,i=void 0===o?13.5:o;return r.createElement("svg",{width:n,height:i,"aria-hidden":"true",viewBox:"0 0 24 24",className:a},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},7961:(e,t,n)=>{"use strict";n.d(t,{Z:()=>It});var r=n(7294),a=n(6010),o=n(4763),i=n(1944),l=n(7462),s=n(6550),c=n(5999),u=n(5936),d="__docusaurus_skipToContent_fallback";function f(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function p(){var e=(0,r.useRef)(null),t=(0,s.k6)().action,n=(0,r.useCallback)((function(e){e.preventDefault();var t,n=null!=(t=document.querySelector("main:first-of-type"))?t:document.getElementById(d);n&&f(n)}),[]);return(0,u.S)((function(n){var r=n.location;e.current&&!r.hash&&"PUSH"===t&&f(e.current)})),{containerRef:e,onClick:n}}var m=(0,c.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function h(e){var t,n=null!=(t=e.children)?t:m,a=p(),o=a.containerRef,i=a.onClick;return r.createElement("div",{ref:o,role:"region","aria-label":m},r.createElement("a",(0,l.Z)({},e,{href:"#"+d,onClick:i}),n))}var g=n(5281),v=n(9727);const b="skipToContent_fXgn";function y(){return r.createElement(h,{className:b})}var w=n(6668),E=n(9689),k=n(3366),_=["width","height","color","strokeWidth","className"];function x(e){var t=e.width,n=void 0===t?21:t,a=e.height,o=void 0===a?21:a,i=e.color,s=void 0===i?"currentColor":i,c=e.strokeWidth,u=void 0===c?1.2:c,d=(e.className,(0,k.Z)(e,_));return r.createElement("svg",(0,l.Z)({viewBox:"0 0 15 15",width:n,height:o},d),r.createElement("g",{stroke:s,strokeWidth:u},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const S="closeButton_CVFx";function C(e){return r.createElement("button",(0,l.Z)({type:"button","aria-label":(0,c.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,a.Z)("clean-btn close",S,e.className)}),r.createElement(x,{width:14,height:14,strokeWidth:3.1}))}const T="content_knG7";function A(e){var t=(0,w.L)().announcementBar.content;return r.createElement("div",(0,l.Z)({},e,{className:(0,a.Z)(T,e.className),dangerouslySetInnerHTML:{__html:t}}))}const L="announcementBar_mb4j",N="announcementBarPlaceholder_vyr4",O="announcementBarClose_gvF7",P="announcementBarContent_xLdY";function I(){var e=(0,w.L)().announcementBar,t=(0,E.nT)(),n=t.isActive,a=t.close;if(!n)return null;var o=e.backgroundColor,i=e.textColor,l=e.isCloseable;return r.createElement("div",{className:L,style:{backgroundColor:o,color:i},role:"banner"},l&&r.createElement("div",{className:N}),r.createElement(A,{className:P}),l&&r.createElement(C,{onClick:a,className:O}))}var R=n(2961),D=n(2466);var M=n(9688),F=n(3102),B=r.createContext(null);function U(e){var t,n,a,o,i,l,s,c=e.children,u=(t=(0,R.e)(),n=(0,F.HY)(),a=(0,r.useState)(!1),o=a[0],i=a[1],l=null!==n.component,s=(0,M.D9)(l),(0,r.useEffect)((function(){l&&!s&&i(!0)}),[l,s]),(0,r.useEffect)((function(){l?t.shown||i(!0):i(!1)}),[t.shown,l]),(0,r.useMemo)((function(){return[o,i]}),[o]));return r.createElement(B.Provider,{value:u},c)}function j(e){if(e.component){var t=e.component;return r.createElement(t,e.props)}}function z(){var e=(0,r.useContext)(B);if(!e)throw new M.i6("NavbarSecondaryMenuDisplayProvider");var t=e[0],n=e[1],a=(0,r.useCallback)((function(){return n(!1)}),[n]),o=(0,F.HY)();return(0,r.useMemo)((function(){return{shown:t,hide:a,content:j(o)}}),[a,o,t])}function Z(e){var t=e.header,n=e.primaryMenu,o=e.secondaryMenu,i=z().shown;return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":i})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},o)))}var $=n(2949),H=n(2389);function V(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}function G(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}const W={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function q(e){var t=e.className,n=e.buttonClassName,o=e.value,i=e.onChange,l=(0,H.Z)(),s=(0,c.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===o?(0,c.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,c.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,a.Z)(W.toggle,t)},r.createElement("button",{className:(0,a.Z)("clean-btn",W.toggleButton,!l&&W.toggleButtonDisabled,n),type:"button",onClick:function(){return i("dark"===o?"light":"dark")},disabled:!l,title:s,"aria-label":s,"aria-live":"polite"},r.createElement(V,{className:(0,a.Z)(W.toggleIcon,W.lightToggleIcon)}),r.createElement(G,{className:(0,a.Z)(W.toggleIcon,W.darkToggleIcon)})))}const Y=r.memo(q),K="darkNavbarColorModeToggle_X3D1";function X(e){var t=e.className,n=(0,w.L)().navbar.style,a=(0,w.L)().colorMode.disableSwitch,o=(0,$.I)(),i=o.colorMode,l=o.setColorMode;return a?null:r.createElement(Y,{className:t,buttonClassName:"dark"===n?K:void 0,value:i,onChange:l})}var Q=n(1327);function J(){return r.createElement(Q.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function ee(){var e=(0,R.e)();return r.createElement("button",{type:"button","aria-label":(0,c.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:function(){return e.toggle()}},r.createElement(x,{color:"var(--ifm-color-emphasis-600)"}))}function te(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(J,null),r.createElement(X,{className:"margin-right--md"}),r.createElement(ee,null))}var ne=n(9960),re=n(4996),ae=n(3919);function oe(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var ie=n(9471),le=["activeBasePath","activeBaseRegex","to","href","label","html","isDropdownLink","prependBaseUrlToHref"];function se(e){var t=e.activeBasePath,n=e.activeBaseRegex,a=e.to,o=e.href,i=e.label,s=e.html,c=e.isDropdownLink,u=e.prependBaseUrlToHref,d=(0,k.Z)(e,le),f=(0,re.Z)(a),p=(0,re.Z)(t),m=(0,re.Z)(o,{forcePrependBaseUrl:!0}),h=i&&o&&!(0,ae.Z)(o),g=s?{dangerouslySetInnerHTML:{__html:s}}:{children:r.createElement(r.Fragment,null,i,h&&r.createElement(ie.Z,c&&{width:12,height:12}))};return o?r.createElement(ne.Z,(0,l.Z)({href:u?m:o},d,g)):r.createElement(ne.Z,(0,l.Z)({to:f,isNavLink:!0},(t||n)&&{isActive:function(e,t){return n?oe(n,t.pathname):t.pathname.startsWith(p)}},d,g))}var ce=["className","isDropdownItem"],ue=["className","isDropdownItem"],de=["mobile","position"];function fe(e){var t=e.className,n=e.isDropdownItem,o=void 0!==n&&n,i=(0,k.Z)(e,ce),s=r.createElement(se,(0,l.Z)({className:(0,a.Z)(o?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:o},i));return o?r.createElement("li",null,s):s}function pe(e){var t=e.className,n=(e.isDropdownItem,(0,k.Z)(e,ue));return r.createElement("li",{className:"menu__list-item"},r.createElement(se,(0,l.Z)({className:(0,a.Z)("menu__link",t)},n)))}function me(e){var t,n=e.mobile,a=void 0!==n&&n,o=(e.position,(0,k.Z)(e,de)),i=a?pe:fe;return r.createElement(i,(0,l.Z)({},o,{activeClassName:null!=(t=o.activeClassName)?t:a?"menu__link--active":"navbar__link--active"}))}var he=n(6043),ge=n(8596),ve=n(2263);var be=["items","position","className","onClick"],ye=["items","className","position","onClick"],we=["mobile"];function Ee(e,t){return e.some((function(e){return function(e,t){return!!(0,ge.Mg)(e.to,t)||!!oe(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)}))}function ke(e){var t,n=e.items,o=e.position,i=e.className,s=(e.onClick,(0,k.Z)(e,be)),c=(0,r.useRef)(null),u=(0,r.useState)(!1),d=u[0],f=u[1];return(0,r.useEffect)((function(){var e=function(e){c.current&&!c.current.contains(e.target)&&f(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),function(){document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[c]),r.createElement("div",{ref:c,className:(0,a.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===o,"dropdown--show":d})},r.createElement(se,(0,l.Z)({"aria-haspopup":"true","aria-expanded":d,role:"button",href:s.to?void 0:"#",className:(0,a.Z)("navbar__link",i)},s,{onClick:s.to?void 0:function(e){return e.preventDefault()},onKeyDown:function(e){"Enter"===e.key&&(e.preventDefault(),f(!d))}}),null!=(t=s.children)?t:s.label),r.createElement("ul",{className:"dropdown__menu"},n.map((function(e,t){return r.createElement($e,(0,l.Z)({isDropdownItem:!0,activeClassName:"dropdown__link--active"},e,{key:t}))}))))}function _e(e){var t,n,o=e.items,i=e.className,c=(e.position,e.onClick),u=(0,k.Z)(e,ye),d=(n=(0,ve.Z)().siteConfig.baseUrl,(0,s.TH)().pathname.replace(n,"/")),f=Ee(o,d),p=(0,he.u)({initialState:function(){return!f}}),m=p.collapsed,h=p.toggleCollapsed,g=p.setCollapsed;return(0,r.useEffect)((function(){f&&g(!f)}),[d,f,g]),r.createElement("li",{className:(0,a.Z)("menu__list-item",{"menu__list-item--collapsed":m})},r.createElement(se,(0,l.Z)({role:"button",className:(0,a.Z)("menu__link menu__link--sublist menu__link--sublist-caret",i)},u,{onClick:function(e){e.preventDefault(),h()}}),null!=(t=u.children)?t:u.label),r.createElement(he.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:m},o.map((function(e,t){return r.createElement($e,(0,l.Z)({mobile:!0,isDropdownItem:!0,onClick:c,activeClassName:"menu__link--active"},e,{key:t}))}))))}function xe(e){var t=e.mobile,n=void 0!==t&&t,a=(0,k.Z)(e,we),o=n?_e:ke;return r.createElement(o,a)}var Se=n(4711),Ce=["width","height"];function Te(e){var t=e.width,n=void 0===t?20:t,a=e.height,o=void 0===a?20:a,i=(0,k.Z)(e,Ce);return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:n,height:o,"aria-hidden":!0},i),r.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}const Ae="iconLanguage_nlXk";var Le=["mobile","dropdownItemsBefore","dropdownItemsAfter"];var Ne=n(1875);const Oe="searchBox_ZlJk";function Pe(e){var t=e.children,n=e.className;return r.createElement("div",{className:(0,a.Z)(n,Oe)},t)}var Ie=n(143),Re=n(8425),De=["docId","label","docsPluginId"];var Me=["sidebarId","label","docsPluginId"];var Fe=["label","to","docsPluginId"];var Be=n(373),Ue=["mobile","docsPluginId","dropdownActiveClassDisabled","dropdownItemsBefore","dropdownItemsAfter"],je=function(e){return e.docs.find((function(t){return t.id===e.mainDocId}))};const ze={default:me,localeDropdown:function(e){var t=e.mobile,n=e.dropdownItemsBefore,a=e.dropdownItemsAfter,o=(0,k.Z)(e,Le),i=(0,ve.Z)().i18n,u=i.currentLocale,d=i.locales,f=i.localeConfigs,p=(0,Se.l)(),m=(0,s.TH)(),h=m.search,g=m.hash,v=d.map((function(e){var n=""+("pathname://"+p.createUrl({locale:e,fullyQualified:!1}))+h+g;return{label:f[e].label,lang:f[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===u?t?"menu__link--active":"dropdown__link--active":""}})),b=[].concat(n,v,a),y=t?(0,c.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):f[u].label;return r.createElement(xe,(0,l.Z)({},o,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(Te,{className:Ae}),y),items:b}))},search:function(e){var t=e.mobile,n=e.className;return t?null:r.createElement(Pe,{className:n},r.createElement(Ne.Z,null))},dropdown:xe,html:function(e){var t=e.value,n=e.className,o=e.mobile,i=void 0!==o&&o,l=e.isDropdownItem,s=void 0!==l&&l,c=s?"li":"div";return r.createElement(c,{className:(0,a.Z)({navbar__item:!i&&!s,"menu__list-item":i},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){var t=e.docId,n=e.label,a=e.docsPluginId,o=(0,k.Z)(e,De),i=(0,Ie.Iw)(a).activeDoc,s=(0,Re.vY)(t,a);return null===s?null:r.createElement(me,(0,l.Z)({exact:!0},o,{isActive:function(){return(null==i?void 0:i.path)===s.path||!(null==i||!i.sidebar)&&i.sidebar===s.sidebar},label:null!=n?n:s.id,to:s.path}))},docSidebar:function(e){var t=e.sidebarId,n=e.label,a=e.docsPluginId,o=(0,k.Z)(e,Me),i=(0,Ie.Iw)(a).activeDoc,s=(0,Re.oz)(t,a).link;if(!s)throw new Error('DocSidebarNavbarItem: Sidebar with ID "'+t+"\" doesn't have anything to be linked to.");return r.createElement(me,(0,l.Z)({exact:!0},o,{isActive:function(){return(null==i?void 0:i.sidebar)===t},label:null!=n?n:s.label,to:s.path}))},docsVersion:function(e){var t=e.label,n=e.to,a=e.docsPluginId,o=(0,k.Z)(e,Fe),i=(0,Re.lO)(a)[0],s=null!=t?t:i.label,c=null!=n?n:function(e){return e.docs.find((function(t){return t.id===e.mainDocId}))}(i).path;return r.createElement(me,(0,l.Z)({},o,{label:s,to:c}))},docsVersionDropdown:function(e){var t=e.mobile,n=e.docsPluginId,a=e.dropdownActiveClassDisabled,o=e.dropdownItemsBefore,i=e.dropdownItemsAfter,u=(0,k.Z)(e,Ue),d=(0,s.TH)(),f=d.search,p=d.hash,m=(0,Ie.Iw)(n),h=(0,Ie.gB)(n),g=(0,Be.J)(n).savePreferredVersionName,v=h.map((function(e){var t,n=null!=(t=m.alternateDocVersions[e.name])?t:je(e);return{label:e.label,to:""+n.path+f+p,isActive:function(){return e===m.activeVersion},onClick:function(){return g(e.name)}}})),b=[].concat(o,v,i),y=(0,Re.lO)(n)[0],w=t&&b.length>1?(0,c.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):y.label,E=t&&b.length>1?void 0:je(y).path;return b.length<=1?r.createElement(me,(0,l.Z)({},u,{mobile:t,label:w,to:E,isActive:a?function(){return!1}:void 0})):r.createElement(xe,(0,l.Z)({},u,{mobile:t,label:w,to:E,items:b,isActive:a?function(){return!1}:void 0}))}};var Ze=["type"];function $e(e){var t=e.type,n=(0,k.Z)(e,Ze),a=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=ze[a];if(!o)throw new Error('No NavbarItem component found for type "'+t+'".');return r.createElement(o,n)}function He(){var e=(0,R.e)(),t=(0,w.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map((function(t,n){return r.createElement($e,(0,l.Z)({mobile:!0},t,{onClick:function(){return e.toggle()},key:n}))})))}function Ve(e){return r.createElement("button",(0,l.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(c.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function Ge(){var e=0===(0,w.L)().navbar.items.length,t=z();return r.createElement(r.Fragment,null,!e&&r.createElement(Ve,{onClick:function(){return t.hide()}}),t.content)}function We(){var e,t=(0,R.e)();return void 0===(e=t.shown)&&(e=!0),(0,r.useEffect)((function(){return document.body.style.overflow=e?"hidden":"visible",function(){document.body.style.overflow="visible"}}),[e]),t.shouldRender?r.createElement(Z,{header:r.createElement(te,null),primaryMenu:r.createElement(He,null),secondaryMenu:r.createElement(Ge,null)}):null}const qe="navbarHideable_m1mJ",Ye="navbarHidden_jGov";function Ke(e){return r.createElement("div",(0,l.Z)({role:"presentation"},e,{className:(0,a.Z)("navbar-sidebar__backdrop",e.className)}))}function Xe(e){var t=e.children,n=(0,w.L)().navbar,o=n.hideOnScroll,i=n.style,l=(0,R.e)(),s=function(e){var t=(0,r.useState)(e),n=t[0],a=t[1],o=(0,r.useRef)(!1),i=(0,r.useRef)(0),l=(0,r.useCallback)((function(e){null!==e&&(i.current=e.getBoundingClientRect().height)}),[]);return(0,D.RF)((function(t,n){var r=t.scrollY;if(e)if(r=l?a(!1):r+c0&&r.createElement(wt,{links:n}),logo:a&&r.createElement(xt,{logo:a}),copyright:t&&r.createElement(St,{copyright:t})})}const At=r.memo(Tt);var Lt=(0,M.Qc)([$.S,E.pl,D.OC,Be.L5,i.VC,function(e){var t=e.children;return r.createElement(F.n2,null,r.createElement(R.M,null,r.createElement(U,null,t)))}]);function Nt(e){var t=e.children;return r.createElement(Lt,null,t)}function Ot(e){var t=e.error,n=e.tryAgain;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(c.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("div",{className:"margin-vert--lg"},r.createElement(tt,{onClick:n,className:"button button--primary shadow--lw"})),r.createElement("hr",null),r.createElement("div",{className:"margin-vert--md"},r.createElement(nt,{error:t})))))}const Pt="mainWrapper_z2l0";function It(e){var t=e.children,n=e.noFooter,l=e.wrapperClassName,s=e.title,c=e.description;return(0,v.t)(),r.createElement(Nt,null,r.createElement(i.d,{title:s,description:c}),r.createElement(y,null),r.createElement(I,null),r.createElement(dt,null),r.createElement("div",{id:d,className:(0,a.Z)(g.k.wrapper.main,Pt,l)},r.createElement(o.Z,{fallback:function(e){return r.createElement(Ot,e)}},t)),!n&&r.createElement(At,null))}},1327:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7462),a=n(3366),o=n(7294),i=n(9960),l=n(4996),s=n(2263),c=n(6668),u=n(941),d=["imageClassName","titleClassName"];function f(e){var t=e.logo,n=e.alt,r=e.imageClassName,a={light:(0,l.Z)(t.src),dark:(0,l.Z)(t.srcDark||t.src)},i=o.createElement(u.Z,{className:t.className,sources:a,height:t.height,width:t.width,alt:n,style:t.style});return r?o.createElement("div",{className:r},i):i}function p(e){var t,n=(0,s.Z)().siteConfig.title,u=(0,c.L)().navbar,p=u.title,m=u.logo,h=e.imageClassName,g=e.titleClassName,v=(0,a.Z)(e,d),b=(0,l.Z)((null==m?void 0:m.href)||"/"),y=p?"":n,w=null!=(t=null==m?void 0:m.alt)?t:y;return o.createElement(i.Z,(0,r.Z)({to:b},v,(null==m?void 0:m.target)&&{target:m.target}),m&&o.createElement(f,{logo:m,alt:w,imageClassName:h}),null!=p&&o.createElement("b",{className:g},p))}},197:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(5742);function o(e){var t=e.locale,n=e.version,o=e.tag,i=t;return r.createElement(a.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),o&&r.createElement("meta",{name:"docusaurus_tag",content:o}),i&&r.createElement("meta",{name:"docsearch:language",content:i}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),o&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:o}))}},941:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var r=n(7462),a=n(3366),o=n(7294),i=n(6010),l=n(2389),s=n(2949);const c={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"};var u=["sources","className","alt"];function d(e){var t=(0,l.Z)(),n=(0,s.I)().colorMode,d=e.sources,f=e.className,p=e.alt,m=(0,a.Z)(e,u),h=t?"dark"===n?["dark"]:["light"]:["light","dark"];return o.createElement(o.Fragment,null,h.map((function(e){return o.createElement("img",(0,r.Z)({key:e,src:d[e],alt:p,className:(0,i.Z)(c.themedImage,c["themedImage--"+e],f)},m))})))}},6043:(e,t,n)=>{"use strict";n.d(t,{u:()=>u,z:()=>b});var r=n(7462),a=n(3366),o=n(7294),i=n(412),l=n(1442),s=["collapsed"],c=["lazy"];function u(e){var t=e.initialState,n=(0,o.useState)(null!=t&&t),r=n[0],a=n[1],i=(0,o.useCallback)((function(){a((function(e){return!e}))}),[]);return{collapsed:r,setCollapsed:a,toggleCollapsed:i}}var d={display:"none",overflow:"hidden",height:"0px"},f={display:"block",overflow:"visible",height:"auto"};function p(e,t){var n=t?d:f;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function m(e){var t=e.collapsibleRef,n=e.collapsed,r=e.animation,a=(0,o.useRef)(!1);(0,o.useEffect)((function(){var e,o=t.current;function i(){var e,t,n=o.scrollHeight,a=null!=(e=null==r?void 0:r.duration)?e:function(e){if((0,l.n)())return 1;var t=e/36;return Math.round(10*(4+15*Math.pow(t,.25)+t/5))}(n);return{transition:"height "+a+"ms "+(null!=(t=null==r?void 0:r.easing)?t:"ease-in-out"),height:n+"px"}}function s(){var e=i();o.style.transition=e.transition,o.style.height=e.height}if(!a.current)return p(o,n),void(a.current=!0);return o.style.willChange="height",e=requestAnimationFrame((function(){n?(s(),requestAnimationFrame((function(){o.style.height=d.height,o.style.overflow=d.overflow}))):(o.style.display="block",requestAnimationFrame((function(){s()})))})),function(){return cancelAnimationFrame(e)}}),[t,n,r])}function h(e){if(!i.Z.canUseDOM)return e?d:f}function g(e){var t=e.as,n=void 0===t?"div":t,r=e.collapsed,a=e.children,i=e.animation,l=e.onCollapseTransitionEnd,s=e.className,c=e.disableSSRStyle,u=(0,o.useRef)(null);return m({collapsibleRef:u,collapsed:r,animation:i}),o.createElement(n,{ref:u,style:c?void 0:h(r),onTransitionEnd:function(e){"height"===e.propertyName&&(p(u.current,r),null==l||l(r))},className:s},a)}function v(e){var t=e.collapsed,n=(0,a.Z)(e,s),i=(0,o.useState)(!t),l=i[0],c=i[1],u=(0,o.useState)(t),d=u[0],f=u[1];return(0,o.useLayoutEffect)((function(){t||c(!0)}),[t]),(0,o.useLayoutEffect)((function(){l&&f(t)}),[l,t]),l?o.createElement(g,(0,r.Z)({},n,{collapsed:d})):null}function b(e){var t=e.lazy,n=(0,a.Z)(e,c),r=t?v:g;return o.createElement(r,n)}},9689:(e,t,n)=>{"use strict";n.d(t,{nT:()=>m,pl:()=>p});var r=n(7294),a=n(2389),o=n(12),i=n(9688),l=n(6668),s=(0,o.WA)("docusaurus.announcement.dismiss"),c=(0,o.WA)("docusaurus.announcement.id"),u=function(){return"true"===s.get()},d=function(e){return s.set(String(e))},f=r.createContext(null);function p(e){var t=e.children,n=function(){var e=(0,l.L)().announcementBar,t=(0,a.Z)(),n=(0,r.useState)((function(){return!!t&&u()})),o=n[0],i=n[1];(0,r.useEffect)((function(){i(u())}),[]);var s=(0,r.useCallback)((function(){d(!0),i(!0)}),[]);return(0,r.useEffect)((function(){if(e){var t=e.id,n=c.get();"annoucement-bar"===n&&(n="announcement-bar");var r=t!==n;c.set(t),r&&d(!1),!r&&u()||i(!1)}}),[e]),(0,r.useMemo)((function(){return{isActive:!!e&&!o,close:s}}),[e,o,s])}();return r.createElement(f.Provider,{value:n},t)}function m(){var e=(0,r.useContext)(f);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},2949:(e,t,n)=>{"use strict";n.d(t,{I:()=>g,S:()=>h});var r=n(7294),a=n(412),o=n(9688),i=n(12),l=n(6668),s=r.createContext(void 0),c="theme",u=(0,i.WA)(c),d="light",f="dark",p=function(e){return e===f?f:d};function m(){var e=(0,l.L)().colorMode,t=e.defaultMode,n=e.disableSwitch,o=e.respectPrefersColorScheme,i=(0,r.useState)(function(e){return a.Z.canUseDOM?p(document.documentElement.getAttribute("data-theme")):p(e)}(t)),s=i[0],m=i[1];(0,r.useEffect)((function(){n&&u.del()}),[n]);var h=(0,r.useCallback)((function(e,n){void 0===n&&(n={});var r=n.persist,a=void 0===r||r;e?(m(e),a&&function(e){u.set(p(e))}(e)):(m(o?window.matchMedia("(prefers-color-scheme: dark)").matches?f:d:t),u.del())}),[o,t]);(0,r.useEffect)((function(){document.documentElement.setAttribute("data-theme",p(s))}),[s]),(0,r.useEffect)((function(){if(!n){var e=function(e){if(e.key===c){var t=u.get();null!==t&&h(p(t))}};return window.addEventListener("storage",e),function(){return window.removeEventListener("storage",e)}}}),[n,h]);var g=(0,r.useRef)(!1);return(0,r.useEffect)((function(){if(!n||o){var e=window.matchMedia("(prefers-color-scheme: dark)"),t=function(){window.matchMedia("print").matches||g.current?g.current=window.matchMedia("print").matches:h(null)};return e.addListener(t),function(){return e.removeListener(t)}}}),[h,n,o]),(0,r.useMemo)((function(){return{colorMode:s,setColorMode:h,get isDarkTheme(){return s===f},setLightTheme:function(){h(d)},setDarkTheme:function(){h(f)}}}),[s,h])}function h(e){var t=e.children,n=m();return r.createElement(s.Provider,{value:n},t)}function g(){var e=(0,r.useContext)(s);if(null==e)throw new o.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},373:(e,t,n)=>{"use strict";n.d(t,{J:()=>y,L5:()=>v});var r=n(7294),a=n(143),o=n(9935),i=n(6668),l=n(8425),s=n(9688),c=n(12),u=function(e){return"docs-preferred-version-"+e},d=function(e,t,n){(0,c.WA)(u(e),{persistence:t}).set(n)},f=function(e,t){return(0,c.WA)(u(e),{persistence:t}).get()},p=function(e,t){(0,c.WA)(u(e),{persistence:t}).del()};var m=r.createContext(null);function h(){var e=(0,a._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((function(){return Object.keys(e)}),[e]),o=(0,r.useState)((function(){return function(e){return Object.fromEntries(e.map((function(e){return[e,{preferredVersionName:null}]})))}(n)})),l=o[0],s=o[1];return(0,r.useEffect)((function(){s(function(e){var t=e.pluginIds,n=e.versionPersistence,r=e.allDocsData;return Object.fromEntries(t.map((function(e){return[e,(t=e,a=f(t,n),r[t].versions.some((function(e){return e.name===a}))?{preferredVersionName:a}:(p(t,n),{preferredVersionName:null}))];var t,a})))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]),[l,(0,r.useMemo)((function(){return{savePreferredVersion:function(e,n){d(e,t,n),s((function(t){var r;return Object.assign({},t,((r={})[e]={preferredVersionName:n},r))}))}}}),[t])]}function g(e){var t=e.children,n=h();return r.createElement(m.Provider,{value:n},t)}function v(e){var t=e.children;return l.cE?r.createElement(g,null,t):r.createElement(r.Fragment,null,t)}function b(){var e=(0,r.useContext)(m);if(!e)throw new s.i6("DocsPreferredVersionContextProvider");return e}function y(e){var t;void 0===e&&(e=o.m);var n=(0,a.zh)(e),i=b(),l=i[0],s=i[1],c=l[e].preferredVersionName;return{preferredVersion:null!=(t=n.versions.find((function(e){return e.name===c})))?t:null,savePreferredVersionName:(0,r.useCallback)((function(t){s.savePreferredVersion(e,t)}),[s,e])}}},1116:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,b:()=>l});var r=n(7294),a=n(9688),o=Symbol("EmptyContext"),i=r.createContext(o);function l(e){var t=e.children,n=e.name,a=e.items,o=(0,r.useMemo)((function(){return n&&a?{name:n,items:a}:null}),[n,a]);return r.createElement(i.Provider,{value:o},t)}function s(){var e=(0,r.useContext)(i);if(e===o)throw new a.i6("DocsSidebarProvider");return e}},4477:(e,t,n)=>{"use strict";n.d(t,{E:()=>l,q:()=>i});var r=n(7294),a=n(9688),o=r.createContext(null);function i(e){var t=e.children,n=e.version;return r.createElement(o.Provider,{value:n},t)}function l(){var e=(0,r.useContext)(o);if(null===e)throw new a.i6("DocsVersionProvider");return e}},2961:(e,t,n)=>{"use strict";n.d(t,{M:()=>f,e:()=>p});var r=n(7294),a=n(3102),o=n(7524),i=n(6550),l=(n(1688),n(9688));function s(e){!function(e){var t=(0,i.k6)(),n=(0,l.zX)(e);(0,r.useEffect)((function(){return t.block((function(e,t){return n(e,t)}))}),[t,n])}((function(t,n){if("POP"===n)return e(t,n)}))}var c=n(6668),u=r.createContext(void 0);function d(){var e,t=(e=(0,a.HY)(),0===(0,c.L)().navbar.items.length&&!e.component),n=(0,o.i)(),i=!t&&"mobile"===n,l=(0,r.useState)(!1),u=l[0],d=l[1];s((function(){if(u)return d(!1),!1}));var f=(0,r.useCallback)((function(){d((function(e){return!e}))}),[]);return(0,r.useEffect)((function(){"desktop"===n&&d(!1)}),[n]),(0,r.useMemo)((function(){return{disabled:t,shouldRender:i,toggle:f,shown:u}}),[t,i,f,u])}function f(e){var t=e.children,n=d();return r.createElement(u.Provider,{value:n},t)}function p(){var e=r.useContext(u);if(void 0===e)throw new l.i6("NavbarMobileSidebarProvider");return e}},3102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>s,n2:()=>i});var r=n(7294),a=n(9688),o=r.createContext(null);function i(e){var t=e.children,n=(0,r.useState)({component:null,props:null});return r.createElement(o.Provider,{value:n},t)}function l(){var e=(0,r.useContext)(o);if(!e)throw new a.i6("NavbarSecondaryMenuContentProvider");return e[0]}function s(e){var t=e.component,n=e.props,i=(0,r.useContext)(o);if(!i)throw new a.i6("NavbarSecondaryMenuContentProvider");var l=i[1],s=(0,a.Ql)(n);return(0,r.useEffect)((function(){l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((function(){return function(){return l({component:null,props:null})}}),[l]),null}},9727:(e,t,n)=>{"use strict";n.d(t,{h:()=>a,t:()=>o});var r=n(7294),a="navigation-with-keyboard";function o(){(0,r.useEffect)((function(){function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),function(){document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},7524:(e,t,n)=>{"use strict";n.d(t,{i:()=>c});var r=n(7294),a=n(412),o="desktop",i="mobile",l="ssr";function s(){return a.Z.canUseDOM?window.innerWidth>996?o:i:l}function c(){var e=(0,r.useState)((function(){return s()})),t=e[0],n=e[1];return(0,r.useEffect)((function(){function e(){n(s())}return window.addEventListener("resize",e),function(){window.removeEventListener("resize",e),clearTimeout(undefined)}}),[]),t}},5281:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});var r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:function(e){return"theme-admonition-"+e}},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:function(e){return"theme-doc-sidebar-item-category-level-"+e},docSidebarItemLinkLevel:function(e){return"theme-doc-sidebar-item-link-level-"+e}},blog:{}}},1442:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>r})},8425:(e,t,n)=>{"use strict";function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[a++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}n.d(t,{MN:()=>C,Wl:()=>g,_F:()=>y,cE:()=>m,jA:()=>v,xz:()=>h,hI:()=>S,lO:()=>k,vY:()=>x,oz:()=>_,s1:()=>E});var o=n(7294),i=n(6550),l=n(8790),s=n(143),c=n(373),u=n(4477),d=n(1116);function f(e){return Array.from(new Set(e))}var p=n(8596),m=!!s._r;function h(e){var t=(0,u.E)();if(e){var n=t.docs[e];if(!n)throw new Error("no version doc found by id="+e);return n}}function g(e){if(e.href)return e.href;for(var t,n=a(e.items);!(t=n()).done;){var r=t.value;if("link"===r.type)return r.href;if("category"===r.type){var o=g(r);if(o)return o}}}function v(){var e=(0,i.TH)().pathname,t=(0,d.V)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");var n=w({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];if(!n)throw new Error(e+" is not associated with a category. useCurrentSidebarCategory() should only be used on category index pages.");return n}var b=function(e,t){return void 0!==e&&(0,p.Mg)(e,t)};function y(e,t){return"link"===e.type?b(e.href,t):"category"===e.type&&(b(e.href,t)||function(e,t){return e.some((function(e){return y(e,t)}))}(e.items,t))}function w(e){var t=e.sidebarItems,n=e.pathname,r=e.onlyCategories,o=void 0!==r&&r,i=[];return function e(t){for(var r,l=a(t);!(r=l()).done;){var s=r.value;if("category"===s.type&&((0,p.Mg)(s.href,n)||e(s.items))||"link"===s.type&&(0,p.Mg)(s.href,n))return o&&"category"!==s.type||i.unshift(s),!0}return!1}(t),i}function E(){var e,t=(0,d.V)(),n=(0,i.TH)().pathname;return!1!==(null==(e=(0,s.gA)())?void 0:e.pluginData.breadcrumbs)&&t?w({sidebarItems:t.items,pathname:n}):null}function k(e){var t=(0,s.Iw)(e).activeVersion,n=(0,c.J)(e).preferredVersion,r=(0,s.yW)(e);return(0,o.useMemo)((function(){return f([t,n,r].filter(Boolean))}),[t,n,r])}function _(e,t){var n=k(t);return(0,o.useMemo)((function(){var t=n.flatMap((function(e){return e.sidebars?Object.entries(e.sidebars):[]})),r=t.find((function(t){return t[0]===e}));if(!r)throw new Error("Can't find any sidebar with id \""+e+'" in version'+(n.length>1?"s":"")+" "+n.map((function(e){return e.name})).join(", ")+'".\nAvailable sidebar ids are:\n- '+t.map((function(e){return e[0]})).join("\n- "));return r[1]}),[e,n])}function x(e,t){var n=k(t);return(0,o.useMemo)((function(){var t=n.flatMap((function(e){return e.docs})),r=t.find((function(t){return t.id===e}));if(!r){if(n.flatMap((function(e){return e.draftIds})).includes(e))return null;throw new Error("Couldn't find any doc with id \""+e+'" in version'+(n.length>1?"s":"")+' "'+n.map((function(e){return e.name})).join(", ")+'".\nAvailable doc ids are:\n- '+f(t.map((function(e){return e.id}))).join("\n- "))}return r}),[e,n])}function S(e){var t=e.route,n=e.versionMetadata,r=(0,i.TH)(),a=t.routes,o=a.find((function(e){return(0,i.LX)(r.pathname,e)}));if(!o)return null;var s=o.sidebar,c=s?n.docsSidebars[s]:void 0;return{docElement:(0,l.H)(a),sidebarName:s,sidebarItems:c}}function C(e){return e.filter((function(e){return"category"!==e.type||!!g(e)}))}},1944:(e,t,n)=>{"use strict";n.d(t,{FG:()=>f,d:()=>u,VC:()=>p});var r=n(7294),a=n(6010),o=n(5742),i=n(226);function l(){var e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var s=n(4996),c=n(2263);function u(e){var t=e.title,n=e.description,a=e.keywords,i=e.image,l=e.children,u=function(e){var t=(0,c.Z)().siteConfig,n=t.title,r=t.titleDelimiter;return null!=e&&e.trim().length?e.trim()+" "+r+" "+n:n}(t),d=(0,s.C)().withBaseUrl,f=i?d(i,{absolute:!0}):void 0;return r.createElement(o.Z,null,t&&r.createElement("title",null,u),t&&r.createElement("meta",{property:"og:title",content:u}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),a&&r.createElement("meta",{name:"keywords",content:Array.isArray(a)?a.join(","):a}),f&&r.createElement("meta",{property:"og:image",content:f}),f&&r.createElement("meta",{name:"twitter:image",content:f}),l)}var d=r.createContext(void 0);function f(e){var t=e.className,n=e.children,i=r.useContext(d),l=(0,a.Z)(i,t);return r.createElement(d.Provider,{value:l},r.createElement(o.Z,null,r.createElement("html",{className:l})),n)}function p(e){var t=e.children,n=l(),o="plugin-"+n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,""),i="plugin-id-"+n.plugin.id;return r.createElement(f,{className:(0,a.Z)(o,i)},t)}},9688:(e,t,n)=>{"use strict";n.d(t,{i6:()=>m,Qc:()=>g,zX:()=>f,D9:()=>p,Ql:()=>h});var r=n(6528),a=n(4578);function o(e){return o=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},o(e)}var i=n(9611);function l(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function s(e,t,n){return s=l()?Reflect.construct.bind():function(e,t,n){var r=[null];r.push.apply(r,t);var a=new(Function.bind.apply(e,r));return n&&(0,i.Z)(a,n.prototype),a},s.apply(null,arguments)}function c(e){var t="function"==typeof Map?new Map:void 0;return c=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return s(e,arguments,o(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),(0,i.Z)(r,e)},c(e)}var u=n(7294),d=n(412).Z.canUseDOM?u.useLayoutEffect:u.useEffect;function f(e){var t=(0,u.useRef)(e);return d((function(){t.current=e}),[e]),(0,u.useCallback)((function(){return t.current.apply(t,arguments)}),[])}function p(e){var t=(0,u.useRef)();return d((function(){t.current=e})),t.current}var m=function(e){function t(t,n){var a,o,i,l,s;return(s=e.call(this)||this).name="ReactContextError",s.message="Hook "+(null!=(a=null==(o=s.stack)||null==(i=o.split("\n")[1])||null==(l=i.match((0,r.Z)(/at (?:\w+\.)?(\w+)/,{name:1})))?void 0:l.groups.name)?a:"")+" is called outside the <"+t+">. "+(null!=n?n:""),s}return(0,a.Z)(t,e),t}(c(Error));function h(e){var t=Object.entries(e);return t.sort((function(e,t){return e[0].localeCompare(t[0])})),(0,u.useMemo)((function(){return e}),t.flat())}function g(e){return function(t){var n=t.children;return u.createElement(u.Fragment,null,e.reduceRight((function(e,t){return u.createElement(t,null,e)}),n))}}},8596:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>l});var r=n(7294),a=n(723),o=n(2263);function i(e,t){var n=function(e){var t;return null==(t=!e||e.endsWith("/")?e:e+"/")?void 0:t.toLowerCase()};return n(e)===n(t)}function l(){var e=(0,o.Z)().siteConfig.baseUrl;return(0,r.useMemo)((function(){return function(e){var t=e.baseUrl;function n(e){return e.path===t&&!0===e.exact}function r(e){return e.path===t&&!e.exact}return function e(t){if(0!==t.length)return t.find(n)||e(t.filter(r).flatMap((function(e){var t;return null!=(t=e.routes)?t:[]})))}(e.routes)}({routes:a.Z,baseUrl:e})}),[e])}},2466:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>f,OC:()=>s,RF:()=>d});var r=n(7294),a=n(412),o=n(2389),i=n(9688);var l=r.createContext(void 0);function s(e){var t,n=e.children,a=(t=(0,r.useRef)(!0),(0,r.useMemo)((function(){return{scrollEventsEnabledRef:t,enableScrollEvents:function(){t.current=!0},disableScrollEvents:function(){t.current=!1}}}),[]));return r.createElement(l.Provider,{value:a},n)}function c(){var e=(0,r.useContext)(l);if(null==e)throw new i.i6("ScrollControllerProvider");return e}var u=function(){return a.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null};function d(e,t){void 0===t&&(t=[]);var n=c().scrollEventsEnabledRef,a=(0,r.useRef)(u()),o=(0,i.zX)(e);(0,r.useEffect)((function(){var e=function(){if(n.current){var e=u();o(e,a.current),a.current=e}},t={passive:!0};return e(),window.addEventListener("scroll",e,t),function(){return window.removeEventListener("scroll",e,t)}}),[o,n].concat(t))}function f(){var e=(0,r.useRef)(null),t=(0,o.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:function(n){e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),function(){}}(n):function(e){var t=null,n=document.documentElement.scrollTop>e;return function r(){var a=document.documentElement.scrollTop;(n&&a>e||!n&&a{"use strict";n.d(t,{HX:()=>r,os:()=>a});n(2263);var r="default";function a(e,t){return"docs-"+e+"-"+t}},12:(e,t,n)=>{"use strict";n.d(t,{WA:()=>s});n(7294),n(1688);var r="localStorage";function a(e){var t=e.key,n=e.oldValue,r=e.newValue,a=e.storage;if(n!==r){var o=document.createEvent("StorageEvent");o.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(o)}}function o(e){if(void 0===e&&(e=r),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,i||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),i=!0),null}var t}var i=!1;var l={get:function(){return null},set:function(){},del:function(){},listen:function(){return function(){}}};function s(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error('Illegal storage API usage for storage key "'+e+'".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.')}return{get:t,set:t,del:t,listen:t}}(e);var n=o(null==t?void 0:t.persistence);return null===n?l:{get:function(){try{return n.getItem(e)}catch(t){return console.error("Docusaurus storage error, can't get key="+e,t),null}},set:function(t){try{var r=n.getItem(e);n.setItem(e,t),a({key:e,oldValue:r,newValue:t,storage:n})}catch(o){console.error("Docusaurus storage error, can't set "+e+"="+t,o)}},del:function(){try{var t=n.getItem(e);n.removeItem(e),a({key:e,oldValue:t,newValue:null,storage:n})}catch(r){console.error("Docusaurus storage error, can't delete key="+e,r)}},listen:function(t){try{var r=function(r){r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),function(){return window.removeEventListener("storage",r)}}catch(a){return console.error("Docusaurus storage error, can't listen for changes of key="+e,a),function(){}}}}}},4711:(e,t,n)=>{"use strict";n.d(t,{l:()=>o});var r=n(2263),a=n(6550);function o(){var e=(0,r.Z)(),t=e.siteConfig,n=t.baseUrl,o=t.url,i=e.i18n,l=i.defaultLocale,s=i.currentLocale,c=(0,a.TH)().pathname,u=s===l?n:n.replace("/"+s+"/","/"),d=c.replace(n,"");return{createUrl:function(e){var t=e.locale;return""+(e.fullyQualified?o:"")+function(e){return e===l?""+u:""+u+e+"/"}(t)+d}}}},5936:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(7294),a=n(6550),o=n(9688);function i(e){var t=(0,a.TH)(),n=(0,o.D9)(t),i=(0,o.zX)(e);(0,r.useEffect)((function(){n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},6668:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(2263);function a(){return(0,r.Z)().siteConfig.themeConfig}},8802:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n=t.trailingSlash,r=t.baseUrl;if(e.startsWith("#"))return e;if(void 0===n)return e;var a,o=e.split(/[#?]/)[0],i="/"===o||o===r?o:(a=o,n?function(e){return e.endsWith("/")?e:e+"/"}(a):function(e){return e.endsWith("/")?e.slice(0,-1):e}(a));return e.replace(o,i)}},4143:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t].concat(e(t.cause)):[t]}},8780:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var a=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}});var o=n(4143);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return o.getErrorCausalChain}})},6010:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;ta});const a=function(){for(var e,t,n=0,a="";n{"use strict";n.d(t,{lX:()=>w,q_:()=>C,ob:()=>p,PP:()=>A,Ep:()=>f});var r=n(7462);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r=0;f--){var p=i[f];"."===p?o(i,f):".."===p?(o(i,f),d++):d&&(o(i,f),d--)}if(!c)for(;d--;d)i.unshift("..");!c||""===i[0]||i[0]&&a(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var l=n(8776);function s(e){return"/"===e.charAt(0)?e:"/"+e}function c(e){return"/"===e.charAt(0)?e.substr(1):e}function u(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function f(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function p(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=p(e,t,h(),w.location);u.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t{"use strict";var r=n(9864),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||a}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var a=p(n);a&&a!==m&&e(t,a,r)}var i=u(n);d&&(i=i.concat(d(n)));for(var l=s(t),h=s(n),g=0;g{"use strict";e.exports=function(e,t,n,r,a,o,i,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,a,o,i,l],u=0;(s=new Error(t.replace(/%s/g,(function(){return c[u++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},2497:(e,t,n)=>{"use strict";n.r(t)},2295:(e,t,n)=>{"use strict";n.r(t)},4865:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function a(e,t,n){return en?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),c=o.querySelector(r.barSelector),u=r.speed,d=r.easing;return o.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(c,i(e,u,d)),1===e?(s(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){s(o,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,i=t.querySelector(r.barSelector),l=e?"-100":o(n.status||0),c=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&p(a),c!=document.body&&u(c,"nprogress-custom-parent"),c.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&p(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[2])}}();function c(e,t){return("string"==typeof e?e:f(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=f(e),r=n+t;c(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=f(e);c(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function f(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function p(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},7418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function a(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(a){return!1}}()?Object.assign:function(e,o){for(var i,l,s=a(e),c=1;c{Prism.languages.fortran={"quoted-number":{pattern:/[BOZ](['"])[A-F0-9]+\1/i,alias:"number"},string:{pattern:/(?:\b\w+_)?(['"])(?:\1\1|&(?:\r\n?|\n)(?:[ \t]*!.*(?:\r\n?|\n)|(?![ \t]*!))|(?!\1).)*(?:\1|&)/,inside:{comment:{pattern:/(&(?:\r\n?|\n)\s*)!.*/,lookbehind:!0}}},comment:{pattern:/!.*/,greedy:!0},boolean:/\.(?:FALSE|TRUE)\.(?:_\w+)?/i,number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[ED][+-]?\d+)?(?:_\w+)?/i,keyword:[/\b(?:CHARACTER|COMPLEX|DOUBLE ?PRECISION|INTEGER|LOGICAL|REAL)\b/i,/\b(?:END ?)?(?:BLOCK ?DATA|DO|FILE|FORALL|FUNCTION|IF|INTERFACE|MODULE(?! PROCEDURE)|PROGRAM|SELECT|SUBROUTINE|TYPE|WHERE)\b/i,/\b(?:ALLOCATABLE|ALLOCATE|BACKSPACE|CALL|CASE|CLOSE|COMMON|CONTAINS|CONTINUE|CYCLE|DATA|DEALLOCATE|DIMENSION|DO|END|EQUIVALENCE|EXIT|EXTERNAL|FORMAT|GO ?TO|IMPLICIT(?: NONE)?|INQUIRE|INTENT|INTRINSIC|MODULE PROCEDURE|NAMELIST|NULLIFY|OPEN|OPTIONAL|PARAMETER|POINTER|PRINT|PRIVATE|PUBLIC|READ|RETURN|REWIND|SAVE|SELECT|STOP|TARGET|WHILE|WRITE)\b/i,/\b(?:ASSIGNMENT|DEFAULT|ELEMENTAL|ELSE|ELSEIF|ELSEWHERE|ENTRY|IN|INCLUDE|INOUT|KIND|NULL|ONLY|OPERATOR|OUT|PURE|RECURSIVE|RESULT|SEQUENCE|STAT|THEN|USE)\b/i],operator:[/\*\*|\/\/|=>|[=\/]=|[<>]=?|::|[+\-*=%]|\.[A-Z]+\./i,{pattern:/(^|(?!\().)\/(?!\))/,lookbehind:!0}],punctuation:/\(\/|\/\)|[(),;:&]/}},4833:(e,t,n)=>{var r={"./prism-fortran":7915};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=4833},2703:(e,t,n)=>{"use strict";var r=n(414);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},5697:(e,t,n)=>{e.exports=n(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,t,n)=>{"use strict";var r=n(7294),a=n(7418),o=n(3840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n