\doxysection{composition.\+h}
\hypertarget{composition_8h_source}{}\label{composition_8h_source}\index{src/composition/include/fourdst/composition/composition.h@{src/composition/include/fourdst/composition/composition.h}}
\mbox{\hyperlink{composition_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00001}00001\ \textcolor{comment}{/*\ ***********************************************************************}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00002}00002\ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00003}00003\ \textcolor{comment}{//\ \ \ Copyright\ (C)\ 2025\ -\/-\/\ The\ 4D-\/STAR\ Collaboration}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00004}00004\ \textcolor{comment}{//\ \ \ File\ Author:\ Emily\ Boudreaux}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00005}00005\ \textcolor{comment}{//\ \ \ Last\ Modified:\ March\ 26,\ 2025}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00006}00006\ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00007}00007\ \textcolor{comment}{//\ \ \ 4DSSE\ is\ free\ software;\ you\ can\ use\ it\ and/or\ modify}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00008}00008\ \textcolor{comment}{//\ \ \ it\ under\ the\ terms\ and\ restrictions\ the\ GNU\ General\ Library\ Public}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00009}00009\ \textcolor{comment}{//\ \ \ License\ version\ 3\ (GPLv3)\ as\ published\ by\ the\ Free\ Software\ Foundation.}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00010}00010\ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00011}00011\ \textcolor{comment}{//\ \ \ 4DSSE\ is\ distributed\ in\ the\ hope\ that\ it\ will\ be\ useful,}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00012}00012\ \textcolor{comment}{//\ \ \ but\ WITHOUT\ ANY\ WARRANTY;\ without\ even\ the\ implied\ warranty\ of}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00013}00013\ \textcolor{comment}{//\ \ \ MERCHANTABILITY\ or\ FITNESS\ FOR\ A\ PARTICULAR\ PURPOSE.}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00014}00014\ \textcolor{comment}{//\ \ \ See\ the\ GNU\ Library\ General\ Public\ License\ for\ more\ details.}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00015}00015\ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00016}00016\ \textcolor{comment}{//\ \ \ You\ should\ have\ received\ a\ copy\ of\ the\ GNU\ Library\ General\ Public\ License}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00017}00017\ \textcolor{comment}{//\ \ \ along\ with\ this\ software;\ if\ not,\ write\ to\ the\ Free\ Software}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00018}00018\ \textcolor{comment}{//\ \ \ Foundation,\ Inc.,\ 59\ Temple\ Place,\ Suite\ 330,\ Boston,\ MA\ 02111-\/1307\ USA}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00019}00019\ \textcolor{comment}{//}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00020}00020\ \textcolor{comment}{//\ ***********************************************************************\ */}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00021}00021\ \textcolor{preprocessor}{\#pragma\ once}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00022}00022\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00023}00023\ \textcolor{preprocessor}{\#include\ <string>}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00024}00024\ \textcolor{preprocessor}{\#include\ <unordered\_map>}}
\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\ <utility>}}
\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{atomic_species_8h}{fourdst/composition/atomicSpecies.h}}"{}}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00032}00032\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00033}\mbox{\hyperlink{namespacefourdst_1_1composition}{00033}}\ \textcolor{keyword}{namespace\ }\mbox{\hyperlink{namespacefourdst_1_1composition}{fourdst::composition}}\ \{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00043}\mbox{\hyperlink{structfourdst_1_1composition_1_1_canonical_composition}{00043}}\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structfourdst_1_1composition_1_1_canonical_composition}{CanonicalComposition}}\ \{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00044}\mbox{\hyperlink{structfourdst_1_1composition_1_1_canonical_composition_abe5b01574242f8eaabd00c3d653291f7}{00044}}\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_canonical_composition_abe5b01574242f8eaabd00c3d653291f7}{X}}\ =\ 0.0;\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00045}\mbox{\hyperlink{structfourdst_1_1composition_1_1_canonical_composition_a93927bfccc5d2b3906565d092ed4f7f4}{00045}}\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_canonical_composition_a93927bfccc5d2b3906565d092ed4f7f4}{Y}}\ =\ 0.0;\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00046}\mbox{\hyperlink{structfourdst_1_1composition_1_1_canonical_composition_ae1981f5ddd36abd17a4a69fa1f43de18}{00046}}\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_canonical_composition_ae1981f5ddd36abd17a4a69fa1f43de18}{Z}}\ =\ 0.0;\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00047}00047\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00054}\mbox{\hyperlink{structfourdst_1_1composition_1_1_canonical_composition_a6e447cb601af6bcbd09e290aef759672}{00054}}\ \ \ \ \ \ \ \ \ \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_l00055}00055\ \ \ \ \ \ \ \ \ \ \ \ \ os\ <<\ \textcolor{stringliteral}{"{}<CanonicalComposition:\ "{}}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00056}00056\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ <<\ \textcolor{stringliteral}{"{}X\ =\ "{}}\ <<\ \mbox{\hyperlink{namespacefourdst_1_1composition}{composition}}.X\ <<\ \textcolor{stringliteral}{"{},\ "{}}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00057}00057\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ <<\ \textcolor{stringliteral}{"{}Y\ =\ "{}}\ <<\ \mbox{\hyperlink{namespacefourdst_1_1composition}{composition}}.Y\ <<\ \textcolor{stringliteral}{"{},\ "{}}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00058}00058\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ <<\ \textcolor{stringliteral}{"{}Z\ =\ "{}}\ <<\ \mbox{\hyperlink{namespacefourdst_1_1composition}{composition}}.Z\ <<\ \textcolor{stringliteral}{"{}>"{}};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00059}00059\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ os;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00060}00060\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00061}00061\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00062}00062\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00069}\mbox{\hyperlink{structfourdst_1_1composition_1_1_global_composition}{00069}}\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structfourdst_1_1composition_1_1_global_composition}{GlobalComposition}}\ \{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00070}\mbox{\hyperlink{structfourdst_1_1composition_1_1_global_composition_a0df6ecfe28d13cbffd0abcbfec9aee41}{00070}}\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_global_composition_a0df6ecfe28d13cbffd0abcbfec9aee41}{specificNumberDensity}};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00071}\mbox{\hyperlink{structfourdst_1_1composition_1_1_global_composition_a9c35810d965841a755da9ce4644a2f1b}{00071}}\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_global_composition_a9c35810d965841a755da9ce4644a2f1b}{meanParticleMass}};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00072}00072\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00073}00073\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Overload\ the\ output\ stream\ operator\ for\ GlobalComposition}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00074}00074\ \ \ \ \ \ \ \ \ \textcolor{keyword}{friend}\ std::ostream\&\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_global_composition_a3c072a749c3648607771ac9105181f26}{operator<<}}(std::ostream\&\ os,\ \textcolor{keyword}{const}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_global_composition}{GlobalComposition}}\&\ comp);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00075}00075\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00076}00076\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00083}\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry}{00083}}\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a1cccb94c150dd1dcde860f55fbeaf2bd}{CompositionEntry}}\ \{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00084}\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_ac273debdba6a1b3ac0f11698c399d38e}{00084}}\ \ \ \ \ \ \ \ \ std::string\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_ac273debdba6a1b3ac0f11698c399d38e}{m\_symbol}};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00085}\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a79039cbdc76b4401eb2ce44b85467503}{00085}}\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{atomic::Species}}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a79039cbdc76b4401eb2ce44b85467503}{m\_isotope}};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00086}\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a1e860519bea86793413ed67c76d18c8b}{00086}}\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a1e860519bea86793413ed67c76d18c8b}{m\_massFracMode}}\ =\ \textcolor{keyword}{true};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00087}00087\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00088}\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_adc20165bf94e18eea3458003025579ac}{00088}}\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_adc20165bf94e18eea3458003025579ac}{m\_massFraction}}\ =\ 0.0;\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00089}\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a2b5e245f7dabb11076efdbe1ed516d9f}{00089}}\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a2b5e245f7dabb11076efdbe1ed516d9f}{m\_numberFraction}}\ =\ 0.0;\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00090}\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a0498d707d8ea78be39283786c10657ef}{00090}}\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a0498d707d8ea78be39283786c10657ef}{m\_relAbundance}}\ =\ 0.0;\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00091}00091\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00092}\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a391e899874cd7ef299a3ae1f64c016d2}{00092}}\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a391e899874cd7ef299a3ae1f64c016d2}{m\_initialized}}\ =\ \textcolor{keyword}{false};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00093}00093\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00097}00097\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a1cccb94c150dd1dcde860f55fbeaf2bd}{CompositionEntry}}();}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00098}00098\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00110}00110\ \ \ \ \ \ \ \ \ \textcolor{keyword}{explicit}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a1cccb94c150dd1dcde860f55fbeaf2bd}{CompositionEntry}}(\textcolor{keyword}{const}\ std::string\&\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a50d18b4c27611fa9314dd756af54c2f0}{symbol}},\ \textcolor{keywordtype}{bool}\ massFracMode=\textcolor{keyword}{true});}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00111}00111\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00116}00116\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a1cccb94c150dd1dcde860f55fbeaf2bd}{CompositionEntry}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a1cccb94c150dd1dcde860f55fbeaf2bd}{CompositionEntry}}\&\ entry);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00117}00117\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00124}00124\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a5885a0e33687bceb15b225a00163e9d3}{setSpecies}}(\textcolor{keyword}{const}\ std::string\&\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a50d18b4c27611fa9314dd756af54c2f0}{symbol}});}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00125}00125\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00130}00130\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::string\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a50d18b4c27611fa9314dd756af54c2f0}{symbol}}()\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00131}00131\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00138}00138\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a66cb086719d7f654869bd7b0cee87ffc}{mass\_fraction}}()\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00139}00139\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00145}00145\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a66cb086719d7f654869bd7b0cee87ffc}{mass\_fraction}}(\textcolor{keywordtype}{double}\ meanMolarMass)\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00146}00146\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00153}00153\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a2d55492d285068d4a64db5602dfb1c78}{number\_fraction}}()\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00154}00154\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00160}00160\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a2d55492d285068d4a64db5602dfb1c78}{number\_fraction}}(\textcolor{keywordtype}{double}\ totalMoles)\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00161}00161\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00166}00166\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_ab6619d23e111905d1e3ab16ee822d96c}{rel\_abundance}}()\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00167}00167\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00172}00172\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{atomic::Species}}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_af4f8d292d18755670a914072e2260dfb}{isotope}}()\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00173}00173\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00178}00178\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a14f12b8b0178df2e32e2023bd4564ddc}{getMassFracMode}}()\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00179}00179\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00186}00186\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a4d6df43e098e7e2e2d94ff7fb76cb4c2}{setMassFraction}}(\textcolor{keywordtype}{double}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a66cb086719d7f654869bd7b0cee87ffc}{mass\_fraction}});}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00187}00187\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00194}00194\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a9ec47cf4b3399128d3836c1b24b031b0}{setNumberFraction}}(\textcolor{keywordtype}{double}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a2d55492d285068d4a64db5602dfb1c78}{number\_fraction}});}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00195}00195\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00201}00201\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a3fb3f63a4e5675c6fefb662a8e3e7aa3}{setMassFracMode}}(\textcolor{keywordtype}{double}\ meanMolarMass);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00202}00202\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00208}00208\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a743042d1998875851150d789817f5473}{setNumberFracMode}}(\textcolor{keywordtype}{double}\ totalMoles);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00209}00209\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00216}00216\ \ \ \ \ \ \ \ \ \textcolor{keyword}{friend}\ std::ostream\&\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_ae7a6a113fc5914248eff5629716d6eb2}{operator<<}}(std::ostream\&\ os,\ \textcolor{keyword}{const}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a1cccb94c150dd1dcde860f55fbeaf2bd}{CompositionEntry}}\&\ entry);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00217}00217\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00218}00218\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00258}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition}{00258}}\ \ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}\ \{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00259}00259\ \ \ \ \ \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00260}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a8a8096863464338bc6e3c5124407dca4}{00260}}\ \ \ \ \ \ \ \ \ fourdst::config::Config\&\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a8a8096863464338bc6e3c5124407dca4}{m\_config}}\ =\ fourdst::config::Config::getInstance();}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00261}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a695d37ec6cde63d86a20df1e9f26af19}{00261}}\ \ \ \ \ \ \ \ \ fourdst::logging::LogManager\&\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a695d37ec6cde63d86a20df1e9f26af19}{m\_logManager}}\ =\ fourdst::logging::LogManager::getInstance();}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00262}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_ab6c66f35e1fb05dd24aacaf90e115c5e}{00262}}\ \ \ \ \ \ \ \ \ quill::Logger*\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_ab6c66f35e1fb05dd24aacaf90e115c5e}{m\_logger}}\ =\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a695d37ec6cde63d86a20df1e9f26af19}{m\_logManager}}.getLogger(\textcolor{stringliteral}{"{}log"{}});}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00263}00263\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00264}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_aa00cbc0933d8a22bb900ac21a338e5ac}{00264}}\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_aa00cbc0933d8a22bb900ac21a338e5ac}{m\_finalized}}\ =\ \textcolor{keyword}{false};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00265}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_addae4484da7d5072ab66a721dbe04ced}{00265}}\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_addae4484da7d5072ab66a721dbe04ced}{m\_specificNumberDensity}}\ =\ 0.0;\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00266}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a4a36c8d22ce61023e7bea1d9417577d4}{00266}}\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a4a36c8d22ce61023e7bea1d9417577d4}{m\_meanParticleMass}}\ =\ 0.0;\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00267}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a671f1ee8be00f4ff8c1d94fabb382380}{00267}}\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a671f1ee8be00f4ff8c1d94fabb382380}{m\_massFracMode}}\ =\ \textcolor{keyword}{true};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00268}00268\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00269}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a39bfcb7d81d723cbd9d021abd533b4d6}{00269}}\ \ \ \ \ \ \ \ \ std::set<std::string>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a39bfcb7d81d723cbd9d021abd533b4d6}{m\_registeredSymbols}};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00270}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_aa7f2753b10e85ae3bbf0c3d600a973db}{00270}}\ \ \ \ \ \ \ \ \ std::unordered\_map<std::string,\ CompositionEntry>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_aa7f2753b10e85ae3bbf0c3d600a973db}{m\_compositions}};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00271}00271\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00277}00277\ \ \ \ \ \ \ \ \ \textcolor{keyword}{static}\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a8fdac26e6298008aaeaa5b15f7fe244f}{isValidSymbol}}(\textcolor{keyword}{const}\ std::string\&\ symbol);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00278}00278\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00284}00284\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_addf03ba8b988970d341884d487aa94d5}{isValidComposition}}(\textcolor{keyword}{const}\ std::vector<double>\&\ fractions)\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00285}00285\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00291}00291\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a86982685c34db4a8f079ddafc25c594e}{validateComposition}}(\textcolor{keyword}{const}\ std::vector<double>\&\ fractions)\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00292}00292\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00298}00298\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a869dbae3db9d09c57b2df56a813a55fb}{finalizeMassFracMode}}(\textcolor{keywordtype}{bool}\ norm);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00299}00299\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00305}00305\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a461ab4e9cb5975cf865db5f16f03ddfe}{finalizeNumberFracMode}}(\textcolor{keywordtype}{bool}\ norm);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00306}00306\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00307}00307\ \ \ \ \ \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00311}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a23b83b76ee025f6fc009184ee19bba88}{00311}}\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}()\ =\ \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00312}00312\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00316}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_aa3ff8ece122a9fad1252061148566749}{00316}}\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_aa3ff8ece122a9fad1252061148566749}{\string~Composition}}()\ =\ \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00317}00317\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00327}00327\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a72d063a74a9d2197065884a2cea57a14}{finalize}}(\textcolor{keywordtype}{bool}\ norm=\textcolor{keyword}{false});}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00328}00328\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00342}00342\ \ \ \ \ \ \ \ \ \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_l00343}00343\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00354}00354\ \ \ \ \ \ \ \ \ \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_l00355}00355\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00373}00373\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}(\textcolor{keyword}{const}\ std::vector<std::string>\&\ symbols,\ \textcolor{keyword}{const}\ std::vector<double>\&\ fractions,\ \textcolor{keywordtype}{bool}\ massFracMode=\textcolor{keyword}{true});}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00374}00374\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00379}00379\ \ \ \ \ \ \ \ \ \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_l00380}00380\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00386}00386\ \ \ \ \ \ \ \ \ \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_l00387}00387\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00402}00402\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a1bc2e64f87c12befdc2bc767e7405661}{registerSymbol}}(\textcolor{keyword}{const}\ std::string\&\ symbol,\ \textcolor{keywordtype}{bool}\ massFracMode=\textcolor{keyword}{true});}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00403}00403\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00417}00417\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a1bc2e64f87c12befdc2bc767e7405661}{registerSymbol}}(\textcolor{keyword}{const}\ std::vector<std::string>\&\ symbols,\ \textcolor{keywordtype}{bool}\ massFracMode=\textcolor{keyword}{true});}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00418}00418\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00432}00432\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a4ce00f73cc133bb1bac2b030b93ab480}{registerSpecies}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{fourdst::atomic::Species}}\&\ species,\ \textcolor{keywordtype}{bool}\ massFracMode=\textcolor{keyword}{true});}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00433}00433\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00434}00434\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00449}00449\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a4ce00f73cc133bb1bac2b030b93ab480}{registerSpecies}}(\textcolor{keyword}{const}\ std::vector<fourdst::atomic::Species>\&\ species,\ \textcolor{keywordtype}{bool}\ massFracMode=\textcolor{keyword}{true});}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00450}00450\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00451}00451\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00456}00456\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::set<std::string>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a84c7b72c2aee46b94492d404855dd3e0}{getRegisteredSymbols}}()\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00457}00457\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00462}00462\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::set<fourdst::atomic::Species>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a3dee7b5e1f54920de9eab99f95a516ec}{getRegisteredSpecies}}()\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00463}00463\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00480}00480\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a493224656aa3ade68389250720ef09af}{setMassFraction}}(\textcolor{keyword}{const}\ std::string\&\ symbol,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{double}\&\ mass\_fraction);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00481}00481\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00491}00491\ \ \ \ \ \ \ \ \ std::vector<double>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a493224656aa3ade68389250720ef09af}{setMassFraction}}(\textcolor{keyword}{const}\ std::vector<std::string>\&\ symbols,\ \textcolor{keyword}{const}\ std::vector<double>\&\ mass\_fractions);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00492}00492\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00502}00502\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a493224656aa3ade68389250720ef09af}{setMassFraction}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{fourdst::atomic::Species}}\&\ species,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{double}\&\ mass\_fraction);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00503}00503\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00511}00511\ \ \ \ \ \ \ \ \ std::vector<double>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a493224656aa3ade68389250720ef09af}{setMassFraction}}(\textcolor{keyword}{const}\ std::vector<fourdst::atomic::Species>\&\ species,\ \textcolor{keyword}{const}\ std::vector<double>\&\ mass\_fractions);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00512}00512\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00523}00523\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a7d4d748f3ee25e68751fb143717ed080}{setNumberFraction}}(\textcolor{keyword}{const}\ std::string\&\ symbol,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{double}\&\ number\_fraction);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00524}00524\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00533}00533\ \ \ \ \ \ \ \ \ std::vector<double>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a7d4d748f3ee25e68751fb143717ed080}{setNumberFraction}}(\textcolor{keyword}{const}\ std::vector<std::string>\&\ symbols,\ \textcolor{keyword}{const}\ std::vector<double>\&\ number\_fractions);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00534}00534\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00544}00544\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a7d4d748f3ee25e68751fb143717ed080}{setNumberFraction}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{fourdst::atomic::Species}}\&\ species,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{double}\&\ number\_fraction);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00545}00545\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00553}00553\ \ \ \ \ \ \ \ \ std::vector<double>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a7d4d748f3ee25e68751fb143717ed080}{setNumberFraction}}(\textcolor{keyword}{const}\ std::vector<fourdst::atomic::Species>\&\ species,\ \textcolor{keyword}{const}\ std::vector<double>\&\ number\_fractions);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00554}00554\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00567}00567\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a3aead72892606725a4149a5f65bd31ec}{mix}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}\&\ other,\ \textcolor{keywordtype}{double}\ fraction)\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00568}00568\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00575}00575\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::unordered\_map<std::string,\ double>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_ad20bd541dd7c45274a2e586e6a0519a7}{getMassFraction}}()\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00576}00576\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00585}00585\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_ad20bd541dd7c45274a2e586e6a0519a7}{getMassFraction}}(\textcolor{keyword}{const}\ std::string\&\ symbol)\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00586}00586\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00595}00595\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_ad20bd541dd7c45274a2e586e6a0519a7}{getMassFraction}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{fourdst::atomic::Species}}\&\ species)\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00596}00596\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00605}00605\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a7731df9b30f8c8f13231f7e1a17b105c}{getNumberFraction}}(\textcolor{keyword}{const}\ std::string\&\ symbol)\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00606}00606\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00615}00615\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a7731df9b30f8c8f13231f7e1a17b105c}{getNumberFraction}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{fourdst::atomic::Species}}\&\ species)\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00616}00616\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00623}00623\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::unordered\_map<std::string,\ double>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a7731df9b30f8c8f13231f7e1a17b105c}{getNumberFraction}}()\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00624}00624\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00633}00633\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a67a2ed844f3aee3d9cc1a3cb996eb56f}{getMolarAbundance}}(\textcolor{keyword}{const}\ std::string\&\ symbol)\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00634}00634\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00643}00643\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a67a2ed844f3aee3d9cc1a3cb996eb56f}{getMolarAbundance}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{fourdst::atomic::Species}}\&\ species)\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00644}00644\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00653}00653\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::pair<CompositionEntry,\ GlobalComposition>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a1138c86f7ccd39594601c2ec63ad89e9}{getComposition}}(\textcolor{keyword}{const}\ std::string\&\ symbol)\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00654}00654\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00663}00663\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::pair<CompositionEntry,\ GlobalComposition>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a1138c86f7ccd39594601c2ec63ad89e9}{getComposition}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{fourdst::atomic::Species}}\&\ species)\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00664}00664\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00671}00671\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::pair<std::unordered\_map<std::string,\ CompositionEntry>,\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_global_composition}{GlobalComposition}}>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a1138c86f7ccd39594601c2ec63ad89e9}{getComposition}}()\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00672}00672\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00679}00679\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a66401fed7054172e9b1a2687e5cc8eff}{getMeanParticleMass}}()\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00680}00680\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00687}00687\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a98199f435cb553f5cf4f8e520fdb8a7a}{getMeanAtomicNumber}}()\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00688}00688\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00698}00698\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a17635cd21744c7cf86cb1eb75152c816}{subset}}(\textcolor{keyword}{const}\ std::vector<std::string>\&\ symbols,\ \textcolor{keyword}{const}\ std::string\&\ method=\textcolor{stringliteral}{"{}norm"{}})\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00699}00699\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00705}00705\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a72a368f27094b03fdd9896844e075c94}{hasSymbol}}(\textcolor{keyword}{const}\ std::string\&\ symbol)\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00706}00706\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00714}00714\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_acb08478f7032ecc13cb02283a18187e9}{contains}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{fourdst::atomic::Species}}\&\ isotope)\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00715}00715\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00724}00724\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a0af981ed1074b26c237cf6cf35f82c9e}{setCompositionMode}}(\textcolor{keywordtype}{bool}\ massFracMode);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00725}00725\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00735}00735\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_canonical_composition}{CanonicalComposition}}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_ac75dbc8377556c835455991c7c7fe206}{getCanonicalComposition}}(\textcolor{keywordtype}{bool}\ harsh=\textcolor{keyword}{false})\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00736}00736\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00744}00744\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::vector<double>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_acdbdf980297580e885ce3f124164315f}{getMassFractionVector}}()\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00745}00745\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00753}00753\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::vector<double>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a2a41242de5d49b005e0b608e79e2f2d9}{getNumberFractionVector}}()\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00754}00754\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00762}00762\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::vector<double>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a84d62b971bee83d944d2792c6850bc0b}{getMolarAbundanceVector}}()\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00763}00763\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00774}00774\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a1204a6421205feaaed13937aefa158ba}{getSpeciesIndex}}(\textcolor{keyword}{const}\ std::string\&\ symbol)\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00775}00775\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00786}00786\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a1204a6421205feaaed13937aefa158ba}{getSpeciesIndex}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{atomic::Species}}\&\ species)\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00787}00787\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00797}00797\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{atomic::Species}}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_aa534a01f24074cc9edd7f41df228eb50}{getSpeciesAtIndex}}(\textcolor{keywordtype}{size\_t}\ index)\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00798}00798\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00805}00805\ \ \ \ \ \ \ \ \ \textcolor{keyword}{friend}\ std::ostream\&\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a36c2525d21cd932065bb2bb30bc57fb4}{operator<<}}(std::ostream\&\ os,\ \textcolor{keyword}{const}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}\&\ \mbox{\hyperlink{namespacefourdst_1_1composition}{composition}});}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00806}00806\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00815}00815\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a24a3bdeb8e8e55b54ecdee6dcb0d9561}{operator+}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}\&\ other)\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00816}00816\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00821}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_ab1701644ff1c83c220dc04eb58d1621b}{00821}}\ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_ab1701644ff1c83c220dc04eb58d1621b}{begin}}()\ \{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00822}00822\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_aa7f2753b10e85ae3bbf0c3d600a973db}{m\_compositions}}.begin();}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00823}00823\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00824}00824\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00829}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_adf41a833e8b704daf4f581fca5c8cb9b}{00829}}\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keyword}{auto}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_adf41a833e8b704daf4f581fca5c8cb9b}{begin}}()\textcolor{keyword}{\ const\ }\{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00830}00830\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_aa7f2753b10e85ae3bbf0c3d600a973db}{m\_compositions}}.cbegin();}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00831}00831\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00832}00832\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00837}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_adeaf6f1213e78cb1fe8a8317f0a8adc2}{00837}}\ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_adeaf6f1213e78cb1fe8a8317f0a8adc2}{end}}()\ \{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00838}00838\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_aa7f2753b10e85ae3bbf0c3d600a973db}{m\_compositions}}.end();}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00839}00839\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00840}00840\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00845}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_aed2f5676f8f742199f01e4d1e9664bdd}{00845}}\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keyword}{auto}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_aed2f5676f8f742199f01e4d1e9664bdd}{end}}()\textcolor{keyword}{\ const\ }\{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00846}00846\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_aa7f2753b10e85ae3bbf0c3d600a973db}{m\_compositions}}.cend();}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00847}00847\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00848}00848\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00849}00849\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00850}00850\ \};\ \textcolor{comment}{//\ namespace\ fourdst::composition}}

\end{DoxyCode}
