docs(docs): rebuilt

This commit is contained in:
2025-11-08 06:42:51 -05:00
parent 7a303b8d3a
commit d68808666e
219 changed files with 8429 additions and 10585 deletions

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">fourdst::libcomposition<span id="projectnumber">&#160;v1.9.0</span>
<div id="projectname">fourdst::libcomposition<span id="projectnumber">&#160;v2.0.0</span>
</div>
<div id="projectbrief">Robust atomic species information library</div>
</td>
@@ -108,7 +108,7 @@ $(function(){initNavTree('namespacefourdst_1_1atomic.html',''); initResizable(tr
</div><!--header-->
<div class="contents">
<p>Contains classes and functions related to atomic data, such as properties of atomic species.
<p>Contains canonical information about atomic species and elements used by 4D-STAR.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
@@ -127,9 +127,9 @@ Enumerations</h2></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ada037e2130ddb6174ff7934cda49c2ba" id="r_ada037e2130ddb6174ff7934cda49c2ba"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ada037e2130ddb6174ff7934cda49c2ba">convert_jpi_to_double</a> (const std::string &amp;jpi_string)</td></tr>
<tr class="memdesc:ada037e2130ddb6174ff7934cda49c2ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a spin-parity string (JPI string) to a double-precision floating-point number. <br /></td></tr>
<tr class="separator:ada037e2130ddb6174ff7934cda49c2ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab8b3572582a3f80243ecce021b4782d1" id="r_ab8b3572582a3f80243ecce021b4782d1"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab8b3572582a3f80243ecce021b4782d1">convert_jpi_to_double</a> (const std::string &amp;jpi_string) noexcept</td></tr>
<tr class="memdesc:ab8b3572582a3f80243ecce021b4782d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a spin-parity string (JPI string) to a double-precision floating-point number. <br /></td></tr>
<tr class="separator:ab8b3572582a3f80243ecce021b4782d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a277fa6e5107f1358e204c807146deeb4" id="r_a277fa6e5107f1358e204c807146deeb4"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a277fa6e5107f1358e204c807146deeb4">operator==</a> (const <a class="el" href="structfourdst_1_1atomic_1_1_species.html">Species</a> &amp;lhs, const <a class="el" href="structfourdst_1_1atomic_1_1_species.html">Species</a> &amp;rhs)</td></tr>
<tr class="memdesc:a277fa6e5107f1358e204c807146deeb4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Equality operator for <a class="el" href="structfourdst_1_1atomic_1_1_species.html" title="Represents an atomic species (isotope) with its fundamental physical properties.">Species</a>. Compares based on name. <br /></td></tr>
<tr class="separator:a277fa6e5107f1358e204c807146deeb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -7274,7 +7274,95 @@ Variables</h2></td></tr>
<tr class="separator:a3f619cc8f8b2cd718a4082c6adb0de90"><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>Contains classes and functions related to atomic data, such as properties of atomic species. </p>
<div class="textblock"><p>Contains canonical information about atomic species and elements used by 4D-STAR. </p>
<p>Contains classes and functions related to atomic data, such as properties of atomic species.</p>
<p>The <code><a class="el" href="namespacefourdst_1_1atomic.html" title="Contains canonical information about atomic species and elements used by 4D-STAR.">fourdst::atomic</a></code> namespace provides a comprehensive, compile-time-accessible database of predefined atomic isotopes (<a class="el" href="structfourdst_1_1atomic_1_1_species.html" title="Represents an atomic species (isotope) with its fundamental physical properties.">Species</a>) and helper utilities for working with them. <a class="el" href="structfourdst_1_1atomic_1_1_species.html" title="Represents an atomic species (isotope) with its fundamental physical properties.">Species</a> are available as strongly-typed constants following the pattern <code><a class="el" href="#a6766bc834fd656df51bdcf22f7d97877">fourdst::atomic::H_1</a></code>, <code><a class="el" href="#ab665e3014e2a805624227350699f141a">fourdst::atomic::He_4</a></code>, <code><a class="el" href="#a21ab5363d81d491f5230e8d90a149f31">fourdst::atomic::C_12</a></code>, etc.</p>
<p>Each atomic <a class="el" href="structfourdst_1_1atomic_1_1_species.html" title="Represents an atomic species (isotope) with its fundamental physical properties.">Species</a> object encapsulates detailed metadata about the isotope, including:</p><ul>
<li>Atomic number (Z)</li>
<li>Mass number (A)</li>
<li>Neutron number (N)</li>
<li>Element symbol (e.g., "H" for Hydrogen)</li>
<li><a class="el" href="structfourdst_1_1atomic_1_1_species.html" title="Represents an atomic species (isotope) with its fundamental physical properties.">Species</a> symbol (e.g., "H-1" for Hydrogen-1)</li>
<li>Atomic mass (in atomic mass units)</li>
<li>Uncertainty in atomic mass (in atomic mass units)</li>
<li>Half-life (seconds; a value of -1 or another sentinel indicates stability)</li>
<li>Binding energy (in keV)</li>
<li>Beta decay code (classification code from the atomic database)</li>
<li>Beta decay energy (in keV)</li>
<li>Spin parity string (e.g., "1/2+")</li>
<li>Decay modes as a descriptive string</li>
<li>Nuclear spin</li>
</ul>
<p><a class="el" href="structfourdst_1_1atomic_1_1_species.html" title="Represents an atomic species (isotope) with its fundamental physical properties.">Species</a> instances are intended to be lightweight, immutable value objects providing easy accessors for these properties. They are the canonical representation of an isotope throughout the codebase and are safe to pass and store by value.</p>
<h2><a class="anchor" id="autotoc_md0"></a>
Species lookup</h2>
<p>The namespace exposes a map lookup structure <code><a class="el" href="#a3f619cc8f8b2cd718a4082c6adb0de90" title="Map of species names to their corresponding Species objects.">fourdst::atomic::species</a></code> which maps the human-readable species symbol (e.g. "C-12") to the corresponding <code><a class="el" href="structfourdst_1_1atomic_1_1_species.html" title="Represents an atomic species (isotope) with its fundamental physical properties.">fourdst::atomic::Species</a></code> object. This is useful for APIs that accept string symbols at runtime and need to resolve them to the strongly-typed species value.</p>
<h2><a class="anchor" id="autotoc_md1"></a>
Comparison semantics</h2>
<p>Comparison operators for <code><a class="el" href="structfourdst_1_1atomic_1_1_species.html" title="Represents an atomic species (isotope) with its fundamental physical properties.">Species</a></code> are overloaded to provide sensible ordering and equality semantics:</p><ul>
<li>Equality (<code>==</code>) and inequality (<code>!=</code>) evaluate true/false based on the species symbol — two species are equal only if they share the same species symbol (same isotope).</li>
<li>Relational operators (<code>&lt;</code>, <code>&gt;</code>, <code>&lt;=</code>, <code>&gt;=</code>) are defined based on atomic mass. This provides a natural ordering from lightest to heaviest isotope which is convenient when creating sorted containers or deterministic vector representations.</li>
</ul>
<h2><a class="anchor" id="autotoc_md2"></a>
Stream output</h2>
<p>The stream insertion operator (<code>operator&lt;&lt;</code>) is overloaded for <a class="el" href="structfourdst_1_1atomic_1_1_species.html" title="Represents an atomic species (isotope) with its fundamental physical properties.">Species</a> objects and prints the species symbol (for example "C-12") to output streams. This makes logging and test output concise and human-readable.</p>
<h2><a class="anchor" id="autotoc_md3"></a>
Typical usage</h2>
<p>Example: Using predefined species directly </p><div class="fragment"><div class="line"><span class="preprocessor">#include &quot;<a class="code" href="species_8h.html">fourdst/atomic/species.h</a>&quot;</span></div>
<div class="line"> </div>
<div class="line"><span class="keyword">using namespace </span><a class="code hl_namespace" href="namespacefourdst_1_1atomic.html">fourdst::atomic</a>;</div>
<div class="line"> </div>
<div class="line"><a class="code hl_struct" href="structfourdst_1_1atomic_1_1_species.html">Species</a> s = <a class="code hl_function" href="#a6766bc834fd656df51bdcf22f7d97877">H_1</a>; <span class="comment">// Hydrogen-1 species object</span></div>
<div class="line">std::cout &lt;&lt; s &lt;&lt; std::endl; <span class="comment">// prints &quot;H-1&quot;</span></div>
<div class="line"> </div>
<div class="line"><span class="keywordtype">int</span> Z = s.getAtomicNumber(); <span class="comment">// atomic number (1 for hydrogen)</span></div>
<div class="line"><span class="keywordtype">double</span> mass = s.getAtomicMass();</div>
<div class="line"><span class="keywordtype">bool</span> isStable = (s.getHalfLife() &lt; 0);</div>
<div class="ttc" id="anamespacefourdst_1_1atomic_html"><div class="ttname"><a href="namespacefourdst_1_1atomic.html">fourdst::atomic</a></div><div class="ttdoc">Contains canonical information about atomic species and elements used by 4D-STAR.</div></div>
<div class="ttc" id="anamespacefourdst_1_1atomic_html_a6766bc834fd656df51bdcf22f7d97877"><div class="ttname"><a href="#a6766bc834fd656df51bdcf22f7d97877">fourdst::atomic::H_1</a></div><div class="ttdeci">static const Species H_1(&quot;H-1&quot;, &quot;H&quot;, -1, 0, 1, 1, 0.0, &quot;B-&quot;, std::numeric_limits&lt; double &gt;::quiet_NaN(), std::numeric_limits&lt; double &gt;::infinity(), &quot;/2+*&quot;, &quot;S=99.9855 78&quot;, 1.007825031898, 1.4e-05)</div></div>
<div class="ttc" id="aspecies_8h_html"><div class="ttname"><a href="species_8h.html">species.h</a></div></div>
<div class="ttc" id="astructfourdst_1_1atomic_1_1_species_html"><div class="ttname"><a href="structfourdst_1_1atomic_1_1_species.html">fourdst::atomic::Species</a></div><div class="ttdoc">Represents an atomic species (isotope) with its fundamental physical properties.</div><div class="ttdef"><b>Definition</b> <a href="atomic_species_8h_source.html#l00051">atomicSpecies.h:51</a></div></div>
</div><!-- fragment --><p>Example: Resolving a runtime symbol to a <a class="el" href="structfourdst_1_1atomic_1_1_species.html" title="Represents an atomic species (isotope) with its fundamental physical properties.">Species</a> </p><div class="fragment"><div class="line"><span class="preprocessor">#include &quot;<a class="code" href="species_8h.html">fourdst/atomic/species.h</a>&quot;</span></div>
<div class="line"> </div>
<div class="line">std::string sym = <span class="stringliteral">&quot;C-12&quot;</span>;</div>
<div class="line"><span class="keyword">auto</span> sp = <a class="code hl_variable" href="#a3f619cc8f8b2cd718a4082c6adb0de90">fourdst::atomic::species</a>.at(sym); <span class="comment">// throws if sym not found</span></div>
<div class="line"><span class="comment">// now sp is the canonical Species for Carbon-12</span></div>
<div class="ttc" id="anamespacefourdst_1_1atomic_html_a3f619cc8f8b2cd718a4082c6adb0de90"><div class="ttname"><a href="#a3f619cc8f8b2cd718a4082c6adb0de90">fourdst::atomic::species</a></div><div class="ttdeci">static const std::unordered_map&lt; std::string, const Species &amp; &gt; species</div><div class="ttdoc">Map of species names to their corresponding Species objects.</div><div class="ttdef"><b>Definition</b> <a href="species_8h_source.html#l03579">species.h:3579</a></div></div>
</div><!-- fragment --><p>Example: Using <a class="el" href="structfourdst_1_1atomic_1_1_species.html" title="Represents an atomic species (isotope) with its fundamental physical properties.">Species</a> in sorted containers and compositions </p><div class="fragment"><div class="line"><span class="preprocessor">#include &quot;<a class="code" href="composition_8h.html">fourdst/composition/composition.h</a>&quot;</span></div>
<div class="line"> </div>
<div class="line"><span class="keyword">using namespace </span><a class="code hl_namespace" href="namespacefourdst_1_1atomic.html">fourdst::atomic</a>;</div>
<div class="line"><span class="keyword">using namespace </span><a class="code hl_namespace" href="namespacefourdst_1_1composition.html">fourdst::composition</a>;</div>
<div class="line"> </div>
<div class="line"><a class="code hl_class" href="classfourdst_1_1composition_1_1_composition.html">Composition</a> comp;</div>
<div class="line">comp.<a class="code hl_function" href="classfourdst_1_1composition_1_1_composition.html#a392a34c19f45d6c936cc7030e6cfaf3f">registerSpecies</a>(<a class="code hl_function" href="#a6766bc834fd656df51bdcf22f7d97877">H_1</a>);</div>
<div class="line">comp.<a class="code hl_function" href="classfourdst_1_1composition_1_1_composition.html#a392a34c19f45d6c936cc7030e6cfaf3f">registerSpecies</a>(<a class="code hl_function" href="#ab665e3014e2a805624227350699f141a">He_4</a>);</div>
<div class="line">comp.<a class="code hl_function" href="classfourdst_1_1composition_1_1_composition.html#a392a34c19f45d6c936cc7030e6cfaf3f">registerSpecies</a>(<a class="code hl_function" href="#a21ab5363d81d491f5230e8d90a149f31">C_12</a>);</div>
<div class="line"> </div>
<div class="line"><span class="comment">// Iteration and vector representations rely on species ordering by mass</span></div>
<div class="line"><span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;sp : comp.<a class="code hl_function" href="classfourdst_1_1composition_1_1_composition.html#a33db253ca50431b5166d43412ff18f71">getRegisteredSpecies</a>()) {</div>
<div class="line"> std::cout &lt;&lt; sp &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
<div class="line">}</div>
<div class="ttc" id="aclassfourdst_1_1composition_1_1_composition_html"><div class="ttname"><a href="classfourdst_1_1composition_1_1_composition.html">fourdst::composition::Composition</a></div><div class="ttdoc">Manages a collection of chemical species and their abundances.</div><div class="ttdef"><b>Definition</b> <a href="composition_8h_source.html#l00097">composition.h:97</a></div></div>
<div class="ttc" id="aclassfourdst_1_1composition_1_1_composition_html_a33db253ca50431b5166d43412ff18f71"><div class="ttname"><a href="classfourdst_1_1composition_1_1_composition.html#a33db253ca50431b5166d43412ff18f71">fourdst::composition::Composition::getRegisteredSpecies</a></div><div class="ttdeci">const std::set&lt; atomic::Species &gt; &amp; getRegisteredSpecies() const noexcept override</div><div class="ttdoc">Get a set of all species that are registered in the composition.</div><div class="ttdef"><b>Definition</b> <a href="composition_8cpp_source.html#l00222">composition.cpp:222</a></div></div>
<div class="ttc" id="aclassfourdst_1_1composition_1_1_composition_html_a392a34c19f45d6c936cc7030e6cfaf3f"><div class="ttname"><a href="classfourdst_1_1composition_1_1_composition.html#a392a34c19f45d6c936cc7030e6cfaf3f">fourdst::composition::Composition::registerSpecies</a></div><div class="ttdeci">void registerSpecies(const atomic::Species &amp;species) noexcept</div><div class="ttdoc">Registers a new species by extracting its symbol.</div><div class="ttdef"><b>Definition</b> <a href="composition_8cpp_source.html#l00197">composition.cpp:197</a></div></div>
<div class="ttc" id="acomposition_8h_html"><div class="ttname"><a href="composition_8h.html">composition.h</a></div></div>
<div class="ttc" id="anamespacefourdst_1_1atomic_html_a21ab5363d81d491f5230e8d90a149f31"><div class="ttname"><a href="#a21ab5363d81d491f5230e8d90a149f31">fourdst::atomic::C_12</a></div><div class="ttdeci">static const Species C_12(&quot;C-12&quot;, &quot;C&quot;, 0, 6, 6, 12, 7680.1446, &quot;B-&quot;, -17338.0681, std::numeric_limits&lt; double &gt;::infinity(), &quot;+&quot;, &quot;S=98.94 6&quot;, 12.0, 0.0)</div></div>
<div class="ttc" id="anamespacefourdst_1_1atomic_html_ab665e3014e2a805624227350699f141a"><div class="ttname"><a href="#ab665e3014e2a805624227350699f141a">fourdst::atomic::He_4</a></div><div class="ttdeci">static const Species He_4(&quot;He-4&quot;, &quot;He&quot;, 0, 2, 2, 4, 7073.9156, &quot;B-&quot;, -22898.274, std::numeric_limits&lt; double &gt;::infinity(), &quot;+&quot;, &quot;S=99.9998 2&quot;, 4.00260325413, 0.00016)</div></div>
<div class="ttc" id="anamespacefourdst_1_1composition_html"><div class="ttname"><a href="namespacefourdst_1_1composition.html">fourdst::composition</a></div><div class="ttdoc">Utilities and types for representing and manipulating chemical compositions.</div></div>
</div><!-- fragment --><h2><a class="anchor" id="autotoc_md4"></a>
Notes and recommendations</h2>
<ul>
<li>The species map (<code><a class="el" href="#a3f619cc8f8b2cd718a4082c6adb0de90" title="Map of species names to their corresponding Species objects.">fourdst::atomic::species</a></code>) is the canonical runtime symbol-to-species translation. Code that must accept user-provided symbols should use this map and handle potential exceptions (e.g. <code>std::out_of_range</code> or a library-specific exception) when a symbol is unknown.</li>
<li>Because comparison operators are mass-based, using ordered containers (std::set, std::map) with <a class="el" href="structfourdst_1_1atomic_1_1_species.html" title="Represents an atomic species (isotope) with its fundamental physical properties.">Species</a> will order entries from lightest to heaviest by default.</li>
<li>The printed representation of a <a class="el" href="structfourdst_1_1atomic_1_1_species.html" title="Represents an atomic species (isotope) with its fundamental physical properties.">Species</a> is the species symbol only. For more verbose output (mass, half-life, binding energy), use the individual accessors.</li>
<li>Floating-point values (e.g., atomic mass) are provided as doubles. When comparing such values in tests, use an appropriate tolerance.</li>
</ul>
<h2><a class="anchor" id="autotoc_md5"></a>
See also</h2>
<ul>
<li><code><a class="el" href="species_8h.html">fourdst/atomic/species.h</a></code> — definitions of <a class="el" href="structfourdst_1_1atomic_1_1_species.html" title="Represents an atomic species (isotope) with its fundamental physical properties.">Species</a> constants and the <code>species</code> map.</li>
<li><code><a class="el" href="composition_8h.html">fourdst/composition/composition.h</a></code> — Composition API which consumes <a class="el" href="structfourdst_1_1atomic_1_1_species.html" title="Represents an atomic species (isotope) with its fundamental physical properties.">Species</a> objects. </li>
</ul>
</div><h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="a6c728f75913c5bfb62f6dcf9dff294fe" name="a6c728f75913c5bfb62f6dcf9dff294fe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6c728f75913c5bfb62f6dcf9dff294fe">&#9670;&#160;</a></span>SpeciesErrorType</h2>
@@ -60760,8 +60848,8 @@ Variables</h2></td></tr>
</div>
</div>
<a id="ada037e2130ddb6174ff7934cda49c2ba" name="ada037e2130ddb6174ff7934cda49c2ba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ada037e2130ddb6174ff7934cda49c2ba">&#9670;&#160;</a></span>convert_jpi_to_double()</h2>
<a id="ab8b3572582a3f80243ecce021b4782d1" name="ab8b3572582a3f80243ecce021b4782d1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab8b3572582a3f80243ecce021b4782d1">&#9670;&#160;</a></span>convert_jpi_to_double()</h2>
<div class="memitem">
<div class="memproto">
@@ -60778,7 +60866,7 @@ Variables</h2></td></tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel noexcept">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">