\doxysection{fourdst\+::composition\+::Composition\+Abstract Class Reference}
\hypertarget{classfourdst_1_1composition_1_1_composition_abstract}{}\label{classfourdst_1_1composition_1_1_composition_abstract}\index{fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}}


Abstract base class for chemical composition representations.  




{\ttfamily \#include $<$composition\+\_\+abstract.\+h$>$}



Inheritance diagram for fourdst\+::composition\+::Composition\+Abstract\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=322pt]{classfourdst_1_1composition_1_1_composition_abstract__inherit__graph}
\end{center}
\end{figure}
\doxysubsubsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
using \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract_abd12f3a9a5b6217498ff19e25ee3ddb0}{iterator}} = \mbox{\hyperlink{classfourdst_1_1composition_1_1detail_1_1_composition_iterator}{detail\+::\+Composition\+Iterator}}$<$false$>$
\item 
using \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract_a0bb9772bc73d637950b6cf2e8e6afeb0}{const\+\_\+iterator}} = \mbox{\hyperlink{classfourdst_1_1composition_1_1detail_1_1_composition_iterator}{detail\+::\+Composition\+Iterator}}$<$true$>$
\end{DoxyCompactItemize}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract_a83ff77f3f390bb66c978e157d9bb6394}{\texorpdfstring{$\sim$}{\string~}\+Composition\+Abstract}} ()=default
\begin{DoxyCompactList}\small\item\em Virtual destructor. \end{DoxyCompactList}\item 
virtual bool \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract_a2e6c4d27d2b295b6be87c6964cac1e1e}{contains}} (const \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{fourdst\+::atomic\+::\+Species}} \&species) const noexcept=0
\begin{DoxyCompactList}\small\item\em Check if the composition contains the given species. \end{DoxyCompactList}\item 
virtual bool \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract_a6fe83824aefb045d8a5399e8ac9852f9}{contains}} (const std\+::string \&symbol) const =0
\begin{DoxyCompactList}\small\item\em Check if the composition contains the given species. \end{DoxyCompactList}\item 
virtual size\+\_\+t \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract_af7ec2eaa16a0c78d19728e32469cec06}{size}} () const noexcept=0
\item 
virtual std\+::set$<$ std\+::string $>$ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract_a94c2cadeae32ab19cee42fc1670c4c6c}{get\+Registered\+Symbols}} () const noexcept=0
\begin{DoxyCompactList}\small\item\em Get all registered chemical symbols in the composition. \end{DoxyCompactList}\item 
virtual const std\+::vector$<$ \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{atomic\+::\+Species}} $>$ \& \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract_ad17ae8649860ef4f7a949e7c9143c0ec}{get\+Registered\+Species}} () const noexcept=0
\begin{DoxyCompactList}\small\item\em Get all registered atomic species in the composition. \end{DoxyCompactList}\item 
virtual std\+::unordered\+\_\+map$<$ \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{fourdst\+::atomic\+::\+Species}}, double $>$ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract_a3e3248162611754ca4c54b9979f6664d}{get\+Mass\+Fraction}} () const noexcept=0
\begin{DoxyCompactList}\small\item\em Get the mass fraction for all registered symbols. \end{DoxyCompactList}\item 
virtual std\+::unordered\+\_\+map$<$ \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{fourdst\+::atomic\+::\+Species}}, double $>$ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract_a65bae043ffbf4514b2593ccb63c6e265}{get\+Number\+Fraction}} () const noexcept=0
\begin{DoxyCompactList}\small\item\em Get the number fraction for all registered symbols. \end{DoxyCompactList}\item 
virtual double \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract_a0ebe22344f785e5db693e04b9b598a5a}{get\+Mass\+Fraction}} (const std\+::string \&symbol) const =0
\begin{DoxyCompactList}\small\item\em Get the mass fraction for a given symbol. \end{DoxyCompactList}\item 
virtual double \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract_a0396f17ba252d053c0126323a76e9142}{get\+Mass\+Fraction}} (const \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{fourdst\+::atomic\+::\+Species}} \&species) const =0
\begin{DoxyCompactList}\small\item\em Get the mass fraction for a given species. \end{DoxyCompactList}\item 
virtual double \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract_af490daa6942717605093b4fca3e676b8}{get\+Number\+Fraction}} (const std\+::string \&symbol) const =0
\begin{DoxyCompactList}\small\item\em Get the number fraction for a given symbol. \end{DoxyCompactList}\item 
virtual double \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract_a71b351d6e69cf0d7e7c43409e1b13c4c}{get\+Number\+Fraction}} (const \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{fourdst\+::atomic\+::\+Species}} \&species) const =0
\begin{DoxyCompactList}\small\item\em Get the number fraction for a given species. \end{DoxyCompactList}\item 
virtual double \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract_a29613d8197cee96f764aeeaa3b7286f8}{get\+Molar\+Abundance}} (const std\+::string \&symbol) const =0
\begin{DoxyCompactList}\small\item\em Get the molar abundance for a given symbol. \end{DoxyCompactList}\item 
virtual double \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract_adf861bd58e80025b021af2949b41d126}{get\+Molar\+Abundance}} (const \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{fourdst\+::atomic\+::\+Species}} \&species) const =0
\begin{DoxyCompactList}\small\item\em Get the molar abundance for a given species. \end{DoxyCompactList}\item 
virtual double \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract_afedcef16ed403b95ce7f1e6756aa46e8}{get\+Mean\+Particle\+Mass}} () const noexcept=0
\begin{DoxyCompactList}\small\item\em Get the mean particle mass of the composition. \end{DoxyCompactList}\item 
virtual double \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract_ad0fcf2e51cca02c4224241828335db1a}{get\+Electron\+Abundance}} () const noexcept=0
\begin{DoxyCompactList}\small\item\em Get the electron abundance of the composition. \end{DoxyCompactList}\item 
virtual std\+::vector$<$ double $>$ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract_a752af872347c612bf3b43b1711c2cfc0}{get\+Mass\+Fraction\+Vector}} () const noexcept=0
\begin{DoxyCompactList}\small\item\em Get the mass fraction as a vector. \end{DoxyCompactList}\item 
virtual std\+::vector$<$ double $>$ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract_a83343286d738d101635b2a7f5b7d96ef}{get\+Number\+Fraction\+Vector}} () const noexcept=0
\begin{DoxyCompactList}\small\item\em Get the number fraction as a vector. \end{DoxyCompactList}\item 
virtual std\+::vector$<$ double $>$ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract_a657c12d36b2f44e44c32e86d5296c063}{get\+Molar\+Abundance\+Vector}} () const noexcept=0
\begin{DoxyCompactList}\small\item\em Get the molar abundance as a vector. \end{DoxyCompactList}\item 
virtual size\+\_\+t \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract_aebf28eab9c902a285589fe2ab7f3060f}{get\+Species\+Index}} (const std\+::string \&symbol) const =0
\begin{DoxyCompactList}\small\item\em Get the index of a species by symbol. \end{DoxyCompactList}\item 
virtual size\+\_\+t \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract_a5d04b801f152f7955b392710275105bc}{get\+Species\+Index}} (const \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{fourdst\+::atomic\+::\+Species}} \&species) const =0
\begin{DoxyCompactList}\small\item\em Get the index of a species. \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{atomic\+::\+Species}} \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract_a43138cbf3d399e8f278db742fe1b02a7}{get\+Species\+At\+Index}} (size\+\_\+t index) const =0
\begin{DoxyCompactList}\small\item\em Get the species at a given index. \end{DoxyCompactList}\item 
virtual std\+::unique\+\_\+ptr$<$ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract}{Composition\+Abstract}} $>$ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract_a81d5a4da267e24662ae90c6a29f3d0a1}{clone}} () const =0
\item 
virtual \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract_abd12f3a9a5b6217498ff19e25ee3ddb0}{iterator}} \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract_a643f2e1f843d8a6f81c9382278916fe5}{begin}} ()=0
\item 
virtual \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract_abd12f3a9a5b6217498ff19e25ee3ddb0}{iterator}} \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract_a9f903ec8d0444c7ed9178c09de902176}{end}} ()=0
\item 
virtual \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract_a0bb9772bc73d637950b6cf2e8e6afeb0}{const\+\_\+iterator}} \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract_a0a1845dab0dbf23399233cac7aeb05c1}{begin}} () const =0
\item 
virtual \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract_a0bb9772bc73d637950b6cf2e8e6afeb0}{const\+\_\+iterator}} \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract_a9ac49da6e4df7bee8aa7974e8fec8181}{end}} () const =0
\item 
virtual std\+::size\+\_\+t \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract_a2d5472a63e2dbfc94d7e4617b5660e23}{hash}} () const =0
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Abstract base class for chemical composition representations. 

The purpose of this class is to define a standard interface for all composition types. Children of this class are responsible for implementing the setter methods, but any object that is a child of \doxylink{classfourdst_1_1composition_1_1_composition_abstract}{Composition\+Abstract} will always have these getter methods.

This ensures that all derived composition classes provide a consistent API for querying composition properties, regardless of how the data is set or stored.

\begin{DoxyParagraph}{Example}

\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keyword}{class\ }MyComposition\ :\ \textcolor{keyword}{public}\ CompositionAbstract\ \{}
\DoxyCodeLine{\ \ \ \ \textcolor{comment}{//\ ...implement\ all\ pure\ virtual\ methods...}}
\DoxyCodeLine{\};}
\DoxyCodeLine{}
\DoxyCodeLine{MyComposition\ comp;}
\DoxyCodeLine{\textcolor{keywordflow}{if}\ (comp.hasSymbol(\textcolor{stringliteral}{"{}H"{}}))\ \{}
\DoxyCodeLine{\ \ \ \ \textcolor{keywordtype}{double}\ mf\ =\ comp.getMassFraction(\textcolor{stringliteral}{"{}H"{}});}
\DoxyCodeLine{\}}
\DoxyCodeLine{std::set<std::string>\ symbols\ =\ comp.getRegisteredSymbols();}

\end{DoxyCode}
 
\end{DoxyParagraph}


Definition at line \mbox{\hyperlink{composition__abstract_8h_source_l00036}{36}} of file \mbox{\hyperlink{composition__abstract_8h_source}{composition\+\_\+abstract.\+h}}.



\doxysubsection{Member Typedef Documentation}
\Hypertarget{classfourdst_1_1composition_1_1_composition_abstract_a0bb9772bc73d637950b6cf2e8e6afeb0}\index{fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}!const\_iterator@{const\_iterator}}
\index{const\_iterator@{const\_iterator}!fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}}
\doxysubsubsection{\texorpdfstring{const\_iterator}{const\_iterator}}
{\footnotesize\ttfamily \label{classfourdst_1_1composition_1_1_composition_abstract_a0bb9772bc73d637950b6cf2e8e6afeb0} 
using \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract_a0bb9772bc73d637950b6cf2e8e6afeb0}{fourdst\+::composition\+::\+Composition\+Abstract\+::const\+\_\+iterator}} = \mbox{\hyperlink{classfourdst_1_1composition_1_1detail_1_1_composition_iterator}{detail\+::\+Composition\+Iterator}}$<$true$>$}



Definition at line \mbox{\hyperlink{composition__abstract_8h_source_l00039}{39}} of file \mbox{\hyperlink{composition__abstract_8h_source}{composition\+\_\+abstract.\+h}}.

\Hypertarget{classfourdst_1_1composition_1_1_composition_abstract_abd12f3a9a5b6217498ff19e25ee3ddb0}\index{fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}!iterator@{iterator}}
\index{iterator@{iterator}!fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}}
\doxysubsubsection{\texorpdfstring{iterator}{iterator}}
{\footnotesize\ttfamily \label{classfourdst_1_1composition_1_1_composition_abstract_abd12f3a9a5b6217498ff19e25ee3ddb0} 
using \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract_abd12f3a9a5b6217498ff19e25ee3ddb0}{fourdst\+::composition\+::\+Composition\+Abstract\+::iterator}} = \mbox{\hyperlink{classfourdst_1_1composition_1_1detail_1_1_composition_iterator}{detail\+::\+Composition\+Iterator}}$<$false$>$}



Definition at line \mbox{\hyperlink{composition__abstract_8h_source_l00038}{38}} of file \mbox{\hyperlink{composition__abstract_8h_source}{composition\+\_\+abstract.\+h}}.



\doxysubsection{Constructor \& Destructor Documentation}
\Hypertarget{classfourdst_1_1composition_1_1_composition_abstract_a83ff77f3f390bb66c978e157d9bb6394}\index{fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}!````~CompositionAbstract@{\texorpdfstring{$\sim$}{\string~}CompositionAbstract}}
\index{````~CompositionAbstract@{\texorpdfstring{$\sim$}{\string~}CompositionAbstract}!fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}}
\doxysubsubsection{\texorpdfstring{\texorpdfstring{$\sim$}{\string~}CompositionAbstract()}{\string~CompositionAbstract()}}
{\footnotesize\ttfamily \label{classfourdst_1_1composition_1_1_composition_abstract_a83ff77f3f390bb66c978e157d9bb6394} 
virtual fourdst\+::composition\+::\+Composition\+Abstract\+::\texorpdfstring{$\sim$}{\string~}\+Composition\+Abstract (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}, {\ttfamily [default]}}



Virtual destructor. 



\doxysubsection{Member Function Documentation}
\Hypertarget{classfourdst_1_1composition_1_1_composition_abstract_a0a1845dab0dbf23399233cac7aeb05c1}\index{fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}!begin@{begin}}
\index{begin@{begin}!fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}}
\doxysubsubsection{\texorpdfstring{begin()}{begin()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{classfourdst_1_1composition_1_1_composition_abstract_a0a1845dab0dbf23399233cac7aeb05c1} 
virtual \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract_a0bb9772bc73d637950b6cf2e8e6afeb0}{const\+\_\+iterator}} fourdst\+::composition\+::\+Composition\+Abstract\+::begin (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [pure virtual]}}



Implemented in \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_ae4600dc915645fc1b50c67e0218b794d}{fourdst\+::composition\+::\+Composition}}, \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a125e06aaf1edfd035d7d102792a120d5}{fourdst\+::composition\+::\+Composition\+Decorator}}, and \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a047dae84149b92be5849c4294cd481de}{fourdst\+::composition\+::\+Masked\+Composition}}.

\Hypertarget{classfourdst_1_1composition_1_1_composition_abstract_a643f2e1f843d8a6f81c9382278916fe5}\index{fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}!begin@{begin}}
\index{begin@{begin}!fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}}
\doxysubsubsection{\texorpdfstring{begin()}{begin()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{classfourdst_1_1composition_1_1_composition_abstract_a643f2e1f843d8a6f81c9382278916fe5} 
virtual \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract_abd12f3a9a5b6217498ff19e25ee3ddb0}{iterator}} fourdst\+::composition\+::\+Composition\+Abstract\+::begin (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [pure virtual]}}



Implemented in \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a5bdb6ca3f734fae901b3d6179dbc17a0}{fourdst\+::composition\+::\+Composition}}, \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a34e7e9fd25cd4037ba359bc7a7236929}{fourdst\+::composition\+::\+Composition\+Decorator}}, and \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_aa01637b823d0127736cdc767284eb28d}{fourdst\+::composition\+::\+Masked\+Composition}}.

\Hypertarget{classfourdst_1_1composition_1_1_composition_abstract_a81d5a4da267e24662ae90c6a29f3d0a1}\index{fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}!clone@{clone}}
\index{clone@{clone}!fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}}
\doxysubsubsection{\texorpdfstring{clone()}{clone()}}
{\footnotesize\ttfamily \label{classfourdst_1_1composition_1_1_composition_abstract_a81d5a4da267e24662ae90c6a29f3d0a1} 
virtual std\+::unique\+\_\+ptr$<$ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract}{Composition\+Abstract}} $>$ fourdst\+::composition\+::\+Composition\+Abstract\+::clone (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [pure virtual]}}



Implemented in \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a5a1f5661a329ec7bc8b7e118ff9d6c25}{fourdst\+::composition\+::\+Composition}}, and \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a30f89ba71d9db6ad330c645d0a161164}{fourdst\+::composition\+::\+Masked\+Composition}}.

\Hypertarget{classfourdst_1_1composition_1_1_composition_abstract_a2e6c4d27d2b295b6be87c6964cac1e1e}\index{fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}!contains@{contains}}
\index{contains@{contains}!fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}}
\doxysubsubsection{\texorpdfstring{contains()}{contains()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{classfourdst_1_1composition_1_1_composition_abstract_a2e6c4d27d2b295b6be87c6964cac1e1e} 
virtual bool fourdst\+::composition\+::\+Composition\+Abstract\+::contains (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{fourdst\+::atomic\+::\+Species}} \&}]{species}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [pure virtual]}, {\ttfamily [noexcept]}}



Check if the composition contains the given species. 


\begin{DoxyParams}{Parameters}
{\em species} & The atomic species to check. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
True if the species is contained, false otherwise. 
\end{DoxyReturn}


Implemented in \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a194f715788e7921bd611579440de2ecd}{fourdst\+::composition\+::\+Composition}}, \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a811e91b7cc08f19b8c92de43fdb91401}{fourdst\+::composition\+::\+Composition\+Decorator}}, and \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a045cfdf1e771895df872a6da61c53966}{fourdst\+::composition\+::\+Masked\+Composition}}.

\Hypertarget{classfourdst_1_1composition_1_1_composition_abstract_a6fe83824aefb045d8a5399e8ac9852f9}\index{fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}!contains@{contains}}
\index{contains@{contains}!fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}}
\doxysubsubsection{\texorpdfstring{contains()}{contains()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{classfourdst_1_1composition_1_1_composition_abstract_a6fe83824aefb045d8a5399e8ac9852f9} 
virtual bool fourdst\+::composition\+::\+Composition\+Abstract\+::contains (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{symbol}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [pure virtual]}}



Check if the composition contains the given species. 


\begin{DoxyParams}{Parameters}
{\em symbol} & The symbol of the atomic species to check. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
True if the species is contained, false otherwise. 
\end{DoxyReturn}


Implemented in \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_ac3bfb56a2587215a59894e76d4867ede}{fourdst\+::composition\+::\+Composition}}, \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_af40ce87fce6fc0fae837bf8f31fec274}{fourdst\+::composition\+::\+Composition\+Decorator}}, and \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a83b73b24715d8a0fc29811653bb7c9a6}{fourdst\+::composition\+::\+Masked\+Composition}}.

\Hypertarget{classfourdst_1_1composition_1_1_composition_abstract_a9ac49da6e4df7bee8aa7974e8fec8181}\index{fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}!end@{end}}
\index{end@{end}!fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}}
\doxysubsubsection{\texorpdfstring{end()}{end()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{classfourdst_1_1composition_1_1_composition_abstract_a9ac49da6e4df7bee8aa7974e8fec8181} 
virtual \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract_a0bb9772bc73d637950b6cf2e8e6afeb0}{const\+\_\+iterator}} fourdst\+::composition\+::\+Composition\+Abstract\+::end (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [pure virtual]}}



Implemented in \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_aabcde53961ecadfa823de5a766f0da84}{fourdst\+::composition\+::\+Composition}}, \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a56d0561c510efa577dc9a295174827ec}{fourdst\+::composition\+::\+Composition\+Decorator}}, and \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a272b2164c1ad6efab7e86ed26efcbb96}{fourdst\+::composition\+::\+Masked\+Composition}}.

\Hypertarget{classfourdst_1_1composition_1_1_composition_abstract_a9f903ec8d0444c7ed9178c09de902176}\index{fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}!end@{end}}
\index{end@{end}!fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}}
\doxysubsubsection{\texorpdfstring{end()}{end()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{classfourdst_1_1composition_1_1_composition_abstract_a9f903ec8d0444c7ed9178c09de902176} 
virtual \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract_abd12f3a9a5b6217498ff19e25ee3ddb0}{iterator}} fourdst\+::composition\+::\+Composition\+Abstract\+::end (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [pure virtual]}}



Implemented in \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_aaa89050308dda5e51d4b47d18d54cb58}{fourdst\+::composition\+::\+Composition}}, \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_aaf47cdfcb7feb3991d6e151bbf2521ff}{fourdst\+::composition\+::\+Composition\+Decorator}}, and \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_aae6a6799ee6877064728bd880348420d}{fourdst\+::composition\+::\+Masked\+Composition}}.

\Hypertarget{classfourdst_1_1composition_1_1_composition_abstract_ad0fcf2e51cca02c4224241828335db1a}\index{fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}!getElectronAbundance@{getElectronAbundance}}
\index{getElectronAbundance@{getElectronAbundance}!fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}}
\doxysubsubsection{\texorpdfstring{getElectronAbundance()}{getElectronAbundance()}}
{\footnotesize\ttfamily \label{classfourdst_1_1composition_1_1_composition_abstract_ad0fcf2e51cca02c4224241828335db1a} 
virtual double fourdst\+::composition\+::\+Composition\+Abstract\+::get\+Electron\+Abundance (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [pure virtual]}, {\ttfamily [noexcept]}}



Get the electron abundance of the composition. 

\begin{DoxyReturn}{Returns}
The electron abundance. 
\end{DoxyReturn}


Implemented in \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a90fc71d1fe03017ee4c7a1cac69d24fb}{fourdst\+::composition\+::\+Composition}}, \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a39f1df55aff6650c653e62c0e9a2cc5e}{fourdst\+::composition\+::\+Composition\+Decorator}}, and \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a38fc871469f94b3c07ba18a00548085d}{fourdst\+::composition\+::\+Masked\+Composition}}.

\Hypertarget{classfourdst_1_1composition_1_1_composition_abstract_a3e3248162611754ca4c54b9979f6664d}\index{fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}!getMassFraction@{getMassFraction}}
\index{getMassFraction@{getMassFraction}!fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}}
\doxysubsubsection{\texorpdfstring{getMassFraction()}{getMassFraction()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily \label{classfourdst_1_1composition_1_1_composition_abstract_a3e3248162611754ca4c54b9979f6664d} 
virtual std\+::unordered\+\_\+map$<$ \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{fourdst\+::atomic\+::\+Species}}, double $>$ fourdst\+::composition\+::\+Composition\+Abstract\+::get\+Mass\+Fraction (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [pure virtual]}, {\ttfamily [noexcept]}}



Get the mass fraction for all registered symbols. 

\begin{DoxyReturn}{Returns}
An unordered map from symbol to mass fraction. 
\end{DoxyReturn}


Implemented in \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a9ea2b673341fdc67afeb0f0517a54c8c}{fourdst\+::composition\+::\+Composition}}, \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a8c1a4cd69465ef5b65bea547ed919ca5}{fourdst\+::composition\+::\+Composition\+Decorator}}, and \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a2383b69a4b1dbe1c7be01bb826b06c07}{fourdst\+::composition\+::\+Masked\+Composition}}.

\Hypertarget{classfourdst_1_1composition_1_1_composition_abstract_a0396f17ba252d053c0126323a76e9142}\index{fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}!getMassFraction@{getMassFraction}}
\index{getMassFraction@{getMassFraction}!fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}}
\doxysubsubsection{\texorpdfstring{getMassFraction()}{getMassFraction()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily \label{classfourdst_1_1composition_1_1_composition_abstract_a0396f17ba252d053c0126323a76e9142} 
virtual double fourdst\+::composition\+::\+Composition\+Abstract\+::get\+Mass\+Fraction (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{fourdst\+::atomic\+::\+Species}} \&}]{species}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [pure virtual]}}



Get the mass fraction for a given species. 


\begin{DoxyParams}{Parameters}
{\em species} & The atomic species. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The mass fraction for the species. 
\end{DoxyReturn}


Implemented in \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_ae8fe4e7158f8317bf29b5cd0c65a9524}{fourdst\+::composition\+::\+Composition}}, \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a12a5cdb232ce4ce30980a016d20b4a43}{fourdst\+::composition\+::\+Composition\+Decorator}}, and \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a81cab92e09924db1804e9b943611648a}{fourdst\+::composition\+::\+Masked\+Composition}}.

\Hypertarget{classfourdst_1_1composition_1_1_composition_abstract_a0ebe22344f785e5db693e04b9b598a5a}\index{fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}!getMassFraction@{getMassFraction}}
\index{getMassFraction@{getMassFraction}!fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}}
\doxysubsubsection{\texorpdfstring{getMassFraction()}{getMassFraction()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily \label{classfourdst_1_1composition_1_1_composition_abstract_a0ebe22344f785e5db693e04b9b598a5a} 
virtual double fourdst\+::composition\+::\+Composition\+Abstract\+::get\+Mass\+Fraction (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{symbol}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [pure virtual]}}



Get the mass fraction for a given symbol. 


\begin{DoxyParams}{Parameters}
{\em symbol} & The chemical symbol. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The mass fraction for the symbol. 
\end{DoxyReturn}


Implemented in \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_ae5d8d21632fca2b35b0898f2b205cd10}{fourdst\+::composition\+::\+Composition}}, \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a52591cb38ab7712fc459eeb48b9d2eaf}{fourdst\+::composition\+::\+Composition\+Decorator}}, and \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_ab2a8d9eb543eb712f9a0bbabcc94383a}{fourdst\+::composition\+::\+Masked\+Composition}}.

\Hypertarget{classfourdst_1_1composition_1_1_composition_abstract_a752af872347c612bf3b43b1711c2cfc0}\index{fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}!getMassFractionVector@{getMassFractionVector}}
\index{getMassFractionVector@{getMassFractionVector}!fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}}
\doxysubsubsection{\texorpdfstring{getMassFractionVector()}{getMassFractionVector()}}
{\footnotesize\ttfamily \label{classfourdst_1_1composition_1_1_composition_abstract_a752af872347c612bf3b43b1711c2cfc0} 
virtual std\+::vector$<$ double $>$ fourdst\+::composition\+::\+Composition\+Abstract\+::get\+Mass\+Fraction\+Vector (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [pure virtual]}, {\ttfamily [noexcept]}}



Get the mass fraction as a vector. 

\begin{DoxyReturn}{Returns}
A vector of mass fractions for all species. 
\end{DoxyReturn}


Implemented in \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_af4f44aaf8b7e0d63872a70b5e2131369}{fourdst\+::composition\+::\+Composition}}, \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a4d2795fa73ec3f5185232d4cca5684a6}{fourdst\+::composition\+::\+Composition\+Decorator}}, and \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a7655d278224486e762d22d0501187f58}{fourdst\+::composition\+::\+Masked\+Composition}}.

\Hypertarget{classfourdst_1_1composition_1_1_composition_abstract_afedcef16ed403b95ce7f1e6756aa46e8}\index{fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}!getMeanParticleMass@{getMeanParticleMass}}
\index{getMeanParticleMass@{getMeanParticleMass}!fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}}
\doxysubsubsection{\texorpdfstring{getMeanParticleMass()}{getMeanParticleMass()}}
{\footnotesize\ttfamily \label{classfourdst_1_1composition_1_1_composition_abstract_afedcef16ed403b95ce7f1e6756aa46e8} 
virtual double fourdst\+::composition\+::\+Composition\+Abstract\+::get\+Mean\+Particle\+Mass (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [pure virtual]}, {\ttfamily [noexcept]}}



Get the mean particle mass of the composition. 

\begin{DoxyReturn}{Returns}
The mean particle mass. 
\end{DoxyReturn}


Implemented in \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_afbbb5e51ad5ae5c0fa6bc0094195aecd}{fourdst\+::composition\+::\+Composition}}, \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a3b8f0f8fd75888d001177deff39f7405}{fourdst\+::composition\+::\+Composition\+Decorator}}, and \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a3f50005318f2aa7bf7c3cd5b1d2aef7a}{fourdst\+::composition\+::\+Masked\+Composition}}.

\Hypertarget{classfourdst_1_1composition_1_1_composition_abstract_adf861bd58e80025b021af2949b41d126}\index{fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}!getMolarAbundance@{getMolarAbundance}}
\index{getMolarAbundance@{getMolarAbundance}!fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}}
\doxysubsubsection{\texorpdfstring{getMolarAbundance()}{getMolarAbundance()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{classfourdst_1_1composition_1_1_composition_abstract_adf861bd58e80025b021af2949b41d126} 
virtual double fourdst\+::composition\+::\+Composition\+Abstract\+::get\+Molar\+Abundance (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{fourdst\+::atomic\+::\+Species}} \&}]{species}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [pure virtual]}}



Get the molar abundance for a given species. 


\begin{DoxyParams}{Parameters}
{\em species} & The atomic species. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The molar abundance for the species. 
\end{DoxyReturn}


Implemented in \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a78a43e9e77a9c1b0f27c50b9feb52449}{fourdst\+::composition\+::\+Composition}}, \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a57a1cc37e96234477b21866881fbdbaa}{fourdst\+::composition\+::\+Composition\+Decorator}}, and \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a9766e12e53e504aab985e46dc4e0d6d6}{fourdst\+::composition\+::\+Masked\+Composition}}.

\Hypertarget{classfourdst_1_1composition_1_1_composition_abstract_a29613d8197cee96f764aeeaa3b7286f8}\index{fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}!getMolarAbundance@{getMolarAbundance}}
\index{getMolarAbundance@{getMolarAbundance}!fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}}
\doxysubsubsection{\texorpdfstring{getMolarAbundance()}{getMolarAbundance()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{classfourdst_1_1composition_1_1_composition_abstract_a29613d8197cee96f764aeeaa3b7286f8} 
virtual double fourdst\+::composition\+::\+Composition\+Abstract\+::get\+Molar\+Abundance (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{symbol}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [pure virtual]}}



Get the molar abundance for a given symbol. 


\begin{DoxyParams}{Parameters}
{\em symbol} & The chemical symbol. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The molar abundance for the symbol. 
\end{DoxyReturn}


Implemented in \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_add67a92d73e3a57a2bbdb52bc9ca3bfe}{fourdst\+::composition\+::\+Composition}}, \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a0c46d440cafd9ae2d04589ece5fd41fb}{fourdst\+::composition\+::\+Composition\+Decorator}}, and \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a3064af4fb0b59dce5b484d5657d25506}{fourdst\+::composition\+::\+Masked\+Composition}}.

\Hypertarget{classfourdst_1_1composition_1_1_composition_abstract_a657c12d36b2f44e44c32e86d5296c063}\index{fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}!getMolarAbundanceVector@{getMolarAbundanceVector}}
\index{getMolarAbundanceVector@{getMolarAbundanceVector}!fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}}
\doxysubsubsection{\texorpdfstring{getMolarAbundanceVector()}{getMolarAbundanceVector()}}
{\footnotesize\ttfamily \label{classfourdst_1_1composition_1_1_composition_abstract_a657c12d36b2f44e44c32e86d5296c063} 
virtual std\+::vector$<$ double $>$ fourdst\+::composition\+::\+Composition\+Abstract\+::get\+Molar\+Abundance\+Vector (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [pure virtual]}, {\ttfamily [noexcept]}}



Get the molar abundance as a vector. 

\begin{DoxyReturn}{Returns}
A vector of molar abundances for all species. 
\end{DoxyReturn}


Implemented in \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abcb391f5fca2b636127e48e681e4c3ee}{fourdst\+::composition\+::\+Composition}}, \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a80e528239b4a197985e6993c8b6dab48}{fourdst\+::composition\+::\+Composition\+Decorator}}, and \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_ac2f827bedae5405ebab7108b2e4397c5}{fourdst\+::composition\+::\+Masked\+Composition}}.

\Hypertarget{classfourdst_1_1composition_1_1_composition_abstract_a65bae043ffbf4514b2593ccb63c6e265}\index{fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}!getNumberFraction@{getNumberFraction}}
\index{getNumberFraction@{getNumberFraction}!fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}}
\doxysubsubsection{\texorpdfstring{getNumberFraction()}{getNumberFraction()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily \label{classfourdst_1_1composition_1_1_composition_abstract_a65bae043ffbf4514b2593ccb63c6e265} 
virtual std\+::unordered\+\_\+map$<$ \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{fourdst\+::atomic\+::\+Species}}, double $>$ fourdst\+::composition\+::\+Composition\+Abstract\+::get\+Number\+Fraction (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [pure virtual]}, {\ttfamily [noexcept]}}



Get the number fraction for all registered symbols. 

\begin{DoxyReturn}{Returns}
An unordered map from symbol to number fraction. 
\end{DoxyReturn}


Implemented in \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a1f87ed64a1be9a6091c852131d24e476}{fourdst\+::composition\+::\+Composition}}, \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a66724877d66017bac3dc3cc784dda57c}{fourdst\+::composition\+::\+Composition\+Decorator}}, and \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a2c299c44f385b65202ed0d475402562a}{fourdst\+::composition\+::\+Masked\+Composition}}.

\Hypertarget{classfourdst_1_1composition_1_1_composition_abstract_a71b351d6e69cf0d7e7c43409e1b13c4c}\index{fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}!getNumberFraction@{getNumberFraction}}
\index{getNumberFraction@{getNumberFraction}!fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}}
\doxysubsubsection{\texorpdfstring{getNumberFraction()}{getNumberFraction()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily \label{classfourdst_1_1composition_1_1_composition_abstract_a71b351d6e69cf0d7e7c43409e1b13c4c} 
virtual double fourdst\+::composition\+::\+Composition\+Abstract\+::get\+Number\+Fraction (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{fourdst\+::atomic\+::\+Species}} \&}]{species}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [pure virtual]}}



Get the number fraction for a given species. 


\begin{DoxyParams}{Parameters}
{\em species} & The atomic species. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The number fraction for the species. 
\end{DoxyReturn}


Implemented in \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a1aa79993925f16ba3c30a376aa39161b}{fourdst\+::composition\+::\+Composition}}, \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a92c3d23d632f242e8b5526b343617f67}{fourdst\+::composition\+::\+Composition\+Decorator}}, and \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a7cbb41a5b9e8d49c85bcbc821c3ff47e}{fourdst\+::composition\+::\+Masked\+Composition}}.

\Hypertarget{classfourdst_1_1composition_1_1_composition_abstract_af490daa6942717605093b4fca3e676b8}\index{fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}!getNumberFraction@{getNumberFraction}}
\index{getNumberFraction@{getNumberFraction}!fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}}
\doxysubsubsection{\texorpdfstring{getNumberFraction()}{getNumberFraction()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily \label{classfourdst_1_1composition_1_1_composition_abstract_af490daa6942717605093b4fca3e676b8} 
virtual double fourdst\+::composition\+::\+Composition\+Abstract\+::get\+Number\+Fraction (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{symbol}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [pure virtual]}}



Get the number fraction for a given symbol. 


\begin{DoxyParams}{Parameters}
{\em symbol} & The chemical symbol. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The number fraction for the symbol. 
\end{DoxyReturn}


Implemented in \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a34f71d4d8f0297c576fd62fabd490305}{fourdst\+::composition\+::\+Composition}}, \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a0ff3454e625043c76131a1206d9293c6}{fourdst\+::composition\+::\+Composition\+Decorator}}, and \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_af4f65f7cad735494aa5010cf0832f23b}{fourdst\+::composition\+::\+Masked\+Composition}}.

\Hypertarget{classfourdst_1_1composition_1_1_composition_abstract_a83343286d738d101635b2a7f5b7d96ef}\index{fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}!getNumberFractionVector@{getNumberFractionVector}}
\index{getNumberFractionVector@{getNumberFractionVector}!fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}}
\doxysubsubsection{\texorpdfstring{getNumberFractionVector()}{getNumberFractionVector()}}
{\footnotesize\ttfamily \label{classfourdst_1_1composition_1_1_composition_abstract_a83343286d738d101635b2a7f5b7d96ef} 
virtual std\+::vector$<$ double $>$ fourdst\+::composition\+::\+Composition\+Abstract\+::get\+Number\+Fraction\+Vector (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [pure virtual]}, {\ttfamily [noexcept]}}



Get the number fraction as a vector. 

\begin{DoxyReturn}{Returns}
A vector of number fractions for all species. 
\end{DoxyReturn}


Implemented in \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_ae4f72972cf4d1ff422d0790080e11473}{fourdst\+::composition\+::\+Composition}}, \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a72ffd49c3b3e7f3f22ed28ceb2169cb5}{fourdst\+::composition\+::\+Composition\+Decorator}}, and \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_ad28b1f5c98bd25378c24c732d74deab4}{fourdst\+::composition\+::\+Masked\+Composition}}.

\Hypertarget{classfourdst_1_1composition_1_1_composition_abstract_ad17ae8649860ef4f7a949e7c9143c0ec}\index{fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}!getRegisteredSpecies@{getRegisteredSpecies}}
\index{getRegisteredSpecies@{getRegisteredSpecies}!fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}}
\doxysubsubsection{\texorpdfstring{getRegisteredSpecies()}{getRegisteredSpecies()}}
{\footnotesize\ttfamily \label{classfourdst_1_1composition_1_1_composition_abstract_ad17ae8649860ef4f7a949e7c9143c0ec} 
virtual const std\+::vector$<$ \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{atomic\+::\+Species}} $>$ \& fourdst\+::composition\+::\+Composition\+Abstract\+::get\+Registered\+Species (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [pure virtual]}, {\ttfamily [noexcept]}}



Get all registered atomic species in the composition. 

\begin{DoxyReturn}{Returns}
A set of registered atomic species. 
\end{DoxyReturn}


Implemented in \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_af4b01ec4140e278d92c18f139f69ab1f}{fourdst\+::composition\+::\+Composition}}, \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a0cdc50a57e09bf8461839d08eb4ae212}{fourdst\+::composition\+::\+Composition\+Decorator}}, and \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a44fddc3b8d34b76114afafbdc9b0ec6d}{fourdst\+::composition\+::\+Masked\+Composition}}.

\Hypertarget{classfourdst_1_1composition_1_1_composition_abstract_a94c2cadeae32ab19cee42fc1670c4c6c}\index{fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}!getRegisteredSymbols@{getRegisteredSymbols}}
\index{getRegisteredSymbols@{getRegisteredSymbols}!fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}}
\doxysubsubsection{\texorpdfstring{getRegisteredSymbols()}{getRegisteredSymbols()}}
{\footnotesize\ttfamily \label{classfourdst_1_1composition_1_1_composition_abstract_a94c2cadeae32ab19cee42fc1670c4c6c} 
virtual std\+::set$<$ std\+::string $>$ fourdst\+::composition\+::\+Composition\+Abstract\+::get\+Registered\+Symbols (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [pure virtual]}, {\ttfamily [noexcept]}}



Get all registered chemical symbols in the composition. 

\begin{DoxyReturn}{Returns}
A set of registered chemical symbols. 
\end{DoxyReturn}


Implemented in \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a3ae885c28580ae15be8c16614bef3b0e}{fourdst\+::composition\+::\+Composition}}, \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a85acea9a107432dfefcbfffe4c3c7c62}{fourdst\+::composition\+::\+Composition\+Decorator}}, and \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a9b33507e9820b7fd55209d3624388077}{fourdst\+::composition\+::\+Masked\+Composition}}.

\Hypertarget{classfourdst_1_1composition_1_1_composition_abstract_a43138cbf3d399e8f278db742fe1b02a7}\index{fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}!getSpeciesAtIndex@{getSpeciesAtIndex}}
\index{getSpeciesAtIndex@{getSpeciesAtIndex}!fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}}
\doxysubsubsection{\texorpdfstring{getSpeciesAtIndex()}{getSpeciesAtIndex()}}
{\footnotesize\ttfamily \label{classfourdst_1_1composition_1_1_composition_abstract_a43138cbf3d399e8f278db742fe1b02a7} 
virtual \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{atomic\+::\+Species}} fourdst\+::composition\+::\+Composition\+Abstract\+::get\+Species\+At\+Index (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{index}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [pure virtual]}}



Get the species at a given index. 


\begin{DoxyParams}{Parameters}
{\em index} & The index of the species. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The atomic species at the specified index. 
\end{DoxyReturn}


Implemented in \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_ae4f854ded38f5e6fcd157a74a57cbf0c}{fourdst\+::composition\+::\+Composition}}, \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a996066b4bf67e415eb2dd3ea7aed68bd}{fourdst\+::composition\+::\+Composition\+Decorator}}, and \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_acc9d3af0aad6c6209c9aefd94f86996b}{fourdst\+::composition\+::\+Masked\+Composition}}.

\Hypertarget{classfourdst_1_1composition_1_1_composition_abstract_a5d04b801f152f7955b392710275105bc}\index{fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}!getSpeciesIndex@{getSpeciesIndex}}
\index{getSpeciesIndex@{getSpeciesIndex}!fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}}
\doxysubsubsection{\texorpdfstring{getSpeciesIndex()}{getSpeciesIndex()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{classfourdst_1_1composition_1_1_composition_abstract_a5d04b801f152f7955b392710275105bc} 
virtual size\+\_\+t fourdst\+::composition\+::\+Composition\+Abstract\+::get\+Species\+Index (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{fourdst\+::atomic\+::\+Species}} \&}]{species}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [pure virtual]}}



Get the index of a species. 


\begin{DoxyParams}{Parameters}
{\em species} & The atomic species. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The index of the species. 
\end{DoxyReturn}


Implemented in \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a3d220b42fa06d7d3a43944ee2b8f6a5f}{fourdst\+::composition\+::\+Composition}}, \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_ab02b459d8ce7f36a0a1c6058c013a75c}{fourdst\+::composition\+::\+Composition\+Decorator}}, and \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a395e5b14cd2a9f9d467fea25542f8ebd}{fourdst\+::composition\+::\+Masked\+Composition}}.

\Hypertarget{classfourdst_1_1composition_1_1_composition_abstract_aebf28eab9c902a285589fe2ab7f3060f}\index{fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}!getSpeciesIndex@{getSpeciesIndex}}
\index{getSpeciesIndex@{getSpeciesIndex}!fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}}
\doxysubsubsection{\texorpdfstring{getSpeciesIndex()}{getSpeciesIndex()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{classfourdst_1_1composition_1_1_composition_abstract_aebf28eab9c902a285589fe2ab7f3060f} 
virtual size\+\_\+t fourdst\+::composition\+::\+Composition\+Abstract\+::get\+Species\+Index (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{symbol}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [pure virtual]}}



Get the index of a species by symbol. 


\begin{DoxyParams}{Parameters}
{\em symbol} & The chemical symbol. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The index of the species. 
\end{DoxyReturn}


Implemented in \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a0d94f62402bb90b5d12679faeaa8c5d7}{fourdst\+::composition\+::\+Composition}}, \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a9b7e6388d9a73c05ddd34660bde43867}{fourdst\+::composition\+::\+Composition\+Decorator}}, and \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a7277650debc78e081963663557de73eb}{fourdst\+::composition\+::\+Masked\+Composition}}.

\Hypertarget{classfourdst_1_1composition_1_1_composition_abstract_a2d5472a63e2dbfc94d7e4617b5660e23}\index{fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}!hash@{hash}}
\index{hash@{hash}!fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}}
\doxysubsubsection{\texorpdfstring{hash()}{hash()}}
{\footnotesize\ttfamily \label{classfourdst_1_1composition_1_1_composition_abstract_a2d5472a63e2dbfc94d7e4617b5660e23} 
virtual std\+::size\+\_\+t fourdst\+::composition\+::\+Composition\+Abstract\+::hash (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [pure virtual]}}



Implemented in \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a5b3631fa33b0c6809ad652b0e31663a1}{fourdst\+::composition\+::\+Composition}}, and \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a0cff238d7aec2db1f7c509d199b56afb}{fourdst\+::composition\+::\+Masked\+Composition}}.

\Hypertarget{classfourdst_1_1composition_1_1_composition_abstract_af7ec2eaa16a0c78d19728e32469cec06}\index{fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}!size@{size}}
\index{size@{size}!fourdst::composition::CompositionAbstract@{fourdst::composition::CompositionAbstract}}
\doxysubsubsection{\texorpdfstring{size()}{size()}}
{\footnotesize\ttfamily \label{classfourdst_1_1composition_1_1_composition_abstract_af7ec2eaa16a0c78d19728e32469cec06} 
virtual size\+\_\+t fourdst\+::composition\+::\+Composition\+Abstract\+::size (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [pure virtual]}, {\ttfamily [noexcept]}}



Implemented in \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a9d177d36b728442bcbd8cb66712c7c75}{fourdst\+::composition\+::\+Composition}}, \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_af70b703b6b946d959cdd5cd15e853a9d}{fourdst\+::composition\+::\+Composition\+Decorator}}, and \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a6b6c7a9ad6293558ddc8834d22f4bc62}{fourdst\+::composition\+::\+Masked\+Composition}}.



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
src/composition/include/fourdst/composition/\mbox{\hyperlink{composition__abstract_8h}{composition\+\_\+abstract.\+h}}\end{DoxyCompactItemize}
