{"action":"created","comment":{"url":"https://api.github.com/repos/Cantera/cantera/pulls/comments/33654277","id":33654277,"diff_hunk":"@@ -195,3 +181,230 @@ temperature:\n \n     m c_p \\frac{dT}{dt} = - \\dot{Q} - \\sum_k h_k \\dot{m}_{k,gen}\n         + \\sum_{in} \\dot{m}_{in} \\left(h_{in} - \\sum_k h_k Y_{k,in} \\right)\n+\n+\n+Wall Interactions\n+-----------------\n+\n+The total rate of heat transfer through all walls is:\n+\n+.. math::\n+\n+    \\dot{Q} = \\sum_w f_w \\dot{Q}_w\n+\n+where `f_w = \\pm 1` indicates the facing of the wall.\n+\n+In case of surface reactions, there is a net generation (or\n+destruction) of homogeneous phase species at the wall. The molar rate of production for each species `k` on wall `w` is `\\dot{s}_{k,w}` (in kmol/s/m\\ :sup:`2`). The total (mass) production rate for species `k` on all walls is:\n+\n+.. math::\n+\n+    \\dot{m}_{k,wall} = W_k \\sum_w A_w \\dot{s}_{k,w}\n+\n+where `W_k` is the molecular weight of species `k` and `A_w` is the area of\n+each wall. The net mass flux from all walls is then:\n+\n+.. math::\n+\n+    \\dot{m}_{wall} = \\sum_k \\dot{m}_{k,wall}\n+\n+\n+Reactor Networks and Devices\n+============================\n+\n+While reactors by themselves just define the above governing equations of the reactor, the time integration is performed in reactor networks. A reactor network is therefore necessary even if only a single reactor is considered.\n+\n+The advantage of reactor networks obviously is that multiple reactors can be interconnected. Not only mass flow from one reactor into another can be realized, but also heat can be transferred, or the wall between reactors can move. To set up a network, the following components can be defined in addition to the reactors previously mentioned:\n+\n+- **Reservoir**: A reservoir can be thought of as an infinitely large volume, in which all states are predefined and never change from their initial values. Typically, it represents a vessel to define temperature and composition of a stream of mass flowing into a reactor, or the ambient fluid surrounding the reactor network. Besides, the fluid flow finally finally exiting a reactor network has to flow into a reservoir. In the latter case, the state of the reservoir (except pressure) is irrelevant.\n+\n+- **Wall**: A wall separates two reactors, or a reactor and a reservoir. A wall has a finite area, may conduct or radiate heat between the two reactors on either side, and may move like a piston.\n+\n+ Walls are stateless objects in Cantera, meaning that no differential equation is integrated to determine any wall property. Since it is the wall (piston) velocity that enters the energy equation, this means that it is the velocity, not the acceleration or displacement, that is specified. The wall velocity is computed from\n+\n+ .. math:: v = K(P_{\\rm left} - P_{\\rm right}) + v_0(t),\n+\n+ where :math:`K` is a non-negative constant, and :math:`v_0(t)` is a specified function of time. The velocity is positive if the wall is moving to the right.\n+\n+ The heat flux through the wall is computed from\n+\n+ .. math:: q = U(T_{\\rm left} - T_{\\rm right}) + \\epsilon\\sigma (T_{\\rm left}^4 - T_{\\rm right}^4) + q_0(t),\n+\n+ where :math:`U` is the overall heat transfer coefficient for conduction/convection, and :math:`\\epsilon` is the emissivity. The function :math:`q_0(t)` is a specified function of time. The heat flux is positive when heat flows from the reactor on the left to the reactor on the right.\n+\n+ A heterogeneous reaction mechanism may be specified for one or both of the wall surfaces. The mechanism object (typically an instance of class Interface) must be constructed so that it is properly linked to the object representing the fluid in the reactor the surface in question faces. The surface temperature on each side is taken to be equal to the temperature of the reactor it faces.\n+\n+ Source: `Python <cython/zerodim.html#wall>`_ | `C++ <../../doxygen/html/classCantera_1_1Wall.html>`_\n+\n+- **Valve**: A valve is a flow devices with mass flow rate that is a function of the pressure drop across it. The default behavior is linear:\n+\n+ .. math:: \\dot m = K_v (P_1 - P_2)\n+\n+ if :math:`P_1 > P_2.` Otherwise, :math:`\\dot m = 0`. However, an arbitrary function can also be specified, such that\n+\n+ .. math:: \\dot m = F(P_1 - P_2)\n+\n+ if :math:`P_1 > P_2`, or :math:`\\dot m = 0` otherwise. It is never possible for the flow to reverse and go from the downstream to the upstream reactor/reservoir through a line containing a Valve object.\n+\n+ Valve objects are often used between an upstream reactor and a downstream reactor or reservoir to maintain them both at nearly the same pressure. By setting the constant :math:`K_v` to a sufficiently large value, very small pressure differences will result in flow between the reactors that counteracts the pressure difference.\n+\n+- **Mass Flow Controller**: A mass flow controller maintains a specified mass flow rate independent of upstream and downstream conditions. The equation used to compute the mass flow rate is\n+\n+ .. math:: \\dot m = \\max(\\dot m_0, 0.0)\n+\n+ where :math:`\\dot m_0` is either a constant value or a function of time. Note that if :math:`\\dot m_0 < 0`, the mass flow rate will be set to zero, since reversal of the flow direction is not allowed.\n+\n+ Unlike a real mass flow controller, a MassFlowController object will maintain the flow even if the downstream pressure is greater than the upstream pressure. This allows simple implementation of loops, in which exhaust gas from a reactor is fed back into it through an inlet. But note that this capability should be used with caution, since no account is taken of the work required to do this.\n+\n+- **Pressure Controller**: A pressure controller is designed to be used in conjunction with another 'master' flow controller, typically a MassFlowController. The master flow controller is installed on the inlet of the reactor, and the corresponding PressureController is installed on on outlet of the reactor. The PressureController mass flow rate is equal to the master mass flow rate, plus a small correction dependent on the pressure difference:\n+\n+ .. math:: \\dot m = \\dot m_{\\rm master} + K_v(P_1 - P_2).\n+\n+\n+Time Integration\n+----------------\n+\n+Cantera provides an ODE solver for solving the stiff equations of reacting systems. If installed in combination with SUNDIALS, their optimized solver is used. Starting off the current state of the system, it can be advanced in time by two methods:\n+\n+- ``step()``: The step method computes the state of the system at the a priori unspecified time `t_{\\rm new}`. The time `t_{\\rm new}` is internally computed so that all states of the system only change within a (specifiable) band of absolute and relative tolerances. Additionally, the time step must not be larger than a predefined maximum time step `\\Delta t_{\\rm max}`. The new time `t_{\\rm new}` is returned by this function.\n+\n+- ``advance``\\ `(t_{\\rm new})`: This method computes the state of the system at time `t_{\\rm new}`, where `t_{\\rm new}` describes the absolute time from the initial time of the system. By calling this method in a for loop for pre-defined times, the state of the system is obtained for exactly the times specified. Internally, several ``step()`` calls are typically performed to reach the accurate state at time `t_{\\rm new}`.\n+\n+The use of the ``advance`` method in a loop has the advantage that it produces results corresponding to a predefined time series. These are associated with a predefined memory consumption and well comparable between simulation runs with different parameters. However, some detail (e.g. a fast ignition process) might not be resolved in the output data due to the typically large time steps.\n+\n+The ``step`` method results in much more data points because of the small timesteps needed. Additionally, the absolute time has to be kept tracked of manually.\n+\n+Even though Cantera comes pre-defined with typical parameters for tolerances and the maximum internal time step, the solution sometimes diverges. This is typically due to a too large value of the maximum time step. By reducing this value, convergence can often be achieved. However, this results in larger computation times. When computing reactor networks with variable time scales, the time step can also be changed on the fly (see also example `ic_engine.py <cython/examples/reactors_ic_engine.html>`_.).","path":"doc/sphinx/reactors.rst","position":308,"original_position":308,"commit_id":"cc7b58811a560261b43c29c732a4aeea6238f451","original_commit_id":"cc7b58811a560261b43c29c732a4aeea6238f451","user":{"login":"thomasfiala","id":6306137,"avatar_url":"https://avatars.githubusercontent.com/u/6306137?v=3","gravatar_id":"","url":"https://api.github.com/users/thomasfiala","html_url":"https://github.com/thomasfiala","followers_url":"https://api.github.com/users/thomasfiala/followers","following_url":"https://api.github.com/users/thomasfiala/following{/other_user}","gists_url":"https://api.github.com/users/thomasfiala/gists{/gist_id}","starred_url":"https://api.github.com/users/thomasfiala/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thomasfiala/subscriptions","organizations_url":"https://api.github.com/users/thomasfiala/orgs","repos_url":"https://api.github.com/users/thomasfiala/repos","events_url":"https://api.github.com/users/thomasfiala/events{/privacy}","received_events_url":"https://api.github.com/users/thomasfiala/received_events","type":"User","site_admin":false},"body":"I faced this problem in the ic_engine example, where valves open and close instantaneously. Reducing the maximum time step solved it for me (see also the code below).\r\nPossibly, should this mention be moved to a \"troubleshooting/FAQ\" section?","created_at":"2015-07-01T07:26:03Z","updated_at":"2015-07-01T07:26:03Z","html_url":"https://github.com/Cantera/cantera/pull/281#discussion_r33654277","pull_request_url":"https://api.github.com/repos/Cantera/cantera/pulls/281","_links":{"self":{"href":"https://api.github.com/repos/Cantera/cantera/pulls/comments/33654277"},"html":{"href":"https://github.com/Cantera/cantera/pull/281#discussion_r33654277"},"pull_request":{"href":"https://api.github.com/repos/Cantera/cantera/pulls/281"}}},"pull_request":{"url":"https://api.github.com/repos/Cantera/cantera/pulls/281","id":38783341,"html_url":"https://github.com/Cantera/cantera/pull/281","diff_url":"https://github.com/Cantera/cantera/pull/281.diff","patch_url":"https://github.com/Cantera/cantera/pull/281.patch","issue_url":"https://api.github.com/repos/Cantera/cantera/issues/281","number":281,"state":"open","locked":false,"title":"Improve documentation for Reactor Networks and add two Python tutorials","user":{"login":"thomasfiala","id":6306137,"avatar_url":"https://avatars.githubusercontent.com/u/6306137?v=3","gravatar_id":"","url":"https://api.github.com/users/thomasfiala","html_url":"https://github.com/thomasfiala","followers_url":"https://api.github.com/users/thomasfiala/followers","following_url":"https://api.github.com/users/thomasfiala/following{/other_user}","gists_url":"https://api.github.com/users/thomasfiala/gists{/gist_id}","starred_url":"https://api.github.com/users/thomasfiala/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thomasfiala/subscriptions","organizations_url":"https://api.github.com/users/thomasfiala/orgs","repos_url":"https://api.github.com/users/thomasfiala/repos","events_url":"https://api.github.com/users/thomasfiala/events{/privacy}","received_events_url":"https://api.github.com/users/thomasfiala/received_events","type":"User","site_admin":false},"body":"I wrote an extended description for Cantera's Reactor Networks. It's surely not complete, but I think that it gives a better introduction to Reactors than the current documentation does.\r\n\r\nAdditionally, I added two Python examples: pfr.py models a PFR by tracing a Lagrangian particle and a chain of reactors (like surf_pfr.py), and compares the two methods.\r\nic_engine.py models a (gaseous) Diesel Internal Combustion engine by a homogeneous cylinder, moving piston, and flexible valves. It relies on the Madison n-heptane reaction mechanism, which is not included in Cantera. This is not ideal, but I did not come up with a better idea.","created_at":"2015-06-29T15:07:14Z","updated_at":"2015-07-01T07:26:03Z","closed_at":null,"merged_at":null,"merge_commit_sha":"f80b9c2911e07c3508705dbc26de61a054a9af21","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/Cantera/cantera/pulls/281/commits","review_comments_url":"https://api.github.com/repos/Cantera/cantera/pulls/281/comments","review_comment_url":"https://api.github.com/repos/Cantera/cantera/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Cantera/cantera/issues/281/comments","statuses_url":"https://api.github.com/repos/Cantera/cantera/statuses/cc7b58811a560261b43c29c732a4aeea6238f451","head":{"label":"thomasfiala:tmp_doc_reactors","ref":"tmp_doc_reactors","sha":"cc7b58811a560261b43c29c732a4aeea6238f451","user":{"login":"thomasfiala","id":6306137,"avatar_url":"https://avatars.githubusercontent.com/u/6306137?v=3","gravatar_id":"","url":"https://api.github.com/users/thomasfiala","html_url":"https://github.com/thomasfiala","followers_url":"https://api.github.com/users/thomasfiala/followers","following_url":"https://api.github.com/users/thomasfiala/following{/other_user}","gists_url":"https://api.github.com/users/thomasfiala/gists{/gist_id}","starred_url":"https://api.github.com/users/thomasfiala/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thomasfiala/subscriptions","organizations_url":"https://api.github.com/users/thomasfiala/orgs","repos_url":"https://api.github.com/users/thomasfiala/repos","events_url":"https://api.github.com/users/thomasfiala/events{/privacy}","received_events_url":"https://api.github.com/users/thomasfiala/received_events","type":"User","site_admin":false},"repo":{"id":38253050,"name":"cantera","full_name":"thomasfiala/cantera","owner":{"login":"thomasfiala","id":6306137,"avatar_url":"https://avatars.githubusercontent.com/u/6306137?v=3","gravatar_id":"","url":"https://api.github.com/users/thomasfiala","html_url":"https://github.com/thomasfiala","followers_url":"https://api.github.com/users/thomasfiala/followers","following_url":"https://api.github.com/users/thomasfiala/following{/other_user}","gists_url":"https://api.github.com/users/thomasfiala/gists{/gist_id}","starred_url":"https://api.github.com/users/thomasfiala/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thomasfiala/subscriptions","organizations_url":"https://api.github.com/users/thomasfiala/orgs","repos_url":"https://api.github.com/users/thomasfiala/repos","events_url":"https://api.github.com/users/thomasfiala/events{/privacy}","received_events_url":"https://api.github.com/users/thomasfiala/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/thomasfiala/cantera","description":"Chemical kinetics, thermodynamics, and transport tool suite","fork":true,"url":"https://api.github.com/repos/thomasfiala/cantera","forks_url":"https://api.github.com/repos/thomasfiala/cantera/forks","keys_url":"https://api.github.com/repos/thomasfiala/cantera/keys{/key_id}","collaborators_url":"https://api.github.com/repos/thomasfiala/cantera/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/thomasfiala/cantera/teams","hooks_url":"https://api.github.com/repos/thomasfiala/cantera/hooks","issue_events_url":"https://api.github.com/repos/thomasfiala/cantera/issues/events{/number}","events_url":"https://api.github.com/repos/thomasfiala/cantera/events","assignees_url":"https://api.github.com/repos/thomasfiala/cantera/assignees{/user}","branches_url":"https://api.github.com/repos/thomasfiala/cantera/branches{/branch}","tags_url":"https://api.github.com/repos/thomasfiala/cantera/tags","blobs_url":"https://api.github.com/repos/thomasfiala/cantera/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/thomasfiala/cantera/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/thomasfiala/cantera/git/refs{/sha}","trees_url":"https://api.github.com/repos/thomasfiala/cantera/git/trees{/sha}","statuses_url":"https://api.github.com/repos/thomasfiala/cantera/statuses/{sha}","languages_url":"https://api.github.com/repos/thomasfiala/cantera/languages","stargazers_url":"https://api.github.com/repos/thomasfiala/cantera/stargazers","contributors_url":"https://api.github.com/repos/thomasfiala/cantera/contributors","subscribers_url":"https://api.github.com/repos/thomasfiala/cantera/subscribers","subscription_url":"https://api.github.com/repos/thomasfiala/cantera/subscription","commits_url":"https://api.github.com/repos/thomasfiala/cantera/commits{/sha}","git_commits_url":"https://api.github.com/repos/thomasfiala/cantera/git/commits{/sha}","comments_url":"https://api.github.com/repos/thomasfiala/cantera/comments{/number}","issue_comment_url":"https://api.github.com/repos/thomasfiala/cantera/issues/comments{/number}","contents_url":"https://api.github.com/repos/thomasfiala/cantera/contents/{+path}","compare_url":"https://api.github.com/repos/thomasfiala/cantera/compare/{base}...{head}","merges_url":"https://api.github.com/repos/thomasfiala/cantera/merges","archive_url":"https://api.github.com/repos/thomasfiala/cantera/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/thomasfiala/cantera/downloads","issues_url":"https://api.github.com/repos/thomasfiala/cantera/issues{/number}","pulls_url":"https://api.github.com/repos/thomasfiala/cantera/pulls{/number}","milestones_url":"https://api.github.com/repos/thomasfiala/cantera/milestones{/number}","notifications_url":"https://api.github.com/repos/thomasfiala/cantera/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/thomasfiala/cantera/labels{/name}","releases_url":"https://api.github.com/repos/thomasfiala/cantera/releases{/id}","created_at":"2015-06-29T14:49:29Z","updated_at":"2015-06-29T14:49:35Z","pushed_at":"2015-06-30T16:01:17Z","git_url":"git://github.com/thomasfiala/cantera.git","ssh_url":"git@github.com:thomasfiala/cantera.git","clone_url":"https://github.com/thomasfiala/cantera.git","svn_url":"https://github.com/thomasfiala/cantera","homepage":"","size":48183,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_downloads":false,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"Cantera:master","ref":"master","sha":"94316d8416c584683a1653b6d3c45410c586b155","user":{"login":"Cantera","id":817698,"avatar_url":"https://avatars.githubusercontent.com/u/817698?v=3","gravatar_id":"","url":"https://api.github.com/users/Cantera","html_url":"https://github.com/Cantera","followers_url":"https://api.github.com/users/Cantera/followers","following_url":"https://api.github.com/users/Cantera/following{/other_user}","gists_url":"https://api.github.com/users/Cantera/gists{/gist_id}","starred_url":"https://api.github.com/users/Cantera/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Cantera/subscriptions","organizations_url":"https://api.github.com/users/Cantera/orgs","repos_url":"https://api.github.com/users/Cantera/repos","events_url":"https://api.github.com/users/Cantera/events{/privacy}","received_events_url":"https://api.github.com/users/Cantera/received_events","type":"Organization","site_admin":false},"repo":{"id":32940327,"name":"cantera","full_name":"Cantera/cantera","owner":{"login":"Cantera","id":817698,"avatar_url":"https://avatars.githubusercontent.com/u/817698?v=3","gravatar_id":"","url":"https://api.github.com/users/Cantera","html_url":"https://github.com/Cantera","followers_url":"https://api.github.com/users/Cantera/followers","following_url":"https://api.github.com/users/Cantera/following{/other_user}","gists_url":"https://api.github.com/users/Cantera/gists{/gist_id}","starred_url":"https://api.github.com/users/Cantera/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Cantera/subscriptions","organizations_url":"https://api.github.com/users/Cantera/orgs","repos_url":"https://api.github.com/users/Cantera/repos","events_url":"https://api.github.com/users/Cantera/events{/privacy}","received_events_url":"https://api.github.com/users/Cantera/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Cantera/cantera","description":"Chemical kinetics, thermodynamics, and transport tool suite","fork":false,"url":"https://api.github.com/repos/Cantera/cantera","forks_url":"https://api.github.com/repos/Cantera/cantera/forks","keys_url":"https://api.github.com/repos/Cantera/cantera/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Cantera/cantera/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Cantera/cantera/teams","hooks_url":"https://api.github.com/repos/Cantera/cantera/hooks","issue_events_url":"https://api.github.com/repos/Cantera/cantera/issues/events{/number}","events_url":"https://api.github.com/repos/Cantera/cantera/events","assignees_url":"https://api.github.com/repos/Cantera/cantera/assignees{/user}","branches_url":"https://api.github.com/repos/Cantera/cantera/branches{/branch}","tags_url":"https://api.github.com/repos/Cantera/cantera/tags","blobs_url":"https://api.github.com/repos/Cantera/cantera/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Cantera/cantera/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Cantera/cantera/git/refs{/sha}","trees_url":"https://api.github.com/repos/Cantera/cantera/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Cantera/cantera/statuses/{sha}","languages_url":"https://api.github.com/repos/Cantera/cantera/languages","stargazers_url":"https://api.github.com/repos/Cantera/cantera/stargazers","contributors_url":"https://api.github.com/repos/Cantera/cantera/contributors","subscribers_url":"https://api.github.com/repos/Cantera/cantera/subscribers","subscription_url":"https://api.github.com/repos/Cantera/cantera/subscription","commits_url":"https://api.github.com/repos/Cantera/cantera/commits{/sha}","git_commits_url":"https://api.github.com/repos/Cantera/cantera/git/commits{/sha}","comments_url":"https://api.github.com/repos/Cantera/cantera/comments{/number}","issue_comment_url":"https://api.github.com/repos/Cantera/cantera/issues/comments{/number}","contents_url":"https://api.github.com/repos/Cantera/cantera/contents/{+path}","compare_url":"https://api.github.com/repos/Cantera/cantera/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Cantera/cantera/merges","archive_url":"https://api.github.com/repos/Cantera/cantera/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Cantera/cantera/downloads","issues_url":"https://api.github.com/repos/Cantera/cantera/issues{/number}","pulls_url":"https://api.github.com/repos/Cantera/cantera/pulls{/number}","milestones_url":"https://api.github.com/repos/Cantera/cantera/milestones{/number}","notifications_url":"https://api.github.com/repos/Cantera/cantera/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Cantera/cantera/labels{/name}","releases_url":"https://api.github.com/repos/Cantera/cantera/releases{/id}","created_at":"2015-03-26T16:54:16Z","updated_at":"2015-06-10T05:30:23Z","pushed_at":"2015-07-01T04:17:10Z","git_url":"git://github.com/Cantera/cantera.git","ssh_url":"git@github.com:Cantera/cantera.git","clone_url":"https://github.com/Cantera/cantera.git","svn_url":"https://github.com/Cantera/cantera","homepage":"","size":48183,"stargazers_count":13,"watchers_count":13,"language":"C++","has_issues":true,"has_downloads":false,"has_wiki":true,"has_pages":false,"forks_count":9,"mirror_url":null,"open_issues_count":34,"forks":9,"open_issues":34,"watchers":13,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Cantera/cantera/pulls/281"},"html":{"href":"https://github.com/Cantera/cantera/pull/281"},"issue":{"href":"https://api.github.com/repos/Cantera/cantera/issues/281"},"comments":{"href":"https://api.github.com/repos/Cantera/cantera/issues/281/comments"},"review_comments":{"href":"https://api.github.com/repos/Cantera/cantera/pulls/281/comments"},"review_comment":{"href":"https://api.github.com/repos/Cantera/cantera/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Cantera/cantera/pulls/281/commits"},"statuses":{"href":"https://api.github.com/repos/Cantera/cantera/statuses/cc7b58811a560261b43c29c732a4aeea6238f451"}}}}