2025-07-24 11:10:45 -04:00
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
< html xmlns = "http://www.w3.org/1999/xhtml" lang = "en-US" >
< head >
< meta http-equiv = "Content-Type" content = "text/xhtml;charset=UTF-8" / >
< meta http-equiv = "X-UA-Compatible" content = "IE=11" / >
< meta name = "generator" content = "Doxygen 1.13.2" / >
< meta name = "viewport" content = "width=device-width, initial-scale=1" / >
< title > GridFire: gridfire::Reaction Class Reference< / title >
< link href = "tabs.css" rel = "stylesheet" type = "text/css" / >
< script type = "text/javascript" src = "jquery.js" > < / script >
< script type = "text/javascript" src = "dynsections.js" > < / script >
< script type = "text/javascript" src = "clipboard.js" > < / script >
< link href = "navtree.css" rel = "stylesheet" type = "text/css" / >
< script type = "text/javascript" src = "navtreedata.js" > < / script >
< script type = "text/javascript" src = "navtree.js" > < / script >
< script type = "text/javascript" src = "resize.js" > < / script >
< script type = "text/javascript" src = "cookie.js" > < / script >
< link href = "search/search.css" rel = "stylesheet" type = "text/css" / >
< script type = "text/javascript" src = "search/searchdata.js" > < / script >
< script type = "text/javascript" src = "search/search.js" > < / script >
< link href = "doxygen.css" rel = "stylesheet" type = "text/css" / >
< link href = "doxygen-awesome.css" rel = "stylesheet" type = "text/css" / >
< link href = "doxygen-awesome-sidebar-only.css" rel = "stylesheet" type = "text/css" / >
< / head >
< body >
< div id = "top" > <!-- do not remove this div, it is closed by doxygen! -->
< div id = "titlearea" >
< table cellspacing = "0" cellpadding = "0" >
< tbody >
< tr id = "projectrow" >
< td id = "projectalign" >
2025-11-04 14:04:26 -05:00
< div id = "projectname" > GridFire< span id = "projectnumber" >   v0.7.0-alpha< / span >
2025-07-24 11:10:45 -04:00
< / div >
< div id = "projectbrief" > General Purpose Nuclear Network< / div >
< / td >
< / tr >
< / tbody >
< / table >
< / div >
<!-- end header part -->
<!-- Generated by Doxygen 1.13.2 -->
< script type = "text/javascript" >
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699& dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
< / script >
< script type = "text/javascript" >
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699& dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
< / script >
< script type = "text/javascript" src = "menudata.js" > < / script >
< script type = "text/javascript" src = "menu.js" > < / script >
< script type = "text/javascript" >
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699& dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
/* @license-end */
< / script >
< div id = "main-nav" > < / div >
< / div > <!-- top -->
< div id = "side-nav" class = "ui-resizable side-nav-resizable" >
< div id = "nav-tree" >
< div id = "nav-tree-contents" >
< div id = "nav-sync" class = "sync" > < / div >
< / div >
< / div >
< div id = "splitbar" style = "-moz-user-select:none;"
class="ui-resizable-handle">
< / div >
< / div >
< script type = "text/javascript" >
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699& dn=expat.txt MIT */
$(function(){initNavTree('classgridfire_1_1_reaction.html',''); initResizable(true); });
/* @license-end */
< / script >
< div id = "doc-content" >
<!-- window showing the filter options -->
< div id = "MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
< / div >
<!-- iframe showing the search results (closed by default) -->
< div id = "MSearchResultsWindow" >
< div id = "MSearchResults" >
< div class = "SRPage" >
< div id = "SRIndex" >
< div id = "SRResults" > < / div >
< div class = "SRStatus" id = "Loading" > Loading...< / div >
< div class = "SRStatus" id = "Searching" > Searching...< / div >
< div class = "SRStatus" id = "NoMatches" > No Matches< / div >
< / div >
< / div >
< / div >
< / div >
< div class = "header" >
< div class = "summary" >
< a href = "#pub-methods" > Public Member Functions< / a > |
< a href = "#friends" > Friends< / a > |
< a href = "classgridfire_1_1_reaction-members.html" > List of all members< / a > < / div >
2025-10-08 11:17:09 -04:00
< div class = "headertitle" > < div class = "title" > gridfire::Reaction Class Reference< span class = "mlabels" > < span class = "mlabel abstract" > abstract< / span > < / span > < / div > < / div >
2025-07-24 11:10:45 -04:00
< / div > <!-- header -->
< div class = "contents" >
< p > Represents a single nuclear reaction from a specific data source.
< a href = "#details" > More...< / a > < / p >
2025-07-31 10:54:31 -04:00
< p > < code > #include < reaction.h> < / code > < / p >
2025-07-24 11:10:45 -04:00
< div class = "dynheader" >
Inheritance diagram for gridfire::Reaction:< / div >
< div class = "dyncontent" >
< div class = "center" >
< img src = "classgridfire_1_1_reaction.png" usemap = "#gridfire::Reaction_map" alt = "" / >
< map id = "gridfire::Reaction_map" name = "gridfire::Reaction_map" >
2025-10-08 11:17:09 -04:00
< area href = "classgridfire_1_1rates_1_1weak_1_1_weak_reaction.html" title = "Concrete Reaction representing a single weak process (beta±, e− /e+ capture)." alt = "gridfire::rates::weak::WeakReaction" shape = "rect" coords = "0,56,243,80" / >
< area href = "classgridfire_1_1reaction_1_1_reaclib_reaction.html" alt = "gridfire::reaction::ReaclibReaction" shape = "rect" coords = "253,56,496,80" / >
< area href = "classgridfire_1_1reaction_1_1_logical_reaclib_reaction.html" title = "Represents a "logical" reaction that aggregates rates from multiple sources." alt = "gridfire::reaction::LogicalReaclibReaction" shape = "rect" coords = "253,112,496,136" / >
2025-07-24 11:10:45 -04:00
< / map >
< / div > < / div >
< table class = "memberdecls" >
< tr class = "heading" > < td colspan = "2" > < h2 class = "groupheader" > < a id = "pub-methods" name = "pub-methods" > < / a >
Public Member Functions< / h2 > < / td > < / tr >
< tr class = "memitem:ab1860df84843be70f97469761e11ab6a" id = "r_ab1860df84843be70f97469761e11ab6a" > < td class = "memItemLeft" align = "right" valign = "top" > virtual  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#ab1860df84843be70f97469761e11ab6a" > ~Reaction< / a > ()=default< / td > < / tr >
2025-10-08 11:17:09 -04:00
< tr class = "memdesc:ab1860df84843be70f97469761e11ab6a" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Virtual destructor for correct polymorphic cleanup. < br / > < / td > < / tr >
2025-07-24 11:10:45 -04:00
< tr class = "separator:ab1860df84843be70f97469761e11ab6a" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2025-10-08 11:17:09 -04:00
< tr class = "memitem:abb3e2b9c5404f45fc5656eeac1d06a6c" id = "r_abb3e2b9c5404f45fc5656eeac1d06a6c" > < td class = "memItemLeft" align = "right" valign = "top" > virtual double  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#abb3e2b9c5404f45fc5656eeac1d06a6c" > calculate_rate< / a > (double T9, double rho, double Ye, double mue, const std::vector< double > & Y, const std::unordered_map< size_t, fourdst::atomic::Species > & index_to_species_map) const=0< / td > < / tr >
< tr class = "memdesc:abb3e2b9c5404f45fc5656eeac1d06a6c" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Compute the temperature- and composition-dependent reaction rate. < br / > < / td > < / tr >
< tr class = "separator:abb3e2b9c5404f45fc5656eeac1d06a6c" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a8cbc768819bea8497a7b9fa644b8fd65" id = "r_a8cbc768819bea8497a7b9fa644b8fd65" > < td class = "memItemLeft" align = "right" valign = "top" > virtual CppAD::AD< double >   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a8cbc768819bea8497a7b9fa644b8fd65" > calculate_rate< / a > (CppAD::AD< double > T9, CppAD::AD< double > rho, CppAD::AD< double > Ye, CppAD::AD< double > mue, const std::vector< CppAD::AD< double > > & Y, const std::unordered_map< size_t, fourdst::atomic::Species > & index_to_species_map) const=0< / td > < / tr >
< tr class = "memdesc:a8cbc768819bea8497a7b9fa644b8fd65" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > AD-enabled reaction rate for algorithmic differentiation. < br / > < / td > < / tr >
< tr class = "separator:a8cbc768819bea8497a7b9fa644b8fd65" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a768329002a4f0b8604b1aa51d56b5d1b" id = "r_a768329002a4f0b8604b1aa51d56b5d1b" > < td class = "memItemLeft" align = "right" valign = "top" > virtual std::string_view  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a768329002a4f0b8604b1aa51d56b5d1b" > id< / a > () const=0< / td > < / tr >
< tr class = "memdesc:a768329002a4f0b8604b1aa51d56b5d1b" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > A stable, unique identifier for this reaction instance. < br / > < / td > < / tr >
< tr class = "separator:a768329002a4f0b8604b1aa51d56b5d1b" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a0c533797f18c2fe4945f1afb3fb06d5d" id = "r_a0c533797f18c2fe4945f1afb3fb06d5d" > < td class = "memItemLeft" align = "right" valign = "top" > virtual const std::vector< fourdst::atomic::Species > &   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a0c533797f18c2fe4945f1afb3fb06d5d" > reactants< / a > () const=0< / td > < / tr >
< tr class = "memdesc:a0c533797f18c2fe4945f1afb3fb06d5d" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Ordered list of reactant species. < br / > < / td > < / tr >
< tr class = "separator:a0c533797f18c2fe4945f1afb3fb06d5d" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:ac2918935929030e8d218dc8d107a78f9" id = "r_ac2918935929030e8d218dc8d107a78f9" > < td class = "memItemLeft" align = "right" valign = "top" > virtual const std::vector< fourdst::atomic::Species > &   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#ac2918935929030e8d218dc8d107a78f9" > products< / a > () const=0< / td > < / tr >
< tr class = "memdesc:ac2918935929030e8d218dc8d107a78f9" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Ordered list of product species. < br / > < / td > < / tr >
< tr class = "separator:ac2918935929030e8d218dc8d107a78f9" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:adaeb5d72faf7d55d4e26f6e1fcba21c1" id = "r_adaeb5d72faf7d55d4e26f6e1fcba21c1" > < td class = "memItemLeft" align = "right" valign = "top" > virtual bool  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#adaeb5d72faf7d55d4e26f6e1fcba21c1" > contains< / a > (const fourdst::atomic::Species & species) const=0< / td > < / tr >
< tr class = "memdesc:adaeb5d72faf7d55d4e26f6e1fcba21c1" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > True if the species appears as a reactant or a product. < br / > < / td > < / tr >
< tr class = "separator:adaeb5d72faf7d55d4e26f6e1fcba21c1" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:afca3afba45a3db79980c8fe18c87c750" id = "r_afca3afba45a3db79980c8fe18c87c750" > < td class = "memItemLeft" align = "right" valign = "top" > virtual bool  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#afca3afba45a3db79980c8fe18c87c750" > contains_reactant< / a > (const fourdst::atomic::Species & species) const=0< / td > < / tr >
< tr class = "memdesc:afca3afba45a3db79980c8fe18c87c750" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > True if the species appears among the reactants. < br / > < / td > < / tr >
< tr class = "separator:afca3afba45a3db79980c8fe18c87c750" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a5a17ca61d069749960e5a83e58c0b8a1" id = "r_a5a17ca61d069749960e5a83e58c0b8a1" > < td class = "memItemLeft" align = "right" valign = "top" > virtual bool  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a5a17ca61d069749960e5a83e58c0b8a1" > contains_product< / a > (const fourdst::atomic::Species & species) const=0< / td > < / tr >
< tr class = "memdesc:a5a17ca61d069749960e5a83e58c0b8a1" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > True if the species appears among the products. < br / > < / td > < / tr >
< tr class = "separator:a5a17ca61d069749960e5a83e58c0b8a1" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a640b0bdbed9ed7c2a2e9880ddbcafc1d" id = "r_a640b0bdbed9ed7c2a2e9880ddbcafc1d" > < td class = "memItemLeft" align = "right" valign = "top" > virtual bool  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a640b0bdbed9ed7c2a2e9880ddbcafc1d" > is_reverse< / a > () const=0< / td > < / tr >
< tr class = "memdesc:a640b0bdbed9ed7c2a2e9880ddbcafc1d" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Whether this object represents a reverse (backward) rate. < br / > < / td > < / tr >
< tr class = "separator:a640b0bdbed9ed7c2a2e9880ddbcafc1d" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:ace0b2bee91702e0ab97b6fc74999d6f0" id = "r_ace0b2bee91702e0ab97b6fc74999d6f0" > < td class = "memItemLeft" align = "right" valign = "top" > virtual std::unordered_set< fourdst::atomic::Species >   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#ace0b2bee91702e0ab97b6fc74999d6f0" > all_species< / a > () const=0< / td > < / tr >
< tr class = "memdesc:ace0b2bee91702e0ab97b6fc74999d6f0" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Set of all unique species appearing in the reaction. < br / > < / td > < / tr >
< tr class = "separator:ace0b2bee91702e0ab97b6fc74999d6f0" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a4be8440aa7e79eab1d44b5d83bcdab79" id = "r_a4be8440aa7e79eab1d44b5d83bcdab79" > < td class = "memItemLeft" align = "right" valign = "top" > virtual std::unordered_set< fourdst::atomic::Species >   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a4be8440aa7e79eab1d44b5d83bcdab79" > reactant_species< / a > () const=0< / td > < / tr >
< tr class = "memdesc:a4be8440aa7e79eab1d44b5d83bcdab79" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Set of unique reactant species. < br / > < / td > < / tr >
< tr class = "separator:a4be8440aa7e79eab1d44b5d83bcdab79" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:ac2306d841bad605b7c9ae104397cec0f" id = "r_ac2306d841bad605b7c9ae104397cec0f" > < td class = "memItemLeft" align = "right" valign = "top" > virtual std::unordered_set< fourdst::atomic::Species >   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#ac2306d841bad605b7c9ae104397cec0f" > product_species< / a > () const=0< / td > < / tr >
< tr class = "memdesc:ac2306d841bad605b7c9ae104397cec0f" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Set of unique product species. < br / > < / td > < / tr >
< tr class = "separator:ac2306d841bad605b7c9ae104397cec0f" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a348aae35a6c82194ef5387278419e0e6" id = "r_a348aae35a6c82194ef5387278419e0e6" > < td class = "memItemLeft" align = "right" valign = "top" > virtual size_t  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a348aae35a6c82194ef5387278419e0e6" > num_species< / a > () const=0< / td > < / tr >
< tr class = "memdesc:a348aae35a6c82194ef5387278419e0e6" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Number of unique species involved in the reaction. < br / > < / td > < / tr >
< tr class = "separator:a348aae35a6c82194ef5387278419e0e6" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a55b7f61d9bde45f2ca485c1b07a05950" id = "r_a55b7f61d9bde45f2ca485c1b07a05950" > < td class = "memItemLeft" align = "right" valign = "top" > virtual std::unordered_map< fourdst::atomic::Species, int >   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a55b7f61d9bde45f2ca485c1b07a05950" > stoichiometry< / a > () const=0< / td > < / tr >
< tr class = "memdesc:a55b7f61d9bde45f2ca485c1b07a05950" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Full stoichiometry map for this reaction. < br / > < / td > < / tr >
< tr class = "separator:a55b7f61d9bde45f2ca485c1b07a05950" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:af0a893603aa88f7d7d205b9b969af487" id = "r_af0a893603aa88f7d7d205b9b969af487" > < td class = "memItemLeft" align = "right" valign = "top" > virtual int  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#af0a893603aa88f7d7d205b9b969af487" > stoichiometry< / a > (const fourdst::atomic::Species & species) const=0< / td > < / tr >
< tr class = "memdesc:af0a893603aa88f7d7d205b9b969af487" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Stoichiometric coefficient for a particular species. < br / > < / td > < / tr >
< tr class = "separator:af0a893603aa88f7d7d205b9b969af487" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a41b1c16f499c9255251ed43725cf698c" id = "r_a41b1c16f499c9255251ed43725cf698c" > < td class = "memItemLeft" align = "right" valign = "top" > virtual uint64_t  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a41b1c16f499c9255251ed43725cf698c" > hash< / a > (uint64_t seed) const=0< / td > < / tr >
< tr class = "memdesc:a41b1c16f499c9255251ed43725cf698c" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Stable content-based hash for this reaction. < br / > < / td > < / tr >
< tr class = "separator:a41b1c16f499c9255251ed43725cf698c" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a11c714febaf818f1d4d6c19a064d707e" id = "r_a11c714febaf818f1d4d6c19a064d707e" > < td class = "memItemLeft" align = "right" valign = "top" > virtual double  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a11c714febaf818f1d4d6c19a064d707e" > qValue< / a > () const=0< / td > < / tr >
< tr class = "memdesc:a11c714febaf818f1d4d6c19a064d707e" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Q-value of the reaction (typically MeV), positive if exothermic. < br / > < / td > < / tr >
< tr class = "separator:a11c714febaf818f1d4d6c19a064d707e" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:ae66b446c98add7e00a1d960f4e7c60dd" id = "r_ae66b446c98add7e00a1d960f4e7c60dd" > < td class = "memItemLeft" align = "right" valign = "top" > virtual double  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#ae66b446c98add7e00a1d960f4e7c60dd" > calculate_energy_generation_rate< / a > (const double T9, const double rho, const double Ye, double mue, const std::vector< double > & Y, const std::unordered_map< size_t, fourdst::atomic::Species > & index_to_species_map) const< / td > < / tr >
< tr class = "memdesc:ae66b446c98add7e00a1d960f4e7c60dd" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Convenience: energy generation rate from this reaction (double version). < br / > < / td > < / tr >
< tr class = "separator:ae66b446c98add7e00a1d960f4e7c60dd" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a4282f85c34d6db1994c07e7a40f66d80" id = "r_a4282f85c34d6db1994c07e7a40f66d80" > < td class = "memItemLeft" align = "right" valign = "top" > virtual CppAD::AD< double >   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a4282f85c34d6db1994c07e7a40f66d80" > calculate_energy_generation_rate< / a > (const CppAD::AD< double > & T9, const CppAD::AD< double > & rho, const CppAD::AD< double > & Ye, const CppAD::AD< double > & mue, const std::vector< CppAD::AD< double > > & Y, const std::unordered_map< size_t, fourdst::atomic::Species > & index_to_species_map) const< / td > < / tr >
< tr class = "memdesc:a4282f85c34d6db1994c07e7a40f66d80" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Convenience: AD-enabled energy generation rate (AD version). < br / > < / td > < / tr >
< tr class = "separator:a4282f85c34d6db1994c07e7a40f66d80" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:aec9859c030364e1d4a740197514731db" id = "r_aec9859c030364e1d4a740197514731db" > < td class = "memItemLeft" align = "right" valign = "top" > virtual double  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#aec9859c030364e1d4a740197514731db" > calculate_log_rate_partial_deriv_wrt_T9< / a > (double T9, double rho, double Ye, double mue, const fourdst::composition::Composition & comp) const=0< / td > < / tr >
< tr class = "memdesc:aec9859c030364e1d4a740197514731db" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Logarithmic partial derivative of the rate with respect to temperature. < br / > < / td > < / tr >
< tr class = "separator:aec9859c030364e1d4a740197514731db" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a186856dc2ce85d8cc4db43c7164b6afa" id = "r_a186856dc2ce85d8cc4db43c7164b6afa" > < td class = "memItemLeft" align = "right" valign = "top" > virtual < a class = "el" href = "namespacegridfire_1_1reaction.html#a026997f11e811fa7754ac9121c4ba74e" > ReactionType< / a >   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a186856dc2ce85d8cc4db43c7164b6afa" > type< / a > () const=0< / td > < / tr >
< tr class = "memdesc:a186856dc2ce85d8cc4db43c7164b6afa" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Category of this reaction (e.g., REACLIB, WEAK, LOGICAL_REACLIB). < br / > < / td > < / tr >
< tr class = "separator:a186856dc2ce85d8cc4db43c7164b6afa" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a588a8c19970463d97f5aa333fcd312dc" id = "r_a588a8c19970463d97f5aa333fcd312dc" > < td class = "memItemLeft" align = "right" valign = "top" > virtual std::unique_ptr< < a class = "el" href = "classgridfire_1_1reaction_1_1_reaction.html" > Reaction< / a > >   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a588a8c19970463d97f5aa333fcd312dc" > clone< / a > () const=0< / td > < / tr >
< tr class = "memdesc:a588a8c19970463d97f5aa333fcd312dc" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Polymorphic deep copy. < br / > < / td > < / tr >
< tr class = "separator:a588a8c19970463d97f5aa333fcd312dc" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2025-07-24 11:10:45 -04:00
< / table > < table class = "memberdecls" >
< tr class = "heading" > < td colspan = "2" > < h2 class = "groupheader" > < a id = "friends" name = "friends" > < / a >
Friends< / h2 > < / td > < / tr >
< tr class = "memitem:a2b05ab608187216fc751bd2e42e8b7d8" id = "r_a2b05ab608187216fc751bd2e42e8b7d8" > < td class = "memItemLeft" align = "right" valign = "top" > std::ostream &   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "#a2b05ab608187216fc751bd2e42e8b7d8" > operator< < < / a > (std::ostream & os, const < a class = "el" href = "classgridfire_1_1reaction_1_1_reaction.html" > Reaction< / a > & r)< / td > < / tr >
< tr class = "separator:a2b05ab608187216fc751bd2e42e8b7d8" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< / table >
< a name = "details" id = "details" > < / a > < h2 class = "groupheader" > Detailed Description< / h2 >
< div class = "textblock" > < p > Represents a single nuclear reaction from a specific data source. < / p >
< p > This class encapsulates all properties of a single nuclear reaction as defined in formats like REACLIB, including reactants, products, Q-value, and rate coefficients from a particular evaluation (source).< / p >
< p > Example: < / p > < div class = "fragment" > < div class = "line" > < span class = "comment" > // Assuming species and rate coefficients are defined< / span > < / div >
2025-10-08 11:17:09 -04:00
< div class = "line" > < a class = "code hl_class" href = "classgridfire_1_1reaction_1_1_reaction.html" > Reaction< / a > p_gamma_d(< / div >
2025-07-24 11:10:45 -04:00
< div class = "line" > < span class = "stringliteral" > " H_1_H_1_to_H_2" < / span > , < span class = "stringliteral" > " p(p,g)d" < / span > , 1, {H_1, H_1}, {H_2}, 5.493, < span class = "stringliteral" > " st08" < / span > , rate_coeffs< / div >
< div class = "line" > );< / div >
2025-10-08 11:17:09 -04:00
< div class = "line" > < span class = "keywordtype" > double< / span > rate = p_gamma_d.< a class = "code hl_function" href = "classgridfire_1_1reaction_1_1_reaction.html#a83c121480533593adfd68c4a67a649f1" > calculate_rate< / a > (0.1); < span class = "comment" > // T9 = 0.1< / span > < / div >
2025-11-04 14:04:26 -05:00
< div class = "ttc" id = "aclassgridfire_1_1reaction_1_1_reaction_html" > < div class = "ttname" > < a href = "classgridfire_1_1reaction_1_1_reaction.html" > gridfire::reaction::Reaction< / a > < / div > < div class = "ttdoc" > Represents a single nuclear reaction from a specific data source.< / div > < div class = "ttdef" > < b > Definition< / b > reaction.h:92< / div > < / div >
2025-10-08 11:17:09 -04:00
< div class = "ttc" id = "aclassgridfire_1_1reaction_1_1_reaction_html_a83c121480533593adfd68c4a67a649f1" > < div class = "ttname" > < a href = "classgridfire_1_1reaction_1_1_reaction.html#a83c121480533593adfd68c4a67a649f1" > gridfire::reaction::Reaction::calculate_rate< / a > < / div > < div class = "ttdeci" > virtual double calculate_rate(double T9, double rho, double Ye, double mue, const std::vector< double > & Y, const std::unordered_map< size_t, fourdst::atomic::Species > & index_to_species_map) const =0< / div > < div class = "ttdoc" > Compute the temperature- and composition-dependent reaction rate.< / div > < / div >
2025-07-31 10:54:31 -04:00
< / div > <!-- fragment --> < / div > < h2 class = "groupheader" > Constructor & Destructor Documentation< / h2 >
2025-07-24 11:10:45 -04:00
< a id = "ab1860df84843be70f97469761e11ab6a" name = "ab1860df84843be70f97469761e11ab6a" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#ab1860df84843be70f97469761e11ab6a" > ◆   < / a > < / span > ~Reaction()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > virtual gridfire::reaction::Reaction::~Reaction < / td >
< td > (< / td >
< td class = "paramname" > < span class = "paramname" > < em > < / em > < / span > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel virtual" > virtual< / span > < span class = "mlabel default" > default< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
2025-10-08 11:17:09 -04:00
< p > Virtual destructor for correct polymorphic cleanup. < / p >
2025-07-24 11:10:45 -04:00
< / div >
< / div >
< h2 class = "groupheader" > Member Function Documentation< / h2 >
2025-10-08 11:17:09 -04:00
< a id = "ace0b2bee91702e0ab97b6fc74999d6f0" name = "ace0b2bee91702e0ab97b6fc74999d6f0" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#ace0b2bee91702e0ab97b6fc74999d6f0" > ◆   < / a > < / span > all_species()< / h2 >
2025-07-24 11:10:45 -04:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
2025-10-08 11:17:09 -04:00
< td class = "memname" > virtual std::unordered_set< fourdst::atomic::Species > gridfire::reaction::Reaction::all_species < / td >
2025-07-24 11:10:45 -04:00
< td > (< / td >
< td class = "paramname" > < span class = "paramname" > < em > < / em > < / span > < / td > < td > )< / td >
< td > const< / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-10-08 11:17:09 -04:00
< span class = "mlabels" > < span class = "mlabel nodiscard" > nodiscard< / span > < span class = "mlabel pure-virtual" > pure virtual< / span > < / span > < / td >
2025-07-24 11:10:45 -04:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
2025-10-08 11:17:09 -04:00
< p > Set of all unique species appearing in the reaction. < / p >
< dl class = "section return" > < dt > Returns< / dt > < dd > Unordered set of all reactants and products (no duplicates). < / dd > < / dl >
2025-07-24 11:10:45 -04:00
< / div >
< / div >
2025-10-08 11:17:09 -04:00
< a id = "a4282f85c34d6db1994c07e7a40f66d80" name = "a4282f85c34d6db1994c07e7a40f66d80" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a4282f85c34d6db1994c07e7a40f66d80" > ◆   < / a > < / span > calculate_energy_generation_rate() < span class = "overload" > [1/2]< / span > < / h2 >
2025-07-24 11:10:45 -04:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
2025-10-08 11:17:09 -04:00
< td class = "memname" > virtual CppAD::AD< double > gridfire::reaction::Reaction::calculate_energy_generation_rate < / td >
2025-07-24 11:10:45 -04:00
< td > (< / td >
2025-10-08 11:17:09 -04:00
< td class = "paramtype" > const CppAD::AD< double > & < / td > < td class = "paramname" > < span class = "paramname" > < em > T9< / em > < / span > , < / td >
2025-07-24 11:10:45 -04:00
< / tr >
< tr >
2025-10-08 11:17:09 -04:00
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > const CppAD::AD< double > & < / td > < td class = "paramname" > < span class = "paramname" > < em > rho< / em > < / span > , < / td >
2025-07-24 11:10:45 -04:00
< / tr >
< tr >
2025-10-08 11:17:09 -04:00
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > const CppAD::AD< double > & < / td > < td class = "paramname" > < span class = "paramname" > < em > Ye< / em > < / span > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > const CppAD::AD< double > & < / td > < td class = "paramname" > < span class = "paramname" > < em > mue< / em > < / span > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > const std::vector< CppAD::AD< double > > & < / td > < td class = "paramname" > < span class = "paramname" > < em > Y< / em > < / span > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > const std::unordered_map< size_t, fourdst::atomic::Species > & < / td > < td class = "paramname" > < span class = "paramname" > < em > index_to_species_map< / em > < / span >   ) const< / td >
2025-07-24 11:10:45 -04:00
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-10-08 11:17:09 -04:00
< span class = "mlabels" > < span class = "mlabel inline" > inline< / span > < span class = "mlabel nodiscard" > nodiscard< / span > < span class = "mlabel virtual" > virtual< / span > < / span > < / td >
2025-07-24 11:10:45 -04:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
2025-10-08 11:17:09 -04:00
< p > Convenience: AD-enabled energy generation rate (AD version). < / p >
< p > Default implementation multiplies the AD rate by the reaction Q-value. Electron quantities (Ye, mue) are ignored in this default, so override if they contribute.< / p >
2025-07-24 11:10:45 -04:00
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
2025-10-08 11:17:09 -04:00
< tr > < td class = "paramname" > T9< / td > < td > Temperature in GK as CppAD::AD< double> . < / td > < / tr >
< tr > < td class = "paramname" > rho< / td > < td > Mass density as CppAD::AD< double> . < / td > < / tr >
< tr > < td class = "paramname" > Ye< / td > < td > Electron fraction as CppAD::AD< double> (ignored by default). < / td > < / tr >
< tr > < td class = "paramname" > mue< / td > < td > Electron chemical potential as CppAD::AD< double> (ignored by default). < / td > < / tr >
< tr > < td class = "paramname" > Y< / td > < td > Composition vector as CppAD::AD< double> values. < / td > < / tr >
< tr > < td class = "paramname" > index_to_species_map< / td > < td > Mapping from state-vector index to Species. < / td > < / tr >
2025-07-24 11:10:45 -04:00
< / table >
< / dd >
< / dl >
2025-10-08 11:17:09 -04:00
< dl class = "section return" > < dt > Returns< / dt > < dd > Energy generation rate as CppAD::AD< double> . < / dd > < / dl >
2025-07-24 11:10:45 -04:00
< / div >
< / div >
2025-10-08 11:17:09 -04:00
< a id = "ae66b446c98add7e00a1d960f4e7c60dd" name = "ae66b446c98add7e00a1d960f4e7c60dd" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#ae66b446c98add7e00a1d960f4e7c60dd" > ◆   < / a > < / span > calculate_energy_generation_rate() < span class = "overload" > [2/2]< / span > < / h2 >
2025-07-24 11:10:45 -04:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
2025-10-08 11:17:09 -04:00
< td class = "memname" > virtual double gridfire::reaction::Reaction::calculate_energy_generation_rate < / td >
2025-07-24 11:10:45 -04:00
< td > (< / td >
2025-10-08 11:17:09 -04:00
< td class = "paramtype" > const double< / td > < td class = "paramname" > < span class = "paramname" > < em > T9< / em > < / span > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > const double< / td > < td class = "paramname" > < span class = "paramname" > < em > rho< / em > < / span > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > const double< / td > < td class = "paramname" > < span class = "paramname" > < em > Ye< / em > < / span > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > double< / td > < td class = "paramname" > < span class = "paramname" > < em > mue< / em > < / span > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > const std::vector< double > & < / td > < td class = "paramname" > < span class = "paramname" > < em > Y< / em > < / span > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > const std::unordered_map< size_t, fourdst::atomic::Species > & < / td > < td class = "paramname" > < span class = "paramname" > < em > index_to_species_map< / em > < / span >   ) const< / td >
2025-07-24 11:10:45 -04:00
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-10-08 11:17:09 -04:00
< span class = "mlabels" > < span class = "mlabel inline" > inline< / span > < span class = "mlabel nodiscard" > nodiscard< / span > < span class = "mlabel virtual" > virtual< / span > < / span > < / td >
2025-07-24 11:10:45 -04:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
2025-10-08 11:17:09 -04:00
< p > Convenience: energy generation rate from this reaction (double version). < / p >
< p > Default implementation multiplies the scalar rate by the reaction Q-value. Electron quantities (Ye, mue) are ignored in this default, so override in derived classes if needed. Sign convention follows < a class = "el" href = "classgridfire_1_1reaction_1_1_reaction.html#a7e06936f9e8bb74e68eaa10e708e5d3c" title = "Q-value of the reaction (typically MeV), positive if exothermic." > qValue()< / a > .< / p >
2025-07-24 11:10:45 -04:00
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
2025-10-08 11:17:09 -04:00
< tr > < td class = "paramname" > T9< / td > < td > Temperature in GK (10^9 K). < / td > < / tr >
< tr > < td class = "paramname" > rho< / td > < td > Mass density (g cm^-3). < / td > < / tr >
< tr > < td class = "paramname" > Ye< / td > < td > Electron fraction (ignored by default implementation). < / td > < / tr >
< tr > < td class = "paramname" > mue< / td > < td > Electron chemical potential (ignored by default implementation). < / td > < / tr >
< tr > < td class = "paramname" > Y< / td > < td > Composition vector. < / td > < / tr >
< tr > < td class = "paramname" > index_to_species_map< / td > < td > Mapping from state-vector index to Species. < / td > < / tr >
2025-07-24 11:10:45 -04:00
< / table >
< / dd >
< / dl >
2025-10-08 11:17:09 -04:00
< dl class = "section return" > < dt > Returns< / dt > < dd > Energy generation rate, typically rate * < a class = "el" href = "classgridfire_1_1reaction_1_1_reaction.html#a7e06936f9e8bb74e68eaa10e708e5d3c" title = "Q-value of the reaction (typically MeV), positive if exothermic." > qValue()< / a > . < / dd > < / dl >
2025-07-24 11:10:45 -04:00
< / div >
< / div >
2025-10-08 11:17:09 -04:00
< a id = "aec9859c030364e1d4a740197514731db" name = "aec9859c030364e1d4a740197514731db" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#aec9859c030364e1d4a740197514731db" > ◆   < / a > < / span > calculate_log_rate_partial_deriv_wrt_T9()< / h2 >
2025-07-24 11:10:45 -04:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
2025-10-08 11:17:09 -04:00
< td class = "memname" > virtual double gridfire::reaction::Reaction::calculate_log_rate_partial_deriv_wrt_T9 < / td >
2025-07-24 11:10:45 -04:00
< td > (< / td >
2025-10-08 11:17:09 -04:00
< td class = "paramtype" > double< / td > < td class = "paramname" > < span class = "paramname" > < em > T9< / em > < / span > , < / td >
2025-07-24 11:10:45 -04:00
< / tr >
< tr >
2025-10-08 11:17:09 -04:00
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > double< / td > < td class = "paramname" > < span class = "paramname" > < em > rho< / em > < / span > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > double< / td > < td class = "paramname" > < span class = "paramname" > < em > Ye< / em > < / span > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > double< / td > < td class = "paramname" > < span class = "paramname" > < em > mue< / em > < / span > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > const fourdst::composition::Composition & < / td > < td class = "paramname" > < span class = "paramname" > < em > comp< / em > < / span >   ) const< / td >
2025-07-24 11:10:45 -04:00
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-10-08 11:17:09 -04:00
< span class = "mlabels" > < span class = "mlabel nodiscard" > nodiscard< / span > < span class = "mlabel pure-virtual" > pure virtual< / span > < / span > < / td >
2025-07-24 11:10:45 -04:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
2025-10-08 11:17:09 -04:00
< p > Logarithmic partial derivative of the rate with respect to temperature. < / p >
< p > Implementations return d(ln rate)/d(ln T9) or an equivalent measure (as documented by the concrete class), evaluated at the provided state.< / p >
2025-07-24 11:10:45 -04:00
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
2025-10-08 11:17:09 -04:00
< tr > < td class = "paramname" > T9< / td > < td > Temperature in GK (10^9 K). < / td > < / tr >
< tr > < td class = "paramname" > rho< / td > < td > Mass density (g cm^-3). < / td > < / tr >
< tr > < td class = "paramname" > Ye< / td > < td > Electron fraction. < / td > < / tr >
< tr > < td class = "paramname" > mue< / td > < td > Electron chemical potential. < / td > < / tr >
< tr > < td class = "paramname" > comp< / td > < td > Composition object providing composition in a convenient form. < / td > < / tr >
2025-07-24 11:10:45 -04:00
< / table >
< / dd >
< / dl >
2025-10-08 11:17:09 -04:00
< dl class = "section return" > < dt > Returns< / dt > < dd > The logarithmic temperature derivative of the rate. < / dd > < / dl >
2025-07-24 11:10:45 -04:00
< / div >
< / div >
2025-10-08 11:17:09 -04:00
< a id = "a8cbc768819bea8497a7b9fa644b8fd65" name = "a8cbc768819bea8497a7b9fa644b8fd65" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a8cbc768819bea8497a7b9fa644b8fd65" > ◆   < / a > < / span > calculate_rate() < span class = "overload" > [1/2]< / span > < / h2 >
2025-07-24 11:10:45 -04:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
2025-10-08 11:17:09 -04:00
< td class = "memname" > virtual CppAD::AD< double > gridfire::reaction::Reaction::calculate_rate < / td >
2025-07-24 11:10:45 -04:00
< td > (< / td >
2025-10-08 11:17:09 -04:00
< td class = "paramtype" > CppAD::AD< double > < / td > < td class = "paramname" > < span class = "paramname" > < em > T9< / em > < / span > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > CppAD::AD< double > < / td > < td class = "paramname" > < span class = "paramname" > < em > rho< / em > < / span > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > CppAD::AD< double > < / td > < td class = "paramname" > < span class = "paramname" > < em > Ye< / em > < / span > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > CppAD::AD< double > < / td > < td class = "paramname" > < span class = "paramname" > < em > mue< / em > < / span > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > const std::vector< CppAD::AD< double > > & < / td > < td class = "paramname" > < span class = "paramname" > < em > Y< / em > < / span > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > const std::unordered_map< size_t, fourdst::atomic::Species > & < / td > < td class = "paramname" > < span class = "paramname" > < em > index_to_species_map< / em > < / span >   ) const< / td >
2025-07-24 11:10:45 -04:00
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-10-08 11:17:09 -04:00
< span class = "mlabels" > < span class = "mlabel nodiscard" > nodiscard< / span > < span class = "mlabel pure-virtual" > pure virtual< / span > < / span > < / td >
2025-07-24 11:10:45 -04:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
2025-10-08 11:17:09 -04:00
< p > AD-enabled reaction rate for algorithmic differentiation. < / p >
< p > This overload mirrors calculate_rate(double, ...) but operates on CppAD types to enable derivative calculations w.r.t. its inputs.< / p >
2025-07-24 11:10:45 -04:00
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
2025-10-08 11:17:09 -04:00
< tr > < td class = "paramname" > T9< / td > < td > Temperature in GK as CppAD::AD< double> . < / td > < / tr >
< tr > < td class = "paramname" > rho< / td > < td > Mass density as CppAD::AD< double> . < / td > < / tr >
< tr > < td class = "paramname" > Ye< / td > < td > Electron fraction as CppAD::AD< double> . < / td > < / tr >
< tr > < td class = "paramname" > mue< / td > < td > Electron chemical potential as CppAD::AD< double> . < / td > < / tr >
< tr > < td class = "paramname" > Y< / td > < td > Composition vector as CppAD::AD< double> values. < / td > < / tr >
< tr > < td class = "paramname" > index_to_species_map< / td > < td > Mapping from state-vector index to Species, used to interpret Y. < / td > < / tr >
2025-07-24 11:10:45 -04:00
< / table >
< / dd >
< / dl >
2025-10-08 11:17:09 -04:00
< dl class = "section return" > < dt > Returns< / dt > < dd > The reaction rate as a CppAD::AD< double> value. < / dd > < / dl >
2025-07-24 11:10:45 -04:00
< / div >
< / div >
2025-10-08 11:17:09 -04:00
< a id = "abb3e2b9c5404f45fc5656eeac1d06a6c" name = "abb3e2b9c5404f45fc5656eeac1d06a6c" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#abb3e2b9c5404f45fc5656eeac1d06a6c" > ◆   < / a > < / span > calculate_rate() < span class = "overload" > [2/2]< / span > < / h2 >
2025-07-24 11:10:45 -04:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
2025-10-08 11:17:09 -04:00
< td class = "memname" > virtual double gridfire::reaction::Reaction::calculate_rate < / td >
2025-07-24 11:10:45 -04:00
< td > (< / td >
2025-10-08 11:17:09 -04:00
< td class = "paramtype" > double< / td > < td class = "paramname" > < span class = "paramname" > < em > T9< / em > < / span > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > double< / td > < td class = "paramname" > < span class = "paramname" > < em > rho< / em > < / span > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > double< / td > < td class = "paramname" > < span class = "paramname" > < em > Ye< / em > < / span > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > double< / td > < td class = "paramname" > < span class = "paramname" > < em > mue< / em > < / span > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > const std::vector< double > & < / td > < td class = "paramname" > < span class = "paramname" > < em > Y< / em > < / span > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > const std::unordered_map< size_t, fourdst::atomic::Species > & < / td > < td class = "paramname" > < span class = "paramname" > < em > index_to_species_map< / em > < / span >   ) const< / td >
2025-07-24 11:10:45 -04:00
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-10-08 11:17:09 -04:00
< span class = "mlabels" > < span class = "mlabel nodiscard" > nodiscard< / span > < span class = "mlabel pure-virtual" > pure virtual< / span > < / span > < / td >
2025-07-24 11:10:45 -04:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
2025-10-08 11:17:09 -04:00
< p > Compute the temperature- and composition-dependent reaction rate. < / p >
< p > This is the primary interface used by the network to obtain the rate of a single reaction at the given thermodynamic state and composition. The exact units and normalization are defined by the concrete implementation (e.g., REACLIB typically provides NA< sigma v> with units depending on the reaction order). Implementations may use density/electron properties for weak processes or screening, and the composition vector for multi-body reactions.< / p >
2025-07-24 11:10:45 -04:00
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
2025-10-08 11:17:09 -04:00
< tr > < td class = "paramname" > T9< / td > < td > Temperature in GK (10^9 K). < / td > < / tr >
< tr > < td class = "paramname" > rho< / td > < td > Mass density (g cm^-3). May be unused for some reaction types. < / td > < / tr >
< tr > < td class = "paramname" > Ye< / td > < td > Electron fraction. May be unused depending on the reaction type. < / td > < / tr >
< tr > < td class = "paramname" > mue< / td > < td > Electron chemical potential. May be unused depending on the reaction type. < / td > < / tr >
< tr > < td class = "paramname" > Y< / td > < td > Composition vector (molar abundances or number fractions) indexed consistently with index_to_species_map. < / td > < / tr >
< tr > < td class = "paramname" > index_to_species_map< / td > < td > Mapping from state-vector index to Species, used to interpret Y. < / td > < / tr >
2025-07-24 11:10:45 -04:00
< / table >
< / dd >
< / dl >
2025-10-08 11:17:09 -04:00
< dl class = "section return" > < dt > Returns< / dt > < dd > The reaction rate for the forward direction, with units/normalization defined by the specific model (implementation must document its convention). < / dd > < / dl >
2025-07-24 11:10:45 -04:00
< / div >
< / div >
2025-10-08 11:17:09 -04:00
< a id = "a588a8c19970463d97f5aa333fcd312dc" name = "a588a8c19970463d97f5aa333fcd312dc" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a588a8c19970463d97f5aa333fcd312dc" > ◆   < / a > < / span > clone()< / h2 >
2025-07-24 11:10:45 -04:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
2025-10-08 11:17:09 -04:00
< td class = "memname" > virtual std::unique_ptr< < a class = "el" href = "classgridfire_1_1reaction_1_1_reaction.html" > Reaction< / a > > gridfire::reaction::Reaction::clone < / td >
2025-07-24 11:10:45 -04:00
< td > (< / td >
< td class = "paramname" > < span class = "paramname" > < em > < / em > < / span > < / td > < td > )< / td >
< td > const< / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-10-08 11:17:09 -04:00
< span class = "mlabels" > < span class = "mlabel nodiscard" > nodiscard< / span > < span class = "mlabel pure-virtual" > pure virtual< / span > < / span > < / td >
2025-07-24 11:10:45 -04:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
2025-10-08 11:17:09 -04:00
< p > Polymorphic deep copy. < / p >
< dl class = "section return" > < dt > Returns< / dt > < dd > A std::unique_ptr owning a new < a class = "el" href = "classgridfire_1_1_reaction.html" title = "Represents a single nuclear reaction from a specific data source." > Reaction< / a > equal to this one. < / dd > < / dl >
2025-07-24 11:10:45 -04:00
< / div >
< / div >
2025-10-08 11:17:09 -04:00
< a id = "adaeb5d72faf7d55d4e26f6e1fcba21c1" name = "adaeb5d72faf7d55d4e26f6e1fcba21c1" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#adaeb5d72faf7d55d4e26f6e1fcba21c1" > ◆   < / a > < / span > contains()< / h2 >
2025-07-24 11:10:45 -04:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
2025-10-08 11:17:09 -04:00
< td class = "memname" > virtual bool gridfire::reaction::Reaction::contains < / td >
2025-07-24 11:10:45 -04:00
< td > (< / td >
2025-10-08 11:17:09 -04:00
< td class = "paramtype" > const fourdst::atomic::Species & < / td > < td class = "paramname" > < span class = "paramname" > < em > species< / em > < / span > < / td > < td > )< / td >
2025-07-24 11:10:45 -04:00
< td > const< / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-10-08 11:17:09 -04:00
< span class = "mlabels" > < span class = "mlabel nodiscard" > nodiscard< / span > < span class = "mlabel pure-virtual" > pure virtual< / span > < / span > < / td >
2025-07-24 11:10:45 -04:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
2025-10-08 11:17:09 -04:00
< p > True if the species appears as a reactant or a product. < / p >
2025-07-24 11:10:45 -04:00
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
2025-10-08 11:17:09 -04:00
< tr > < td class = "paramname" > species< / td > < td > Species to test. < / td > < / tr >
2025-07-24 11:10:45 -04:00
< / table >
< / dd >
< / dl >
2025-10-08 11:17:09 -04:00
< dl class = "section return" > < dt > Returns< / dt > < dd > Whether the species participates in the reaction (either side). < / dd > < / dl >
2025-07-24 11:10:45 -04:00
< / div >
< / div >
2025-10-08 11:17:09 -04:00
< a id = "a5a17ca61d069749960e5a83e58c0b8a1" name = "a5a17ca61d069749960e5a83e58c0b8a1" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a5a17ca61d069749960e5a83e58c0b8a1" > ◆   < / a > < / span > contains_product()< / h2 >
2025-07-24 11:10:45 -04:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
2025-10-08 11:17:09 -04:00
< td class = "memname" > virtual bool gridfire::reaction::Reaction::contains_product < / td >
2025-07-24 11:10:45 -04:00
< td > (< / td >
2025-10-08 11:17:09 -04:00
< td class = "paramtype" > const fourdst::atomic::Species & < / td > < td class = "paramname" > < span class = "paramname" > < em > species< / em > < / span > < / td > < td > )< / td >
2025-07-24 11:10:45 -04:00
< td > const< / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-10-08 11:17:09 -04:00
< span class = "mlabels" > < span class = "mlabel nodiscard" > nodiscard< / span > < span class = "mlabel pure-virtual" > pure virtual< / span > < / span > < / td >
2025-07-24 11:10:45 -04:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
2025-10-08 11:17:09 -04:00
< p > True if the species appears among the products. < / p >
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
< tr > < td class = "paramname" > species< / td > < td > Species to test. < / td > < / tr >
< / table >
< / dd >
< / dl >
< dl class = "section return" > < dt > Returns< / dt > < dd > Whether the species is a product. < / dd > < / dl >
2025-07-24 11:10:45 -04:00
< / div >
< / div >
2025-10-08 11:17:09 -04:00
< a id = "afca3afba45a3db79980c8fe18c87c750" name = "afca3afba45a3db79980c8fe18c87c750" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#afca3afba45a3db79980c8fe18c87c750" > ◆   < / a > < / span > contains_reactant()< / h2 >
2025-07-24 11:10:45 -04:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
2025-10-08 11:17:09 -04:00
< td class = "memname" > virtual bool gridfire::reaction::Reaction::contains_reactant < / td >
2025-07-24 11:10:45 -04:00
< td > (< / td >
2025-10-08 11:17:09 -04:00
< td class = "paramtype" > const fourdst::atomic::Species & < / td > < td class = "paramname" > < span class = "paramname" > < em > species< / em > < / span > < / td > < td > )< / td >
2025-07-24 11:10:45 -04:00
< td > const< / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-10-08 11:17:09 -04:00
< span class = "mlabels" > < span class = "mlabel nodiscard" > nodiscard< / span > < span class = "mlabel pure-virtual" > pure virtual< / span > < / span > < / td >
2025-07-24 11:10:45 -04:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
2025-10-08 11:17:09 -04:00
< p > True if the species appears among the reactants. < / p >
2025-07-24 11:10:45 -04:00
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
2025-10-08 11:17:09 -04:00
< tr > < td class = "paramname" > species< / td > < td > Species to test. < / td > < / tr >
2025-07-24 11:10:45 -04:00
< / table >
< / dd >
< / dl >
2025-10-08 11:17:09 -04:00
< dl class = "section return" > < dt > Returns< / dt > < dd > Whether the species is a reactant. < / dd > < / dl >
2025-07-24 11:10:45 -04:00
< / div >
< / div >
2025-10-08 11:17:09 -04:00
< a id = "a41b1c16f499c9255251ed43725cf698c" name = "a41b1c16f499c9255251ed43725cf698c" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a41b1c16f499c9255251ed43725cf698c" > ◆   < / a > < / span > hash()< / h2 >
2025-07-24 11:10:45 -04:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
2025-10-08 11:17:09 -04:00
< td class = "memname" > virtual uint64_t gridfire::reaction::Reaction::hash < / td >
2025-07-24 11:10:45 -04:00
< td > (< / td >
2025-10-08 11:17:09 -04:00
< td class = "paramtype" > uint64_t< / td > < td class = "paramname" > < span class = "paramname" > < em > seed< / em > < / span > < / td > < td > )< / td >
2025-07-24 11:10:45 -04:00
< td > const< / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-10-08 11:17:09 -04:00
< span class = "mlabels" > < span class = "mlabel nodiscard" > nodiscard< / span > < span class = "mlabel pure-virtual" > pure virtual< / span > < / span > < / td >
2025-07-24 11:10:45 -04:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
2025-10-08 11:17:09 -04:00
< p > Stable content-based hash for this reaction. < / p >
< p > Intended for use in caches, sets, and order-independent hashing of < a class = "el" href = "classgridfire_1_1_reaction.html" title = "Represents a single nuclear reaction from a specific data source." > Reaction< / a > collections. Implementations should produce the same value across processes for the same content and seed. < / p > < dl class = "params" > < dt > Parameters< / dt > < dd >
2025-07-24 11:10:45 -04:00
< table class = "params" >
2025-10-08 11:17:09 -04:00
< tr > < td class = "paramname" > seed< / td > < td > Seed value to initialize/mix into the hash. < / td > < / tr >
2025-07-24 11:10:45 -04:00
< / table >
< / dd >
< / dl >
2025-10-08 11:17:09 -04:00
< dl class = "section return" > < dt > Returns< / dt > < dd > 64-bit hash value. < / dd > < / dl >
2025-07-24 11:10:45 -04:00
< / div >
< / div >
2025-10-08 11:17:09 -04:00
< a id = "a768329002a4f0b8604b1aa51d56b5d1b" name = "a768329002a4f0b8604b1aa51d56b5d1b" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a768329002a4f0b8604b1aa51d56b5d1b" > ◆   < / a > < / span > id()< / h2 >
2025-07-24 11:10:45 -04:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
2025-10-08 11:17:09 -04:00
< td class = "memname" > virtual std::string_view gridfire::reaction::Reaction::id < / td >
2025-07-24 11:10:45 -04:00
< td > (< / td >
< td class = "paramname" > < span class = "paramname" > < em > < / em > < / span > < / td > < td > )< / td >
< td > const< / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-10-08 11:17:09 -04:00
< span class = "mlabels" > < span class = "mlabel nodiscard" > nodiscard< / span > < span class = "mlabel pure-virtual" > pure virtual< / span > < / span > < / td >
2025-07-24 11:10:45 -04:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
2025-10-08 11:17:09 -04:00
< p > A stable, unique identifier for this reaction instance. < / p >
< dl class = "section return" > < dt > Returns< / dt > < dd > String view of the reaction ID (stable across runs and suitable for lookups). < / dd > < / dl >
2025-07-24 11:10:45 -04:00
< / div >
< / div >
2025-10-08 11:17:09 -04:00
< a id = "a640b0bdbed9ed7c2a2e9880ddbcafc1d" name = "a640b0bdbed9ed7c2a2e9880ddbcafc1d" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a640b0bdbed9ed7c2a2e9880ddbcafc1d" > ◆   < / a > < / span > is_reverse()< / h2 >
2025-07-24 11:10:45 -04:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
2025-10-08 11:17:09 -04:00
< td class = "memname" > virtual bool gridfire::reaction::Reaction::is_reverse < / td >
2025-07-24 11:10:45 -04:00
< td > (< / td >
< td class = "paramname" > < span class = "paramname" > < em > < / em > < / span > < / td > < td > )< / td >
< td > const< / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-10-08 11:17:09 -04:00
< span class = "mlabels" > < span class = "mlabel nodiscard" > nodiscard< / span > < span class = "mlabel pure-virtual" > pure virtual< / span > < / span > < / td >
2025-07-24 11:10:45 -04:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
2025-10-08 11:17:09 -04:00
< p > Whether this object represents a reverse (backward) rate. < / p >
< p > Implementations may pair forward/reverse rates for detailed balance. This flag indicates that the parameterization corresponds to the reverse direction. < / p > < dl class = "section return" > < dt > Returns< / dt > < dd > True for a reverse rate, false for a forward rate. < / dd > < / dl >
2025-07-24 11:10:45 -04:00
< / div >
< / div >
2025-10-08 11:17:09 -04:00
< a id = "a348aae35a6c82194ef5387278419e0e6" name = "a348aae35a6c82194ef5387278419e0e6" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a348aae35a6c82194ef5387278419e0e6" > ◆   < / a > < / span > num_species()< / h2 >
2025-07-24 11:10:45 -04:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
2025-10-08 11:17:09 -04:00
< td class = "memname" > virtual size_t gridfire::reaction::Reaction::num_species < / td >
2025-07-24 11:10:45 -04:00
< td > (< / td >
< td class = "paramname" > < span class = "paramname" > < em > < / em > < / span > < / td > < td > )< / td >
< td > const< / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-10-08 11:17:09 -04:00
< span class = "mlabels" > < span class = "mlabel nodiscard" > nodiscard< / span > < span class = "mlabel pure-virtual" > pure virtual< / span > < / span > < / td >
2025-07-24 11:10:45 -04:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
2025-10-08 11:17:09 -04:00
< p > Number of unique species involved in the reaction. < / p >
< dl class = "section return" > < dt > Returns< / dt > < dd > Count of distinct species across reactants and products. < / dd > < / dl >
2025-07-24 11:10:45 -04:00
< / div >
< / div >
2025-10-08 11:17:09 -04:00
< a id = "ac2306d841bad605b7c9ae104397cec0f" name = "ac2306d841bad605b7c9ae104397cec0f" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#ac2306d841bad605b7c9ae104397cec0f" > ◆   < / a > < / span > product_species()< / h2 >
2025-07-24 11:10:45 -04:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
2025-10-08 11:17:09 -04:00
< td class = "memname" > virtual std::unordered_set< fourdst::atomic::Species > gridfire::reaction::Reaction::product_species < / td >
2025-07-24 11:10:45 -04:00
< td > (< / td >
< td class = "paramname" > < span class = "paramname" > < em > < / em > < / span > < / td > < td > )< / td >
< td > const< / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-10-08 11:17:09 -04:00
< span class = "mlabels" > < span class = "mlabel nodiscard" > nodiscard< / span > < span class = "mlabel pure-virtual" > pure virtual< / span > < / span > < / td >
2025-07-24 11:10:45 -04:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
2025-10-08 11:17:09 -04:00
< p > Set of unique product species. < / p >
< dl class = "section return" > < dt > Returns< / dt > < dd > Unordered set of product species (no duplicates). < / dd > < / dl >
2025-07-24 11:10:45 -04:00
< / div >
< / div >
2025-10-08 11:17:09 -04:00
< a id = "ac2918935929030e8d218dc8d107a78f9" name = "ac2918935929030e8d218dc8d107a78f9" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#ac2918935929030e8d218dc8d107a78f9" > ◆   < / a > < / span > products()< / h2 >
2025-07-24 11:10:45 -04:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
2025-10-08 11:17:09 -04:00
< td class = "memname" > virtual const std::vector< fourdst::atomic::Species > & gridfire::reaction::Reaction::products < / td >
2025-07-24 11:10:45 -04:00
< td > (< / td >
< td class = "paramname" > < span class = "paramname" > < em > < / em > < / span > < / td > < td > )< / td >
< td > const< / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-10-08 11:17:09 -04:00
< span class = "mlabels" > < span class = "mlabel nodiscard" > nodiscard< / span > < span class = "mlabel pure-virtual" > pure virtual< / span > < / span > < / td >
2025-07-24 11:10:45 -04:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
2025-10-08 11:17:09 -04:00
< p > Ordered list of product species. < / p >
< p > Multiplicity is represented by duplicates if applicable. < / p > < dl class = "section return" > < dt > Returns< / dt > < dd > Const reference to the vector of products. < / dd > < / dl >
2025-07-24 11:10:45 -04:00
< / div >
< / div >
2025-10-08 11:17:09 -04:00
< a id = "a11c714febaf818f1d4d6c19a064d707e" name = "a11c714febaf818f1d4d6c19a064d707e" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a11c714febaf818f1d4d6c19a064d707e" > ◆   < / a > < / span > qValue()< / h2 >
2025-07-24 11:10:45 -04:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
2025-10-08 11:17:09 -04:00
< td class = "memname" > virtual double gridfire::reaction::Reaction::qValue < / td >
2025-07-24 11:10:45 -04:00
< td > (< / td >
< td class = "paramname" > < span class = "paramname" > < em > < / em > < / span > < / td > < td > )< / td >
< td > const< / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-10-08 11:17:09 -04:00
< span class = "mlabels" > < span class = "mlabel nodiscard" > nodiscard< / span > < span class = "mlabel pure-virtual" > pure virtual< / span > < / span > < / td >
2025-07-24 11:10:45 -04:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
2025-10-08 11:17:09 -04:00
< p > Q-value of the reaction (typically MeV), positive if exothermic. < / p >
< dl class = "section return" > < dt > Returns< / dt > < dd > < a class = "el" href = "classgridfire_1_1_reaction.html" title = "Represents a single nuclear reaction from a specific data source." > Reaction< / a > Q-value used for energy accounting. < / dd > < / dl >
2025-07-24 11:10:45 -04:00
< / div >
< / div >
2025-10-08 11:17:09 -04:00
< a id = "a4be8440aa7e79eab1d44b5d83bcdab79" name = "a4be8440aa7e79eab1d44b5d83bcdab79" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a4be8440aa7e79eab1d44b5d83bcdab79" > ◆   < / a > < / span > reactant_species()< / h2 >
2025-07-24 11:10:45 -04:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
2025-10-08 11:17:09 -04:00
< td class = "memname" > virtual std::unordered_set< fourdst::atomic::Species > gridfire::reaction::Reaction::reactant_species < / td >
2025-07-24 11:10:45 -04:00
< td > (< / td >
< td class = "paramname" > < span class = "paramname" > < em > < / em > < / span > < / td > < td > )< / td >
< td > const< / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-10-08 11:17:09 -04:00
< span class = "mlabels" > < span class = "mlabel nodiscard" > nodiscard< / span > < span class = "mlabel pure-virtual" > pure virtual< / span > < / span > < / td >
2025-07-24 11:10:45 -04:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
2025-10-08 11:17:09 -04:00
< p > Set of unique reactant species. < / p >
< dl class = "section return" > < dt > Returns< / dt > < dd > Unordered set of reactant species (no duplicates). < / dd > < / dl >
2025-07-24 11:10:45 -04:00
< / div >
< / div >
2025-10-08 11:17:09 -04:00
< a id = "a0c533797f18c2fe4945f1afb3fb06d5d" name = "a0c533797f18c2fe4945f1afb3fb06d5d" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a0c533797f18c2fe4945f1afb3fb06d5d" > ◆   < / a > < / span > reactants()< / h2 >
2025-07-24 11:10:45 -04:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
2025-10-08 11:17:09 -04:00
< td class = "memname" > virtual const std::vector< fourdst::atomic::Species > & gridfire::reaction::Reaction::reactants < / td >
2025-07-24 11:10:45 -04:00
< td > (< / td >
< td class = "paramname" > < span class = "paramname" > < em > < / em > < / span > < / td > < td > )< / td >
< td > const< / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-10-08 11:17:09 -04:00
< span class = "mlabels" > < span class = "mlabel nodiscard" > nodiscard< / span > < span class = "mlabel pure-virtual" > pure virtual< / span > < / span > < / td >
2025-07-24 11:10:45 -04:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
2025-10-08 11:17:09 -04:00
< p > Ordered list of reactant species. < / p >
< p > Multiplicity is represented by duplicates, e.g., (p, p) would list H1 twice. < / p > < dl class = "section return" > < dt > Returns< / dt > < dd > Const reference to the vector of reactants. < / dd > < / dl >
2025-07-24 11:10:45 -04:00
< / div >
< / div >
2025-10-08 11:17:09 -04:00
< a id = "a55b7f61d9bde45f2ca485c1b07a05950" name = "a55b7f61d9bde45f2ca485c1b07a05950" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a55b7f61d9bde45f2ca485c1b07a05950" > ◆   < / a > < / span > stoichiometry() < span class = "overload" > [1/2]< / span > < / h2 >
2025-07-24 11:10:45 -04:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
2025-10-08 11:17:09 -04:00
< td class = "memname" > virtual std::unordered_map< fourdst::atomic::Species, int > gridfire::reaction::Reaction::stoichiometry < / td >
2025-07-24 11:10:45 -04:00
< td > (< / td >
< td class = "paramname" > < span class = "paramname" > < em > < / em > < / span > < / td > < td > )< / td >
< td > const< / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-10-08 11:17:09 -04:00
< span class = "mlabels" > < span class = "mlabel nodiscard" > nodiscard< / span > < span class = "mlabel pure-virtual" > pure virtual< / span > < / span > < / td >
2025-07-24 11:10:45 -04:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
2025-10-08 11:17:09 -04:00
< p > Full stoichiometry map for this reaction. < / p >
< p > Coefficients are negative for reactants and positive for products; multiplicity is reflected in the magnitude (e.g., 2H -> He gives H: -2, He: +1). < / p > < dl class = "section return" > < dt > Returns< / dt > < dd > Map from Species to integer stoichiometric coefficient. < / dd > < / dl >
2025-07-24 11:10:45 -04:00
< / div >
< / div >
2025-10-08 11:17:09 -04:00
< a id = "af0a893603aa88f7d7d205b9b969af487" name = "af0a893603aa88f7d7d205b9b969af487" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#af0a893603aa88f7d7d205b9b969af487" > ◆   < / a > < / span > stoichiometry() < span class = "overload" > [2/2]< / span > < / h2 >
2025-07-24 11:10:45 -04:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
2025-10-08 11:17:09 -04:00
< td class = "memname" > virtual int gridfire::reaction::Reaction::stoichiometry < / td >
2025-07-24 11:10:45 -04:00
< td > (< / td >
< td class = "paramtype" > const fourdst::atomic::Species & < / td > < td class = "paramname" > < span class = "paramname" > < em > species< / em > < / span > < / td > < td > )< / td >
< td > const< / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-10-08 11:17:09 -04:00
< span class = "mlabels" > < span class = "mlabel nodiscard" > nodiscard< / span > < span class = "mlabel pure-virtual" > pure virtual< / span > < / span > < / td >
2025-07-24 11:10:45 -04:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
2025-10-08 11:17:09 -04:00
< p > Stoichiometric coefficient for a particular species. < / p >
2025-07-24 11:10:45 -04:00
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
2025-10-08 11:17:09 -04:00
< tr > < td class = "paramname" > species< / td > < td > Species for which to query the coefficient. < / td > < / tr >
2025-07-24 11:10:45 -04:00
< / table >
< / dd >
< / dl >
2025-10-08 11:17:09 -04:00
< dl class = "section return" > < dt > Returns< / dt > < dd > Negative for reactants, positive for products, zero if absent. < / dd > < / dl >
2025-07-24 11:10:45 -04:00
< / div >
< / div >
2025-10-08 11:17:09 -04:00
< a id = "a186856dc2ce85d8cc4db43c7164b6afa" name = "a186856dc2ce85d8cc4db43c7164b6afa" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a186856dc2ce85d8cc4db43c7164b6afa" > ◆   < / a > < / span > type()< / h2 >
2025-07-24 11:10:45 -04:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
2025-10-08 11:17:09 -04:00
< td class = "memname" > virtual < a class = "el" href = "namespacegridfire_1_1reaction.html#a026997f11e811fa7754ac9121c4ba74e" > ReactionType< / a > gridfire::reaction::Reaction::type < / td >
2025-07-24 11:10:45 -04:00
< td > (< / td >
2025-10-08 11:17:09 -04:00
< td class = "paramname" > < span class = "paramname" > < em > < / em > < / span > < / td > < td > )< / td >
< td > const< / td >
2025-07-24 11:10:45 -04:00
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-10-08 11:17:09 -04:00
< span class = "mlabels" > < span class = "mlabel nodiscard" > nodiscard< / span > < span class = "mlabel pure-virtual" > pure virtual< / span > < / span > < / td >
2025-07-24 11:10:45 -04:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
2025-10-08 11:17:09 -04:00
< p > Category of this reaction (e.g., REACLIB, WEAK, LOGICAL_REACLIB). < / p >
< dl class = "section return" > < dt > Returns< / dt > < dd > Enumerated reaction type for runtime dispatch and filtering. < / dd > < / dl >
2025-07-24 11:10:45 -04:00
< / div >
< / div >
2025-10-08 11:17:09 -04:00
< h2 class = "groupheader" > Friends And Related Symbol Documentation< / h2 >
< a id = "a2b05ab608187216fc751bd2e42e8b7d8" name = "a2b05ab608187216fc751bd2e42e8b7d8" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a2b05ab608187216fc751bd2e42e8b7d8" > ◆   < / a > < / span > operator< < < / h2 >
2025-07-24 11:10:45 -04:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
2025-10-08 11:17:09 -04:00
< td class = "memname" > std::ostream & operator< < < / td >
< td > (< / td >
< td class = "paramtype" > std::ostream & < / td > < td class = "paramname" > < span class = "paramname" > < em > os< / em > < / span > , < / td >
2025-07-24 11:10:45 -04:00
< / tr >
< tr >
2025-10-08 11:17:09 -04:00
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > const < a class = "el" href = "classgridfire_1_1reaction_1_1_reaction.html" > Reaction< / a > & < / td > < td class = "paramname" > < span class = "paramname" > < em > r< / em > < / span >   )< / td >
2025-07-24 11:10:45 -04:00
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-10-08 11:17:09 -04:00
< span class = "mlabels" > < span class = "mlabel friend" > friend< / span > < / span > < / td >
2025-07-24 11:10:45 -04:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
2025-10-08 11:17:09 -04:00
< hr / > The documentation for this class was generated from the following file:< ul >
2025-07-31 10:54:31 -04:00
< li > src/include/gridfire/reaction/< a class = "el" href = "reaction_8h.html" > reaction.h< / a > < / li >
2025-07-24 11:10:45 -04:00
< / ul >
< / div > <!-- contents -->
< / div > <!-- doc - content -->
<!-- start footer part -->
< div id = "nav-path" class = "navpath" > <!-- id is needed for treeview function! -->
< ul >
< li class = "navelem" > < a class = "el" href = "namespacegridfire.html" > gridfire< / a > < / li > < li class = "navelem" > < a class = "el" href = "classgridfire_1_1_reaction.html" > Reaction< / a > < / li >
< li class = "footer" > Generated by < a href = "https://www.doxygen.org/index.html" > < img class = "footer" src = "doxygen.svg" width = "104" height = "31" alt = "doxygen" / > < / a > 1.13.2 < / li >
< / ul >
< / div >
< / body >
< / html >