Files
GridFire/docs/html/classgridfire_1_1partition_1_1RauscherThielemannPartitionFunction.html

710 lines
39 KiB
HTML
Raw Permalink Normal View History

<!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.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>GridFire: gridfire::partition::RauscherThielemannPartitionFunction 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>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.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">
<div id="projectname">GridFire<span id="projectnumber">&#160;v0.7.1_rc2</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @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&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(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&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('classgridfire_1_1partition_1_1RauscherThielemannPartitionFunction.html',''); initResizable(); });
/* @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="#nested-classes">Classes</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pri-types">Private Types</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-static-methods">Static Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="classgridfire_1_1partition_1_1RauscherThielemannPartitionFunction-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">gridfire::partition::RauscherThielemannPartitionFunction Class Reference<span class="mlabels"><span class="mlabel">final</span></span></div></div>
</div><!--header-->
<div class="contents">
<p>Partition function using Rauscher-Thielemann tabulated normalized G-values.
<a href="classgridfire_1_1partition_1_1RauscherThielemannPartitionFunction.html#details">More...</a></p>
<p><code>#include &lt;partition_rauscher_thielemann.h&gt;</code></p>
<div class="dynheader">
Inheritance diagram for gridfire::partition::RauscherThielemannPartitionFunction:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classgridfire_1_1partition_1_1RauscherThielemannPartitionFunction__inherit__graph.svg" width="232" height="154"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for gridfire::partition::RauscherThielemannPartitionFunction:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="classgridfire_1_1partition_1_1RauscherThielemannPartitionFunction__coll__graph.svg" width="100%" height="408"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgridfire_1_1partition_1_1RauscherThielemannPartitionFunction_1_1IdentifiedIsotope.html">IdentifiedIsotope</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgridfire_1_1partition_1_1RauscherThielemannPartitionFunction_1_1InterpolationPoints.html">InterpolationPoints</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgridfire_1_1partition_1_1RauscherThielemannPartitionFunction_1_1IsotopeData.html">IsotopeData</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><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:ae67464baee3b12cdc0470be74524866c" id="r_ae67464baee3b12cdc0470be74524866c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1partition_1_1RauscherThielemannPartitionFunction.html#ae67464baee3b12cdc0470be74524866c">RauscherThielemannPartitionFunction</a> ()</td></tr>
<tr class="memdesc:ae67464baee3b12cdc0470be74524866c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct and populate partition data. <br /></td></tr>
<tr class="separator:ae67464baee3b12cdc0470be74524866c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aebe49d06b50a18ea4484ff15cb301681" id="r_aebe49d06b50a18ea4484ff15cb301681"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1partition_1_1RauscherThielemannPartitionFunction.html#aebe49d06b50a18ea4484ff15cb301681">evaluate</a> (int z, int a, double T9) const override</td></tr>
<tr class="memdesc:aebe49d06b50a18ea4484ff15cb301681"><td class="mdescLeft">&#160;</td><td class="mdescRight">Evaluate partition function for isotope at temperature. <br /></td></tr>
<tr class="separator:aebe49d06b50a18ea4484ff15cb301681"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa1e11579b44a88c5f18943cc303c4b4" id="r_aaa1e11579b44a88c5f18943cc303c4b4"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1partition_1_1RauscherThielemannPartitionFunction.html#aaa1e11579b44a88c5f18943cc303c4b4">evaluateDerivative</a> (int z, int a, double T9) const override</td></tr>
<tr class="memdesc:aaa1e11579b44a88c5f18943cc303c4b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Evaluate temperature derivative of partition function. <br /></td></tr>
<tr class="separator:aaa1e11579b44a88c5f18943cc303c4b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a588a11c654751765b04d6425c99041f5" id="r_a588a11c654751765b04d6425c99041f5"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1partition_1_1RauscherThielemannPartitionFunction.html#a588a11c654751765b04d6425c99041f5">supports</a> (int z, int a) const override</td></tr>
<tr class="memdesc:a588a11c654751765b04d6425c99041f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if partition data exists for given isotope. <br /></td></tr>
<tr class="separator:a588a11c654751765b04d6425c99041f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3aa478acf12e09b6dd268f744071b2a0" id="r_a3aa478acf12e09b6dd268f744071b2a0"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1partition_1_1RauscherThielemannPartitionFunction.html#a3aa478acf12e09b6dd268f744071b2a0">type</a> () const override</td></tr>
<tr class="memdesc:a3aa478acf12e09b6dd268f744071b2a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get type identifier for this partition function. <br /></td></tr>
<tr class="separator:a3aa478acf12e09b6dd268f744071b2a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad229cac0a84df5ebbcaf0550f83debf6" id="r_ad229cac0a84df5ebbcaf0550f83debf6"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classgridfire_1_1partition_1_1PartitionFunction.html">PartitionFunction</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1partition_1_1RauscherThielemannPartitionFunction.html#ad229cac0a84df5ebbcaf0550f83debf6">clone</a> () const override</td></tr>
<tr class="memdesc:ad229cac0a84df5ebbcaf0550f83debf6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clone this partition function instance. <br /></td></tr>
<tr class="separator:ad229cac0a84df5ebbcaf0550f83debf6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classgridfire_1_1partition_1_1PartitionFunction"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classgridfire_1_1partition_1_1PartitionFunction')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classgridfire_1_1partition_1_1PartitionFunction.html">gridfire::partition::PartitionFunction</a></td></tr>
<tr class="memitem:a197a0663dcfb4ab4be3b0e14b98391db inherit pub_methods_classgridfire_1_1partition_1_1PartitionFunction" id="r_a197a0663dcfb4ab4be3b0e14b98391db"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1partition_1_1PartitionFunction.html#a197a0663dcfb4ab4be3b0e14b98391db">~PartitionFunction</a> ()=default</td></tr>
<tr class="memdesc:a197a0663dcfb4ab4be3b0e14b98391db inherit pub_methods_classgridfire_1_1partition_1_1PartitionFunction"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual destructor. <br /></td></tr>
<tr class="separator:a197a0663dcfb4ab4be3b0e14b98391db inherit pub_methods_classgridfire_1_1partition_1_1PartitionFunction"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-types" name="pri-types"></a>
Private Types</h2></td></tr>
<tr class="memitem:a7002ebbef966f89b2426f5ea0df33329" id="r_a7002ebbef966f89b2426f5ea0df33329"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1partition_1_1RauscherThielemannPartitionFunction.html#a7002ebbef966f89b2426f5ea0df33329">Bounds</a> { <a class="el" href="classgridfire_1_1partition_1_1RauscherThielemannPartitionFunction.html#a7002ebbef966f89b2426f5ea0df33329aa692ae3131928d57ddcd2408d6b44d71">FRONT</a>
, <a class="el" href="classgridfire_1_1partition_1_1RauscherThielemannPartitionFunction.html#a7002ebbef966f89b2426f5ea0df33329ad8c6323fcc54dfc5319fbd935ae4f75d">BACK</a>
, <a class="el" href="classgridfire_1_1partition_1_1RauscherThielemannPartitionFunction.html#a7002ebbef966f89b2426f5ea0df33329abb276a700ba6a5b912fa0bf0a668d735">MIDDLE</a>
}</td></tr>
<tr class="memdesc:a7002ebbef966f89b2426f5ea0df33329"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicator for temperature grid bound position. <a href="classgridfire_1_1partition_1_1RauscherThielemannPartitionFunction.html#a7002ebbef966f89b2426f5ea0df33329">More...</a><br /></td></tr>
<tr class="separator:a7002ebbef966f89b2426f5ea0df33329"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-methods" name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr class="memitem:a12058e121981294f447e69a467fd84cd" id="r_a12058e121981294f447e69a467fd84cd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgridfire_1_1partition_1_1RauscherThielemannPartitionFunction_1_1IdentifiedIsotope.html">IdentifiedIsotope</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1partition_1_1RauscherThielemannPartitionFunction.html#a12058e121981294f447e69a467fd84cd">find</a> (int z, int a, double T9) const</td></tr>
<tr class="memdesc:a12058e121981294f447e69a467fd84cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Identify isotope entry and grid indices for given T9. <br /></td></tr>
<tr class="separator:a12058e121981294f447e69a467fd84cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-static-methods" name="pri-static-methods"></a>
Static Private Member Functions</h2></td></tr>
<tr class="memitem:a3baed110ab1b12e22071dc2d92c55db9" id="r_a3baed110ab1b12e22071dc2d92c55db9"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structgridfire_1_1partition_1_1RauscherThielemannPartitionFunction_1_1InterpolationPoints.html">InterpolationPoints</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1partition_1_1RauscherThielemannPartitionFunction.html#a3baed110ab1b12e22071dc2d92c55db9">get_interpolation_points</a> (const size_t upper_index, const size_t lower_index, const std::array&lt; double, 24 &gt; &amp;normalized_g_values)</td></tr>
<tr class="memdesc:a3baed110ab1b12e22071dc2d92c55db9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get interpolation points from normalized G array. <br /></td></tr>
<tr class="separator:a3baed110ab1b12e22071dc2d92c55db9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac58b95c8530f69f063c8ed8293487aec" id="r_ac58b95c8530f69f063c8ed8293487aec"><td class="memItemLeft" align="right" valign="top">static constexpr int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1partition_1_1RauscherThielemannPartitionFunction.html#ac58b95c8530f69f063c8ed8293487aec">make_key</a> (int z, int a)</td></tr>
<tr class="memdesc:ac58b95c8530f69f063c8ed8293487aec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate integer key for isotope (z,a). <br /></td></tr>
<tr class="separator:ac58b95c8530f69f063c8ed8293487aec"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-attribs" name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:a57384ffb1c81cf982614d90e23b173b6" id="r_a57384ffb1c81cf982614d90e23b173b6"><td class="memItemLeft" align="right" valign="top">quill::Logger *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1partition_1_1RauscherThielemannPartitionFunction.html#a57384ffb1c81cf982614d90e23b173b6">m_logger</a> = fourdst::logging::LogManager::getInstance().getLogger(&quot;log&quot;)</td></tr>
<tr class="separator:a57384ffb1c81cf982614d90e23b173b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50ce19df4c12e22bbcb61422248a4038" id="r_a50ce19df4c12e22bbcb61422248a4038"><td class="memItemLeft" align="right" valign="top">std::unordered_map&lt; int, <a class="el" href="structgridfire_1_1partition_1_1RauscherThielemannPartitionFunction_1_1IsotopeData.html">IsotopeData</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1partition_1_1RauscherThielemannPartitionFunction.html#a50ce19df4c12e22bbcb61422248a4038">m_partitionData</a></td></tr>
<tr class="memdesc:a50ce19df4c12e22bbcb61422248a4038"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map of isotope key to data. <br /></td></tr>
<tr class="separator:a50ce19df4c12e22bbcb61422248a4038"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Partition function using Rauscher-Thielemann tabulated normalized G-values. </p>
<p>Loads isotope partition data from embedded records and computes values by selecting boundary data or interpolating between grid points on a fixed T9 grid. Implementation in <a class="el" href="partition__rauscher__thielemann_8cpp.html">partition_rauscher_thielemann.cpp</a>.</p>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">std::out_of_range</td><td>If requested isotope data is missing. </td></tr>
</table>
</dd>
</dl>
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
<a id="a7002ebbef966f89b2426f5ea0df33329" name="a7002ebbef966f89b2426f5ea0df33329"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7002ebbef966f89b2426f5ea0df33329">&#9670;&#160;</a></span>Bounds</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="classgridfire_1_1partition_1_1RauscherThielemannPartitionFunction.html#a7002ebbef966f89b2426f5ea0df33329">gridfire::partition::RauscherThielemannPartitionFunction::Bounds</a></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Indicator for temperature grid bound position. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a7002ebbef966f89b2426f5ea0df33329aa692ae3131928d57ddcd2408d6b44d71" name="a7002ebbef966f89b2426f5ea0df33329aa692ae3131928d57ddcd2408d6b44d71"></a>FRONT&#160;</td><td class="fielddoc"><p>Below first grid point. </p>
</td></tr>
<tr><td class="fieldname"><a id="a7002ebbef966f89b2426f5ea0df33329ad8c6323fcc54dfc5319fbd935ae4f75d" name="a7002ebbef966f89b2426f5ea0df33329ad8c6323fcc54dfc5319fbd935ae4f75d"></a>BACK&#160;</td><td class="fielddoc"><p>Above last grid point. </p>
</td></tr>
<tr><td class="fieldname"><a id="a7002ebbef966f89b2426f5ea0df33329abb276a700ba6a5b912fa0bf0a668d735" name="a7002ebbef966f89b2426f5ea0df33329abb276a700ba6a5b912fa0bf0a668d735"></a>MIDDLE&#160;</td><td class="fielddoc"><p>Between grid points. </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="ae67464baee3b12cdc0470be74524866c" name="ae67464baee3b12cdc0470be74524866c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae67464baee3b12cdc0470be74524866c">&#9670;&#160;</a></span>RauscherThielemannPartitionFunction()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">gridfire::partition::RauscherThielemannPartitionFunction::RauscherThielemannPartitionFunction </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Construct and populate partition data. </p>
<p>Reads embedded RT partition data records and fills m_partitionData. </p><dl class="section pre"><dt>Precondition</dt><dd>Embedded data arrays are available and non-empty. </dd></dl>
<dl class="section post"><dt>Postcondition</dt><dd>m_partitionData contains entries for all isotopes in data. </dd></dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="ad229cac0a84df5ebbcaf0550f83debf6" name="ad229cac0a84df5ebbcaf0550f83debf6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad229cac0a84df5ebbcaf0550f83debf6">&#9670;&#160;</a></span>clone()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::unique_ptr&lt; <a class="el" href="classgridfire_1_1partition_1_1PartitionFunction.html">PartitionFunction</a> &gt; gridfire::partition::RauscherThielemannPartitionFunction::clone </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Clone this partition function instance. </p>
<dl class="section return"><dt>Returns</dt><dd>Unique pointer to a copy of this object. </dd></dl>
<dl class="section post"><dt>Postcondition</dt><dd>Caller owns the returned object. </dd></dl>
<p>Implements <a class="el" href="classgridfire_1_1partition_1_1PartitionFunction.html#a677a90f992fd56b8718e36655c33ce6d">gridfire::partition::PartitionFunction</a>.</p>
</div>
</div>
<a id="aebe49d06b50a18ea4484ff15cb301681" name="aebe49d06b50a18ea4484ff15cb301681"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aebe49d06b50a18ea4484ff15cb301681">&#9670;&#160;</a></span>evaluate()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">double gridfire::partition::RauscherThielemannPartitionFunction::evaluate </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>z</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>T9</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Evaluate partition function for isotope at temperature. </p>
<p>Retrieves boundary or interpolated normalized G-value and scales by (2J+1). </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">z</td><td>Atomic number of the isotope (&gt;=1). </td></tr>
<tr><td class="paramname">a</td><td>Mass number of the isotope (&gt;=z). </td></tr>
<tr><td class="paramname">T9</td><td>Temperature in units of 10^9 K. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Dimensionless partition function. </dd></dl>
<dl class="section pre"><dt>Precondition</dt><dd>supports(z,a) returns true. </dd></dl>
<dl class="section post"><dt>Postcondition</dt><dd>No side effects. </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">std::out_of_range</td><td>If isotope key not found in m_partitionData. </td></tr>
</table>
</dd>
</dl>
<p>Implements <a class="el" href="classgridfire_1_1partition_1_1PartitionFunction.html#a08ee79b7d8723b4e00ee1fc9cdfbe817">gridfire::partition::PartitionFunction</a>.</p>
</div>
</div>
<a id="aaa1e11579b44a88c5f18943cc303c4b4" name="aaa1e11579b44a88c5f18943cc303c4b4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaa1e11579b44a88c5f18943cc303c4b4">&#9670;&#160;</a></span>evaluateDerivative()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">double gridfire::partition::RauscherThielemannPartitionFunction::evaluateDerivative </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>z</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>T9</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Evaluate temperature derivative of partition function. </p>
<p>Zero at grid extremes; otherwise derivative of linear interpolation. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">z</td><td>Atomic number (&gt;=1). </td></tr>
<tr><td class="paramname">a</td><td>Mass number (&gt;=z). </td></tr>
<tr><td class="paramname">T9</td><td>Temperature in 10^9 K. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>d(PartitionFunction)/dT9. </dd></dl>
<dl class="section pre"><dt>Precondition</dt><dd>supports(z,a) returns true. </dd></dl>
<dl class="section post"><dt>Postcondition</dt><dd>No side effects. </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">std::out_of_range</td><td>If isotope data is missing. </td></tr>
</table>
</dd>
</dl>
<p>Implements <a class="el" href="classgridfire_1_1partition_1_1PartitionFunction.html#a14009bdaca47f3eddf2c6c023845db5a">gridfire::partition::PartitionFunction</a>.</p>
</div>
</div>
<a id="a12058e121981294f447e69a467fd84cd" name="a12058e121981294f447e69a467fd84cd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a12058e121981294f447e69a467fd84cd">&#9670;&#160;</a></span>find()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structgridfire_1_1partition_1_1RauscherThielemannPartitionFunction_1_1IdentifiedIsotope.html">RauscherThielemannPartitionFunction::IdentifiedIsotope</a> gridfire::partition::RauscherThielemannPartitionFunction::find </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>z</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>T9</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Identify isotope entry and grid indices for given T9. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">z</td><td>Atomic number of isotope. </td></tr>
<tr><td class="paramname">a</td><td>Mass number of isotope. </td></tr>
<tr><td class="paramname">T9</td><td>Temperature in 10^9 K. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="structgridfire_1_1partition_1_1RauscherThielemannPartitionFunction_1_1IdentifiedIsotope.html">IdentifiedIsotope</a> with data reference and indices. </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">std::out_of_range</td><td>If isotope not found in m_partitionData. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a3baed110ab1b12e22071dc2d92c55db9" name="a3baed110ab1b12e22071dc2d92c55db9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3baed110ab1b12e22071dc2d92c55db9">&#9670;&#160;</a></span>get_interpolation_points()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structgridfire_1_1partition_1_1RauscherThielemannPartitionFunction_1_1InterpolationPoints.html">RauscherThielemannPartitionFunction::InterpolationPoints</a> gridfire::partition::RauscherThielemannPartitionFunction::get_interpolation_points </td>
<td>(</td>
<td class="paramtype">const size_t&#160;</td>
<td class="paramname"><em>upper_index</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const size_t&#160;</td>
<td class="paramname"><em>lower_index</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::array&lt; double, 24 &gt; &amp;&#160;</td>
<td class="paramname"><em>normalized_g_values</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get interpolation points from normalized G array. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">upper_index</td><td>Index of upper grid point. </td></tr>
<tr><td class="paramname">lower_index</td><td>Index of lower grid point. </td></tr>
<tr><td class="paramname">normalized_g_values</td><td>Array of normalized G values. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="structgridfire_1_1partition_1_1RauscherThielemannPartitionFunction_1_1InterpolationPoints.html">InterpolationPoints</a> containing bounds and G values. </dd></dl>
</div>
</div>
<a id="ac58b95c8530f69f063c8ed8293487aec" name="ac58b95c8530f69f063c8ed8293487aec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac58b95c8530f69f063c8ed8293487aec">&#9670;&#160;</a></span>make_key()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">constexpr int gridfire::partition::RauscherThielemannPartitionFunction::make_key </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>z</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>a</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Generate integer key for isotope (z,a). </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">z</td><td>Atomic number. </td></tr>
<tr><td class="paramname">a</td><td>Mass number (&lt;1000). </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Key computed as z*1000 + a. </dd></dl>
</div>
</div>
<a id="a588a11c654751765b04d6425c99041f5" name="a588a11c654751765b04d6425c99041f5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a588a11c654751765b04d6425c99041f5">&#9670;&#160;</a></span>supports()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool gridfire::partition::RauscherThielemannPartitionFunction::supports </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>z</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>a</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Check if partition data exists for given isotope. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">z</td><td>Atomic number. </td></tr>
<tr><td class="paramname">a</td><td>Mass number. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if data available; false otherwise. </dd></dl>
<dl class="section post"><dt>Postcondition</dt><dd>No side effects. </dd></dl>
<p>Implements <a class="el" href="classgridfire_1_1partition_1_1PartitionFunction.html#a6df4191d10516477371a0384e1e55bf5">gridfire::partition::PartitionFunction</a>.</p>
</div>
</div>
<a id="a3aa478acf12e09b6dd268f744071b2a0" name="a3aa478acf12e09b6dd268f744071b2a0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3aa478acf12e09b6dd268f744071b2a0">&#9670;&#160;</a></span>type()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::string gridfire::partition::RauscherThielemannPartitionFunction::type </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get type identifier for this partition function. </p>
<dl class="section return"><dt>Returns</dt><dd>Literal string "RauscherThielemann". </dd></dl>
<dl class="section post"><dt>Postcondition</dt><dd>No side effects. </dd></dl>
<p>Implements <a class="el" href="classgridfire_1_1partition_1_1PartitionFunction.html#ab0c67985a972707eac0ebc64417dfb97">gridfire::partition::PartitionFunction</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a57384ffb1c81cf982614d90e23b173b6" name="a57384ffb1c81cf982614d90e23b173b6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a57384ffb1c81cf982614d90e23b173b6">&#9670;&#160;</a></span>m_logger</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">quill::Logger* gridfire::partition::RauscherThielemannPartitionFunction::m_logger = fourdst::logging::LogManager::getInstance().getLogger(&quot;log&quot;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a50ce19df4c12e22bbcb61422248a4038" name="a50ce19df4c12e22bbcb61422248a4038"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a50ce19df4c12e22bbcb61422248a4038">&#9670;&#160;</a></span>m_partitionData</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::unordered_map&lt;int, <a class="el" href="structgridfire_1_1partition_1_1RauscherThielemannPartitionFunction_1_1IsotopeData.html">IsotopeData</a>&gt; gridfire::partition::RauscherThielemannPartitionFunction::m_partitionData</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Map of isotope key to data. </p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>src/include/gridfire/partition/<a class="el" href="partition__rauscher__thielemann_8h.html">partition_rauscher_thielemann.h</a></li>
<li>src/lib/partition/<a class="el" href="partition__rauscher__thielemann_8cpp.html">partition_rauscher_thielemann.cpp</a></li>
</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="namespacegridfire_1_1partition.html">partition</a></li><li class="navelem"><a class="el" href="classgridfire_1_1partition_1_1RauscherThielemannPartitionFunction.html">RauscherThielemannPartitionFunction</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.9.8 </li>
</ul>
</div>
</body>
</html>