docs(docs): rebuilt

This commit is contained in:
2025-11-27 17:47:38 -05:00
parent ceff418999
commit 42c9d18063
220 changed files with 158249 additions and 99011 deletions

View File

@@ -9,34 +9,19 @@ all: $(MANUAL_FILE).pdf
pdf: $(MANUAL_FILE).pdf
$(MANUAL_FILE).pdf: clean $(MANUAL_FILE).tex
$(LATEX_CMD) $(MANUAL_FILE) || \
if [ $$? != 0 ] ; then \
\echo "Please consult $(MANUAL_FILE).log to see the error messages" ; \
false; \
fi
$(LATEX_CMD) $(MANUAL_FILE)
$(MKIDX_CMD) $(MANUAL_FILE).idx
$(LATEX_CMD) $(MANUAL_FILE) || \
if [ $$? != 0 ] ; then \
\echo "Please consult $(MANUAL_FILE).log to see the error messages" ; \
false; \
fi
$(LATEX_CMD) $(MANUAL_FILE)
latex_count=$(LATEX_COUNT) ; \
while grep -E -s 'Rerun (LaTeX|to get cross-references right|to get bibliographical references right)' $(MANUAL_FILE).log && [ $$latex_count -gt 0 ] ;\
do \
echo "Rerunning latex...." ;\
$(LATEX_CMD) $(MANUAL_FILE) || \
if [ $$? != 0 ] ; then \
\echo "Please consult $(MANUAL_FILE).log to see the error messages" ; \
false; \
fi; \
$(LATEX_CMD) $(MANUAL_FILE) ;\
latex_count=`expr $$latex_count - 1` ;\
done
$(MKIDX_CMD) $(MANUAL_FILE).idx
$(LATEX_CMD) $(MANUAL_FILE) || \
if [ $$? != 0 ] ; then \
\echo "Please consult $(MANUAL_FILE).log to see the error messages" ; \
false; \
fi
$(LATEX_CMD) $(MANUAL_FILE)
clean:
rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl $(MANUAL_FILE).pdf

View File

@@ -1,14 +1,18 @@
\doxysection{Class List}
Here are the classes, structs, unions and interfaces with brief descriptions\+:\begin{DoxyCompactList}
\item\contentsline{section}{\mbox{\hyperlink{structfourdst_1_1composition_1_1_canonical_composition}{fourdst\+::composition\+::\+Canonical\+Composition}} \\*Represents the canonical (X, Y, Z) composition of stellar material }{\pageref{structfourdst_1_1composition_1_1_canonical_composition}}{}
\item\contentsline{section}{\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition}{fourdst\+::composition\+::\+Composition}} \\*Manages a collection of chemical species and their abundances }{\pageref{classfourdst_1_1composition_1_1_composition}}{}
\item\contentsline{section}{\mbox{\hyperlink{class_composition_abstract}{Composition\+Abstract}} \\*Abstract base class for chemical composition representations }{\pageref{class_composition_abstract}}{}
\item\contentsline{section}{\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache}{fourdst\+::composition\+::\+Composition\+::\+Composition\+Cache}} \\*Caches computed properties of the composition to avoid redundant calculations }{\pageref{structfourdst_1_1composition_1_1_composition_1_1_composition_cache}}{}
\item\contentsline{section}{\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error}{fourdst\+::composition\+::exceptions\+::\+Composition\+Error}} \\*Base class for exceptions related to composition objects }{\pageref{classfourdst_1_1composition_1_1exceptions_1_1_composition_error}}{}
\item\contentsline{section}{\mbox{\hyperlink{structstd_1_1hash_3_01fourdst_1_1atomic_1_1_species_01_4}{std\+::hash$<$ fourdst\+::atomic\+::\+Species $>$}} \\*Specialization of {\ttfamily std\+::hash} for {\ttfamily \doxylink{structfourdst_1_1atomic_1_1_species}{fourdst\+::atomic\+::\+Species}} }{\pageref{structstd_1_1hash_3_01fourdst_1_1atomic_1_1_species_01_4}}{}
\item\contentsline{section}{\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_invalid_composition_error}{fourdst\+::composition\+::exceptions\+::\+Invalid\+Composition\+Error}} \\*Exception thrown when a composition is in an invalid or inconsistent state }{\pageref{classfourdst_1_1composition_1_1exceptions_1_1_invalid_composition_error}}{}
\item\contentsline{section}{\mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{fourdst\+::atomic\+::\+Species}} \\*Represents an atomic species (isotope) with its fundamental physical properties }{\pageref{structfourdst_1_1atomic_1_1_species}}{}
\item\contentsline{section}{\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_species_error}{fourdst\+::composition\+::exceptions\+::\+Species\+Error}} \\*Base class for exceptions related to atomic species }{\pageref{classfourdst_1_1composition_1_1exceptions_1_1_species_error}}{}
\item\contentsline{section}{\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_unknown_symbol_error}{fourdst\+::composition\+::exceptions\+::\+Unknown\+Symbol\+Error}} \\*Exception thrown when an unknown symbol is encountered }{\pageref{classfourdst_1_1composition_1_1exceptions_1_1_unknown_symbol_error}}{}
\item\contentsline{section}{\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_unregistered_symbol_error}{fourdst\+::composition\+::exceptions\+::\+Unregistered\+Symbol\+Error}} \\*Exception thrown when a symbol is used that has not been registered }{\pageref{classfourdst_1_1composition_1_1exceptions_1_1_unregistered_symbol_error}}{}
\item\contentsline{section}{\mbox{\hyperlink{structfourdst_1_1composition_1_1CanonicalComposition}{fourdst\+::composition\+::\+Canonical\+Composition}} \\*Represents the canonical (X, Y, Z) composition of stellar material }{\pageref{structfourdst_1_1composition_1_1CanonicalComposition}}{}
\item\contentsline{section}{\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{fourdst\+::composition\+::\+Composition}} \\*Manages a collection of chemical species and their abundances }{\pageref{classfourdst_1_1composition_1_1Composition}}{}
\item\contentsline{section}{\mbox{\hyperlink{classfourdst_1_1composition_1_1CompositionAbstract}{fourdst\+::composition\+::\+Composition\+Abstract}} \\*Abstract base class for chemical composition representations }{\pageref{classfourdst_1_1composition_1_1CompositionAbstract}}{}
\item\contentsline{section}{\mbox{\hyperlink{structfourdst_1_1composition_1_1Composition_1_1CompositionCache}{fourdst\+::composition\+::\+Composition\+::\+Composition\+Cache}} \\*Caches computed properties of the composition to avoid redundant calculations }{\pageref{structfourdst_1_1composition_1_1Composition_1_1CompositionCache}}{}
\item\contentsline{section}{\mbox{\hyperlink{classfourdst_1_1composition_1_1CompositionDecorator}{fourdst\+::composition\+::\+Composition\+Decorator}} }{\pageref{classfourdst_1_1composition_1_1CompositionDecorator}}{}
\item\contentsline{section}{\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1CompositionError}{fourdst\+::composition\+::exceptions\+::\+Composition\+Error}} \\*Base class for exceptions related to composition objects }{\pageref{classfourdst_1_1composition_1_1exceptions_1_1CompositionError}}{}
\item\contentsline{section}{\mbox{\hyperlink{structfourdst_1_1composition_1_1utils_1_1CompositionHash}{fourdst\+::composition\+::utils\+::\+Composition\+Hash}} }{\pageref{structfourdst_1_1composition_1_1utils_1_1CompositionHash}}{}
\item\contentsline{section}{\mbox{\hyperlink{structstd_1_1hash_3_01fourdst_1_1atomic_1_1Species_01_4}{std\+::hash$<$ fourdst\+::atomic\+::\+Species $>$}} \\*Specialization of {\ttfamily std\+::hash} for {\ttfamily \doxylink{structfourdst_1_1atomic_1_1Species}{fourdst\+::atomic\+::\+Species}} }{\pageref{structstd_1_1hash_3_01fourdst_1_1atomic_1_1Species_01_4}}{}
\item\contentsline{section}{\mbox{\hyperlink{structstd_1_1hash_3_01fourdst_1_1composition_1_1Composition_01_4}{std\+::hash$<$ fourdst\+::composition\+::\+Composition $>$}} }{\pageref{structstd_1_1hash_3_01fourdst_1_1composition_1_1Composition_01_4}}{}
\item\contentsline{section}{\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1InvalidCompositionError}{fourdst\+::composition\+::exceptions\+::\+Invalid\+Composition\+Error}} \\*Exception thrown when a composition is in an invalid or inconsistent state }{\pageref{classfourdst_1_1composition_1_1exceptions_1_1InvalidCompositionError}}{}
\item\contentsline{section}{\mbox{\hyperlink{classfourdst_1_1composition_1_1MaskedComposition}{fourdst\+::composition\+::\+Masked\+Composition}} }{\pageref{classfourdst_1_1composition_1_1MaskedComposition}}{}
\item\contentsline{section}{\mbox{\hyperlink{structfourdst_1_1atomic_1_1Species}{fourdst\+::atomic\+::\+Species}} \\*Represents an atomic species (isotope) with its fundamental physical properties }{\pageref{structfourdst_1_1atomic_1_1Species}}{}
\item\contentsline{section}{\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1SpeciesError}{fourdst\+::composition\+::exceptions\+::\+Species\+Error}} \\*Base class for exceptions related to atomic species }{\pageref{classfourdst_1_1composition_1_1exceptions_1_1SpeciesError}}{}
\item\contentsline{section}{\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1UnknownSymbolError}{fourdst\+::composition\+::exceptions\+::\+Unknown\+Symbol\+Error}} \\*Exception thrown when an unknown symbol is encountered }{\pageref{classfourdst_1_1composition_1_1exceptions_1_1UnknownSymbolError}}{}
\item\contentsline{section}{\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1UnregisteredSymbolError}{fourdst\+::composition\+::exceptions\+::\+Unregistered\+Symbol\+Error}} \\*Exception thrown when a symbol is used that has not been registered }{\pageref{classfourdst_1_1composition_1_1exceptions_1_1UnregisteredSymbolError}}{}
\end{DoxyCompactList}

View File

@@ -13,7 +13,8 @@
{\ttfamily \#include "{}fourdst/atomic/species.\+h"{}}\newline
{\ttfamily \#include "{}fourdst/composition/composition.\+h"{}}\newline
{\ttfamily \#include "{}fourdst/composition/exceptions/exceptions\+\_\+composition.\+h"{}}\newline
Include dependency graph for composition.\+cpp\+:\nopagebreak
Include dependency graph for composition.\+cpp\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
@@ -30,5 +31,5 @@ namespace \mbox{\hyperlink{namespacefourdst_1_1composition}{fourdst\+::compositi
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item
std\+::ostream \& \mbox{\hyperlink{namespacefourdst_1_1composition_a5e8ccc2bd9e91eebcd3ef5fe470163a1}{fourdst\+::composition\+::operator$<$$<$}} (std\+::ostream \&os, const \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition}{Composition}} \&composition)
std\+::ostream \& \mbox{\hyperlink{namespacefourdst_1_1composition_a5e8ccc2bd9e91eebcd3ef5fe470163a1}{fourdst\+::composition\+::operator$<$$<$}} (std\+::ostream \&os, const \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{Composition}} \&composition)
\begin{DoxyCompactList}\small\item\em OVERLOADS. \end{DoxyCompactList}\end{DoxyCompactItemize}

File diff suppressed because it is too large Load Diff

View File

@@ -4,18 +4,21 @@
{\ttfamily \#include $<$unordered\+\_\+map$>$}\newline
{\ttfamily \#include $<$set$>$}\newline
{\ttfamily \#include $<$optional$>$}\newline
{\ttfamily \#include $<$unordered\+\_\+set$>$}\newline
{\ttfamily \#include "{}fourdst/config/config.\+h"{}}\newline
{\ttfamily \#include "{}fourdst/logging/logging.\+h"{}}\newline
{\ttfamily \#include "{}fourdst/composition/composition\+\_\+abstract.\+h"{}}\newline
{\ttfamily \#include "{}fourdst/atomic/atomic\+Species.\+h"{}}\newline
Include dependency graph for composition.\+h\+:\nopagebreak
Include dependency graph for composition.\+h\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{composition_8h__incl}
\end{center}
\end{figure}
This graph shows which files directly or indirectly include this file\+:\nopagebreak
This graph shows which files directly or indirectly include this file\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
@@ -25,11 +28,11 @@ This graph shows which files directly or indirectly include this file\+:\nopageb
\doxysubsubsection*{Classes}
\begin{DoxyCompactItemize}
\item
struct \mbox{\hyperlink{structfourdst_1_1composition_1_1_canonical_composition}{fourdst\+::composition\+::\+Canonical\+Composition}}
struct \mbox{\hyperlink{structfourdst_1_1composition_1_1CanonicalComposition}{fourdst\+::composition\+::\+Canonical\+Composition}}
\begin{DoxyCompactList}\small\item\em Represents the canonical (X, Y, Z) composition of stellar material. \end{DoxyCompactList}\item
class \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition}{fourdst\+::composition\+::\+Composition}}
class \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{fourdst\+::composition\+::\+Composition}}
\begin{DoxyCompactList}\small\item\em Manages a collection of chemical species and their abundances. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache}{fourdst\+::composition\+::\+Composition\+::\+Composition\+Cache}}
struct \mbox{\hyperlink{structfourdst_1_1composition_1_1Composition_1_1CompositionCache}{fourdst\+::composition\+::\+Composition\+::\+Composition\+Cache}}
\begin{DoxyCompactList}\small\item\em Caches computed properties of the composition to avoid redundant calculations. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
@@ -38,3 +41,8 @@ namespace \mbox{\hyperlink{namespacefourdst}{fourdst}}
\item
namespace \mbox{\hyperlink{namespacefourdst_1_1composition}{fourdst\+::composition}}
\begin{DoxyCompactList}\small\item\em Utilities and types for representing and manipulating chemical compositions. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item
bool \mbox{\hyperlink{namespacefourdst_1_1composition_a06f5abc74104de40349e47ad367c402a}{fourdst\+::composition\+::operator==}} (const \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{Composition}} \&a, const \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{Composition}} \&b) noexcept
\end{DoxyCompactItemize}

View File

@@ -29,192 +29,225 @@
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00025}00025\ \textcolor{preprocessor}{\#include\ <set>}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00026}00026\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00027}00027\ \textcolor{preprocessor}{\#include\ <optional>}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00028}00028\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00029}00029\ \textcolor{preprocessor}{\#include\ "{}fourdst/config/config.h"{}}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00030}00030\ \textcolor{preprocessor}{\#include\ "{}fourdst/logging/logging.h"{}}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00031}00031\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{composition__abstract_8h}{fourdst/composition/composition\_abstract.h}}"{}}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00032}00032\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{atomic_species_8h}{fourdst/atomic/atomicSpecies.h}}"{}}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00033}00033\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00034}00034\ \textcolor{keyword}{namespace\ }\mbox{\hyperlink{namespacefourdst_1_1composition}{fourdst::composition}}\ \{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00044}\mbox{\hyperlink{structfourdst_1_1composition_1_1_canonical_composition}{00044}}\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structfourdst_1_1composition_1_1_canonical_composition}{CanonicalComposition}}\ \{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00045}\mbox{\hyperlink{structfourdst_1_1composition_1_1_canonical_composition_abe5b01574242f8eaabd00c3d653291f7}{00045}}\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_canonical_composition_abe5b01574242f8eaabd00c3d653291f7}{X}}\ =\ 0.0;\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00046}\mbox{\hyperlink{structfourdst_1_1composition_1_1_canonical_composition_a93927bfccc5d2b3906565d092ed4f7f4}{00046}}\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_canonical_composition_a93927bfccc5d2b3906565d092ed4f7f4}{Y}}\ =\ 0.0;\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00047}\mbox{\hyperlink{structfourdst_1_1composition_1_1_canonical_composition_ae1981f5ddd36abd17a4a69fa1f43de18}{00047}}\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_canonical_composition_ae1981f5ddd36abd17a4a69fa1f43de18}{Z}}\ =\ 0.0;\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00048}00048\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00055}\mbox{\hyperlink{structfourdst_1_1composition_1_1_canonical_composition_a6e447cb601af6bcbd09e290aef759672}{00055}}\ \ \ \ \ \ \ \ \ \textcolor{keyword}{friend}\ std::ostream\&\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_canonical_composition_a6e447cb601af6bcbd09e290aef759672}{operator<<}}(std::ostream\&\ os,\ \textcolor{keyword}{const}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_canonical_composition}{CanonicalComposition}}\&\ \mbox{\hyperlink{namespacefourdst_1_1composition}{composition}})\ \{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00056}00056\ \ \ \ \ \ \ \ \ \ \ \ \ os\ <<\ \textcolor{stringliteral}{"{}<CanonicalComposition:\ "{}}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00057}00057\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ <<\ \textcolor{stringliteral}{"{}X\ =\ "{}}\ <<\ \mbox{\hyperlink{namespacefourdst_1_1composition}{composition}}.X\ <<\ \textcolor{stringliteral}{"{},\ "{}}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00058}00058\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ <<\ \textcolor{stringliteral}{"{}Y\ =\ "{}}\ <<\ \mbox{\hyperlink{namespacefourdst_1_1composition}{composition}}.Y\ <<\ \textcolor{stringliteral}{"{},\ "{}}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00059}00059\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ <<\ \textcolor{stringliteral}{"{}Z\ =\ "{}}\ <<\ \mbox{\hyperlink{namespacefourdst_1_1composition}{composition}}.Z\ <<\ \textcolor{stringliteral}{"{}>"{}};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00060}00060\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ os;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00061}00061\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00062}00062\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00063}00063\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00096}00096\ \ \ \ \ \textcolor{comment}{//\ ReSharper\ disable\ once\ CppClassCanBeFinal}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00097}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition}{00097}}\ \ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{class_composition_abstract}{CompositionAbstract}}\ \{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00098}00098\ \ \ \ \ \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00106}\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache}{00106}}\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache}{CompositionCache}}\ \{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00107}\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_a459e01b94eb0e78dd95bb6932a967f13}{00107}}\ \ \ \ \ \ \ \ \ \ \ \ \ std::optional<CanonicalComposition>\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_a459e01b94eb0e78dd95bb6932a967f13}{canonicalComp}};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00108}\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_add5ce97ae6a1796c5f6488bfa1555be6}{00108}}\ \ \ \ \ \ \ \ \ \ \ \ \ std::optional<std::vector<double>>\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_add5ce97ae6a1796c5f6488bfa1555be6}{massFractions}};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00109}\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_a41ce9d6b4a0f00030e3027b23c0269fb}{00109}}\ \ \ \ \ \ \ \ \ \ \ \ \ std::optional<std::vector<double>>\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_a41ce9d6b4a0f00030e3027b23c0269fb}{numberFractions}};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00110}\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_ab74c9cd92ba8aaf5f95c8ca5284206a6}{00110}}\ \ \ \ \ \ \ \ \ \ \ \ \ std::optional<std::vector<double>>\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_ab74c9cd92ba8aaf5f95c8ca5284206a6}{molarAbundances}};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00111}\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_a14761ff2df5423884330e423ec38e98c}{00111}}\ \ \ \ \ \ \ \ \ \ \ \ \ std::optional<std::vector<atomic::Species>>\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_a14761ff2df5423884330e423ec38e98c}{sortedSpecies}};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00112}\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_abe45010a5104562d3ebecc77393c04ce}{00112}}\ \ \ \ \ \ \ \ \ \ \ \ \ std::optional<std::vector<std::string>>\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_abe45010a5104562d3ebecc77393c04ce}{sortedSymbols}};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00113}\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_ae844e5a1d2b85c7cfee50157ccf189ce}{00113}}\ \ \ \ \ \ \ \ \ \ \ \ \ std::optional<double>\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_ae844e5a1d2b85c7cfee50157ccf189ce}{Ye}};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00114}00114\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00118}\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_ac8b576c3b48c4cedda6e9e2790072b0d}{00118}}\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_ac8b576c3b48c4cedda6e9e2790072b0d}{clear}}()\ \{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00119}00119\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_a459e01b94eb0e78dd95bb6932a967f13}{canonicalComp}}\ =\ std::nullopt;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00120}00120\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_add5ce97ae6a1796c5f6488bfa1555be6}{massFractions}}\ =\ std::nullopt;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00121}00121\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_a41ce9d6b4a0f00030e3027b23c0269fb}{numberFractions}}\ =\ std::nullopt;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00122}00122\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_ab74c9cd92ba8aaf5f95c8ca5284206a6}{molarAbundances}}\ =\ std::nullopt;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00123}00123\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_abe45010a5104562d3ebecc77393c04ce}{sortedSymbols}}\ =\ std::nullopt;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00124}00124\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_a14761ff2df5423884330e423ec38e98c}{sortedSpecies}}\ =\ std::nullopt;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00125}00125\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_ae844e5a1d2b85c7cfee50157ccf189ce}{Ye}}\ =\ std::nullopt;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00126}00126\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00127}00127\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00132}\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_af291583560120bb53c4546a598666477}{00132}}\ \ \ \ \ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_af291583560120bb53c4546a598666477}{is\_clear}}()\textcolor{keyword}{\ const\ }\{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00133}00133\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ !\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_a459e01b94eb0e78dd95bb6932a967f13}{canonicalComp}}.has\_value()\ \&\&\ !\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_add5ce97ae6a1796c5f6488bfa1555be6}{massFractions}}.has\_value()\ \&\&}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00134}00134\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ !\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_a41ce9d6b4a0f00030e3027b23c0269fb}{numberFractions}}.has\_value()\ \&\&\ !\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_ab74c9cd92ba8aaf5f95c8ca5284206a6}{molarAbundances}}.has\_value()\ \&\&\ !\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_abe45010a5104562d3ebecc77393c04ce}{sortedSymbols}}.has\_value()\ \&\&}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00135}00135\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ !\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_ae844e5a1d2b85c7cfee50157ccf189ce}{Ye}}.has\_value()\ \&\&\ !\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_a14761ff2df5423884330e423ec38e98c}{sortedSpecies}}.has\_value();}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00136}00136\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00137}00137\ \ \ \ \ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00138}00138\ \ \ \ \ \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00144}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a46a706f9e4c06a45b45ae3dffdde5e9e}{00144}}\ \ \ \ \ \ \ \ \ \textcolor{keyword}{static}\ quill::Logger*\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a46a706f9e4c06a45b45ae3dffdde5e9e}{getLogger}}()\ \{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00145}00145\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{static}\ quill::Logger*\ logger\ =\ logging::LogManager::getInstance().getLogger(\textcolor{stringliteral}{"{}log"{}});}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00146}00146\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ logger;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00147}00147\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00148}00148\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00149}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a452b0affb86dc971a96c80d01f4fcb2b}{00149}}\ \ \ \ \ \ \ \ \ std::set<atomic::Species>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a452b0affb86dc971a96c80d01f4fcb2b}{m\_registeredSpecies}};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00150}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_aa05a640e0ea80142682bf4ee30a93c7f}{00150}}\ \ \ \ \ \ \ \ \ std::map<atomic::Species,\ double>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_aa05a640e0ea80142682bf4ee30a93c7f}{m\_molarAbundances}};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00151}00151\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00152}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a02cd9d9608da082a200fdfa86d14bf5d}{00152}}\ \ \ \ \ \ \ \ \ \textcolor{keyword}{mutable}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache}{CompositionCache}}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a02cd9d9608da082a200fdfa86d14bf5d}{m\_cache}};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00153}00153\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00154}00154\ \ \ \ \ \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00160}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a23b83b76ee025f6fc009184ee19bba88}{00160}}\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}()\ =\ \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00161}00161\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00165}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a08c1d1fe9384c5255a6ba40e34b18315}{00165}}\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a08c1d1fe9384c5255a6ba40e34b18315}{\string~Composition}}()\ \textcolor{keyword}{override}\ =\ \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00166}00166\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00177}00177\ \ \ \ \ \ \ \ \ \textcolor{keyword}{explicit}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}(\textcolor{keyword}{const}\ std::vector<std::string>\&\ symbols);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00178}00178\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00192}00192\ \ \ \ \ \ \ \ \ \textcolor{keyword}{explicit}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}(\textcolor{keyword}{const}\ std::vector<atomic::Species>\&\ species);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00193}00193\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00204}00204\ \ \ \ \ \ \ \ \ \textcolor{keyword}{explicit}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}(\textcolor{keyword}{const}\ std::set<std::string>\&\ symbols);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00205}00205\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00219}00219\ \ \ \ \ \ \ \ \ \textcolor{keyword}{explicit}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}(\textcolor{keyword}{const}\ std::set<atomic::Species>\&\ species);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00220}00220\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00236}00236\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}(\textcolor{keyword}{const}\ std::vector<std::string>\&\ symbols,\ \textcolor{keyword}{const}\ std::vector<double>\&\ molarAbundances);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00237}00237\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00252}00252\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}(\textcolor{keyword}{const}\ std::vector<atomic::Species>\&\ species,\ \textcolor{keyword}{const}\ std::vector<double>\&\ molarAbundances);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00253}00253\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00269}00269\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}(\textcolor{keyword}{const}\ std::set<std::string>\&\ symbols,\ \textcolor{keyword}{const}\ std::vector<double>\&\ molarAbundances);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00270}00270\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00275}00275\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}\&\ \mbox{\hyperlink{namespacefourdst_1_1composition}{composition}});}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00276}00276\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00282}00282\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}\&\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a4ec1e23cfecef764cb831171fed62fc2}{operator=}}(\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}\ \textcolor{keyword}{const}\&\ other);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00283}00283\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00298}00298\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a3ab4dcda0bfd1a35b169bcc57fe66725}{registerSymbol}}(\textcolor{keyword}{const}\ std::string\&\ symbol);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00299}00299\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00314}00314\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a3ab4dcda0bfd1a35b169bcc57fe66725}{registerSymbol}}(\textcolor{keyword}{const}\ std::vector<std::string>\&\ symbols);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00315}00315\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00338}00338\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a392a34c19f45d6c936cc7030e6cfaf3f}{registerSpecies}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{atomic::Species}}\&\ species)\ \textcolor{keyword}{noexcept};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00339}00339\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00340}00340\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00360}00360\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a392a34c19f45d6c936cc7030e6cfaf3f}{registerSpecies}}(\textcolor{keyword}{const}\ std::vector<atomic::Species>\&\ species)\ \textcolor{keyword}{noexcept};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00361}00361\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00367}00367\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a194f715788e7921bd611579440de2ecd}{contains}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{atomic::Species}}\&\ species)\ \textcolor{keyword}{const}\ \textcolor{keyword}{noexcept}\ \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00368}00368\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00375}00375\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a194f715788e7921bd611579440de2ecd}{contains}}(\textcolor{keyword}{const}\ std::string\&\ symbol)\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00376}00376\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00381}00381\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a9d177d36b728442bcbd8cb66712c7c75}{size}}()\ const\ noexcept\ override;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00382}00382\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00399}00399\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a262d7133035d4e6f45daa81827abf5e7}{setMolarAbundance}}(}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00400}00400\ \ \ \ \ \ \ \ \ \ \ \ \ const\ std::\textcolor{keywordtype}{string}\&\ symbol,}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00401}00401\ \ \ \ \ \ \ \ \ \ \ \ \ const\ \textcolor{keywordtype}{double}\&\ molar\_abundance}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00402}00402\ \ \ \ \ \ \ \ \ );}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00403}00403\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00423}00423\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a262d7133035d4e6f45daa81827abf5e7}{setMolarAbundance}}(}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00424}00424\ \ \ \ \ \ \ \ \ \ \ \ \ const\ \mbox{\hyperlink{namespacefourdst_1_1atomic}{atomic}}::Species\&\ species,}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00425}00425\ \ \ \ \ \ \ \ \ \ \ \ \ const\ \textcolor{keywordtype}{double}\&\ molar\_abundance}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00426}00426\ \ \ \ \ \ \ \ \ );}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00427}00427\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00443}00443\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a262d7133035d4e6f45daa81827abf5e7}{setMolarAbundance}}(}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00444}00444\ \ \ \ \ \ \ \ \ \ \ \ \ const\ std::vector<std::\textcolor{keywordtype}{string}>\&\ symbols,}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00445}00445\ \ \ \ \ \ \ \ \ \ \ \ \ const\ std::vector<\textcolor{keywordtype}{double}>\&\ molar\_abundances}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00446}00446\ \ \ \ \ \ \ \ \ );}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00447}00447\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00466}00466\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a262d7133035d4e6f45daa81827abf5e7}{setMolarAbundance}}(}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00467}00467\ \ \ \ \ \ \ \ \ \ \ \ \ const\ std::vector<\mbox{\hyperlink{namespacefourdst_1_1atomic}{atomic}}::Species>\&\ species,}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00468}00468\ \ \ \ \ \ \ \ \ \ \ \ \ const\ std::vector<\textcolor{keywordtype}{double}>\&\ molar\_abundances}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00469}00469\ \ \ \ \ \ \ \ \ );}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00470}00470\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00487}00487\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a262d7133035d4e6f45daa81827abf5e7}{setMolarAbundance}}(}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00488}00488\ \ \ \ \ \ \ \ \ \ \ \ \ const\ std::set<std::\textcolor{keywordtype}{string}>\&\ symbols,}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00489}00489\ \ \ \ \ \ \ \ \ \ \ \ \ const\ std::vector<\textcolor{keywordtype}{double}>\&\ molar\_abundances}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00490}00490\ \ \ \ \ \ \ \ \ );}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00491}00491\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00511}00511\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a262d7133035d4e6f45daa81827abf5e7}{setMolarAbundance}}(}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00512}00512\ \ \ \ \ \ \ \ \ \ \ \ \ const\ std::set<\mbox{\hyperlink{namespacefourdst_1_1atomic}{atomic}}::Species>\&\ species,}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00513}00513\ \ \ \ \ \ \ \ \ \ \ \ \ const\ std::vector<\textcolor{keywordtype}{double}>\&\ molar\_abundances}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00514}00514\ \ \ \ \ \ \ \ \ );}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00515}00515\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00524}00524\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::set<std::\textcolor{keywordtype}{string}>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a3ae885c28580ae15be8c16614bef3b0e}{getRegisteredSymbols}}()\ const\ noexcept\ override;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00525}00525\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00534}00534\ \ \ \ \ \ \ \ \ [[nodiscard]]\ const\ std::set<\mbox{\hyperlink{namespacefourdst_1_1atomic}{atomic}}::Species>\ \&\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a33db253ca50431b5166d43412ff18f71}{getRegisteredSpecies}}()\ const\ noexcept\ override;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00535}00535\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00542}00542\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::unordered\_map<\mbox{\hyperlink{namespacefourdst_1_1atomic}{atomic}}::Species,\ \textcolor{keywordtype}{double}>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a9ea2b673341fdc67afeb0f0517a54c8c}{getMassFraction}}()\ const\ noexcept\ override;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00543}00543\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00552}00552\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a9ea2b673341fdc67afeb0f0517a54c8c}{getMassFraction}}(const\ std::\textcolor{keywordtype}{string}\&\ symbol)\ const\ override;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00553}00553\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00571}00571\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a9ea2b673341fdc67afeb0f0517a54c8c}{getMassFraction}}(const\ \mbox{\hyperlink{namespacefourdst_1_1atomic}{atomic}}::Species\&\ species)\ const\ override;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00572}00572\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00581}00581\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a34f71d4d8f0297c576fd62fabd490305}{getNumberFraction}}(const\ std::\textcolor{keywordtype}{string}\&\ symbol)\ const\ override;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00582}00582\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00599}00599\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a34f71d4d8f0297c576fd62fabd490305}{getNumberFraction}}(const\ \mbox{\hyperlink{namespacefourdst_1_1atomic}{atomic}}::Species\&\ species)\ const\ override;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00600}00600\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00607}00607\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::unordered\_map<\mbox{\hyperlink{namespacefourdst_1_1atomic}{atomic}}::Species,\ \textcolor{keywordtype}{double}>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a34f71d4d8f0297c576fd62fabd490305}{getNumberFraction}}()\ const\ noexcept\ override;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00608}00608\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00619}00619\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_add67a92d73e3a57a2bbdb52bc9ca3bfe}{getMolarAbundance}}(const\ std::\textcolor{keywordtype}{string}\&\ symbol)\ const\ override;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00620}00620\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00630}00630\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_add67a92d73e3a57a2bbdb52bc9ca3bfe}{getMolarAbundance}}(const\ \mbox{\hyperlink{namespacefourdst_1_1atomic}{atomic}}::Species\&\ species)\ const\ override;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00631}00631\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00645}00645\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_afbbb5e51ad5ae5c0fa6bc0094195aecd}{getMeanParticleMass}}()\ const\ noexcept\ override;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00646}00646\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00660}00660\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a90fc71d1fe03017ee4c7a1cac69d24fb}{getElectronAbundance}}()\ const\ noexcept\ override;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00661}00661\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00662}00662\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00677}00677\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_canonical_composition}{CanonicalComposition}}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_aac5b214a3d1278e127422224cb9cee50}{getCanonicalComposition}}()\ const;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00678}00678\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00684}00684\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::vector<\textcolor{keywordtype}{double}>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_af4f44aaf8b7e0d63872a70b5e2131369}{getMassFractionVector}}()\ const\ noexcept\ override;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00685}00685\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00691}00691\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::vector<\textcolor{keywordtype}{double}>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_ae4f72972cf4d1ff422d0790080e11473}{getNumberFractionVector}}()\ const\ noexcept\ override;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00692}00692\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00698}00698\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::vector<\textcolor{keywordtype}{double}>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abcb391f5fca2b636127e48e681e4c3ee}{getMolarAbundanceVector}}()\ const\ noexcept\ override;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00699}00699\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00708}00708\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a0d94f62402bb90b5d12679faeaa8c5d7}{getSpeciesIndex}}(const\ std::\textcolor{keywordtype}{string}\&\ symbol)\ const\ override;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00709}00709\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00717}00717\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a0d94f62402bb90b5d12679faeaa8c5d7}{getSpeciesIndex}}(const\ \mbox{\hyperlink{namespacefourdst_1_1atomic}{atomic}}::Species\&\ species)\ const\ override;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00718}00718\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00726}00726\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \mbox{\hyperlink{namespacefourdst_1_1atomic}{atomic}}::Species\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_ae4f854ded38f5e6fcd157a74a57cbf0c}{getSpeciesAtIndex}}(\textcolor{keywordtype}{size\_t}\ index)\ const\ override;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00727}00727\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00734}00734\ \ \ \ \ \ \ \ \ friend\ std::ostream\&\ operator<<(std::ostream\&\ os,\ const\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}\&\ \mbox{\hyperlink{namespacefourdst_1_1composition}{composition}});}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00735}00735\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00753}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_ab1701644ff1c83c220dc04eb58d1621b}{00753}}\ \ \ \ \ \ \ \ \ auto\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_ab1701644ff1c83c220dc04eb58d1621b}{begin}}()\ \{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00754}00754\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_aa05a640e0ea80142682bf4ee30a93c7f}{m\_molarAbundances}}.begin();}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00755}00755\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00756}00756\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00774}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_adf41a833e8b704daf4f581fca5c8cb9b}{00774}}\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keyword}{auto}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_adf41a833e8b704daf4f581fca5c8cb9b}{begin}}()\textcolor{keyword}{\ const\ }\{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00775}00775\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_aa05a640e0ea80142682bf4ee30a93c7f}{m\_molarAbundances}}.cbegin();}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00776}00776\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00777}00777\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00795}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_adeaf6f1213e78cb1fe8a8317f0a8adc2}{00795}}\ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_adeaf6f1213e78cb1fe8a8317f0a8adc2}{end}}()\ \{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00796}00796\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_aa05a640e0ea80142682bf4ee30a93c7f}{m\_molarAbundances}}.end();}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00797}00797\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00798}00798\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00816}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_aed2f5676f8f742199f01e4d1e9664bdd}{00816}}\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keyword}{auto}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_aed2f5676f8f742199f01e4d1e9664bdd}{end}}()\textcolor{keyword}{\ const\ }\{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00817}00817\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_aa05a640e0ea80142682bf4ee30a93c7f}{m\_molarAbundances}}.cend();}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00818}00818\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00819}00819\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00820}00820\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00821}00821\ \};\ \textcolor{comment}{//\ namespace\ fourdst::composition}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00028}00028\ \textcolor{preprocessor}{\#include\ <unordered\_set>}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00029}00029\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00030}00030\ \textcolor{preprocessor}{\#include\ "{}fourdst/config/config.h"{}}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00031}00031\ \textcolor{preprocessor}{\#include\ "{}fourdst/logging/logging.h"{}}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00032}00032\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{composition__abstract_8h}{fourdst/composition/composition\_abstract.h}}"{}}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00033}00033\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{atomicSpecies_8h}{fourdst/atomic/atomicSpecies.h}}"{}}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00034}00034\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00035}00035\ \textcolor{keyword}{namespace\ }\mbox{\hyperlink{namespacefourdst_1_1composition}{fourdst::composition}}\ \{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00045}\mbox{\hyperlink{structfourdst_1_1composition_1_1CanonicalComposition}{00045}}\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structfourdst_1_1composition_1_1CanonicalComposition}{CanonicalComposition}}\ \{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00046}\mbox{\hyperlink{structfourdst_1_1composition_1_1CanonicalComposition_abe5b01574242f8eaabd00c3d653291f7}{00046}}\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1CanonicalComposition_abe5b01574242f8eaabd00c3d653291f7}{X}}\ =\ 0.0;\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00047}\mbox{\hyperlink{structfourdst_1_1composition_1_1CanonicalComposition_a93927bfccc5d2b3906565d092ed4f7f4}{00047}}\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1CanonicalComposition_a93927bfccc5d2b3906565d092ed4f7f4}{Y}}\ =\ 0.0;\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00048}\mbox{\hyperlink{structfourdst_1_1composition_1_1CanonicalComposition_ae1981f5ddd36abd17a4a69fa1f43de18}{00048}}\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1CanonicalComposition_ae1981f5ddd36abd17a4a69fa1f43de18}{Z}}\ =\ 0.0;\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00049}00049\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00056}\mbox{\hyperlink{structfourdst_1_1composition_1_1CanonicalComposition_a6e447cb601af6bcbd09e290aef759672}{00056}}\ \ \ \ \ \ \ \ \ \textcolor{keyword}{friend}\ std::ostream\&\ \mbox{\hyperlink{structfourdst_1_1composition_1_1CanonicalComposition_a6e447cb601af6bcbd09e290aef759672}{operator<<}}(std::ostream\&\ os,\ \textcolor{keyword}{const}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1CanonicalComposition}{CanonicalComposition}}\&\ composition)\ \{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00057}00057\ \ \ \ \ \ \ \ \ \ \ \ \ os\ <<\ \textcolor{stringliteral}{"{}<CanonicalComposition:\ "{}}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00058}00058\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ <<\ \textcolor{stringliteral}{"{}X\ =\ "{}}\ <<\ composition.\mbox{\hyperlink{structfourdst_1_1composition_1_1CanonicalComposition_abe5b01574242f8eaabd00c3d653291f7}{X}}\ <<\ \textcolor{stringliteral}{"{},\ "{}}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00059}00059\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ <<\ \textcolor{stringliteral}{"{}Y\ =\ "{}}\ <<\ composition.\mbox{\hyperlink{structfourdst_1_1composition_1_1CanonicalComposition_a93927bfccc5d2b3906565d092ed4f7f4}{Y}}\ <<\ \textcolor{stringliteral}{"{},\ "{}}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00060}00060\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ <<\ \textcolor{stringliteral}{"{}Z\ =\ "{}}\ <<\ composition.\mbox{\hyperlink{structfourdst_1_1composition_1_1CanonicalComposition_ae1981f5ddd36abd17a4a69fa1f43de18}{Z}}\ <<\ \textcolor{stringliteral}{"{}>"{}};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00061}00061\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ os;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00062}00062\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00063}00063\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00064}00064\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00097}00097\ \ \ \ \ \textcolor{comment}{//\ ReSharper\ disable\ once\ CppClassCanBeFinal}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00098}\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{00098}}\ \ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{Composition}}\ final\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1CompositionAbstract}{CompositionAbstract}}\ \{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00099}00099\ \ \ \ \ \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00107}\mbox{\hyperlink{structfourdst_1_1composition_1_1Composition_1_1CompositionCache}{00107}}\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structfourdst_1_1composition_1_1Composition_1_1CompositionCache}{CompositionCache}}\ \{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00108}\mbox{\hyperlink{structfourdst_1_1composition_1_1Composition_1_1CompositionCache_a459e01b94eb0e78dd95bb6932a967f13}{00108}}\ \ \ \ \ \ \ \ \ \ \ \ \ std::optional<CanonicalComposition>\ \mbox{\hyperlink{structfourdst_1_1composition_1_1Composition_1_1CompositionCache_a459e01b94eb0e78dd95bb6932a967f13}{canonicalComp}};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00109}\mbox{\hyperlink{structfourdst_1_1composition_1_1Composition_1_1CompositionCache_add5ce97ae6a1796c5f6488bfa1555be6}{00109}}\ \ \ \ \ \ \ \ \ \ \ \ \ std::optional<std::vector<double>>\ \mbox{\hyperlink{structfourdst_1_1composition_1_1Composition_1_1CompositionCache_add5ce97ae6a1796c5f6488bfa1555be6}{massFractions}};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00110}\mbox{\hyperlink{structfourdst_1_1composition_1_1Composition_1_1CompositionCache_a41ce9d6b4a0f00030e3027b23c0269fb}{00110}}\ \ \ \ \ \ \ \ \ \ \ \ \ std::optional<std::vector<double>>\ \mbox{\hyperlink{structfourdst_1_1composition_1_1Composition_1_1CompositionCache_a41ce9d6b4a0f00030e3027b23c0269fb}{numberFractions}};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00111}\mbox{\hyperlink{structfourdst_1_1composition_1_1Composition_1_1CompositionCache_ab74c9cd92ba8aaf5f95c8ca5284206a6}{00111}}\ \ \ \ \ \ \ \ \ \ \ \ \ std::optional<std::vector<double>>\ \mbox{\hyperlink{structfourdst_1_1composition_1_1Composition_1_1CompositionCache_ab74c9cd92ba8aaf5f95c8ca5284206a6}{molarAbundances}};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00112}\mbox{\hyperlink{structfourdst_1_1composition_1_1Composition_1_1CompositionCache_a14761ff2df5423884330e423ec38e98c}{00112}}\ \ \ \ \ \ \ \ \ \ \ \ \ std::optional<std::vector<atomic::Species>>\ \mbox{\hyperlink{structfourdst_1_1composition_1_1Composition_1_1CompositionCache_a14761ff2df5423884330e423ec38e98c}{sortedSpecies}};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00113}\mbox{\hyperlink{structfourdst_1_1composition_1_1Composition_1_1CompositionCache_abe45010a5104562d3ebecc77393c04ce}{00113}}\ \ \ \ \ \ \ \ \ \ \ \ \ std::optional<std::vector<std::string>>\ \mbox{\hyperlink{structfourdst_1_1composition_1_1Composition_1_1CompositionCache_abe45010a5104562d3ebecc77393c04ce}{sortedSymbols}};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00114}\mbox{\hyperlink{structfourdst_1_1composition_1_1Composition_1_1CompositionCache_ae844e5a1d2b85c7cfee50157ccf189ce}{00114}}\ \ \ \ \ \ \ \ \ \ \ \ \ std::optional<double>\ \mbox{\hyperlink{structfourdst_1_1composition_1_1Composition_1_1CompositionCache_ae844e5a1d2b85c7cfee50157ccf189ce}{Ye}};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00115}00115\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00119}\mbox{\hyperlink{structfourdst_1_1composition_1_1Composition_1_1CompositionCache_ac8b576c3b48c4cedda6e9e2790072b0d}{00119}}\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1Composition_1_1CompositionCache_ac8b576c3b48c4cedda6e9e2790072b0d}{clear}}()\ \{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00120}00120\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structfourdst_1_1composition_1_1Composition_1_1CompositionCache_a459e01b94eb0e78dd95bb6932a967f13}{canonicalComp}}\ =\ std::nullopt;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00121}00121\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structfourdst_1_1composition_1_1Composition_1_1CompositionCache_add5ce97ae6a1796c5f6488bfa1555be6}{massFractions}}\ =\ std::nullopt;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00122}00122\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structfourdst_1_1composition_1_1Composition_1_1CompositionCache_a41ce9d6b4a0f00030e3027b23c0269fb}{numberFractions}}\ =\ std::nullopt;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00123}00123\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structfourdst_1_1composition_1_1Composition_1_1CompositionCache_ab74c9cd92ba8aaf5f95c8ca5284206a6}{molarAbundances}}\ =\ std::nullopt;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00124}00124\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structfourdst_1_1composition_1_1Composition_1_1CompositionCache_abe45010a5104562d3ebecc77393c04ce}{sortedSymbols}}\ =\ std::nullopt;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00125}00125\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structfourdst_1_1composition_1_1Composition_1_1CompositionCache_a14761ff2df5423884330e423ec38e98c}{sortedSpecies}}\ =\ std::nullopt;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00126}00126\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structfourdst_1_1composition_1_1Composition_1_1CompositionCache_ae844e5a1d2b85c7cfee50157ccf189ce}{Ye}}\ =\ std::nullopt;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00127}00127\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00128}00128\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00133}\mbox{\hyperlink{structfourdst_1_1composition_1_1Composition_1_1CompositionCache_af291583560120bb53c4546a598666477}{00133}}\ \ \ \ \ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1Composition_1_1CompositionCache_af291583560120bb53c4546a598666477}{is\_clear}}()\textcolor{keyword}{\ const\ }\{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00134}00134\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ !\mbox{\hyperlink{structfourdst_1_1composition_1_1Composition_1_1CompositionCache_a459e01b94eb0e78dd95bb6932a967f13}{canonicalComp}}.has\_value()\ \&\&\ !\mbox{\hyperlink{structfourdst_1_1composition_1_1Composition_1_1CompositionCache_add5ce97ae6a1796c5f6488bfa1555be6}{massFractions}}.has\_value()\ \&\&}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00135}00135\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ !\mbox{\hyperlink{structfourdst_1_1composition_1_1Composition_1_1CompositionCache_a41ce9d6b4a0f00030e3027b23c0269fb}{numberFractions}}.has\_value()\ \&\&\ !\mbox{\hyperlink{structfourdst_1_1composition_1_1Composition_1_1CompositionCache_ab74c9cd92ba8aaf5f95c8ca5284206a6}{molarAbundances}}.has\_value()\ \&\&\ !\mbox{\hyperlink{structfourdst_1_1composition_1_1Composition_1_1CompositionCache_abe45010a5104562d3ebecc77393c04ce}{sortedSymbols}}.has\_value()\ \&\&}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00136}00136\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ !\mbox{\hyperlink{structfourdst_1_1composition_1_1Composition_1_1CompositionCache_ae844e5a1d2b85c7cfee50157ccf189ce}{Ye}}.has\_value()\ \&\&\ !\mbox{\hyperlink{structfourdst_1_1composition_1_1Composition_1_1CompositionCache_a14761ff2df5423884330e423ec38e98c}{sortedSpecies}}.has\_value();}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00137}00137\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00138}00138\ \ \ \ \ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00139}00139\ \ \ \ \ \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00145}\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a46a706f9e4c06a45b45ae3dffdde5e9e}{00145}}\ \ \ \ \ \ \ \ \ \textcolor{keyword}{static}\ quill::Logger*\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a46a706f9e4c06a45b45ae3dffdde5e9e}{getLogger}}()\ \{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00146}00146\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{static}\ quill::Logger*\ logger\ =\ logging::LogManager::getInstance().getLogger(\textcolor{stringliteral}{"{}log"{}});}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00147}00147\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ logger;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00148}00148\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00149}00149\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00150}\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a452b0affb86dc971a96c80d01f4fcb2b}{00150}}\ \ \ \ \ \ \ \ \ std::set<atomic::Species>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a452b0affb86dc971a96c80d01f4fcb2b}{m\_registeredSpecies}};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00151}\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_aa05a640e0ea80142682bf4ee30a93c7f}{00151}}\ \ \ \ \ \ \ \ \ std::map<atomic::Species,\ double>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_aa05a640e0ea80142682bf4ee30a93c7f}{m\_molarAbundances}};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00152}00152\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00153}\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a02cd9d9608da082a200fdfa86d14bf5d}{00153}}\ \ \ \ \ \ \ \ \ \textcolor{keyword}{mutable}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1Composition_1_1CompositionCache}{CompositionCache}}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a02cd9d9608da082a200fdfa86d14bf5d}{m\_cache}};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00154}00154\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00155}00155\ \ \ \ \ \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00161}\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a23b83b76ee025f6fc009184ee19bba88}{00161}}\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}()\ =\ \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00162}00162\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00166}\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a08c1d1fe9384c5255a6ba40e34b18315}{00166}}\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a08c1d1fe9384c5255a6ba40e34b18315}{\string~Composition}}()\ \textcolor{keyword}{override}\ =\ \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00167}00167\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00178}00178\ \ \ \ \ \ \ \ \ \textcolor{keyword}{explicit}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}(\textcolor{keyword}{const}\ std::vector<std::string>\&\ symbols);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00179}00179\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00193}00193\ \ \ \ \ \ \ \ \ \textcolor{keyword}{explicit}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}(\textcolor{keyword}{const}\ std::vector<atomic::Species>\&\ species);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00194}00194\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00205}00205\ \ \ \ \ \ \ \ \ \textcolor{keyword}{explicit}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}(\textcolor{keyword}{const}\ std::set<std::string>\&\ symbols);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00206}00206\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00220}00220\ \ \ \ \ \ \ \ \ \textcolor{keyword}{explicit}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}(\textcolor{keyword}{const}\ std::set<atomic::Species>\&\ species);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00221}00221\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00222}00222\ \ \ \ \ \ \ \ \ \textcolor{keyword}{explicit}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}(\textcolor{keyword}{const}\ std::unordered\_set<std::string>\&\ symbols);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00223}00223\ \ \ \ \ \ \ \ \ \textcolor{keyword}{explicit}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}(\textcolor{keyword}{const}\ std::unordered\_set<atomic::Species>\&\ species);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00224}00224\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00240}00240\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}(\textcolor{keyword}{const}\ std::vector<std::string>\&\ symbols,\ \textcolor{keyword}{const}\ std::vector<double>\&\ molarAbundances);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00241}00241\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00256}00256\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}(\textcolor{keyword}{const}\ std::vector<atomic::Species>\&\ species,\ \textcolor{keyword}{const}\ std::vector<double>\&\ molarAbundances);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00257}00257\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00273}00273\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}(\textcolor{keyword}{const}\ std::set<std::string>\&\ symbols,\ \textcolor{keyword}{const}\ std::vector<double>\&\ molarAbundances);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00274}00274\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00275}00275\ \ \ \ \ \ \ \ \ \textcolor{keyword}{explicit}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}(\textcolor{keyword}{const}\ std::unordered\_map<std::string,\ double>\&\ symbolMolarAbundances);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00276}00276\ \ \ \ \ \ \ \ \ \textcolor{keyword}{explicit}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}(\textcolor{keyword}{const}\ std::map<std::string,\ double>\&\ symbolMolarAbundances);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00277}00277\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00278}00278\ \ \ \ \ \ \ \ \ \textcolor{keyword}{explicit}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}(\textcolor{keyword}{const}\ std::unordered\_map<atomic::Species,\ double>\&\ speciesMolarAbundances);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00279}00279\ \ \ \ \ \ \ \ \ \textcolor{keyword}{explicit}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}(\textcolor{keyword}{const}\ std::map<atomic::Species,\ double>\&\ speciesMolarAbundances);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00280}00280\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00281}00281\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00286}00286\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{Composition}}\&\ composition);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00287}00287\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00288}00288\ \ \ \ \ \ \ \ \ \textcolor{keyword}{explicit}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1CompositionAbstract}{CompositionAbstract}}\&\ composition);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00289}00289\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00295}00295\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{Composition}}\&\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a4ec1e23cfecef764cb831171fed62fc2}{operator=}}(\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{Composition}}\ \textcolor{keyword}{const}\&\ other);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00296}00296\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00311}00311\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a3ab4dcda0bfd1a35b169bcc57fe66725}{registerSymbol}}(\textcolor{keyword}{const}\ std::string\&\ symbol);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00312}00312\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00327}00327\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a3ab4dcda0bfd1a35b169bcc57fe66725}{registerSymbol}}(\textcolor{keyword}{const}\ std::vector<std::string>\&\ symbols);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00328}00328\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00351}00351\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a392a34c19f45d6c936cc7030e6cfaf3f}{registerSpecies}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{structfourdst_1_1atomic_1_1Species}{atomic::Species}}\&\ species)\ \textcolor{keyword}{noexcept};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00352}00352\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00353}00353\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00373}00373\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a392a34c19f45d6c936cc7030e6cfaf3f}{registerSpecies}}(\textcolor{keyword}{const}\ std::vector<atomic::Species>\&\ species)\ \textcolor{keyword}{noexcept};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00374}00374\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00380}00380\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a194f715788e7921bd611579440de2ecd}{contains}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{structfourdst_1_1atomic_1_1Species}{atomic::Species}}\&\ species)\ \textcolor{keyword}{const}\ \textcolor{keyword}{noexcept}\ \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00381}00381\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00388}00388\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a194f715788e7921bd611579440de2ecd}{contains}}(\textcolor{keyword}{const}\ std::string\&\ symbol)\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00389}00389\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00394}00394\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a9d177d36b728442bcbd8cb66712c7c75}{size}}()\ const\ noexcept\ override;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00395}00395\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00412}00412\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a262d7133035d4e6f45daa81827abf5e7}{setMolarAbundance}}(}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00413}00413\ \ \ \ \ \ \ \ \ \ \ \ \ const\ \mbox{\hyperlink{namespacestd}{std}}::\textcolor{keywordtype}{string}\&\ symbol,}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00414}00414\ \ \ \ \ \ \ \ \ \ \ \ \ const\ \textcolor{keywordtype}{double}\&\ molar\_abundance}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00415}00415\ \ \ \ \ \ \ \ \ );}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00416}00416\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00436}00436\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a262d7133035d4e6f45daa81827abf5e7}{setMolarAbundance}}(}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00437}00437\ \ \ \ \ \ \ \ \ \ \ \ \ const\ atomic::Species\&\ species,}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00438}00438\ \ \ \ \ \ \ \ \ \ \ \ \ const\ \textcolor{keywordtype}{double}\&\ molar\_abundance}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00439}00439\ \ \ \ \ \ \ \ \ );}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00440}00440\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00456}00456\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a262d7133035d4e6f45daa81827abf5e7}{setMolarAbundance}}(}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00457}00457\ \ \ \ \ \ \ \ \ \ \ \ \ const\ \mbox{\hyperlink{namespacestd}{std}}::vector<\mbox{\hyperlink{namespacestd}{std}}::\textcolor{keywordtype}{string}>\&\ symbols,}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00458}00458\ \ \ \ \ \ \ \ \ \ \ \ \ const\ \mbox{\hyperlink{namespacestd}{std}}::vector<\textcolor{keywordtype}{double}>\&\ molar\_abundances}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00459}00459\ \ \ \ \ \ \ \ \ );}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00460}00460\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00479}00479\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a262d7133035d4e6f45daa81827abf5e7}{setMolarAbundance}}(}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00480}00480\ \ \ \ \ \ \ \ \ \ \ \ \ const\ \mbox{\hyperlink{namespacestd}{std}}::vector<atomic::Species>\&\ species,}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00481}00481\ \ \ \ \ \ \ \ \ \ \ \ \ const\ \mbox{\hyperlink{namespacestd}{std}}::vector<\textcolor{keywordtype}{double}>\&\ molar\_abundances}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00482}00482\ \ \ \ \ \ \ \ \ );}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00483}00483\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00500}00500\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a262d7133035d4e6f45daa81827abf5e7}{setMolarAbundance}}(}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00501}00501\ \ \ \ \ \ \ \ \ \ \ \ \ const\ \mbox{\hyperlink{namespacestd}{std}}::set<\mbox{\hyperlink{namespacestd}{std}}::\textcolor{keywordtype}{string}>\&\ symbols,}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00502}00502\ \ \ \ \ \ \ \ \ \ \ \ \ const\ \mbox{\hyperlink{namespacestd}{std}}::vector<\textcolor{keywordtype}{double}>\&\ molar\_abundances}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00503}00503\ \ \ \ \ \ \ \ \ );}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00504}00504\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00524}00524\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a262d7133035d4e6f45daa81827abf5e7}{setMolarAbundance}}(}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00525}00525\ \ \ \ \ \ \ \ \ \ \ \ \ const\ \mbox{\hyperlink{namespacestd}{std}}::set<atomic::Species>\&\ species,}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00526}00526\ \ \ \ \ \ \ \ \ \ \ \ \ const\ \mbox{\hyperlink{namespacestd}{std}}::vector<\textcolor{keywordtype}{double}>\&\ molar\_abundances}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00527}00527\ \ \ \ \ \ \ \ \ );}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00528}00528\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00537}00537\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \mbox{\hyperlink{namespacestd}{std}}::set<\mbox{\hyperlink{namespacestd}{std}}::\textcolor{keywordtype}{string}>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a3ae885c28580ae15be8c16614bef3b0e}{getRegisteredSymbols}}()\ const\ noexcept\ override;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00538}00538\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00547}00547\ \ \ \ \ \ \ \ \ [[nodiscard]]\ const\ \mbox{\hyperlink{namespacestd}{std}}::set<atomic::Species>\ \&\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a33db253ca50431b5166d43412ff18f71}{getRegisteredSpecies}}()\ const\ noexcept\ override;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00548}00548\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00555}00555\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \mbox{\hyperlink{namespacestd}{std}}::unordered\_map<atomic::Species,\ \textcolor{keywordtype}{double}>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a9ea2b673341fdc67afeb0f0517a54c8c}{getMassFraction}}()\ const\ noexcept\ override;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00556}00556\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00565}00565\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a9ea2b673341fdc67afeb0f0517a54c8c}{getMassFraction}}(const\ \mbox{\hyperlink{namespacestd}{std}}::\textcolor{keywordtype}{string}\&\ symbol)\ const\ override;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00566}00566\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00584}00584\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a9ea2b673341fdc67afeb0f0517a54c8c}{getMassFraction}}(const\ atomic::Species\&\ species)\ const\ override;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00585}00585\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00594}00594\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a1f87ed64a1be9a6091c852131d24e476}{getNumberFraction}}(const\ \mbox{\hyperlink{namespacestd}{std}}::\textcolor{keywordtype}{string}\&\ symbol)\ const\ override;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00595}00595\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00612}00612\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a1f87ed64a1be9a6091c852131d24e476}{getNumberFraction}}(const\ atomic::Species\&\ species)\ const\ override;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00613}00613\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00620}00620\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \mbox{\hyperlink{namespacestd}{std}}::unordered\_map<atomic::Species,\ \textcolor{keywordtype}{double}>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a1f87ed64a1be9a6091c852131d24e476}{getNumberFraction}}()\ const\ noexcept\ override;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00621}00621\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00632}00632\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_add67a92d73e3a57a2bbdb52bc9ca3bfe}{getMolarAbundance}}(const\ \mbox{\hyperlink{namespacestd}{std}}::\textcolor{keywordtype}{string}\&\ symbol)\ const\ override;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00633}00633\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00643}00643\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_add67a92d73e3a57a2bbdb52bc9ca3bfe}{getMolarAbundance}}(const\ atomic::Species\&\ species)\ const\ override;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00644}00644\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00658}00658\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_afbbb5e51ad5ae5c0fa6bc0094195aecd}{getMeanParticleMass}}()\ const\ noexcept\ override;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00659}00659\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00673}00673\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a90fc71d1fe03017ee4c7a1cac69d24fb}{getElectronAbundance}}()\ const\ noexcept\ override;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00674}00674\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00675}00675\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00690}00690\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \mbox{\hyperlink{structfourdst_1_1composition_1_1CanonicalComposition}{CanonicalComposition}}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_aac5b214a3d1278e127422224cb9cee50}{getCanonicalComposition}}()\ const;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00691}00691\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00697}00697\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \mbox{\hyperlink{namespacestd}{std}}::vector<\textcolor{keywordtype}{double}>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_af4f44aaf8b7e0d63872a70b5e2131369}{getMassFractionVector}}()\ const\ noexcept\ override;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00698}00698\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00704}00704\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \mbox{\hyperlink{namespacestd}{std}}::vector<\textcolor{keywordtype}{double}>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_ae4f72972cf4d1ff422d0790080e11473}{getNumberFractionVector}}()\ const\ noexcept\ override;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00705}00705\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00711}00711\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \mbox{\hyperlink{namespacestd}{std}}::vector<\textcolor{keywordtype}{double}>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_abcb391f5fca2b636127e48e681e4c3ee}{getMolarAbundanceVector}}()\ const\ noexcept\ override;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00712}00712\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00721}00721\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a0d94f62402bb90b5d12679faeaa8c5d7}{getSpeciesIndex}}(const\ \mbox{\hyperlink{namespacestd}{std}}::\textcolor{keywordtype}{string}\&\ symbol)\ const\ override;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00722}00722\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00730}00730\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a0d94f62402bb90b5d12679faeaa8c5d7}{getSpeciesIndex}}(const\ atomic::Species\&\ species)\ const\ override;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00731}00731\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00739}00739\ \ \ \ \ \ \ \ \ [[nodiscard]]\ atomic::Species\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_ae4f854ded38f5e6fcd157a74a57cbf0c}{getSpeciesAtIndex}}(\textcolor{keywordtype}{size\_t}\ index)\ const\ override;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00740}00740\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00741}00741\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \mbox{\hyperlink{namespacestd}{std}}::unique\_ptr<\mbox{\hyperlink{classfourdst_1_1composition_1_1CompositionAbstract}{CompositionAbstract}}>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a5a1f5661a329ec7bc8b7e118ff9d6c25}{clone}}()\ const\ override;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00742}00742\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00749}00749\ \ \ \ \ \ \ \ \ friend\ \mbox{\hyperlink{namespacestd}{std}}::ostream\&\ operator<<(\mbox{\hyperlink{namespacestd}{std}}::ostream\&\ os,\ const\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{Composition}}\&\ composition);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00750}00750\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00768}\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a8699ef1c21f7cf21a26ab2f83cfd9785}{00768}}\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \mbox{\hyperlink{namespacestd}{std}}::map<atomic::Species,\ \textcolor{keywordtype}{double}>::iterator\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a8699ef1c21f7cf21a26ab2f83cfd9785}{begin}}()\textcolor{keyword}{\ override\ }\{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00769}00769\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_aa05a640e0ea80142682bf4ee30a93c7f}{m\_molarAbundances}}.begin();}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00770}00770\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00771}00771\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00789}\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a5f6ca82e740a9297dad4bb9cc1075112}{00789}}\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::map<atomic::Species,\ double>::const\_iterator\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a5f6ca82e740a9297dad4bb9cc1075112}{begin}}()\textcolor{keyword}{\ const\ override\ }\{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00790}00790\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_aa05a640e0ea80142682bf4ee30a93c7f}{m\_molarAbundances}}.cbegin();}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00791}00791\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00792}00792\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00810}\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a8c07a604bff4963b9f8a1f11175f97cf}{00810}}\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::map<atomic::Species,\ double>::iterator\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a8c07a604bff4963b9f8a1f11175f97cf}{end}}()\textcolor{keyword}{\ override\ }\{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00811}00811\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_aa05a640e0ea80142682bf4ee30a93c7f}{m\_molarAbundances}}.end();}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00812}00812\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00813}00813\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00831}\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a12be36a912c1a1f59affba37d44431ef}{00831}}\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::map<atomic::Species,\ double>::const\_iterator\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a12be36a912c1a1f59affba37d44431ef}{end}}()\textcolor{keyword}{\ const\ override\ }\{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00832}00832\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_aa05a640e0ea80142682bf4ee30a93c7f}{m\_molarAbundances}}.cend();}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00833}00833\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00834}00834\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00835}00835\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00836}00836\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00837}\mbox{\hyperlink{namespacefourdst_1_1composition_a06f5abc74104de40349e47ad367c402a}{00837}}\ \ \ \ \ \textcolor{keyword}{inline}\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{namespacefourdst_1_1composition_a06f5abc74104de40349e47ad367c402a}{operator==}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{Composition}}\&\ a,\ \textcolor{keyword}{const}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{Composition}}\&\ b)\ \textcolor{keyword}{noexcept}\ \{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00838}00838\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (a.size()\ !=\ b.size())\ \textcolor{keywordflow}{return}\ \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00839}00839\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00840}00840\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Compare\ species\ sets\ quickly}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00841}00841\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (a.getRegisteredSpecies()\ !=\ b.getRegisteredSpecies())}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00842}00842\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00843}00843\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00844}00844\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Compare\ all\ abundances}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00845}00845\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keyword}{auto}\ itA\ =\ a.begin(),\ itB\ =\ b.begin();}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00846}00846\ \ \ \ \ \ \ \ \ \ \ \ \ \ itA\ !=\ a.end()\ \&\&\ itB\ !=\ b.end();\ ++itA,\ ++itB)\ \{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00847}00847\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (itA-\/>first\ !=\ itB-\/>first)}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00848}00848\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00849}00849\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (itA-\/>second\ !=\ itB-\/>second)}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00850}00850\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00851}00851\ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00852}00852\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00853}00853\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00854}00854\ \};\ \textcolor{comment}{//\ namespace\ fourdst::composition}}
\end{DoxyCode}

View File

@@ -1,10 +1,11 @@
\doxysection{src/composition/include/fourdst Directory Reference}
\hypertarget{dir_3c9efac6790a3720e63e1a08c00d11f2}{}\label{dir_3c9efac6790a3720e63e1a08c00d11f2}\index{src/composition/include/fourdst Directory Reference@{src/composition/include/fourdst Directory Reference}}
Directory dependency graph for fourdst\+:\nopagebreak
Directory dependency graph for fourdst\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=260pt]{dir_3c9efac6790a3720e63e1a08c00d11f2_dep}
\includegraphics[width=272pt]{dir_3c9efac6790a3720e63e1a08c00d11f2_dep}
\end{center}
\end{figure}
\doxysubsubsection*{Directories}

View File

@@ -1,10 +1,11 @@
\doxysection{src/composition Directory Reference}
\hypertarget{dir_425afc2e69e55565110382214454a15b}{}\label{dir_425afc2e69e55565110382214454a15b}\index{src/composition Directory Reference@{src/composition Directory Reference}}
Directory dependency graph for composition\+:\nopagebreak
Directory dependency graph for composition\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=243pt]{dir_425afc2e69e55565110382214454a15b_dep}
\includegraphics[width=250pt]{dir_425afc2e69e55565110382214454a15b_dep}
\end{center}
\end{figure}
\doxysubsubsection*{Directories}

View File

@@ -1,10 +1,11 @@
\doxysection{src Directory Reference}
\hypertarget{dir_68267d1309a1af8e8297ef4c3efbcdba}{}\label{dir_68267d1309a1af8e8297ef4c3efbcdba}\index{src Directory Reference@{src Directory Reference}}
Directory dependency graph for src\+:\nopagebreak
Directory dependency graph for src\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=228pt]{dir_68267d1309a1af8e8297ef4c3efbcdba_dep}
\includegraphics[width=236pt]{dir_68267d1309a1af8e8297ef4c3efbcdba_dep}
\end{center}
\end{figure}
\doxysubsubsection*{Directories}

View File

@@ -1,10 +1,11 @@
\doxysection{src/composition/include/fourdst/composition/exceptions Directory Reference}
\hypertarget{dir_88aa30610c51652b536406602eb05405}{}\label{dir_88aa30610c51652b536406602eb05405}\index{src/composition/include/fourdst/composition/exceptions Directory Reference@{src/composition/include/fourdst/composition/exceptions Directory Reference}}
Directory dependency graph for exceptions\+:\nopagebreak
Directory dependency graph for exceptions\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=176pt]{dir_88aa30610c51652b536406602eb05405_dep}
\includegraphics[width=182pt]{dir_88aa30610c51652b536406602eb05405_dep}
\end{center}
\end{figure}
\doxysubsubsection*{Files}

View File

@@ -1,9 +1,10 @@
\doxysection{docs/static Directory Reference}
\hypertarget{dir_c34d5e8363cf0aa3fabc4f3fad3412a4}{}\label{dir_c34d5e8363cf0aa3fabc4f3fad3412a4}\index{docs/static Directory Reference@{docs/static Directory Reference}}
Directory dependency graph for static\+:\nopagebreak
Directory dependency graph for static\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=152pt]{dir_c34d5e8363cf0aa3fabc4f3fad3412a4_dep}
\includegraphics[width=156pt]{dir_c34d5e8363cf0aa3fabc4f3fad3412a4_dep}
\end{center}
\end{figure}

View File

@@ -1,10 +1,11 @@
\doxysection{src/composition/include Directory Reference}
\hypertarget{dir_cb6fc2f7165eff3b2362b2440dfaea8e}{}\label{dir_cb6fc2f7165eff3b2362b2440dfaea8e}\index{src/composition/include Directory Reference@{src/composition/include Directory Reference}}
Directory dependency graph for include\+:\nopagebreak
Directory dependency graph for include\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=238pt]{dir_cb6fc2f7165eff3b2362b2440dfaea8e_dep}
\includegraphics[width=248pt]{dir_cb6fc2f7165eff3b2362b2440dfaea8e_dep}
\end{center}
\end{figure}
\doxysubsubsection*{Directories}

View File

@@ -1,12 +1,18 @@
\doxysection{src/composition/lib Directory Reference}
\hypertarget{dir_e22a97de167fe22ecd13733f7a34b9f0}{}\label{dir_e22a97de167fe22ecd13733f7a34b9f0}\index{src/composition/lib Directory Reference@{src/composition/lib Directory Reference}}
Directory dependency graph for lib\+:\nopagebreak
Directory dependency graph for lib\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=164pt]{dir_e22a97de167fe22ecd13733f7a34b9f0_dep}
\includegraphics[width=242pt]{dir_e22a97de167fe22ecd13733f7a34b9f0_dep}
\end{center}
\end{figure}
\doxysubsubsection*{Directories}
\begin{DoxyCompactItemize}
\item
directory \mbox{\hyperlink{dir_a29dc6a716a1351df2c511dc254c58ac}{decorators}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Files}
\begin{DoxyCompactItemize}
\item

View File

@@ -1,16 +1,21 @@
\doxysection{src/composition/include/fourdst/composition Directory Reference}
\hypertarget{dir_f0fdd83dd0cb4aa6fd6a832374ae4f05}{}\label{dir_f0fdd83dd0cb4aa6fd6a832374ae4f05}\index{src/composition/include/fourdst/composition Directory Reference@{src/composition/include/fourdst/composition Directory Reference}}
Directory dependency graph for composition\+:\nopagebreak
Directory dependency graph for composition\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=278pt]{dir_f0fdd83dd0cb4aa6fd6a832374ae4f05_dep}
\includegraphics[width=350pt]{dir_f0fdd83dd0cb4aa6fd6a832374ae4f05_dep}
\end{center}
\end{figure}
\doxysubsubsection*{Directories}
\begin{DoxyCompactItemize}
\item
directory \mbox{\hyperlink{dir_f6270720383943883918701d7c63cf1d}{decorators}}
\item
directory \mbox{\hyperlink{dir_88aa30610c51652b536406602eb05405}{exceptions}}
\item
directory \mbox{\hyperlink{dir_d6630bab6c58db28bc1f1c304498b57d}{utils}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Files}
\begin{DoxyCompactItemize}

View File

@@ -122,7 +122,6 @@
% Used by @code ... @endcode
\newenvironment{DoxyCode}[1]{%
\par%
\vspace{2pt}%
\scriptsize%
\normalfont\ttfamily%
\rightskip0pt plus 1fil%
@@ -130,14 +129,14 @@
\settowidth{\CodeWidthChar}{?}%
\settoheight{\CodeHeightChar}{?}%
\setlength{\parskip}{0ex plus 0ex minus 0ex}%
\ifthenelse{\equal{#1}{0}}%
{%
\ifthenelse{\equal{#1}{0}}
{
{\lccode`~32 \lowercase{\global\let~}\NiceSpace}\obeyspaces%
}%
{%
}
{
{\lccode`~32 \lowercase{\global\let~}}\obeyspaces%
}%
\vspace{2pt}%
}
}{%
\normalfont%
\normalsize%
@@ -200,10 +199,6 @@
\setlist[DoxyItemize,3]{label=\textasteriskcentered}
\setlist[DoxyItemize,4]{label=\textperiodcentered}
% Used for check boxes
\newcommand{\DoxyUnchecked}{$\square$}
\newcommand{\DoxyChecked}{\rlap{\raisebox{0.3ex}{\hspace{0.4ex}\tiny \checkmark}}$\square$}
% Used by description lists (using <dl> ... </dl>)
\newenvironment{DoxyDescription}{%
\description%
@@ -241,13 +236,6 @@
\end{DoxyDesc}%
}
% Used by @important
\newenvironment{DoxyImportant}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @author and @authors
\newenvironment{DoxyAuthor}[1]{%
\begin{DoxyDesc}{#1}%
@@ -384,16 +372,14 @@
}
% Used for fields simple class style enums
\newenvironment{DoxyEnumFields}[2][]{%
\newenvironment{DoxyEnumFields}[1]{%
\tabulinesep=1mm%
\par%
\ifthenelse{\equal{#1}{2}}%
{\begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}}%
{\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,r]|X[-1,l]|}}% with init value
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
\begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
\hline%
\endfirsthead%
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
\hline%
\endhead%
}{%
@@ -403,7 +389,7 @@
% Used for parameters within a detailed function description
\newenvironment{DoxyParamCaption}{%
\renewcommand{\item}[3][]{\\ \hspace*{2.0cm} ##1 {\em ##2}##3}%
\renewcommand{\item}[2][]{\\ \hspace*{2.0cm} ##1 {\em ##2}}%
}{%
}
@@ -653,12 +639,12 @@
{1.5ex \@plus .2ex}%
{\raggedright\normalfont\normalsize\bfseries}}
\newcommand\l@subsubsubsection{\@dottedtocline{4}{10.0em}{7.8em}}
\newcommand\l@subsubsubsubsection{\@dottedtocline{5}{13.0em}{9.4em}}
\newcommand\l@subsubsubsubsubsection{\@dottedtocline{6}{15.0em}{11em}}
\newcommand\l@subsubsubsubsubsubsection{\@dottedtocline{7}{18.0em}{12.6em}}
\renewcommand\l@paragraph{\@dottedtocline{8}{21.0em}{14.2em}}
\renewcommand\l@subparagraph{\@dottedtocline{9}{24.0em}{15.8em}}
\newcommand\l@subsubsubsection{\@dottedtocline{4}{6.1em}{7.8em}}
\newcommand\l@subsubsubsubsection{\@dottedtocline{5}{6.1em}{9.4em}}
\newcommand\l@subsubsubsubsubsection{\@dottedtocline{6}{6.1em}{11em}}
\newcommand\l@subsubsubsubsubsubsection{\@dottedtocline{7}{6.1em}{12.6em}}
\renewcommand\l@paragraph{\@dottedtocline{8}{6.1em}{14.2em}}
\renewcommand\l@subparagraph{\@dottedtocline{9}{6.1em}{15.8em}}
\makeatother
% the sectsty doesn't look to be maintained but gives, in our case, some warning like:
% LaTeX Warning: Command \underline has changed.
@@ -691,16 +677,10 @@
\doxysubparagraphfont{#1}%
\doxyminisecfont{#1}}%
% Define caption that is also suitable in a table
% for usage with hyperlinks
\makeatletter
\def\doxyfigcaption{%
\H@refstepcounter{figure}%
\@dblarg{\@caption{figure}}}
% for usage without hyperlinks
\def\doxyfigcaptionnolink{%
\refstepcounter{figure}%
\@dblarg{\@caption{figure}}}
\makeatother
% Define alpha enumarative names for counters > 26

View File

@@ -2,32 +2,34 @@
\hypertarget{exceptions__composition_8h}{}\label{exceptions__composition_8h}\index{src/composition/include/fourdst/composition/exceptions/exceptions\_composition.h@{src/composition/include/fourdst/composition/exceptions/exceptions\_composition.h}}
{\ttfamily \#include $<$exception$>$}\newline
{\ttfamily \#include $<$string$>$}\newline
Include dependency graph for exceptions\+\_\+composition.\+h\+:\nopagebreak
Include dependency graph for exceptions\+\_\+composition.\+h\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=235pt]{exceptions__composition_8h__incl}
\includegraphics[width=253pt]{exceptions__composition_8h__incl}
\end{center}
\end{figure}
This graph shows which files directly or indirectly include this file\+:\nopagebreak
This graph shows which files directly or indirectly include this file\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=294pt]{exceptions__composition_8h__dep__incl}
\includegraphics[width=350pt]{exceptions__composition_8h__dep__incl}
\end{center}
\end{figure}
\doxysubsubsection*{Classes}
\begin{DoxyCompactItemize}
\item
class \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error}{fourdst\+::composition\+::exceptions\+::\+Composition\+Error}}
class \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1CompositionError}{fourdst\+::composition\+::exceptions\+::\+Composition\+Error}}
\begin{DoxyCompactList}\small\item\em Base class for exceptions related to composition objects. \end{DoxyCompactList}\item
class \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_invalid_composition_error}{fourdst\+::composition\+::exceptions\+::\+Invalid\+Composition\+Error}}
class \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1InvalidCompositionError}{fourdst\+::composition\+::exceptions\+::\+Invalid\+Composition\+Error}}
\begin{DoxyCompactList}\small\item\em Exception thrown when a composition is in an invalid or inconsistent state. \end{DoxyCompactList}\item
class \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_unregistered_symbol_error}{fourdst\+::composition\+::exceptions\+::\+Unregistered\+Symbol\+Error}}
class \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1UnregisteredSymbolError}{fourdst\+::composition\+::exceptions\+::\+Unregistered\+Symbol\+Error}}
\begin{DoxyCompactList}\small\item\em Exception thrown when a symbol is used that has not been registered. \end{DoxyCompactList}\item
class \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_species_error}{fourdst\+::composition\+::exceptions\+::\+Species\+Error}}
class \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1SpeciesError}{fourdst\+::composition\+::exceptions\+::\+Species\+Error}}
\begin{DoxyCompactList}\small\item\em Base class for exceptions related to atomic species. \end{DoxyCompactList}\item
class \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_unknown_symbol_error}{fourdst\+::composition\+::exceptions\+::\+Unknown\+Symbol\+Error}}
class \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1UnknownSymbolError}{fourdst\+::composition\+::exceptions\+::\+Unknown\+Symbol\+Error}}
\begin{DoxyCompactList}\small\item\em Exception thrown when an unknown symbol is encountered. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}

View File

@@ -8,40 +8,40 @@
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00004}00004\ \textcolor{preprocessor}{\#include\ <string>}}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00005}00005\ }
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00006}\mbox{\hyperlink{namespacefourdst_1_1composition_1_1exceptions}{00006}}\ \textcolor{keyword}{namespace\ }\mbox{\hyperlink{namespacefourdst_1_1composition_1_1exceptions}{fourdst::composition::exceptions}}\ \{}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00014}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error}{00014}}\ \ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error_aef0cd13a4d1eb60b6d75ca5480e9146c}{CompositionError}}\ :\ \textcolor{keyword}{public}\ std::exception\ \{}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00014}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1CompositionError}{00014}}\ \ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1CompositionError}{CompositionError}}\ :\ \textcolor{keyword}{public}\ std::exception\ \{}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00015}00015\ \ \ \ \ \textcolor{keyword}{protected}:}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00019}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error_a4cd69d727a162f90045cd6d4aaf95440}{00019}}\ \ \ \ \ \ \ \ \ std::string\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error_a4cd69d727a162f90045cd6d4aaf95440}{m\_message}};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00019}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1CompositionError_a4cd69d727a162f90045cd6d4aaf95440}{00019}}\ \ \ \ \ \ \ \ \ std::string\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1CompositionError_a4cd69d727a162f90045cd6d4aaf95440}{m\_message}};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00020}00020\ \ \ \ \ \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00025}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error_aef0cd13a4d1eb60b6d75ca5480e9146c}{00025}}\ \ \ \ \ \ \ \ \ \textcolor{keyword}{explicit}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error_aef0cd13a4d1eb60b6d75ca5480e9146c}{CompositionError}}(\textcolor{keyword}{const}\ std::string\&\ message)}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00026}00026\ \ \ \ \ \ \ \ \ \ \ \ \ :\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error_a4cd69d727a162f90045cd6d4aaf95440}{m\_message}}(std::move(message))\ \{\}}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00025}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1CompositionError_aef0cd13a4d1eb60b6d75ca5480e9146c}{00025}}\ \ \ \ \ \ \ \ \ \textcolor{keyword}{explicit}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1CompositionError_aef0cd13a4d1eb60b6d75ca5480e9146c}{CompositionError}}(\textcolor{keyword}{const}\ std::string\&\ message)}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00026}00026\ \ \ \ \ \ \ \ \ \ \ \ \ :\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1CompositionError_a4cd69d727a162f90045cd6d4aaf95440}{m\_message}}(\mbox{\hyperlink{namespacestd}{std}}::move(message))\ \{\}}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00027}00027\ }
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00032}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error_ae44ceddb19da8a8cda7ee150b6826d08}{00032}}\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}*\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error_ae44ceddb19da8a8cda7ee150b6826d08}{what}}()\ const\ noexcept\textcolor{keyword}{\ override}\{}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00033}00033\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error_a4cd69d727a162f90045cd6d4aaf95440}{m\_message}}.c\_str();}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00032}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1CompositionError_ae44ceddb19da8a8cda7ee150b6826d08}{00032}}\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}*\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1CompositionError_ae44ceddb19da8a8cda7ee150b6826d08}{what}}()\ const\ noexcept\textcolor{keyword}{\ override}\{}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00033}00033\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1CompositionError_a4cd69d727a162f90045cd6d4aaf95440}{m\_message}}.c\_str();}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00034}00034\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00035}00035\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00036}00036\ }
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00041}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_invalid_composition_error}{00041}}\ \ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_invalid_composition_error}{InvalidCompositionError}}\ final\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_invalid_composition_error_aef0cd13a4d1eb60b6d75ca5480e9146c}{CompositionError}}\ \{}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00042}00042\ \ \ \ \ \ \ \ \ \textcolor{keyword}{using\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error_aef0cd13a4d1eb60b6d75ca5480e9146c}{CompositionError::CompositionError}};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00041}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1InvalidCompositionError}{00041}}\ \ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1InvalidCompositionError}{InvalidCompositionError}}\ final\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1CompositionError}{CompositionError}}\ \{}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00042}00042\ \ \ \ \ \ \ \ \ \textcolor{keyword}{using\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1CompositionError_aef0cd13a4d1eb60b6d75ca5480e9146c}{CompositionError::CompositionError}};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00043}00043\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00044}00044\ }
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00051}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_unregistered_symbol_error}{00051}}\ \ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_unregistered_symbol_error}{UnregisteredSymbolError}}\ final\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_unregistered_symbol_error_aef0cd13a4d1eb60b6d75ca5480e9146c}{CompositionError}}\ \{}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00052}00052\ \ \ \ \ \ \ \ \ \textcolor{keyword}{using\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error_aef0cd13a4d1eb60b6d75ca5480e9146c}{CompositionError::CompositionError}};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00051}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1UnregisteredSymbolError}{00051}}\ \ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1UnregisteredSymbolError}{UnregisteredSymbolError}}\ final\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1CompositionError}{CompositionError}}\ \{}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00052}00052\ \ \ \ \ \ \ \ \ \textcolor{keyword}{using\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1CompositionError_aef0cd13a4d1eb60b6d75ca5480e9146c}{CompositionError::CompositionError}};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00053}00053\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00054}00054\ }
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00059}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_species_error}{00059}}\ \ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_species_error_af67ed95557b2511ff5143c7064fc5813}{SpeciesError}}\ :\ \textcolor{keyword}{public}\ std::exception\ \{}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00059}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1SpeciesError}{00059}}\ \ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1SpeciesError}{SpeciesError}}\ :\ \textcolor{keyword}{public}\ std::exception\ \{}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00060}00060\ \ \ \ \ \textcolor{keyword}{protected}:}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00061}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_species_error_a07a424e42edd368e6fb5113655ab6d1e}{00061}}\ \ \ \ \ \ \ \ \ std::string\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_species_error_a07a424e42edd368e6fb5113655ab6d1e}{m\_message}};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00061}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1SpeciesError_a07a424e42edd368e6fb5113655ab6d1e}{00061}}\ \ \ \ \ \ \ \ \ std::string\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1SpeciesError_a07a424e42edd368e6fb5113655ab6d1e}{m\_message}};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00062}00062\ \ \ \ \ \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00063}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_species_error_af67ed95557b2511ff5143c7064fc5813}{00063}}\ \ \ \ \ \ \ \ \ \textcolor{keyword}{explicit}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_species_error_af67ed95557b2511ff5143c7064fc5813}{SpeciesError}}(\textcolor{keyword}{const}\ std::string\&\ message)}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00064}00064\ \ \ \ \ \ \ \ \ \ \ \ \ :\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_species_error_a07a424e42edd368e6fb5113655ab6d1e}{m\_message}}(std::move(message))\ \{\}}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00063}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1SpeciesError_af67ed95557b2511ff5143c7064fc5813}{00063}}\ \ \ \ \ \ \ \ \ \textcolor{keyword}{explicit}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1SpeciesError_af67ed95557b2511ff5143c7064fc5813}{SpeciesError}}(\textcolor{keyword}{const}\ std::string\&\ message)}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00064}00064\ \ \ \ \ \ \ \ \ \ \ \ \ :\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1SpeciesError_a07a424e42edd368e6fb5113655ab6d1e}{m\_message}}(\mbox{\hyperlink{namespacestd}{std}}::move(message))\ \{\}}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00065}00065\ }
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00066}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_species_error_af0c63f7e05d0c65157b960c654d09b67}{00066}}\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}*\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_species_error_af0c63f7e05d0c65157b960c654d09b67}{what}}()\ const\ noexcept\textcolor{keyword}{\ override\ }\{}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00067}00067\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_species_error_a07a424e42edd368e6fb5113655ab6d1e}{m\_message}}.c\_str();}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00066}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1SpeciesError_af0c63f7e05d0c65157b960c654d09b67}{00066}}\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}*\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1SpeciesError_af0c63f7e05d0c65157b960c654d09b67}{what}}()\ const\ noexcept\textcolor{keyword}{\ override\ }\{}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00067}00067\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1SpeciesError_a07a424e42edd368e6fb5113655ab6d1e}{m\_message}}.c\_str();}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00068}00068\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00069}00069\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00070}00070\ }
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00077}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_unknown_symbol_error}{00077}}\ \ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_unknown_symbol_error}{UnknownSymbolError}}\ final\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_unknown_symbol_error_af67ed95557b2511ff5143c7064fc5813}{SpeciesError}}\ \{}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00078}00078\ \ \ \ \ \ \ \ \ \textcolor{keyword}{using\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_species_error_af67ed95557b2511ff5143c7064fc5813}{SpeciesError::SpeciesError}};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00077}\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1UnknownSymbolError}{00077}}\ \ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1UnknownSymbolError}{UnknownSymbolError}}\ final\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1SpeciesError}{SpeciesError}}\ \{}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00078}00078\ \ \ \ \ \ \ \ \ \textcolor{keyword}{using\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1SpeciesError_af67ed95557b2511ff5143c7064fc5813}{SpeciesError::SpeciesError}};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00079}00079\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00080}00080\ }
\DoxyCodeLine{\Hypertarget{exceptions__composition_8h_source_l00081}00081\ \}}

View File

@@ -1,12 +1,16 @@
\doxysection{File List}
Here is a list of all files with brief descriptions\+:\begin{DoxyCompactList}
\item\contentsline{section}{src/composition/include/fourdst/atomic/\mbox{\hyperlink{atomic_species_8h}{atomic\+Species.\+h}} }{\pageref{atomic_species_8h}}{}
\item\contentsline{section}{src/composition/include/fourdst/atomic/\mbox{\hyperlink{atomicSpecies_8h}{atomic\+Species.\+h}} }{\pageref{atomicSpecies_8h}}{}
\item\contentsline{section}{src/composition/include/fourdst/atomic/\mbox{\hyperlink{elements_8h}{elements.\+h}} \\*Provides mappings between atomic numbers and element symbols for the periodic table }{\pageref{elements_8h}}{}
\item\contentsline{section}{src/composition/include/fourdst/atomic/\mbox{\hyperlink{species_8h}{species.\+h}} }{\pageref{species_8h}}{}
\item\contentsline{section}{src/composition/include/fourdst/composition/\mbox{\hyperlink{composition_8h}{composition.\+h}} }{\pageref{composition_8h}}{}
\item\contentsline{section}{src/composition/include/fourdst/composition/\mbox{\hyperlink{composition__abstract_8h}{composition\+\_\+abstract.\+h}} }{\pageref{composition__abstract_8h}}{}
\item\contentsline{section}{src/composition/include/fourdst/composition/\mbox{\hyperlink{utils_8h}{utils.\+h}} }{\pageref{utils_8h}}{}
\item\contentsline{section}{src/composition/include/fourdst/composition/decorators/\mbox{\hyperlink{composition__decorator__abstract_8h}{composition\+\_\+decorator\+\_\+abstract.\+h}} }{\pageref{composition__decorator__abstract_8h}}{}
\item\contentsline{section}{src/composition/include/fourdst/composition/decorators/\mbox{\hyperlink{composition__masked_8h}{composition\+\_\+masked.\+h}} }{\pageref{composition__masked_8h}}{}
\item\contentsline{section}{src/composition/include/fourdst/composition/exceptions/\mbox{\hyperlink{exceptions__composition_8h}{exceptions\+\_\+composition.\+h}} }{\pageref{exceptions__composition_8h}}{}
\item\contentsline{section}{src/composition/include/fourdst/composition/utils/\mbox{\hyperlink{composition__hash_8h}{composition\+\_\+hash.\+h}} }{\pageref{composition__hash_8h}}{}
\item\contentsline{section}{src/composition/lib/\mbox{\hyperlink{composition_8cpp}{composition.\+cpp}} }{\pageref{composition_8cpp}}{}
\item\contentsline{section}{src/composition/lib/\mbox{\hyperlink{utils_8cpp}{utils.\+cpp}} }{\pageref{utils_8cpp}}{}
\item\contentsline{section}{src/composition/lib/decorators/\mbox{\hyperlink{composition__masked_8cpp}{composition\+\_\+masked.\+cpp}} }{\pageref{composition__masked_8cpp}}{}
\end{DoxyCompactList}

View File

@@ -1,22 +1,28 @@
\doxysection{Class Hierarchy}
This inheritance list is sorted roughly, but not completely, alphabetically\+:\begin{DoxyCompactList}
\item \contentsline{section}{fourdst\+::composition\+::Canonical\+Composition}{\pageref{structfourdst_1_1composition_1_1_canonical_composition}}{}
\item \contentsline{section}{Composition\+Abstract}{\pageref{class_composition_abstract}}{}
\item \contentsline{section}{fourdst\+::composition\+::Canonical\+Composition}{\pageref{structfourdst_1_1composition_1_1CanonicalComposition}}{}
\item \contentsline{section}{fourdst\+::composition\+::Composition\+Abstract}{\pageref{classfourdst_1_1composition_1_1CompositionAbstract}}{}
\begin{DoxyCompactList}
\item \contentsline{section}{fourdst\+::composition\+::Composition}{\pageref{classfourdst_1_1composition_1_1_composition}}{}
\item \contentsline{section}{fourdst\+::composition\+::Composition}{\pageref{classfourdst_1_1composition_1_1Composition}}{}
\item \contentsline{section}{fourdst\+::composition\+::Composition\+Decorator}{\pageref{classfourdst_1_1composition_1_1CompositionDecorator}}{}
\begin{DoxyCompactList}
\item \contentsline{section}{fourdst\+::composition\+::Masked\+Composition}{\pageref{classfourdst_1_1composition_1_1MaskedComposition}}{}
\end{DoxyCompactList}
\item \contentsline{section}{fourdst\+::composition\+::Composition\+::Composition\+Cache}{\pageref{structfourdst_1_1composition_1_1_composition_1_1_composition_cache}}{}
\end{DoxyCompactList}
\item \contentsline{section}{fourdst\+::composition\+::Composition\+::Composition\+Cache}{\pageref{structfourdst_1_1composition_1_1Composition_1_1CompositionCache}}{}
\item \contentsline{section}{fourdst\+::composition\+::utils\+::Composition\+Hash}{\pageref{structfourdst_1_1composition_1_1utils_1_1CompositionHash}}{}
\item std\+::exception\begin{DoxyCompactList}
\item \contentsline{section}{fourdst\+::composition\+::exceptions\+::Composition\+Error}{\pageref{classfourdst_1_1composition_1_1exceptions_1_1_composition_error}}{}
\item \contentsline{section}{fourdst\+::composition\+::exceptions\+::Composition\+Error}{\pageref{classfourdst_1_1composition_1_1exceptions_1_1CompositionError}}{}
\begin{DoxyCompactList}
\item \contentsline{section}{fourdst\+::composition\+::exceptions\+::Invalid\+Composition\+Error}{\pageref{classfourdst_1_1composition_1_1exceptions_1_1_invalid_composition_error}}{}
\item \contentsline{section}{fourdst\+::composition\+::exceptions\+::Unregistered\+Symbol\+Error}{\pageref{classfourdst_1_1composition_1_1exceptions_1_1_unregistered_symbol_error}}{}
\item \contentsline{section}{fourdst\+::composition\+::exceptions\+::Invalid\+Composition\+Error}{\pageref{classfourdst_1_1composition_1_1exceptions_1_1InvalidCompositionError}}{}
\item \contentsline{section}{fourdst\+::composition\+::exceptions\+::Unregistered\+Symbol\+Error}{\pageref{classfourdst_1_1composition_1_1exceptions_1_1UnregisteredSymbolError}}{}
\end{DoxyCompactList}
\item \contentsline{section}{fourdst\+::composition\+::exceptions\+::Species\+Error}{\pageref{classfourdst_1_1composition_1_1exceptions_1_1_species_error}}{}
\item \contentsline{section}{fourdst\+::composition\+::exceptions\+::Species\+Error}{\pageref{classfourdst_1_1composition_1_1exceptions_1_1SpeciesError}}{}
\begin{DoxyCompactList}
\item \contentsline{section}{fourdst\+::composition\+::exceptions\+::Unknown\+Symbol\+Error}{\pageref{classfourdst_1_1composition_1_1exceptions_1_1_unknown_symbol_error}}{}
\item \contentsline{section}{fourdst\+::composition\+::exceptions\+::Unknown\+Symbol\+Error}{\pageref{classfourdst_1_1composition_1_1exceptions_1_1UnknownSymbolError}}{}
\end{DoxyCompactList}
\end{DoxyCompactList}
\item \contentsline{section}{std\+::hash\texorpdfstring{$<$}{<} fourdst\+::atomic\+::Species \texorpdfstring{$>$}{>}}{\pageref{structstd_1_1hash_3_01fourdst_1_1atomic_1_1_species_01_4}}{}
\item \contentsline{section}{fourdst\+::atomic\+::Species}{\pageref{structfourdst_1_1atomic_1_1_species}}{}
\item \contentsline{section}{std\+::hash\texorpdfstring{$<$}{<} fourdst\+::atomic\+::Species \texorpdfstring{$>$}{>}}{\pageref{structstd_1_1hash_3_01fourdst_1_1atomic_1_1Species_01_4}}{}
\item \contentsline{section}{std\+::hash\texorpdfstring{$<$}{<} fourdst\+::composition\+::Composition \texorpdfstring{$>$}{>}}{\pageref{structstd_1_1hash_3_01fourdst_1_1composition_1_1Composition_01_4}}{}
\item \contentsline{section}{fourdst\+::atomic\+::Species}{\pageref{structfourdst_1_1atomic_1_1Species}}{}
\end{DoxyCompactList}

View File

@@ -4,7 +4,7 @@
{\ttfamily libcomposition} is a modern, C++23 library, for the creation, manipulation, and analysis of astrophysical chemical compositions. It provides a robust and typesafe interface for assembling a set of isotopes together with their molar abundances and for deriving commonly used bulk properties (mass fractions, number fractions, canonical X/\+Y/Z, mean particle mass, and electron abundance). {\ttfamily libcomposition} is designed to be tighly integrated into SERiF and related projects such as Grid\+Fire.\hypertarget{index_autotoc_md10}{}\doxysubsubsection{\texorpdfstring{Key Features}{Key Features}}\label{index_autotoc_md10}
\begin{DoxyItemize}
\item {\bfseries{Type\+Safe Species Representation}}\+: Strongly typed isotopes ({\ttfamily \doxylink{structfourdst_1_1atomic_1_1_species}{fourdst\+::atomic\+::\+Species}}) generated from evaluated nuclear data (AME2020 / NUBASE2020).
\item {\bfseries{Type\+Safe Species Representation}}\+: Strongly typed isotopes ({\ttfamily \doxylink{structfourdst_1_1atomic_1_1Species}{fourdst\+::atomic\+::\+Species}}) generated from evaluated nuclear data (AME2020 / NUBASE2020).
\item {\bfseries{Molar Abundance Core}}\+: Stores absolute molar abundances and derives all secondary quantities (mass / number fractions, mean particle mass, electron abundance) on demand, with internal caching.
\item {\bfseries{Canonical Composition Support}}\+: Direct computation of canonical (X\+: Hydrogen, Y\+: Helium, Z\+: Metals) mass fractions via {\ttfamily get\+Canonical\+Composition()}.
\item {\bfseries{Convenience Construction}}\+: Helper utilities for constructing compositions from a vector or set of mass fractions ({\ttfamily build\+Composition\+From\+Mass\+Fractions}).
@@ -60,7 +60,7 @@ You can enable the generation of a {\ttfamily pkg-\/config} file during the setu
\DoxyHorRuler{0}
\hypertarget{index_usage_sec}{}\doxysection{\texorpdfstring{Usage}{Usage}}\label{index_usage_sec}
Below are focused examples illustrating the current API. All examples assume headers are available via pkg-\/config or your include path.\hypertarget{index_autotoc_md15}{}\doxysubsubsubsection{\texorpdfstring{1. Constructing a Composition from Symbols}{1. Constructing a Composition from Symbols}}\label{index_autotoc_md15}
Below are focused examples illustrating the current API. All examples assume headers are available via pkg-\/config or your include path.\hypertarget{index_autotoc_md15}{}\doxyparagraph{\texorpdfstring{1. Constructing a Composition from Symbols}{1. Constructing a Composition from Symbols}}\label{index_autotoc_md15}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#include\ <iostream>}}
@@ -70,10 +70,10 @@ Below are focused examples illustrating the current API. All examples assume hea
\DoxyCodeLine{\ \ \ \ \textcolor{keyword}{using\ namespace\ }\mbox{\hyperlink{namespacefourdst_1_1composition}{fourdst::composition}};}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ \textcolor{comment}{//\ Register\ symbols\ upon\ construction\ (no\ molar\ abundances\ yet\ -\/>\ default\ 0.0)}}
\DoxyCodeLine{\ \ \ \ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition}{Composition}}\ comp(\{\textcolor{stringliteral}{"{}H-\/1"{}},\ \textcolor{stringliteral}{"{}He-\/4"{}},\ \textcolor{stringliteral}{"{}C-\/12"{}}\});}
\DoxyCodeLine{\ \ \ \ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{Composition}}\ comp(\{\textcolor{stringliteral}{"{}H-\/1"{}},\ \textcolor{stringliteral}{"{}He-\/4"{}},\ \textcolor{stringliteral}{"{}C-\/12"{}}\});}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ \textcolor{comment}{//\ Set\ molar\ abundances\ (absolute\ counts;\ they\ need\ not\ sum\ to\ 1.0)}}
\DoxyCodeLine{\ \ \ \ comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a262d7133035d4e6f45daa81827abf5e7}{setMolarAbundance}}(\textcolor{stringliteral}{"{}H-\/1"{}},\ 10.0);}
\DoxyCodeLine{\ \ \ \ comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a262d7133035d4e6f45daa81827abf5e7}{setMolarAbundance}}(\textcolor{stringliteral}{"{}H-\/1"{}},\ 10.0);}
\DoxyCodeLine{\ \ \ \ comp.setMolarAbundance(\textcolor{stringliteral}{"{}He-\/4"{}},\ 3.0);}
\DoxyCodeLine{\ \ \ \ comp.setMolarAbundance(\textcolor{stringliteral}{"{}C-\/12"{}},\ 0.25);}
\DoxyCodeLine{}
@@ -88,7 +88,7 @@ Below are focused examples illustrating the current API. All examples assume hea
\DoxyCodeLine{\}}
\end{DoxyCode}
\hypertarget{index_autotoc_md16}{}\doxysubsubsubsection{\texorpdfstring{2. Constructing from Strongly Typed Species}{2. Constructing from Strongly Typed Species}}\label{index_autotoc_md16}
\hypertarget{index_autotoc_md16}{}\doxyparagraph{\texorpdfstring{2. Constructing from Strongly Typed Species}{2. Constructing from Strongly Typed Species}}\label{index_autotoc_md16}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#include\ <iostream>}}
@@ -100,18 +100,18 @@ Below are focused examples illustrating the current API. All examples assume hea
\DoxyCodeLine{\ \ \ \ \textcolor{keyword}{using\ namespace\ }\mbox{\hyperlink{namespacefourdst_1_1atomic}{fourdst::atomic}};}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ \textcolor{comment}{//\ Build\ directly\ from\ species\ constants}}
\DoxyCodeLine{\ \ \ \ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition}{Composition}}\ comp(std::vector<Species>\{\mbox{\hyperlink{namespacefourdst_1_1atomic_a6766bc834fd656df51bdcf22f7d97877}{H\_1}},\ \mbox{\hyperlink{namespacefourdst_1_1atomic_ab665e3014e2a805624227350699f141a}{He\_4}},\ \mbox{\hyperlink{namespacefourdst_1_1atomic_af2588b97ce949e37c193d6a3e5cb84a0}{O\_16}}\});}
\DoxyCodeLine{\ \ \ \ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{Composition}}\ comp(std::vector<Species>\{H\_1,\ He\_4,\ O\_16\});}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a262d7133035d4e6f45daa81827abf5e7}{setMolarAbundance}}(\mbox{\hyperlink{namespacefourdst_1_1atomic_a6766bc834fd656df51bdcf22f7d97877}{H\_1}},\ 5.0);}
\DoxyCodeLine{\ \ \ \ comp.setMolarAbundance(\mbox{\hyperlink{namespacefourdst_1_1atomic_ab665e3014e2a805624227350699f141a}{He\_4}},\ 2.5);}
\DoxyCodeLine{\ \ \ \ comp.setMolarAbundance(\mbox{\hyperlink{namespacefourdst_1_1atomic_af2588b97ce949e37c193d6a3e5cb84a0}{O\_16}},\ 0.1);}
\DoxyCodeLine{\ \ \ \ comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a262d7133035d4e6f45daa81827abf5e7}{setMolarAbundance}}(H\_1,\ 5.0);}
\DoxyCodeLine{\ \ \ \ comp.setMolarAbundance(He\_4,\ 2.5);}
\DoxyCodeLine{\ \ \ \ comp.setMolarAbundance(O\_16,\ 0.1);}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ std::cout\ <<\ \textcolor{stringliteral}{"{}Mean\ particle\ mass:\ "{}}\ <<\ comp.getMeanParticleMass()\ <<\ \textcolor{stringliteral}{"{}\ g/mol\(\backslash\)n"{}};}
\DoxyCodeLine{\ \ \ \ std::cout\ <<\ \textcolor{stringliteral}{"{}Electron\ abundance\ (Ye):\ "{}}\ <<\ comp.getElectronAbundance()\ <<\ \textcolor{stringliteral}{"{}\(\backslash\)n"{}};}
\DoxyCodeLine{\}}
\end{DoxyCode}
\hypertarget{index_autotoc_md17}{}\doxysubsubsubsection{\texorpdfstring{3. Building from Mass Fractions (Helper Utility)}{3. Building from Mass Fractions (Helper Utility)}}\label{index_autotoc_md17}
\hypertarget{index_autotoc_md17}{}\doxyparagraph{\texorpdfstring{3. Building from Mass Fractions (\+Helper Utility)}{3. Building from Mass Fractions (Helper Utility)}}\label{index_autotoc_md17}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#include\ <iostream>}}
@@ -123,14 +123,14 @@ Below are focused examples illustrating the current API. All examples assume hea
\DoxyCodeLine{\ \ \ \ std::vector<std::string>\ symbols\ =\ \{\textcolor{stringliteral}{"{}H-\/1"{}},\ \textcolor{stringliteral}{"{}He-\/4"{}},\ \textcolor{stringliteral}{"{}C-\/12"{}}\};}
\DoxyCodeLine{\ \ \ \ std::vector<double>\ mf\ \ \ \ \ \ \ =\ \{0.70,\ 0.28,\ 0.02\};\ \textcolor{comment}{//\ Must\ sum\ to\ \string~1\ within\ tolerance}}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition}{Composition}}\ comp\ =\ \mbox{\hyperlink{namespacefourdst_1_1composition_aa90b1ef07d607c0c829bedccf381cf54}{buildCompositionFromMassFractions}}(symbols,\ mf);}
\DoxyCodeLine{\ \ \ \ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{Composition}}\ comp\ =\ \mbox{\hyperlink{namespacefourdst_1_1composition_aa90b1ef07d607c0c829bedccf381cf54}{buildCompositionFromMassFractions}}(symbols,\ mf);}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ \textcolor{keyword}{auto}\ canon\ =\ comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_aac5b214a3d1278e127422224cb9cee50}{getCanonicalComposition}}();}
\DoxyCodeLine{\ \ \ \ \textcolor{keyword}{auto}\ canon\ =\ comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_aac5b214a3d1278e127422224cb9cee50}{getCanonicalComposition}}();}
\DoxyCodeLine{\ \ \ \ std::cout\ <<\ canon\ <<\ \textcolor{stringliteral}{"{}\(\backslash\)n"{}};}
\DoxyCodeLine{\}}
\end{DoxyCode}
\hypertarget{index_autotoc_md18}{}\doxysubsubsubsection{\texorpdfstring{4. Iterating and Sorted Vector Interfaces}{4. Iterating and Sorted Vector Interfaces}}\label{index_autotoc_md18}
\hypertarget{index_autotoc_md18}{}\doxyparagraph{\texorpdfstring{4. Iterating and Sorted Vector Interfaces}{4. Iterating and Sorted Vector Interfaces}}\label{index_autotoc_md18}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#include\ <iostream>}}
@@ -139,8 +139,8 @@ Below are focused examples illustrating the current API. All examples assume hea
\DoxyCodeLine{\textcolor{keywordtype}{int}\ main()\ \{}
\DoxyCodeLine{\ \ \ \ \textcolor{keyword}{using\ namespace\ }\mbox{\hyperlink{namespacefourdst_1_1composition}{fourdst::composition}};}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition}{Composition}}\ comp(\{\textcolor{stringliteral}{"{}H-\/1"{}},\ \textcolor{stringliteral}{"{}C-\/12"{}},\ \textcolor{stringliteral}{"{}He-\/4"{}}\});\ \textcolor{comment}{//\ Internally\ sorted\ by\ mass\ (H\ <\ He\ <\ C)}}
\DoxyCodeLine{\ \ \ \ comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a262d7133035d4e6f45daa81827abf5e7}{setMolarAbundance}}(\{\textcolor{stringliteral}{"{}H-\/1"{}},\ \textcolor{stringliteral}{"{}He-\/4"{}},\ \textcolor{stringliteral}{"{}C-\/12"{}}\},\ \{10.0,\ 3.0,\ 0.25\});}
\DoxyCodeLine{\ \ \ \ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{Composition}}\ comp(\{\textcolor{stringliteral}{"{}H-\/1"{}},\ \textcolor{stringliteral}{"{}C-\/12"{}},\ \textcolor{stringliteral}{"{}He-\/4"{}}\});\ \textcolor{comment}{//\ Internally\ sorted\ by\ mass\ (H\ <\ He\ <\ C)}}
\DoxyCodeLine{\ \ \ \ comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a262d7133035d4e6f45daa81827abf5e7}{setMolarAbundance}}(\{\textcolor{stringliteral}{"{}H-\/1"{}},\ \textcolor{stringliteral}{"{}He-\/4"{}},\ \textcolor{stringliteral}{"{}C-\/12"{}}\},\ \{10.0,\ 3.0,\ 0.25\});}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ \textcolor{comment}{//\ Ordered\ iteration\ (lightest\ -\/>\ heaviest)}}
\DoxyCodeLine{\ \ \ \ \textcolor{keywordflow}{for}\ (\textcolor{keyword}{const}\ \textcolor{keyword}{auto}\ \&[sp,\ y]\ :\ comp)\ \{}
@@ -148,28 +148,28 @@ Below are focused examples illustrating the current API. All examples assume hea
\DoxyCodeLine{\ \ \ \ \}}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ \textcolor{comment}{//\ Vector\ access\ (index\ corresponds\ to\ ordering\ by\ atomic\ mass)}}
\DoxyCodeLine{\ \ \ \ \textcolor{keyword}{auto}\ molarVec\ =\ comp.getMolarAbundanceVector();}
\DoxyCodeLine{\ \ \ \ \textcolor{keyword}{auto}\ massVec\ \ =\ comp.getMassFractionVector();}
\DoxyCodeLine{\ \ \ \ \textcolor{keyword}{auto}\ molarVec\ =\ comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_abcb391f5fca2b636127e48e681e4c3ee}{getMolarAbundanceVector}}();}
\DoxyCodeLine{\ \ \ \ \textcolor{keyword}{auto}\ massVec\ \ =\ comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_af4f44aaf8b7e0d63872a70b5e2131369}{getMassFractionVector}}();}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ \textcolor{keywordtype}{size\_t}\ idx\_he4\ =\ comp.getSpeciesIndex(\textcolor{stringliteral}{"{}He-\/4"{}});}
\DoxyCodeLine{\ \ \ \ \textcolor{keywordtype}{size\_t}\ idx\_he4\ =\ comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a0d94f62402bb90b5d12679faeaa8c5d7}{getSpeciesIndex}}(\textcolor{stringliteral}{"{}He-\/4"{}});}
\DoxyCodeLine{\ \ \ \ std::cout\ <<\ \textcolor{stringliteral}{"{}He-\/4\ index:\ "{}}\ <<\ idx\_he4\ <<\ \textcolor{stringliteral}{"{},\ molar\ abundance\ at\ index:\ "{}}\ <<\ molarVec[idx\_he4]\ <<\ \textcolor{stringliteral}{"{}\(\backslash\)n"{}};}
\DoxyCodeLine{\}}
\end{DoxyCode}
\hypertarget{index_autotoc_md19}{}\doxysubsubsubsection{\texorpdfstring{5. Accessing Specific Derived Quantities}{5. Accessing Specific Derived Quantities}}\label{index_autotoc_md19}
\hypertarget{index_autotoc_md19}{}\doxyparagraph{\texorpdfstring{5. Accessing Specific Derived Quantities}{5. Accessing Specific Derived Quantities}}\label{index_autotoc_md19}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{comment}{//\ Assume\ 'comp'\ is\ already\ populated.}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keywordtype}{double}\ mf\_c12\ \ \ =\ comp.getMassFraction(\textcolor{stringliteral}{"{}C-\/12"{}});}
\DoxyCodeLine{\textcolor{keywordtype}{double}\ nf\_c12\ \ \ =\ comp.getNumberFraction(\textcolor{stringliteral}{"{}C-\/12"{}});}
\DoxyCodeLine{\textcolor{keywordtype}{double}\ mol\_c12\ \ =\ comp.getMolarAbundance(\textcolor{stringliteral}{"{}C-\/12"{}});}
\DoxyCodeLine{\textcolor{keywordtype}{double}\ meanA\ \ \ \ =\ comp.getMeanParticleMass();}
\DoxyCodeLine{\textcolor{keywordtype}{double}\ Ye\ \ \ \ \ \ \ =\ comp.getElectronAbundance();}
\DoxyCodeLine{\textcolor{keyword}{auto}\ \ \ canon\ \ \ \ =\ comp.getCanonicalComposition();}
\DoxyCodeLine{\textcolor{keywordtype}{double}\ mf\_c12\ \ \ =\ comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a9ea2b673341fdc67afeb0f0517a54c8c}{getMassFraction}}(\textcolor{stringliteral}{"{}C-\/12"{}});}
\DoxyCodeLine{\textcolor{keywordtype}{double}\ nf\_c12\ \ \ =\ comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a34f71d4d8f0297c576fd62fabd490305}{getNumberFraction}}(\textcolor{stringliteral}{"{}C-\/12"{}});}
\DoxyCodeLine{\textcolor{keywordtype}{double}\ mol\_c12\ \ =\ comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_add67a92d73e3a57a2bbdb52bc9ca3bfe}{getMolarAbundance}}(\textcolor{stringliteral}{"{}C-\/12"{}});}
\DoxyCodeLine{\textcolor{keywordtype}{double}\ meanA\ \ \ \ =\ comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_afbbb5e51ad5ae5c0fa6bc0094195aecd}{getMeanParticleMass}}();}
\DoxyCodeLine{\textcolor{keywordtype}{double}\ Ye\ \ \ \ \ \ \ =\ comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a90fc71d1fe03017ee4c7a1cac69d24fb}{getElectronAbundance}}();}
\DoxyCodeLine{\textcolor{keyword}{auto}\ \ \ canon\ \ \ \ =\ comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_aac5b214a3d1278e127422224cb9cee50}{getCanonicalComposition}}();}
\end{DoxyCode}
\hypertarget{index_autotoc_md20}{}\doxysubsubsubsection{\texorpdfstring{6. Exception Handling Examples}{6. Exception Handling Examples}}\label{index_autotoc_md20}
\hypertarget{index_autotoc_md20}{}\doxyparagraph{\texorpdfstring{6. Exception Handling Examples}{6. Exception Handling Examples}}\label{index_autotoc_md20}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#include\ <iostream>}}
@@ -180,35 +180,35 @@ Below are focused examples illustrating the current API. All examples assume hea
\DoxyCodeLine{\ \ \ \ \textcolor{keyword}{using\ namespace\ }\mbox{\hyperlink{namespacefourdst_1_1composition}{fourdst::composition}};}
\DoxyCodeLine{\ \ \ \ \textcolor{keyword}{using\ namespace\ }\mbox{\hyperlink{namespacefourdst_1_1composition_1_1exceptions}{fourdst::composition::exceptions}};}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition}{Composition}}\ comp;}
\DoxyCodeLine{\ \ \ \ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{Composition}}\ comp;}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ \textcolor{keywordflow}{try}\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \textcolor{comment}{//\ Unknown\ symbol\ (not\ in\ species\ database)}}
\DoxyCodeLine{\ \ \ \ \ \ \ \ comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a3ab4dcda0bfd1a35b169bcc57fe66725}{registerSymbol}}(\textcolor{stringliteral}{"{}Xx-\/999"{}});}
\DoxyCodeLine{\ \ \ \ \}\ \textcolor{keywordflow}{catch}\ (\textcolor{keyword}{const}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_unknown_symbol_error}{UnknownSymbolError}}\ \&e)\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ std::cerr\ <<\ \textcolor{stringliteral}{"{}Caught\ UnknownSymbolError:\ "{}}\ <<\ e.\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_species_error_af0c63f7e05d0c65157b960c654d09b67}{what}}()\ <<\ \textcolor{stringliteral}{"{}\(\backslash\)n"{}};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a3ab4dcda0bfd1a35b169bcc57fe66725}{registerSymbol}}(\textcolor{stringliteral}{"{}Xx-\/999"{}});}
\DoxyCodeLine{\ \ \ \ \}\ \textcolor{keywordflow}{catch}\ (\textcolor{keyword}{const}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1UnknownSymbolError}{UnknownSymbolError}}\ \&e)\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ std::cerr\ <<\ \textcolor{stringliteral}{"{}Caught\ UnknownSymbolError:\ "{}}\ <<\ e.\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1SpeciesError_af0c63f7e05d0c65157b960c654d09b67}{what}}()\ <<\ \textcolor{stringliteral}{"{}\(\backslash\)n"{}};}
\DoxyCodeLine{\ \ \ \ \}}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a3ab4dcda0bfd1a35b169bcc57fe66725}{registerSymbol}}(\textcolor{stringliteral}{"{}H-\/1"{}});}
\DoxyCodeLine{\ \ \ \ comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a3ab4dcda0bfd1a35b169bcc57fe66725}{registerSymbol}}(\textcolor{stringliteral}{"{}H-\/1"{}});}
\DoxyCodeLine{\ \ \ \ \textcolor{keywordflow}{try}\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \textcolor{comment}{//\ Unregistered\ symbol\ used\ in\ a\ setter}}
\DoxyCodeLine{\ \ \ \ \ \ \ \ comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a262d7133035d4e6f45daa81827abf5e7}{setMolarAbundance}}(\textcolor{stringliteral}{"{}He-\/4"{}},\ 1.0);\ \textcolor{comment}{//\ He-\/4\ not\ registered\ yet}}
\DoxyCodeLine{\ \ \ \ \}\ \textcolor{keywordflow}{catch}\ (\textcolor{keyword}{const}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_unregistered_symbol_error}{UnregisteredSymbolError}}\ \&e)\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ std::cerr\ <<\ \textcolor{stringliteral}{"{}Caught\ UnregisteredSymbolError:\ "{}}\ <<\ e.\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error_ae44ceddb19da8a8cda7ee150b6826d08}{what}}()\ <<\ \textcolor{stringliteral}{"{}\(\backslash\)n"{}};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a262d7133035d4e6f45daa81827abf5e7}{setMolarAbundance}}(\textcolor{stringliteral}{"{}He-\/4"{}},\ 1.0);\ \textcolor{comment}{//\ He-\/4\ not\ registered\ yet}}
\DoxyCodeLine{\ \ \ \ \}\ \textcolor{keywordflow}{catch}\ (\textcolor{keyword}{const}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1UnregisteredSymbolError}{UnregisteredSymbolError}}\ \&e)\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ std::cerr\ <<\ \textcolor{stringliteral}{"{}Caught\ UnregisteredSymbolError:\ "{}}\ <<\ e.\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1CompositionError_ae44ceddb19da8a8cda7ee150b6826d08}{what}}()\ <<\ \textcolor{stringliteral}{"{}\(\backslash\)n"{}};}
\DoxyCodeLine{\ \ \ \ \}}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a3ab4dcda0bfd1a35b169bcc57fe66725}{registerSymbol}}(\textcolor{stringliteral}{"{}He-\/4"{}});}
\DoxyCodeLine{\ \ \ \ comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a3ab4dcda0bfd1a35b169bcc57fe66725}{registerSymbol}}(\textcolor{stringliteral}{"{}He-\/4"{}});}
\DoxyCodeLine{\ \ \ \ \textcolor{keywordflow}{try}\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a262d7133035d4e6f45daa81827abf5e7}{setMolarAbundance}}(\textcolor{stringliteral}{"{}H-\/1"{}},\ -\/3.0);}
\DoxyCodeLine{\ \ \ \ \}\ \textcolor{keywordflow}{catch}\ (\textcolor{keyword}{const}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_invalid_composition_error}{InvalidCompositionError}}\ \&e)\ \{\ }
\DoxyCodeLine{\ \ \ \ \ \ \ \ std::cerr\ <<\ \textcolor{stringliteral}{"{}Caught\ InvalidCompositionError:\ "{}}\ <<\ e.\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error_ae44ceddb19da8a8cda7ee150b6826d08}{what}}()\ <<\ \textcolor{stringliteral}{"{}\(\backslash\)n"{}};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a262d7133035d4e6f45daa81827abf5e7}{setMolarAbundance}}(\textcolor{stringliteral}{"{}H-\/1"{}},\ -\/3.0);}
\DoxyCodeLine{\ \ \ \ \}\ \textcolor{keywordflow}{catch}\ (\textcolor{keyword}{const}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1InvalidCompositionError}{InvalidCompositionError}}\ \&e)\ \{\ }
\DoxyCodeLine{\ \ \ \ \ \ \ \ std::cerr\ <<\ \textcolor{stringliteral}{"{}Caught\ InvalidCompositionError:\ "{}}\ <<\ e.\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1CompositionError_ae44ceddb19da8a8cda7ee150b6826d08}{what}}()\ <<\ \textcolor{stringliteral}{"{}\(\backslash\)n"{}};}
\DoxyCodeLine{\ \ \ \ \}}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ \textcolor{comment}{//\ Mass\ fraction\ construction\ validation}}
\DoxyCodeLine{\ \ \ \ \textcolor{keywordflow}{try}\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition}{Composition}}\ bad\ =\ \mbox{\hyperlink{namespacefourdst_1_1composition_aa90b1ef07d607c0c829bedccf381cf54}{buildCompositionFromMassFractions}}(\{\textcolor{stringliteral}{"{}H-\/1"{}},\ \textcolor{stringliteral}{"{}He-\/4"{}}\},\ \{0.6,\ 0.5\});\ \textcolor{comment}{//\ sums\ to\ 1.1}}
\DoxyCodeLine{\ \ \ \ \}\ \textcolor{keywordflow}{catch}\ (\textcolor{keyword}{const}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_invalid_composition_error}{InvalidCompositionError}}\ \&e)\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ std::cerr\ <<\ \textcolor{stringliteral}{"{}Caught\ InvalidCompositionError:\ "{}}\ <<\ e.\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error_ae44ceddb19da8a8cda7ee150b6826d08}{what}}()\ <<\ \textcolor{stringliteral}{"{}\(\backslash\)n"{}};}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{Composition}}\ bad\ =\ \mbox{\hyperlink{namespacefourdst_1_1composition_aa90b1ef07d607c0c829bedccf381cf54}{buildCompositionFromMassFractions}}(\{\textcolor{stringliteral}{"{}H-\/1"{}},\ \textcolor{stringliteral}{"{}He-\/4"{}}\},\ \{0.6,\ 0.5\});\ \textcolor{comment}{//\ sums\ to\ 1.1}}
\DoxyCodeLine{\ \ \ \ \}\ \textcolor{keywordflow}{catch}\ (\textcolor{keyword}{const}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1InvalidCompositionError}{InvalidCompositionError}}\ \&e)\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ std::cerr\ <<\ \textcolor{stringliteral}{"{}Caught\ InvalidCompositionError:\ "{}}\ <<\ e.\mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1CompositionError_ae44ceddb19da8a8cda7ee150b6826d08}{what}}()\ <<\ \textcolor{stringliteral}{"{}\(\backslash\)n"{}};}
\DoxyCodeLine{\ \ \ \ \}}
\DoxyCodeLine{\}}
@@ -245,7 +245,7 @@ Recommended patterns\+:
\DoxyHorRuler{0}
\hypertarget{index_api_sec}{}\doxysection{\texorpdfstring{Linking and Integration}{Linking and Integration}}\label{index_api_sec}
\hypertarget{index_autotoc_md23}{}\doxysubsubsection{\texorpdfstring{Linking with pkg-\/config}{Linking with pkg-\/config}}\label{index_autotoc_md23}
\hypertarget{index_autotoc_md23}{}\doxysubsubsection{\texorpdfstring{Linking with pkg-\/config}{Linking with pkg-config}}\label{index_autotoc_md23}
If you installed {\ttfamily libcomposition} with the {\ttfamily pkg-\/config} option enabled, you can get the necessary compiler and linker flags easily\+:
@@ -273,7 +273,7 @@ For a complete list of all classes, methods, and functions, see the {\bfseries{N
\begin{DoxyItemize}
\item Namespace overview\+: {\ttfamily \doxylink{namespacefourdst_1_1composition}{fourdst\+::composition}}, {\ttfamily \doxylink{namespacefourdst_1_1atomic}{fourdst\+::atomic}}
\item Core classes\+: {\ttfamily \doxylink{classfourdst_1_1composition_1_1_composition}{fourdst\+::composition\+::\+Composition}}, {\ttfamily fourdst\+::composition\+::\+Composition\+Abstract}
\item Core classes\+: {\ttfamily \doxylink{classfourdst_1_1composition_1_1Composition}{fourdst\+::composition\+::\+Composition}}, {\ttfamily \doxylink{classfourdst_1_1composition_1_1CompositionAbstract}{fourdst\+::composition\+::\+Composition\+Abstract}}
\item Helper utilities\+: {\ttfamily build\+Composition\+From\+Mass\+Fractions}
\item Exception hierarchy\+: {\ttfamily \doxylink{namespacefourdst_1_1composition_1_1exceptions}{fourdst\+::composition\+::exceptions}}
\end{DoxyItemize}

View File

@@ -164,7 +164,7 @@
\ifdim \dimen@>\z@\vfil\break\fi
\global\@colroom\@colht
\ifvoid\LT@foot\else
\global\advance\vsize-\ht\LT@foot
\advance\vsize-\ht\LT@foot
\global\advance\@colroom-\ht\LT@foot
\dimen@\pagegoal\advance\dimen@-\ht\LT@foot\pagegoal\dimen@
\maxdepth\z@
@@ -193,13 +193,9 @@
\LT@final@warn
\fi
\endgraf\penalty -\LT@end@pen
\ifvoid\LT@foot\else
\global\advance\vsize\ht\LT@foot
\global\advance\@colroom\ht\LT@foot
\dimen@\pagegoal\advance\dimen@\ht\LT@foot\pagegoal\dimen@
\fi
\endgroup
\global\@mparbottom\z@
\pagegoal\vsize
\endgraf\penalty\z@\addvspace\LTpost
\ifvoid\footins\else\insert\footins{}\fi}
\def\LT@nofcols#1&{%
@@ -396,17 +392,18 @@
\setbox\z@\vbox{\unvbox\@cclv}%
\ifdim \ht\LT@lastfoot>\ht\LT@foot
\dimen@\pagegoal
\advance\dimen@\ht\LT@foot
\advance\dimen@-\ht\LT@lastfoot
\ifdim\dimen@<\ht\z@
\setbox\@cclv\vbox{\unvbox\z@\copy\LT@foot\vss}%
\@makecol
\@outputpage
\global\vsize\@colroom
\setbox\z@\vbox{\box\LT@head}%
\fi
\fi
\unvbox\z@\ifvoid\LT@lastfoot\copy\LT@foot\else\box\LT@lastfoot\fi
\global\@colroom\@colht
\global\vsize\@colht
\vbox
{\unvbox\z@\box\ifvoid\LT@lastfoot\LT@foot\else\LT@lastfoot\fi}%
\fi
\else
\setbox\@cclv\vbox{\unvbox\@cclv\copy\LT@foot\vss}%

File diff suppressed because it is too large Load Diff

View File

@@ -9,42 +9,60 @@ Utilities and types for representing and manipulating chemical compositions.
\begin{DoxyCompactItemize}
\item
namespace \mbox{\hyperlink{namespacefourdst_1_1composition_1_1exceptions}{exceptions}}
\item
namespace \mbox{\hyperlink{namespacefourdst_1_1composition_1_1utils}{utils}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Classes}
\begin{DoxyCompactItemize}
\item
struct \mbox{\hyperlink{structfourdst_1_1composition_1_1_canonical_composition}{Canonical\+Composition}}
struct \mbox{\hyperlink{structfourdst_1_1composition_1_1CanonicalComposition}{Canonical\+Composition}}
\begin{DoxyCompactList}\small\item\em Represents the canonical (X, Y, Z) composition of stellar material. \end{DoxyCompactList}\item
class \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition}{Composition}}
\begin{DoxyCompactList}\small\item\em Manages a collection of chemical species and their abundances. \end{DoxyCompactList}\end{DoxyCompactItemize}
class \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{Composition}}
\begin{DoxyCompactList}\small\item\em Manages a collection of chemical species and their abundances. \end{DoxyCompactList}\item
class \mbox{\hyperlink{classfourdst_1_1composition_1_1CompositionAbstract}{Composition\+Abstract}}
\begin{DoxyCompactList}\small\item\em Abstract base class for chemical composition representations. \end{DoxyCompactList}\item
class \mbox{\hyperlink{classfourdst_1_1composition_1_1CompositionDecorator}{Composition\+Decorator}}
\item
class \mbox{\hyperlink{classfourdst_1_1composition_1_1MaskedComposition}{Masked\+Composition}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition}{Composition}} \mbox{\hyperlink{namespacefourdst_1_1composition_aa90b1ef07d607c0c829bedccf381cf54}{build\+Composition\+From\+Mass\+Fractions}} (const std\+::vector$<$ std\+::string $>$ \&symbols, const std\+::vector$<$ double $>$ \&mass\+Fractions)
\begin{DoxyCompactList}\small\item\em Build a \doxylink{classfourdst_1_1composition_1_1_composition}{Composition} object from symbols and their corresponding mass fractions. \end{DoxyCompactList}\item
\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition}{Composition}} \mbox{\hyperlink{namespacefourdst_1_1composition_a39d4f84dfa85ddda3b9feb5dda1afc1e}{build\+Composition\+From\+Mass\+Fractions}} (const std\+::vector$<$ \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{atomic\+::\+Species}} $>$ \&species, const std\+::vector$<$ double $>$ \&mass\+Fractions)
\begin{DoxyCompactList}\small\item\em Build a \doxylink{classfourdst_1_1composition_1_1_composition}{Composition} object from species and their corresponding mass fractions. \end{DoxyCompactList}\item
\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition}{Composition}} \mbox{\hyperlink{namespacefourdst_1_1composition_a2cb98194b465f646973ceba38d0e7d95}{build\+Composition\+From\+Mass\+Fractions}} (const std\+::set$<$ \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{atomic\+::\+Species}} $>$ \&species, const std\+::vector$<$ double $>$ \&mass\+Fractions)
\begin{DoxyCompactList}\small\item\em Build a \doxylink{classfourdst_1_1composition_1_1_composition}{Composition} object from species in a set and their corresponding mass fractions. \end{DoxyCompactList}\item
std\+::ostream \& \mbox{\hyperlink{namespacefourdst_1_1composition_a5e8ccc2bd9e91eebcd3ef5fe470163a1}{operator$<$$<$}} (std\+::ostream \&os, const \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition}{Composition}} \&composition)
bool \mbox{\hyperlink{namespacefourdst_1_1composition_a06f5abc74104de40349e47ad367c402a}{operator==}} (const \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{Composition}} \&a, const \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{Composition}} \&b) noexcept
\item
\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{Composition}} \mbox{\hyperlink{namespacefourdst_1_1composition_aa90b1ef07d607c0c829bedccf381cf54}{build\+Composition\+From\+Mass\+Fractions}} (const std\+::vector$<$ std\+::string $>$ \&symbols, const std\+::vector$<$ double $>$ \&mass\+Fractions)
\begin{DoxyCompactList}\small\item\em Build a \doxylink{classfourdst_1_1composition_1_1Composition}{Composition} object from symbols and their corresponding mass fractions. \end{DoxyCompactList}\item
\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{Composition}} \mbox{\hyperlink{namespacefourdst_1_1composition_a39d4f84dfa85ddda3b9feb5dda1afc1e}{build\+Composition\+From\+Mass\+Fractions}} (const std\+::vector$<$ \mbox{\hyperlink{structfourdst_1_1atomic_1_1Species}{atomic\+::\+Species}} $>$ \&species, const std\+::vector$<$ double $>$ \&mass\+Fractions)
\begin{DoxyCompactList}\small\item\em Build a \doxylink{classfourdst_1_1composition_1_1Composition}{Composition} object from species and their corresponding mass fractions. \end{DoxyCompactList}\item
\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{Composition}} \mbox{\hyperlink{namespacefourdst_1_1composition_a2cb98194b465f646973ceba38d0e7d95}{build\+Composition\+From\+Mass\+Fractions}} (const std\+::set$<$ \mbox{\hyperlink{structfourdst_1_1atomic_1_1Species}{atomic\+::\+Species}} $>$ \&species, const std\+::vector$<$ double $>$ \&mass\+Fractions)
\begin{DoxyCompactList}\small\item\em Build a \doxylink{classfourdst_1_1composition_1_1Composition}{Composition} object from species in a set and their corresponding mass fractions. \end{DoxyCompactList}\item
\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{Composition}} \mbox{\hyperlink{namespacefourdst_1_1composition_ada2fea5f3ac5cff3ecd67541a0a094fc}{build\+Composition\+From\+Mass\+Fractions}} (const std\+::unordered\+\_\+map$<$ \mbox{\hyperlink{structfourdst_1_1atomic_1_1Species}{atomic\+::\+Species}}, double $>$ \&mass\+Fractions\+Map)
\begin{DoxyCompactList}\small\item\em Build a \doxylink{classfourdst_1_1composition_1_1Composition}{Composition} object from a map of species to mass fractions. \end{DoxyCompactList}\item
\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{Composition}} \mbox{\hyperlink{namespacefourdst_1_1composition_abf844ad6e10524bf99fc3bf6c9d68465}{build\+Composition\+From\+Mass\+Fractions}} (const std\+::unordered\+\_\+map$<$ std\+::string, double $>$ \&mass\+Fractions)
\begin{DoxyCompactList}\small\item\em Build a \doxylink{classfourdst_1_1composition_1_1Composition}{Composition} object from a map of species to mass fractions. \end{DoxyCompactList}\item
\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{Composition}} \mbox{\hyperlink{namespacefourdst_1_1composition_a8163289e584a05b4075c775279761e55}{build\+Composition\+From\+Mass\+Fractions}} (std\+::map$<$ \mbox{\hyperlink{structfourdst_1_1atomic_1_1Species}{atomic\+::\+Species}}, double $>$ mass\+Fractions)
\begin{DoxyCompactList}\small\item\em Build a \doxylink{classfourdst_1_1composition_1_1Composition}{Composition} object from a map of species to mass fractions. \end{DoxyCompactList}\item
\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{Composition}} \mbox{\hyperlink{namespacefourdst_1_1composition_abd0e185f7fd52130f36414faf2dc07d7}{build\+Composition\+From\+Mass\+Fractions}} (std\+::map$<$ std\+::string, double $>$ mass\+Fractions)
\begin{DoxyCompactList}\small\item\em Build a \doxylink{classfourdst_1_1composition_1_1Composition}{Composition} object from a map of species to mass fractions. \end{DoxyCompactList}\item
std\+::ostream \& \mbox{\hyperlink{namespacefourdst_1_1composition_a5e8ccc2bd9e91eebcd3ef5fe470163a1}{operator$<$$<$}} (std\+::ostream \&os, const \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{Composition}} \&composition)
\begin{DoxyCompactList}\small\item\em OVERLOADS. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection{Detailed Description}
Utilities and types for representing and manipulating chemical compositions.
The composition module provides a small, but expressive, API for constructing and querying material compositions used throughout the 4D-\/\+STAR codebase. A \doxylink{classfourdst_1_1composition_1_1_composition}{Composition} represents a collection of atomic species together with their molar abundances. From these molar abundances the module can compute derived quantities such as mass fractions, number fractions, canonical (X, Y, Z) composition, mean particle mass, and the electron abundance (Y\+\_\+e).
The composition module provides a small, but expressive, API for constructing and querying material compositions used throughout the 4D-\/\+STAR codebase. A \doxylink{classfourdst_1_1composition_1_1Composition}{Composition} represents a collection of atomic species together with their molar abundances. From these molar abundances the module can compute derived quantities such as mass fractions, number fractions, canonical (X, Y, Z) composition, mean particle mass, and the electron abundance (Y\+\_\+e).
Key concepts\+:
\begin{DoxyItemize}
\item Species and Symbols\+: Atomic isotopes are represented by the strongly-\/typed \doxylink{structfourdst_1_1atomic_1_1_species}{fourdst\+::atomic\+::\+Species} values (see {\ttfamily \doxylink{species_8h}{fourdst/atomic/species.\+h}}). Each species also has a human-\/readable string symbol (e.\+g. "{}\+H-\/1"{}, "{}\+He-\/4"{}) used by some constructors and convenience overloads.
\item Molar abundances\+: The \doxylink{classfourdst_1_1composition_1_1_composition}{Composition} API accepts and stores molar abundances (absolute mole counts). Many derived quantities (mass fraction, number fraction, mean particle mass) are computed from these molar abundances.
\item Canonical composition\+: A \doxylink{structfourdst_1_1composition_1_1_canonical_composition}{Canonical\+Composition} (X, Y, Z) is provided which groups mass fractions into hydrogen (X), helium (Y), and metals (Z). A lightweight struct {\ttfamily \doxylink{structfourdst_1_1composition_1_1_canonical_composition}{Canonical\+Composition}} holds these values and provides an ostream operator for easy logging and testing.
\item Caching\+: The concrete \doxylink{classfourdst_1_1composition_1_1_composition}{Composition} implementation caches computed vectors and scalars to avoid repeated work. The cache is invalidated automatically when molar abundances or registered species are changed.
\item Species and Symbols\+: Atomic isotopes are represented by the strongly-\/typed \doxylink{structfourdst_1_1atomic_1_1Species}{fourdst\+::atomic\+::\+Species} values (see {\ttfamily \doxylink{species_8h}{fourdst/atomic/species.\+h}}). Each species also has a human-\/readable string symbol (e.\+g. "{}\+H-\/1"{}, "{}\+He-\/4"{}) used by some constructors and convenience overloads.
\item Molar abundances\+: The \doxylink{classfourdst_1_1composition_1_1Composition}{Composition} API accepts and stores molar abundances (absolute mole counts). Many derived quantities (mass fraction, number fraction, mean particle mass) are computed from these molar abundances.
\item Canonical composition\+: A \doxylink{structfourdst_1_1composition_1_1CanonicalComposition}{Canonical\+Composition} (X, Y, Z) is provided which groups mass fractions into hydrogen (X), helium (Y), and metals (Z). A lightweight struct {\ttfamily \doxylink{structfourdst_1_1composition_1_1CanonicalComposition}{Canonical\+Composition}} holds these values and provides an ostream operator for easy logging and testing.
\item Caching\+: The concrete \doxylink{classfourdst_1_1composition_1_1Composition}{Composition} implementation caches computed vectors and scalars to avoid repeated work. The cache is invalidated automatically when molar abundances or registered species are changed.
\end{DoxyItemize}\hypertarget{namespacefourdst_1_1composition_autotoc_md6}{}\doxysubsubsection{\texorpdfstring{Main types and functions}{Main types and functions}}\label{namespacefourdst_1_1composition_autotoc_md6}
\begin{DoxyItemize}
\item \doxylink{classfourdst_1_1composition_1_1_composition}{Composition}\+: The primary concrete class for building and interrogating compositions. It implements the \doxylink{class_composition_abstract}{Composition\+Abstract} interface and exposes methods to register symbols/species, set molar abundances, and query all commonly-\/needed derived quantities. Multiple constructors are provided for convenience (from vectors/sets of symbols or species, with optional molar-\/abundance initialization).
\item \doxylink{classfourdst_1_1composition_1_1Composition}{Composition}\+: The primary concrete class for building and interrogating compositions. It implements the \doxylink{classfourdst_1_1composition_1_1CompositionAbstract}{Composition\+Abstract} interface and exposes methods to register symbols/species, set molar abundances, and query all commonly-\/needed derived quantities. Multiple constructors are provided for convenience (from vectors/sets of symbols or species, with optional molar-\/abundance initialization).
Important member functions include\+:
\begin{DoxyItemize}
@@ -56,13 +74,13 @@ Important member functions include\+:
\item get\+Canonical\+Composition
\item Iteration support (begin/end) which iterates species from lightest to heaviest because species ordering is defined by atomic mass.
\end{DoxyItemize}
\item \doxylink{class_composition_abstract}{Composition\+Abstract}\+: A compact abstract interface implemented by \doxylink{classfourdst_1_1composition_1_1_composition}{Composition} which guarantees the presence of all getter/query methods. This allows other components to accept composition-\/like objects without depending on the concrete implementation.
\item Utilities (\doxylink{namespacefourdst_1_1composition_aa90b1ef07d607c0c829bedccf381cf54}{fourdst\+::composition\+::build\+Composition\+From\+Mass\+Fractions})\+: Convenience helpers exist to construct a \doxylink{classfourdst_1_1composition_1_1_composition}{Composition} from mass fractions (instead of molar abundances). Those helpers validate that the provided mass fractions sum to unity within a tight tolerance and convert them into the corresponding molar abundances before returning a populated \doxylink{classfourdst_1_1composition_1_1_composition}{Composition}.
\item \doxylink{classfourdst_1_1composition_1_1CompositionAbstract}{Composition\+Abstract}\+: A compact abstract interface implemented by \doxylink{classfourdst_1_1composition_1_1Composition}{Composition} which guarantees the presence of all getter/query methods. This allows other components to accept composition-\/like objects without depending on the concrete implementation.
\item Utilities (\doxylink{namespacefourdst_1_1composition_aa90b1ef07d607c0c829bedccf381cf54}{fourdst\+::composition\+::build\+Composition\+From\+Mass\+Fractions})\+: Convenience helpers exist to construct a \doxylink{classfourdst_1_1composition_1_1Composition}{Composition} from mass fractions (instead of molar abundances). Those helpers validate that the provided mass fractions sum to unity within a tight tolerance and convert them into the corresponding molar abundances before returning a populated \doxylink{classfourdst_1_1composition_1_1Composition}{Composition}.
\item Exceptions (namespace \doxylink{namespacefourdst_1_1composition_1_1exceptions}{fourdst\+::composition\+::exceptions})\+: The module defines a small hierarchy of exceptions for error handling\+:
\begin{DoxyItemize}
\item Composition\+Error\+: Base class for composition-\/related errors.
\item Invalid\+Composition\+Error\+: Thrown when the composition is inconsistent or when mass fractions fail validation.
\item Unregistered\+Symbol\+Error\+: Thrown when an operation requires a symbol that hasn\textquotesingle{}t been registered on the \doxylink{classfourdst_1_1composition_1_1_composition}{Composition} object.
\item Unregistered\+Symbol\+Error\+: Thrown when an operation requires a symbol that hasn\textquotesingle{}t been registered on the \doxylink{classfourdst_1_1composition_1_1Composition}{Composition} object.
\item Unknown\+Symbol\+Error\+: Thrown when a provided string symbol does not map to any known atomic species in the atomic species database.
\end{DoxyItemize}
\end{DoxyItemize}\hypertarget{namespacefourdst_1_1composition_autotoc_md7}{}\doxysubsubsection{\texorpdfstring{Usage examples}{Usage examples}}\label{namespacefourdst_1_1composition_autotoc_md7}
@@ -72,15 +90,15 @@ Example 1 basic construction and queries\+:
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keyword}{using\ namespace\ }\mbox{\hyperlink{namespacefourdst_1_1composition}{fourdst::composition}};}
\DoxyCodeLine{}
\DoxyCodeLine{\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition}{Composition}}\ comp;}
\DoxyCodeLine{comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a3ab4dcda0bfd1a35b169bcc57fe66725}{registerSymbol}}(\textcolor{stringliteral}{"{}H-\/1"{}});}
\DoxyCodeLine{comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a3ab4dcda0bfd1a35b169bcc57fe66725}{registerSymbol}}(\textcolor{stringliteral}{"{}He-\/4"{}});}
\DoxyCodeLine{comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a262d7133035d4e6f45daa81827abf5e7}{setMolarAbundance}}(\textcolor{stringliteral}{"{}H-\/1"{}},\ 1.0);}
\DoxyCodeLine{comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a262d7133035d4e6f45daa81827abf5e7}{setMolarAbundance}}(\textcolor{stringliteral}{"{}He-\/4"{}},\ 0.5);}
\DoxyCodeLine{\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{Composition}}\ comp;}
\DoxyCodeLine{comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a3ab4dcda0bfd1a35b169bcc57fe66725}{registerSymbol}}(\textcolor{stringliteral}{"{}H-\/1"{}});}
\DoxyCodeLine{comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a3ab4dcda0bfd1a35b169bcc57fe66725}{registerSymbol}}(\textcolor{stringliteral}{"{}He-\/4"{}});}
\DoxyCodeLine{comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a262d7133035d4e6f45daa81827abf5e7}{setMolarAbundance}}(\textcolor{stringliteral}{"{}H-\/1"{}},\ 1.0);}
\DoxyCodeLine{comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a262d7133035d4e6f45daa81827abf5e7}{setMolarAbundance}}(\textcolor{stringliteral}{"{}He-\/4"{}},\ 0.5);}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keywordtype}{double}\ X\_h1\ =\ comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a9ea2b673341fdc67afeb0f0517a54c8c}{getMassFraction}}(\textcolor{stringliteral}{"{}H-\/1"{}});}
\DoxyCodeLine{\textcolor{keywordtype}{double}\ meanA\ =\ comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_afbbb5e51ad5ae5c0fa6bc0094195aecd}{getMeanParticleMass}}();}
\DoxyCodeLine{\mbox{\hyperlink{structfourdst_1_1composition_1_1_canonical_composition}{CanonicalComposition}}\ canon\ =\ comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_aac5b214a3d1278e127422224cb9cee50}{getCanonicalComposition}}();}
\DoxyCodeLine{\textcolor{keywordtype}{double}\ X\_h1\ =\ comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_a9ea2b673341fdc67afeb0f0517a54c8c}{getMassFraction}}(\textcolor{stringliteral}{"{}H-\/1"{}});}
\DoxyCodeLine{\textcolor{keywordtype}{double}\ meanA\ =\ comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_afbbb5e51ad5ae5c0fa6bc0094195aecd}{getMeanParticleMass}}();}
\DoxyCodeLine{\mbox{\hyperlink{structfourdst_1_1composition_1_1CanonicalComposition}{CanonicalComposition}}\ canon\ =\ comp.\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition_aac5b214a3d1278e127422224cb9cee50}{getCanonicalComposition}}();}
\DoxyCodeLine{std::cout\ <<\ canon\ <<\ std::endl;\ \textcolor{comment}{//\ prints\ X,\ Y,\ Z}}
\end{DoxyCode}
@@ -92,34 +110,34 @@ Example 2 constructing from mass fractions\+:
\DoxyCodeLine{}
\DoxyCodeLine{std::vector<std::string>\ symbols\ =\ \{\textcolor{stringliteral}{"{}H-\/1"{}},\ \textcolor{stringliteral}{"{}He-\/4"{}},\ \textcolor{stringliteral}{"{}C-\/12"{}}\};}
\DoxyCodeLine{std::vector<double>\ massFractions\ =\ \{0.70,\ 0.28,\ 0.02\};}
\DoxyCodeLine{\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition}{Composition}}\ comp\ =\ \mbox{\hyperlink{namespacefourdst_1_1composition_aa90b1ef07d607c0c829bedccf381cf54}{buildCompositionFromMassFractions}}(symbols,\ massFractions);}
\DoxyCodeLine{\mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{Composition}}\ comp\ =\ \mbox{\hyperlink{namespacefourdst_1_1composition_aa90b1ef07d607c0c829bedccf381cf54}{buildCompositionFromMassFractions}}(symbols,\ massFractions);}
\end{DoxyCode}
\hypertarget{namespacefourdst_1_1composition_autotoc_md8}{}\doxysubsubsection{\texorpdfstring{Notes and remarks}{Notes and remarks}}\label{namespacefourdst_1_1composition_autotoc_md8}
\begin{DoxyItemize}
\item Molar abundances are the canonical input for the \doxylink{classfourdst_1_1composition_1_1_composition}{Composition} class. When passing mass fractions, use the {\ttfamily build\+Composition\+From\+Mass\+Fractions} helper which performs the safe conversion and validation.
\item Molar abundances are the canonical input for the \doxylink{classfourdst_1_1composition_1_1Composition}{Composition} class. When passing mass fractions, use the {\ttfamily build\+Composition\+From\+Mass\+Fractions} helper which performs the safe conversion and validation.
\item Many methods throw exceptions from the {\ttfamily \doxylink{namespacefourdst_1_1composition_1_1exceptions}{fourdst\+::composition\+::exceptions}} namespace on invalid usage (unknown symbols, unregistered species, or invalid abundance values). Callers should catch and handle these where appropriate.
\item Floating point results (mass/number fractions, mean particle mass, Y\+\_\+e) are computed as doubles and may have small numerical round-\/off. Callers comparing values in tests should use an appropriate tolerance.
\end{DoxyItemize}\hypertarget{namespacefourdst_1_1composition_autotoc_md9}{}\doxysubsubsection{\texorpdfstring{See also}{See also}}\label{namespacefourdst_1_1composition_autotoc_md9}
\begin{DoxyItemize}
\item \doxylink{species_8h}{fourdst/atomic/species.\+h} — canonical atomic species definitions and symbols.
\item \doxylink{composition_8h}{fourdst/composition/composition.\+h} — concrete \doxylink{classfourdst_1_1composition_1_1_composition}{Composition} implementation.
\item \doxylink{composition_8h}{fourdst/composition/composition.\+h} — concrete \doxylink{classfourdst_1_1composition_1_1Composition}{Composition} implementation.
\item \doxylink{composition__abstract_8h}{fourdst/composition/composition\+\_\+abstract.\+h} — abstract composition interface.
\item \doxylink{utils_8h}{fourdst/composition/utils.\+h} — helpers for constructing compositions from mass fractions.
\end{DoxyItemize}
\doxysubsection{Function Documentation}
\Hypertarget{namespacefourdst_1_1composition_a2cb98194b465f646973ceba38d0e7d95}\index{fourdst::composition@{fourdst::composition}!buildCompositionFromMassFractions@{buildCompositionFromMassFractions}}
\Hypertarget{namespacefourdst_1_1composition_a2cb98194b465f646973ceba38d0e7d95}\label{namespacefourdst_1_1composition_a2cb98194b465f646973ceba38d0e7d95}
\index{fourdst::composition@{fourdst::composition}!buildCompositionFromMassFractions@{buildCompositionFromMassFractions}}
\index{buildCompositionFromMassFractions@{buildCompositionFromMassFractions}!fourdst::composition@{fourdst::composition}}
\doxysubsubsection{\texorpdfstring{buildCompositionFromMassFractions()}{buildCompositionFromMassFractions()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily \label{namespacefourdst_1_1composition_a2cb98194b465f646973ceba38d0e7d95}
\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition}{Composition}} fourdst\+::composition\+::build\+Composition\+From\+Mass\+Fractions (\begin{DoxyParamCaption}\item[{const std\+::set$<$ \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{atomic\+::\+Species}} $>$ \&}]{species}{, }\item[{const std\+::vector$<$ double $>$ \&}]{mass\+Fractions}{}\end{DoxyParamCaption})}
\doxysubsubsection{\texorpdfstring{buildCompositionFromMassFractions()}{buildCompositionFromMassFractions()}\hspace{0.1cm}{\footnotesize\ttfamily [1/7]}}
{\footnotesize\ttfamily \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{Composition}} fourdst\+::composition\+::build\+Composition\+From\+Mass\+Fractions (\begin{DoxyParamCaption}\item[{const std\+::set$<$ \mbox{\hyperlink{structfourdst_1_1atomic_1_1Species}{atomic\+::\+Species}} $>$ \&}]{species, }\item[{const std\+::vector$<$ double $>$ \&}]{mass\+Fractions }\end{DoxyParamCaption})}
Build a \doxylink{classfourdst_1_1composition_1_1_composition}{Composition} object from species in a set and their corresponding mass fractions.
Build a \doxylink{classfourdst_1_1composition_1_1Composition}{Composition} object from species in a set and their corresponding mass fractions.
\begin{DoxyParams}{Parameters}
@@ -129,13 +147,13 @@ Build a \doxylink{classfourdst_1_1composition_1_1_composition}{Composition} obje
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A \doxylink{classfourdst_1_1composition_1_1_composition}{Composition} object constructed from the provided species and mass fractions.
A \doxylink{classfourdst_1_1composition_1_1Composition}{Composition} object constructed from the provided species and mass fractions.
\end{DoxyReturn}
\begin{DoxyExceptions}{Exceptions}
{\em \doxylink{classfourdst_1_1composition_1_1exceptions_1_1_invalid_composition_error}{exceptions\+::\+Invalid\+Composition\+Error}} & if the provided mass fractions do not sum to within one part in 10\texorpdfstring{$^\wedge$}{\string^}10 of 1.\+0. \\
{\em \doxylink{classfourdst_1_1composition_1_1exceptions_1_1InvalidCompositionError}{exceptions\+::\+Invalid\+Composition\+Error}} & if the provided mass fractions do not sum to within one part in 10\texorpdfstring{$^\wedge$}{\string^}10 of 1.\+0. \\
\hline
{\em \doxylink{classfourdst_1_1composition_1_1exceptions_1_1_invalid_composition_error}{exceptions\+::\+Invalid\+Composition\+Error}} & if the number of species does not match the number of mass fractions.\\
{\em \doxylink{classfourdst_1_1composition_1_1exceptions_1_1InvalidCompositionError}{exceptions\+::\+Invalid\+Composition\+Error}} & if the number of species does not match the number of mass fractions.\\
\hline
\end{DoxyExceptions}
\begin{DoxyNote}{Note}
@@ -145,15 +163,69 @@ This is the version of the function which the other overloads ultimately call.
Definition at line \mbox{\hyperlink{utils_8cpp_source_l00036}{36}} of file \mbox{\hyperlink{utils_8cpp_source}{utils.\+cpp}}.
\Hypertarget{namespacefourdst_1_1composition_a39d4f84dfa85ddda3b9feb5dda1afc1e}\index{fourdst::composition@{fourdst::composition}!buildCompositionFromMassFractions@{buildCompositionFromMassFractions}}
\Hypertarget{namespacefourdst_1_1composition_ada2fea5f3ac5cff3ecd67541a0a094fc}\label{namespacefourdst_1_1composition_ada2fea5f3ac5cff3ecd67541a0a094fc}
\index{fourdst::composition@{fourdst::composition}!buildCompositionFromMassFractions@{buildCompositionFromMassFractions}}
\index{buildCompositionFromMassFractions@{buildCompositionFromMassFractions}!fourdst::composition@{fourdst::composition}}
\doxysubsubsection{\texorpdfstring{buildCompositionFromMassFractions()}{buildCompositionFromMassFractions()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily \label{namespacefourdst_1_1composition_a39d4f84dfa85ddda3b9feb5dda1afc1e}
\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition}{Composition}} fourdst\+::composition\+::build\+Composition\+From\+Mass\+Fractions (\begin{DoxyParamCaption}\item[{const std\+::vector$<$ \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{atomic\+::\+Species}} $>$ \&}]{species}{, }\item[{const std\+::vector$<$ double $>$ \&}]{mass\+Fractions}{}\end{DoxyParamCaption})}
\doxysubsubsection{\texorpdfstring{buildCompositionFromMassFractions()}{buildCompositionFromMassFractions()}\hspace{0.1cm}{\footnotesize\ttfamily [2/7]}}
{\footnotesize\ttfamily \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{Composition}} fourdst\+::composition\+::build\+Composition\+From\+Mass\+Fractions (\begin{DoxyParamCaption}\item[{const std\+::unordered\+\_\+map$<$ \mbox{\hyperlink{structfourdst_1_1atomic_1_1Species}{atomic\+::\+Species}}, double $>$ \&}]{mass\+Fractions\+Map }\end{DoxyParamCaption})}
Build a \doxylink{classfourdst_1_1composition_1_1_composition}{Composition} object from species and their corresponding mass fractions.
Build a \doxylink{classfourdst_1_1composition_1_1Composition}{Composition} object from a map of species to mass fractions.
\begin{DoxyParams}{Parameters}
{\em mass\+Fractions\+Map} & The map of species to their corresponding mass fractions. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A \doxylink{classfourdst_1_1composition_1_1Composition}{Composition} object constructed from the provided species and mass fractions.
\end{DoxyReturn}
\begin{DoxyExceptions}{Exceptions}
{\em \doxylink{classfourdst_1_1composition_1_1exceptions_1_1InvalidCompositionError}{exceptions\+::\+Invalid\+Composition\+Error}} & if the provided mass fractions do not sum to within one part in 10\texorpdfstring{$^\wedge$}{\string^}10 of 1.\+0. \\
\hline
\end{DoxyExceptions}
Definition at line \mbox{\hyperlink{utils_8cpp_source_l00107}{107}} of file \mbox{\hyperlink{utils_8cpp_source}{utils.\+cpp}}.
\Hypertarget{namespacefourdst_1_1composition_abf844ad6e10524bf99fc3bf6c9d68465}\label{namespacefourdst_1_1composition_abf844ad6e10524bf99fc3bf6c9d68465}
\index{fourdst::composition@{fourdst::composition}!buildCompositionFromMassFractions@{buildCompositionFromMassFractions}}
\index{buildCompositionFromMassFractions@{buildCompositionFromMassFractions}!fourdst::composition@{fourdst::composition}}
\doxysubsubsection{\texorpdfstring{buildCompositionFromMassFractions()}{buildCompositionFromMassFractions()}\hspace{0.1cm}{\footnotesize\ttfamily [3/7]}}
{\footnotesize\ttfamily \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{Composition}} fourdst\+::composition\+::build\+Composition\+From\+Mass\+Fractions (\begin{DoxyParamCaption}\item[{const std\+::unordered\+\_\+map$<$ std\+::string, double $>$ \&}]{mass\+Fractions }\end{DoxyParamCaption})}
Build a \doxylink{classfourdst_1_1composition_1_1Composition}{Composition} object from a map of species to mass fractions.
\begin{DoxyParams}{Parameters}
{\em mass\+Fractions} & The map of species to their corresponding mass fractions. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A \doxylink{classfourdst_1_1composition_1_1Composition}{Composition} object constructed from the provided species and mass fractions.
\end{DoxyReturn}
\begin{DoxyExceptions}{Exceptions}
{\em \doxylink{classfourdst_1_1composition_1_1exceptions_1_1InvalidCompositionError}{exceptions\+::\+Invalid\+Composition\+Error}} & if the provided mass fractions do not sum to within one part in 10\texorpdfstring{$^\wedge$}{\string^}10 of 1.\+0. \\
\hline
\end{DoxyExceptions}
Definition at line \mbox{\hyperlink{utils_8cpp_source_l00170}{170}} of file \mbox{\hyperlink{utils_8cpp_source}{utils.\+cpp}}.
\Hypertarget{namespacefourdst_1_1composition_a39d4f84dfa85ddda3b9feb5dda1afc1e}\label{namespacefourdst_1_1composition_a39d4f84dfa85ddda3b9feb5dda1afc1e}
\index{fourdst::composition@{fourdst::composition}!buildCompositionFromMassFractions@{buildCompositionFromMassFractions}}
\index{buildCompositionFromMassFractions@{buildCompositionFromMassFractions}!fourdst::composition@{fourdst::composition}}
\doxysubsubsection{\texorpdfstring{buildCompositionFromMassFractions()}{buildCompositionFromMassFractions()}\hspace{0.1cm}{\footnotesize\ttfamily [4/7]}}
{\footnotesize\ttfamily \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{Composition}} fourdst\+::composition\+::build\+Composition\+From\+Mass\+Fractions (\begin{DoxyParamCaption}\item[{const std\+::vector$<$ \mbox{\hyperlink{structfourdst_1_1atomic_1_1Species}{atomic\+::\+Species}} $>$ \&}]{species, }\item[{const std\+::vector$<$ double $>$ \&}]{mass\+Fractions }\end{DoxyParamCaption})}
Build a \doxylink{classfourdst_1_1composition_1_1Composition}{Composition} object from species and their corresponding mass fractions.
\begin{DoxyParams}{Parameters}
@@ -163,28 +235,28 @@ Build a \doxylink{classfourdst_1_1composition_1_1_composition}{Composition} obje
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A \doxylink{classfourdst_1_1composition_1_1_composition}{Composition} object constructed from the provided species and mass fractions.
A \doxylink{classfourdst_1_1composition_1_1Composition}{Composition} object constructed from the provided species and mass fractions.
\end{DoxyReturn}
\begin{DoxyExceptions}{Exceptions}
{\em \doxylink{classfourdst_1_1composition_1_1exceptions_1_1_invalid_composition_error}{exceptions\+::\+Invalid\+Composition\+Error}} & if the provided mass fractions do not sum to within one part in 10\texorpdfstring{$^\wedge$}{\string^}10 of 1.\+0. \\
{\em \doxylink{classfourdst_1_1composition_1_1exceptions_1_1InvalidCompositionError}{exceptions\+::\+Invalid\+Composition\+Error}} & if the provided mass fractions do not sum to within one part in 10\texorpdfstring{$^\wedge$}{\string^}10 of 1.\+0. \\
\hline
{\em \doxylink{classfourdst_1_1composition_1_1exceptions_1_1_invalid_composition_error}{exceptions\+::\+Invalid\+Composition\+Error}} & if the number of species does not match the number of mass fractions. \\
{\em \doxylink{classfourdst_1_1composition_1_1exceptions_1_1InvalidCompositionError}{exceptions\+::\+Invalid\+Composition\+Error}} & if the number of species does not match the number of mass fractions. \\
\hline
\end{DoxyExceptions}
Definition at line \mbox{\hyperlink{utils_8cpp_source_l00070}{70}} of file \mbox{\hyperlink{utils_8cpp_source}{utils.\+cpp}}.
\Hypertarget{namespacefourdst_1_1composition_aa90b1ef07d607c0c829bedccf381cf54}\index{fourdst::composition@{fourdst::composition}!buildCompositionFromMassFractions@{buildCompositionFromMassFractions}}
\Hypertarget{namespacefourdst_1_1composition_aa90b1ef07d607c0c829bedccf381cf54}\label{namespacefourdst_1_1composition_aa90b1ef07d607c0c829bedccf381cf54}
\index{fourdst::composition@{fourdst::composition}!buildCompositionFromMassFractions@{buildCompositionFromMassFractions}}
\index{buildCompositionFromMassFractions@{buildCompositionFromMassFractions}!fourdst::composition@{fourdst::composition}}
\doxysubsubsection{\texorpdfstring{buildCompositionFromMassFractions()}{buildCompositionFromMassFractions()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily \label{namespacefourdst_1_1composition_aa90b1ef07d607c0c829bedccf381cf54}
\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition}{Composition}} fourdst\+::composition\+::build\+Composition\+From\+Mass\+Fractions (\begin{DoxyParamCaption}\item[{const std\+::vector$<$ std\+::string $>$ \&}]{symbols}{, }\item[{const std\+::vector$<$ double $>$ \&}]{mass\+Fractions}{}\end{DoxyParamCaption})}
\doxysubsubsection{\texorpdfstring{buildCompositionFromMassFractions()}{buildCompositionFromMassFractions()}\hspace{0.1cm}{\footnotesize\ttfamily [5/7]}}
{\footnotesize\ttfamily \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{Composition}} fourdst\+::composition\+::build\+Composition\+From\+Mass\+Fractions (\begin{DoxyParamCaption}\item[{const std\+::vector$<$ std\+::string $>$ \&}]{symbols, }\item[{const std\+::vector$<$ double $>$ \&}]{mass\+Fractions }\end{DoxyParamCaption})}
Build a \doxylink{classfourdst_1_1composition_1_1_composition}{Composition} object from symbols and their corresponding mass fractions.
Build a \doxylink{classfourdst_1_1composition_1_1Composition}{Composition} object from symbols and their corresponding mass fractions.
\begin{DoxyParams}{Parameters}
@@ -194,38 +266,92 @@ Build a \doxylink{classfourdst_1_1composition_1_1_composition}{Composition} obje
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A \doxylink{classfourdst_1_1composition_1_1_composition}{Composition} object constructed from the provided symbols and mass fractions.
A \doxylink{classfourdst_1_1composition_1_1Composition}{Composition} object constructed from the provided symbols and mass fractions.
\end{DoxyReturn}
\begin{DoxyExceptions}{Exceptions}
{\em \doxylink{classfourdst_1_1composition_1_1exceptions_1_1_unknown_symbol_error}{exceptions\+::\+Unknown\+Symbol\+Error}} & if any symbol is invalid. Symbols are invalid if they are not registered at compile time in the atomic species database ({\ttfamily \doxylink{species_8h}{fourdst/atomic/species.\+h}}). \\
{\em \doxylink{classfourdst_1_1composition_1_1exceptions_1_1UnknownSymbolError}{exceptions\+::\+Unknown\+Symbol\+Error}} & if any symbol is invalid. Symbols are invalid if they are not registered at compile time in the atomic species database ({\ttfamily \doxylink{species_8h}{fourdst/atomic/species.\+h}}). \\
\hline
{\em \doxylink{classfourdst_1_1composition_1_1exceptions_1_1_invalid_composition_error}{exceptions\+::\+Invalid\+Composition\+Error}} & if the provided mass fractions do not sum to within one part in 10\texorpdfstring{$^\wedge$}{\string^}10 of 1.\+0. \\
{\em \doxylink{classfourdst_1_1composition_1_1exceptions_1_1InvalidCompositionError}{exceptions\+::\+Invalid\+Composition\+Error}} & if the provided mass fractions do not sum to within one part in 10\texorpdfstring{$^\wedge$}{\string^}10 of 1.\+0. \\
\hline
{\em \doxylink{classfourdst_1_1composition_1_1exceptions_1_1_invalid_composition_error}{exceptions\+::\+Invalid\+Composition\+Error}} & if the number of symbols does not match the number of mass fractions. \\
{\em \doxylink{classfourdst_1_1composition_1_1exceptions_1_1InvalidCompositionError}{exceptions\+::\+Invalid\+Composition\+Error}} & if the number of symbols does not match the number of mass fractions. \\
\hline
\end{DoxyExceptions}
Definition at line \mbox{\hyperlink{utils_8cpp_source_l00074}{74}} of file \mbox{\hyperlink{utils_8cpp_source}{utils.\+cpp}}.
Definition at line \mbox{\hyperlink{utils_8cpp_source_l00084}{84}} of file \mbox{\hyperlink{utils_8cpp_source}{utils.\+cpp}}.
\Hypertarget{namespacefourdst_1_1composition_a5e8ccc2bd9e91eebcd3ef5fe470163a1}\index{fourdst::composition@{fourdst::composition}!operator$<$$<$@{operator$<$$<$}}
\Hypertarget{namespacefourdst_1_1composition_a8163289e584a05b4075c775279761e55}\label{namespacefourdst_1_1composition_a8163289e584a05b4075c775279761e55}
\index{fourdst::composition@{fourdst::composition}!buildCompositionFromMassFractions@{buildCompositionFromMassFractions}}
\index{buildCompositionFromMassFractions@{buildCompositionFromMassFractions}!fourdst::composition@{fourdst::composition}}
\doxysubsubsection{\texorpdfstring{buildCompositionFromMassFractions()}{buildCompositionFromMassFractions()}\hspace{0.1cm}{\footnotesize\ttfamily [6/7]}}
{\footnotesize\ttfamily \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{Composition}} fourdst\+::composition\+::build\+Composition\+From\+Mass\+Fractions (\begin{DoxyParamCaption}\item[{std\+::map$<$ \mbox{\hyperlink{structfourdst_1_1atomic_1_1Species}{atomic\+::\+Species}}, double $>$}]{mass\+Fractions }\end{DoxyParamCaption})}
Build a \doxylink{classfourdst_1_1composition_1_1Composition}{Composition} object from a map of species to mass fractions.
\begin{DoxyParams}{Parameters}
{\em mass\+Fractions} & The map of species to their corresponding mass fractions. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A \doxylink{classfourdst_1_1composition_1_1Composition}{Composition} object constructed from the provided species and mass fractions.
\end{DoxyReturn}
\begin{DoxyExceptions}{Exceptions}
{\em \doxylink{classfourdst_1_1composition_1_1exceptions_1_1InvalidCompositionError}{exceptions\+::\+Invalid\+Composition\+Error}} & if the provided mass fractions do not sum to within one part in 10\texorpdfstring{$^\wedge$}{\string^}10 of 1.\+0. \\
\hline
\end{DoxyExceptions}
Definition at line \mbox{\hyperlink{utils_8cpp_source_l00127}{127}} of file \mbox{\hyperlink{utils_8cpp_source}{utils.\+cpp}}.
\Hypertarget{namespacefourdst_1_1composition_abd0e185f7fd52130f36414faf2dc07d7}\label{namespacefourdst_1_1composition_abd0e185f7fd52130f36414faf2dc07d7}
\index{fourdst::composition@{fourdst::composition}!buildCompositionFromMassFractions@{buildCompositionFromMassFractions}}
\index{buildCompositionFromMassFractions@{buildCompositionFromMassFractions}!fourdst::composition@{fourdst::composition}}
\doxysubsubsection{\texorpdfstring{buildCompositionFromMassFractions()}{buildCompositionFromMassFractions()}\hspace{0.1cm}{\footnotesize\ttfamily [7/7]}}
{\footnotesize\ttfamily \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{Composition}} fourdst\+::composition\+::build\+Composition\+From\+Mass\+Fractions (\begin{DoxyParamCaption}\item[{std\+::map$<$ std\+::string, double $>$}]{mass\+Fractions }\end{DoxyParamCaption})}
Build a \doxylink{classfourdst_1_1composition_1_1Composition}{Composition} object from a map of species to mass fractions.
\begin{DoxyParams}{Parameters}
{\em mass\+Fractions} & The map of species to their corresponding mass fractions. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A \doxylink{classfourdst_1_1composition_1_1Composition}{Composition} object constructed from the provided species and mass fractions.
\end{DoxyReturn}
\begin{DoxyExceptions}{Exceptions}
{\em \doxylink{classfourdst_1_1composition_1_1exceptions_1_1InvalidCompositionError}{exceptions\+::\+Invalid\+Composition\+Error}} & if the provided mass fractions do not sum to within one part in 10\texorpdfstring{$^\wedge$}{\string^}10 of 1.\+0. \\
\hline
\end{DoxyExceptions}
Definition at line \mbox{\hyperlink{utils_8cpp_source_l00141}{141}} of file \mbox{\hyperlink{utils_8cpp_source}{utils.\+cpp}}.
\Hypertarget{namespacefourdst_1_1composition_a5e8ccc2bd9e91eebcd3ef5fe470163a1}\label{namespacefourdst_1_1composition_a5e8ccc2bd9e91eebcd3ef5fe470163a1}
\index{fourdst::composition@{fourdst::composition}!operator$<$$<$@{operator$<$$<$}}
\index{operator$<$$<$@{operator$<$$<$}!fourdst::composition@{fourdst::composition}}
\doxysubsubsection{\texorpdfstring{operator$<$$<$()}{operator<<()}}
{\footnotesize\ttfamily \label{namespacefourdst_1_1composition_a5e8ccc2bd9e91eebcd3ef5fe470163a1}
std\+::ostream \& fourdst\+::composition\+::operator$<$$<$ (\begin{DoxyParamCaption}\item[{std\+::ostream \&}]{os}{, }\item[{const \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition}{Composition}} \&}]{composition}{}\end{DoxyParamCaption})}
{\footnotesize\ttfamily std\+::ostream \& fourdst\+::composition\+::operator$<$$<$ (\begin{DoxyParamCaption}\item[{std\+::ostream \&}]{os, }\item[{const \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{Composition}} \&}]{composition }\end{DoxyParamCaption})}
OVERLOADS.
Overloaded output stream operator for \doxylink{classfourdst_1_1composition_1_1_composition}{Composition}.
Overloaded output stream operator for \doxylink{classfourdst_1_1composition_1_1Composition}{Composition}.
\begin{DoxyParams}{Parameters}
{\em os} & The output stream. \\
\hline
{\em composition} & The \doxylink{classfourdst_1_1composition_1_1_composition}{Composition} to output. \\
{\em composition} & The \doxylink{classfourdst_1_1composition_1_1Composition}{Composition} to output. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
@@ -233,5 +359,15 @@ The output stream.
\end{DoxyReturn}
Definition at line \mbox{\hyperlink{composition_8cpp_source_l00593}{593}} of file \mbox{\hyperlink{composition_8cpp_source}{composition.\+cpp}}.
Definition at line \mbox{\hyperlink{composition_8cpp_source_l00644}{644}} of file \mbox{\hyperlink{composition_8cpp_source}{composition.\+cpp}}.
\Hypertarget{namespacefourdst_1_1composition_a06f5abc74104de40349e47ad367c402a}\label{namespacefourdst_1_1composition_a06f5abc74104de40349e47ad367c402a}
\index{fourdst::composition@{fourdst::composition}!operator==@{operator==}}
\index{operator==@{operator==}!fourdst::composition@{fourdst::composition}}
\doxysubsubsection{\texorpdfstring{operator==()}{operator==()}}
{\footnotesize\ttfamily bool fourdst\+::composition\+::operator== (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{Composition}} \&}]{a, }\item[{const \mbox{\hyperlink{classfourdst_1_1composition_1_1Composition}{Composition}} \&}]{b }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}
Definition at line \mbox{\hyperlink{composition_8h_source_l00837}{837}} of file \mbox{\hyperlink{composition_8h_source}{composition.\+h}}.

View File

@@ -3,13 +3,13 @@
\doxysubsubsection*{Classes}
\begin{DoxyCompactItemize}
\item
class \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_composition_error}{Composition\+Error}}
class \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1CompositionError}{Composition\+Error}}
\begin{DoxyCompactList}\small\item\em Base class for exceptions related to composition objects. \end{DoxyCompactList}\item
class \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_invalid_composition_error}{Invalid\+Composition\+Error}}
class \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1InvalidCompositionError}{Invalid\+Composition\+Error}}
\begin{DoxyCompactList}\small\item\em Exception thrown when a composition is in an invalid or inconsistent state. \end{DoxyCompactList}\item
class \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_species_error}{Species\+Error}}
class \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1SpeciesError}{Species\+Error}}
\begin{DoxyCompactList}\small\item\em Base class for exceptions related to atomic species. \end{DoxyCompactList}\item
class \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_unknown_symbol_error}{Unknown\+Symbol\+Error}}
class \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1UnknownSymbolError}{Unknown\+Symbol\+Error}}
\begin{DoxyCompactList}\small\item\em Exception thrown when an unknown symbol is encountered. \end{DoxyCompactList}\item
class \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1_unregistered_symbol_error}{Unregistered\+Symbol\+Error}}
class \mbox{\hyperlink{classfourdst_1_1composition_1_1exceptions_1_1UnregisteredSymbolError}{Unregistered\+Symbol\+Error}}
\begin{DoxyCompactList}\small\item\em Exception thrown when a symbol is used that has not been registered. \end{DoxyCompactList}\end{DoxyCompactItemize}

View File

@@ -4,4 +4,6 @@ Here is a list of all namespaces with brief descriptions\+:\begin{DoxyCompactLis
\item\contentsline{section}{\mbox{\hyperlink{namespacefourdst_1_1atomic}{fourdst\+::atomic}} \\*Contains canonical information about atomic species and elements used by 4D-\/\+STAR }{\pageref{namespacefourdst_1_1atomic}}{}
\item\contentsline{section}{\mbox{\hyperlink{namespacefourdst_1_1composition}{fourdst\+::composition}} \\*Utilities and types for representing and manipulating chemical compositions }{\pageref{namespacefourdst_1_1composition}}{}
\item\contentsline{section}{\mbox{\hyperlink{namespacefourdst_1_1composition_1_1exceptions}{fourdst\+::composition\+::exceptions}} }{\pageref{namespacefourdst_1_1composition_1_1exceptions}}{}
\item\contentsline{section}{\mbox{\hyperlink{namespacefourdst_1_1composition_1_1utils}{fourdst\+::composition\+::utils}} }{\pageref{namespacefourdst_1_1composition_1_1utils}}{}
\item\contentsline{section}{\mbox{\hyperlink{namespacestd}{std}} \\*STL namespace }{\pageref{namespacestd}}{}
\end{DoxyCompactList}

View File

@@ -1,16 +1,7 @@
% Handle batch mode
% to overcome problems with too many open files
\let\mypdfximage\pdfximage\def\pdfximage{\immediate\mypdfximage}
\RequirePackage{iftex}
\ifLuaTeX
\directlua{pdf.setminorversion(7)}
\fi
\ifXeTeX
\special{pdf:minorversion 7}
\fi
\ifPDFTeX
\pdfminorversion=7
\fi
\pdfminorversion=7
% Set document class depending on configuration
\documentclass[twoside]{book}
%% moved from doxygen.sty due to workaround for LaTex 2019 version and unmaintained tabu package
@@ -31,18 +22,10 @@
\let\protected@wlog\@@protected@wlog
\makeatother
\IfFormatAtLeastTF{2016/01/01}{}{\usepackage{fixltx2e}} % for \textsubscript
\ifPDFTeX
\IfFormatAtLeastTF{2015/01/01}{\pdfsuppresswarningpagegroup=1}{}
\fi
\IfFormatAtLeastTF{2015/01/01}{\pdfsuppresswarningpagegroup=1}{}
\usepackage{doxygen}
\usepackage{graphicx}
\iftutex
\usepackage{fontspec}
\defaultfontfeatures{Ligatures={TeX}}
\usepackage{unicode-math}
\else
\usepackage[utf8]{inputenc}
\fi
\usepackage[utf8]{inputenc}
\usepackage{makeidx}
\PassOptionsToPackage{warn}{textcomp}
\usepackage{textcomp}
@@ -51,10 +34,7 @@
% NLS support packages
% Define default fonts
% Font selection
\iftutex
\else
\usepackage[T1]{fontenc}
\fi
\usepackage[T1]{fontenc}
% set main and monospaced font
\usepackage[scaled=.90]{helvet}
\usepackage{courier}
@@ -135,14 +115,13 @@
}
% ToC, LoF, LoT, bibliography, and index
% Indices & bibliography
\usepackage[numbers]{natbib}
\usepackage{natbib}
\usepackage[titles]{tocloft}
\setcounter{tocdepth}{3}
\setcounter{secnumdepth}{5}
% creating indexes
\makeindex
\ifPDFTeX
\usepackage{newunicodechar}
\usepackage{newunicodechar}
\makeatletter
\def\doxynewunicodechar#1#2{%
\@tempswafalse
@@ -161,20 +140,15 @@
\doxynewunicodechar{}{${}^{-}$}% Superscript minus
\doxynewunicodechar{²}{${}^{2}$}% Superscript two
\doxynewunicodechar{³}{${}^{3}$}% Superscript three
\fi
% Hyperlinks
% Hyperlinks (required, but should be loaded last)
\ifPDFTeX
\ifpdf
\usepackage[pdftex,pagebackref=true]{hyperref}
\else
\ifXeTeX
\usepackage[xetex,pagebackref=true]{hyperref}
\ifxetex
\usepackage[pagebackref=true]{hyperref}
\else
\ifLuaTeX
\usepackage[luatex,pagebackref=true]{hyperref}
\else
\usepackage[ps2pdf,pagebackref=true]{hyperref}
\fi
\usepackage[ps2pdf,pagebackref=true]{hyperref}
\fi
\fi
\hypersetup{%
@@ -220,9 +194,9 @@
\vspace*{7cm}
\begin{center}%
{\Large fourdst\+::libcomposition}\\
[1ex]\large v2.\+0.\+1 \\
[1ex]\large v2.\+2.\+1 \\
\vspace*{1cm}
{\large Generated by Doxygen 1.13.2}\\
{\large Generated by Doxygen 1.9.8}\\
\end{center}
\end{titlepage}
\clearemptydoublepage
@@ -247,23 +221,29 @@
\input{namespacefourdst_1_1atomic}
\input{namespacefourdst_1_1composition}
\input{namespacefourdst_1_1composition_1_1exceptions}
\input{namespacefourdst_1_1composition_1_1utils}
\input{namespacestd}
\chapter{Class Documentation}
\input{structfourdst_1_1composition_1_1_canonical_composition}
\input{classfourdst_1_1composition_1_1_composition}
\input{class_composition_abstract}
\input{structfourdst_1_1composition_1_1_composition_1_1_composition_cache}
\input{classfourdst_1_1composition_1_1exceptions_1_1_composition_error}
\input{structstd_1_1hash_3_01fourdst_1_1atomic_1_1_species_01_4}
\input{classfourdst_1_1composition_1_1exceptions_1_1_invalid_composition_error}
\input{structfourdst_1_1atomic_1_1_species}
\input{classfourdst_1_1composition_1_1exceptions_1_1_species_error}
\input{classfourdst_1_1composition_1_1exceptions_1_1_unknown_symbol_error}
\input{classfourdst_1_1composition_1_1exceptions_1_1_unregistered_symbol_error}
\input{structfourdst_1_1composition_1_1CanonicalComposition}
\input{classfourdst_1_1composition_1_1Composition}
\input{classfourdst_1_1composition_1_1CompositionAbstract}
\input{structfourdst_1_1composition_1_1Composition_1_1CompositionCache}
\input{classfourdst_1_1composition_1_1CompositionDecorator}
\input{classfourdst_1_1composition_1_1exceptions_1_1CompositionError}
\input{structfourdst_1_1composition_1_1utils_1_1CompositionHash}
\input{structstd_1_1hash_3_01fourdst_1_1atomic_1_1Species_01_4}
\input{structstd_1_1hash_3_01fourdst_1_1composition_1_1Composition_01_4}
\input{classfourdst_1_1composition_1_1exceptions_1_1InvalidCompositionError}
\input{classfourdst_1_1composition_1_1MaskedComposition}
\input{structfourdst_1_1atomic_1_1Species}
\input{classfourdst_1_1composition_1_1exceptions_1_1SpeciesError}
\input{classfourdst_1_1composition_1_1exceptions_1_1UnknownSymbolError}
\input{classfourdst_1_1composition_1_1exceptions_1_1UnregisteredSymbolError}
\chapter{File Documentation}
\input{mainpage_8md}
\input{atomic_8dox}
\input{atomic_species_8h}
\input{atomic_species_8h_source}
\input{atomicSpecies_8h}
\input{atomicSpecies_8h_source}
\input{elements_8h}
\input{elements_8h_source}
\input{species_8h}
@@ -273,12 +253,20 @@
\input{composition_8h_source}
\input{composition__abstract_8h}
\input{composition__abstract_8h_source}
\input{composition__decorator__abstract_8h}
\input{composition__decorator__abstract_8h_source}
\input{composition__masked_8h}
\input{composition__masked_8h_source}
\input{exceptions__composition_8h}
\input{exceptions__composition_8h_source}
\input{utils_8h}
\input{utils_8h_source}
\input{composition__hash_8h}
\input{composition__hash_8h_source}
\input{composition_8cpp}
\input{composition_8cpp_source}
\input{composition__masked_8cpp}
\input{composition__masked_8cpp_source}
\input{utils_8cpp}
\input{utils_8cpp_source}
%--- End generated contents ---

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff