<ahref="classgridfire_1_1reaction_1_1_logical_reaction-members.html">List of all members</a></div>
<divclass="headertitle"><divclass="title">gridfire::reaction::LogicalReaction Class Reference<spanclass="mlabels"><spanclass="mlabel final">final</span></span></div></div>
</div><!--header-->
<divclass="contents">
<p>Represents a "logical" reaction that aggregates rates from multiple sources.
<areahref="classgridfire_1_1reaction_1_1_reaction.html"title="Represents a single nuclear reaction from a specific data source."alt="gridfire::reaction::Reaction"shape="rect"coords="0,0,201,24"/>
<trclass="memdesc:a6965906ea33ebd0d615811219d9e9537"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Constructs a <aclass="el"href="classgridfire_1_1reaction_1_1_logical_reaction.html"title="Represents a "logical" reaction that aggregates rates from multiple sources.">LogicalReaction</a> from a vector of <code><aclass="el"href="classgridfire_1_1reaction_1_1_reaction.html"title="Represents a single nuclear reaction from a specific data source.">Reaction</a></code> objects. <br/></td></tr>
<trclass="memdesc:a14a24cb8ea25a1514134acc51197f1de"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Adds another <code><aclass="el"href="classgridfire_1_1reaction_1_1_reaction.html"title="Represents a single nuclear reaction from a specific data source.">Reaction</a></code> source to this logical reaction. <br/></td></tr>
<trclass="memdesc:afa41050855b842c63db16c94d2e9b897"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Gets the number of source rates contributing to this logical reaction. <br/></td></tr>
<trclass="memdesc:add094eda0e71126f8443698d7f3317f4"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Gets the list of source labels for the aggregated rates. <br/></td></tr>
<trclass="memdesc:a1d2fb3b6a6a1860ace98b32447d1dd1b"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Calculates the total reaction rate by summing all source rates. <br/></td></tr>
<trclass="memdesc:adad6f4297c1d8ce487eab092b73cdd32"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Calculates the total reaction rate using CppAD types. <br/></td></tr>
<trclass="inherit_header pub_methods_classgridfire_1_1reaction_1_1_reaction"><tdcolspan="2"onclick="javascript:dynsection.toggleInherit('pub_methods_classgridfire_1_1reaction_1_1_reaction')"><imgsrc="closed.png"alt="-"/> Public Member Functions inherited from <aclass="el"href="classgridfire_1_1reaction_1_1_reaction.html">gridfire::reaction::Reaction</a></td></tr>
<trclass="memdesc:a7dff19d387e771d96c26e98d75ee9d5c inherit pub_methods_classgridfire_1_1reaction_1_1_reaction"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Constructs a <aclass="el"href="classgridfire_1_1reaction_1_1_reaction.html"title="Represents a single nuclear reaction from a specific data source.">Reaction</a> object. <br/></td></tr>
<trclass="memdesc:a78f42664cc957e266b6cf15fda09be97 inherit pub_methods_classgridfire_1_1reaction_1_1_reaction"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Gets the reaction name in (projectile, ejectile) notation. <br/></td></tr>
<trclass="memdesc:a410e2ab0784ad751f82bbe55be603db0 inherit pub_methods_classgridfire_1_1reaction_1_1_reaction"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Gets the source label for the rate data. <br/></td></tr>
<trclass="memdesc:a85968076e686e67763f4fdf4f72a892e inherit pub_methods_classgridfire_1_1reaction_1_1_reaction"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Gets the set of rate coefficients. <br/></td></tr>
<trclass="memdesc:ab92785f331a446e51a0960b75d60b37b inherit pub_methods_classgridfire_1_1reaction_1_1_reaction"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Checks if the reaction involves a given species as a reactant or product. <br/></td></tr>
<trclass="memdesc:abbe243affa61ba9b2cd2a7b905cd5e45 inherit pub_methods_classgridfire_1_1reaction_1_1_reaction"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Checks if the reaction involves a given species as a reactant. <br/></td></tr>
<trclass="memdesc:a074d3cd2421fd5d0133e47f0522403e2 inherit pub_methods_classgridfire_1_1reaction_1_1_reaction"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Checks if the reaction involves a given species as a product. <br/></td></tr>
<trclass="memdesc:a7dc8fda87e0581fde6da0a81cf4d7224 inherit pub_methods_classgridfire_1_1reaction_1_1_reaction"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Gets a set of all unique species involved in the reaction. <br/></td></tr>
<trclass="memdesc:a855ea65e4b62fb0cddc550424a4bc923 inherit pub_methods_classgridfire_1_1reaction_1_1_reaction"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Gets a set of all unique reactant species. <br/></td></tr>
<trclass="memdesc:a01c67726efbaa2ff8e4d6f2c965f485c inherit pub_methods_classgridfire_1_1reaction_1_1_reaction"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Gets a set of all unique product species. <br/></td></tr>
<trclass="memdesc:a1d3c8ab6d55155f9a21ad80ed8b9ef97 inherit pub_methods_classgridfire_1_1reaction_1_1_reaction"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Gets the number of unique species involved in the reaction. <br/></td></tr>
<trclass="memdesc:aaf0c94db6536b4a9ac1ec08a5c8f01ac inherit pub_methods_classgridfire_1_1reaction_1_1_reaction"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Calculates the stoichiometric coefficient for a given species. <br/></td></tr>
<trclass="memitem:ad359c06d7196c1a7a955a7b66a51dbe3 inherit pub_methods_classgridfire_1_1reaction_1_1_reaction"id="r_ad359c06d7196c1a7a955a7b66a51dbe3"><tdclass="memItemLeft"align="right"valign="top">std::unordered_map< fourdst::atomic::Species, int > </td><tdclass="memItemRight"valign="bottom"><aclass="el"href="classgridfire_1_1reaction_1_1_reaction.html#ad359c06d7196c1a7a955a7b66a51dbe3">stoichiometry</a> () const</td></tr>
<trclass="memdesc:ad359c06d7196c1a7a955a7b66a51dbe3 inherit pub_methods_classgridfire_1_1reaction_1_1_reaction"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Gets a map of all species to their stoichiometric coefficients. <br/></td></tr>
<trclass="memdesc:a084c38181408ed5e6fa2a2dd4d0ec905 inherit pub_methods_classgridfire_1_1reaction_1_1_reaction"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Gets the unique identifier of the reaction. <br/></td></tr>
<trclass="memdesc:abda0b4e4313e6d4ba57acf37d5976fb8 inherit pub_methods_classgridfire_1_1reaction_1_1_reaction"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Gets the Q-value of the reaction. <br/></td></tr>
<trclass="memdesc:a0b543e9b0bb4a21efe4b29780d9bdf5b inherit pub_methods_classgridfire_1_1reaction_1_1_reaction"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Gets the vector of reactant species. <br/></td></tr>
<trclass="memdesc:a6e2ff61b9e8409f2a561663628b8ce02 inherit pub_methods_classgridfire_1_1reaction_1_1_reaction"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Gets the vector of product species. <br/></td></tr>
<trclass="memdesc:aa67d05dfabf007c1acad34052d9a1dba inherit pub_methods_classgridfire_1_1reaction_1_1_reaction"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Checks if this is a reverse reaction rate. <br/></td></tr>
<trclass="memdesc:aa1d71e38fc55ae691dbb9ec459a612a5 inherit pub_methods_classgridfire_1_1reaction_1_1_reaction"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Calculates the excess energy from the mass difference of reactants and products. <br/></td></tr>
<trclass="memdesc:ac426457cf0a54a15b206549422083bac inherit pub_methods_classgridfire_1_1reaction_1_1_reaction"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Compares this reaction with another for equality based on their IDs. <br/></td></tr>
<trclass="memdesc:a2f1c115a99bc7c477a2e858ff18b1b51 inherit pub_methods_classgridfire_1_1reaction_1_1_reaction"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Compares this reaction with another for inequality. <br/></td></tr>
<trclass="memdesc:af6c20e6d03a2d9f87632f71a90b88cb5 inherit pub_methods_classgridfire_1_1reaction_1_1_reaction"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Computes a hash for the reaction based on its ID. <br/></td></tr>
<trclass="memitem:a019b721d83741acdb16036f00739f87c"><tdclass="memTemplItemLeft"align="right"valign="top">T </td><tdclass="memTemplItemRight"valign="bottom"><aclass="el"href="#a019b721d83741acdb16036f00739f87c">calculate_rate</a> (const T T9) const</td></tr>
<trclass="memdesc:a019b721d83741acdb16036f00739f87c"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Template implementation for calculating the total reaction rate. <br/></td></tr>
<trclass="memdesc:a81f75f0085f8a5a45169f0b7240c809d"><tdclass="mdescLeft"> </td><tdclass="mdescRight">List of rate coefficient sets from each source. <br/></td></tr>
<trclass="memdesc:a5c685e5a736b51799e5b9f6746c4126b inherit pro_attribs_classgridfire_1_1reaction_1_1_reaction"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Unique identifier for the reaction (e.g., "h1+h1=>h2+e+nu"). <br/></td></tr>
<trclass="memdesc:a6124aa9fc2306349e1dd879a37923248 inherit pro_attribs_classgridfire_1_1reaction_1_1_reaction"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Name of the reaction in (projectile, ejectile) notation (e.g. "p(p,g)d"). <br/></td></tr>
<trclass="memdesc:a16f9cbb6269817099d3dc07d4e63da7b inherit pro_attribs_classgridfire_1_1reaction_1_1_reaction"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Chapter number from the REACLIB database, defining the reaction structure. <br/></td></tr>
<trclass="memdesc:a59122a2898bb9af640cc3e9aeb49028b inherit pro_attribs_classgridfire_1_1reaction_1_1_reaction"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Q-value of the reaction in MeV. <br/></td></tr>
<trclass="memdesc:a87a065b3c7806bcdb5eadb7de2978a11 inherit pro_attribs_classgridfire_1_1reaction_1_1_reaction"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Reactants of the reaction. <br/></td></tr>
<trclass="memdesc:a4b5607ed413acdf29539b8a57461e49e inherit pro_attribs_classgridfire_1_1reaction_1_1_reaction"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Products of the reaction. <br/></td></tr>
<trclass="memdesc:a0185c6be5465d113f25e00aee1297cd6 inherit pro_attribs_classgridfire_1_1reaction_1_1_reaction"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Source label for the rate data (e.g., "wc12w", "st08"). <br/></td></tr>
<trclass="memdesc:a0b0b9ac498080aae91ffd466d1ae85a9 inherit pro_attribs_classgridfire_1_1reaction_1_1_reaction"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Flag indicating if this is a reverse reaction rate. <br/></td></tr>
<divclass="textblock"><p>Represents a "logical" reaction that aggregates rates from multiple sources. </p>
<p>A <aclass="el"href="classgridfire_1_1reaction_1_1_logical_reaction.html"title="Represents a "logical" reaction that aggregates rates from multiple sources.">LogicalReaction</a> shares the same reactants and products but combines rates from different evaluations (e.g., "wc12" and "st08" for the same physical reaction). The total rate is the sum of the individual rates. It inherits from <aclass="el"href="classgridfire_1_1reaction_1_1_reaction.html"title="Represents a single nuclear reaction from a specific data source.">Reaction</a>, using the properties of the first provided reaction as its base properties (reactants, products, Q-value, etc.). </p>
<pclass="definition">Definition at line <aclass="el"href="reaction_8h_source.html#l00310">310</a> of file <aclass="el"href="reaction_8h_source.html">reaction.h</a>.</p>
<p>Constructs a <aclass="el"href="classgridfire_1_1reaction_1_1_logical_reaction.html"title="Represents a "logical" reaction that aggregates rates from multiple sources.">LogicalReaction</a> from a vector of <code><aclass="el"href="classgridfire_1_1reaction_1_1_reaction.html"title="Represents a single nuclear reaction from a specific data source.">Reaction</a></code> objects. </p>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramname">reactions</td><td>A vector of reactions that represent the same logical process. </td></tr>
</table>
</dd>
</dl>
<dlclass="exception"><dt>Exceptions</dt><dd>
<tableclass="exception">
<tr><tdclass="paramname">std::runtime_error</td><td>if the provided reactions have inconsistent Q-values. </td></tr>
<pclass="definition">Definition at line <aclass="el"href="reaction_8cpp_source.html#l00163">163</a> of file <aclass="el"href="reaction_8cpp_source.html">reaction.cpp</a>.</p>
<p>Adds another <code><aclass="el"href="classgridfire_1_1reaction_1_1_reaction.html"title="Represents a single nuclear reaction from a specific data source.">Reaction</a></code> source to this logical reaction. </p>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramname">reaction</td><td>The reaction to add. </td></tr>
</table>
</dd>
</dl>
<dlclass="exception"><dt>Exceptions</dt><dd>
<tableclass="exception">
<tr><tdclass="paramname">std::runtime_error</td><td>if the reaction has a different <code>peName</code>, a duplicate source label, or an inconsistent Q-value. </td></tr>
<pclass="definition">Definition at line <aclass="el"href="reaction_8cpp_source.html#l00192">192</a> of file <aclass="el"href="reaction_8cpp_source.html">reaction.cpp</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="reaction_8h_source.html#l00359">359</a> of file <aclass="el"href="reaction_8h_source.html">reaction.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="reaction_8h_source.html#l00360">360</a> of file <aclass="el"href="reaction_8h_source.html">reaction.h</a>.</p>
<p>Reimplemented from <aclass="el"href="classgridfire_1_1reaction_1_1_reaction.html#a3a8ba9212d76d5ce51f20df6892c6061">gridfire::reaction::Reaction</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="reaction_8cpp_source.html#l00218">218</a> of file <aclass="el"href="reaction_8cpp_source.html">reaction.cpp</a>.</p>
<p>Calculates the total reaction rate using CppAD types. </p>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramname">T9</td><td>The temperature in units of 10^9 K, as a CppAD::AD<double>. </td></tr>
</table>
</dd>
</dl>
<dlclass="section return"><dt>Returns</dt><dd>The total calculated reaction rate, as a CppAD::AD<double>. </dd></dl>
<p>Reimplemented from <aclass="el"href="classgridfire_1_1reaction_1_1_reaction.html#a735192a42f72cd68f289493753e1a616">gridfire::reaction::Reaction</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="reaction_8cpp_source.html#l00269">269</a> of file <aclass="el"href="reaction_8cpp_source.html">reaction.cpp</a>.</p>
<p>Calculates the total reaction rate by summing all source rates. </p>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramname">T9</td><td>The temperature in units of 10^9 K. </td></tr>
</table>
</dd>
</dl>
<dlclass="section return"><dt>Returns</dt><dd>The total calculated reaction rate. </dd></dl>
<p>Reimplemented from <aclass="el"href="classgridfire_1_1reaction_1_1_reaction.html#ad81e9b2a1773470059ca6989c60556ec">gridfire::reaction::Reaction</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="reaction_8cpp_source.html#l00214">214</a> of file <aclass="el"href="reaction_8cpp_source.html">reaction.cpp</a>.</p>
<tr><tdclass="paramname">T</td><td>The numeric type (double or CppAD::AD<double>). </td></tr>
</table>
</dd>
</dl>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramname">T9</td><td>The temperature in units of 10^9 K. </td></tr>
</table>
</dd>
</dl>
<dlclass="section return"><dt>Returns</dt><dd>The total calculated reaction rate.</dd></dl>
<p>This method iterates through all stored <code><aclass="el"href="structgridfire_1_1reaction_1_1_rate_coefficient_set.html"title="Holds the seven coefficients for the REACLIB rate equation.">RateCoefficientSet</a></code>s, calculates the rate for each, and returns their sum. </p>
<pclass="definition">Definition at line <aclass="el"href="reaction_8h_source.html#l00385">385</a> of file <aclass="el"href="reaction_8h_source.html">reaction.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="reaction_8h_source.html#l00361">361</a> of file <aclass="el"href="reaction_8h_source.html">reaction.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="reaction_8h_source.html#l00362">362</a> of file <aclass="el"href="reaction_8h_source.html">reaction.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="reaction_8h_source.html#l00331">331</a> of file <aclass="el"href="reaction_8h_source.html">reaction.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="reaction_8h_source.html#l00337">337</a> of file <aclass="el"href="reaction_8h_source.html">reaction.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="reaction_8h_source.html#l00366">366</a> of file <aclass="el"href="reaction_8h_source.html">reaction.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="reaction_8h_source.html#l00373">373</a> of file <aclass="el"href="reaction_8h_source.html">reaction.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="reaction_8h_source.html#l00372">372</a> of file <aclass="el"href="reaction_8h_source.html">reaction.h</a>.</p>
<liclass="footer">Generated by <ahref="https://www.doxygen.org/index.html"><imgclass="footer"src="doxygen.svg"width="104"height="31"alt="doxygen"/></a> 1.13.2 </li>