docs(docs): rebuilt docs

This commit is contained in:
2025-10-12 10:22:43 -04:00
parent 51dba31a44
commit 8be8ac3b65
202 changed files with 24039 additions and 161918 deletions

View File

@@ -32,219 +32,256 @@
\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_l00031}00031\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{composition__abstract_8h}{fourdst/composition/composition\_abstract.h}}"{}}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00032}00032\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{atomic_species_8h}{fourdst/composition/atomicSpecies.h}}"{}}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00033}00033\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00034}\mbox{\hyperlink{namespacefourdst_1_1composition}{00034}}\ \textcolor{keyword}{namespace\ }\mbox{\hyperlink{namespacefourdst_1_1composition}{fourdst::composition}}\ \{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00044}\mbox{\hyperlink{structfourdst_1_1composition_1_1_canonical_composition}{00044}}\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structfourdst_1_1composition_1_1_canonical_composition}{CanonicalComposition}}\ \{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00045}\mbox{\hyperlink{structfourdst_1_1composition_1_1_canonical_composition_abe5b01574242f8eaabd00c3d653291f7}{00045}}\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_canonical_composition_abe5b01574242f8eaabd00c3d653291f7}{X}}\ =\ 0.0;\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00046}\mbox{\hyperlink{structfourdst_1_1composition_1_1_canonical_composition_a93927bfccc5d2b3906565d092ed4f7f4}{00046}}\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_canonical_composition_a93927bfccc5d2b3906565d092ed4f7f4}{Y}}\ =\ 0.0;\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00047}\mbox{\hyperlink{structfourdst_1_1composition_1_1_canonical_composition_ae1981f5ddd36abd17a4a69fa1f43de18}{00047}}\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_canonical_composition_ae1981f5ddd36abd17a4a69fa1f43de18}{Z}}\ =\ 0.0;\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00048}00048\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00055}\mbox{\hyperlink{structfourdst_1_1composition_1_1_canonical_composition_a6e447cb601af6bcbd09e290aef759672}{00055}}\ \ \ \ \ \ \ \ \ \textcolor{keyword}{friend}\ std::ostream\&\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_canonical_composition_a6e447cb601af6bcbd09e290aef759672}{operator<<}}(std::ostream\&\ os,\ \textcolor{keyword}{const}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_canonical_composition}{CanonicalComposition}}\&\ \mbox{\hyperlink{namespacefourdst_1_1composition}{composition}})\ \{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00056}00056\ \ \ \ \ \ \ \ \ \ \ \ \ os\ <<\ \textcolor{stringliteral}{"{}<CanonicalComposition:\ "{}}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00057}00057\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ <<\ \textcolor{stringliteral}{"{}X\ =\ "{}}\ <<\ \mbox{\hyperlink{namespacefourdst_1_1composition}{composition}}.X\ <<\ \textcolor{stringliteral}{"{},\ "{}}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00058}00058\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ <<\ \textcolor{stringliteral}{"{}Y\ =\ "{}}\ <<\ \mbox{\hyperlink{namespacefourdst_1_1composition}{composition}}.Y\ <<\ \textcolor{stringliteral}{"{},\ "{}}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00059}00059\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ <<\ \textcolor{stringliteral}{"{}Z\ =\ "{}}\ <<\ \mbox{\hyperlink{namespacefourdst_1_1composition}{composition}}.Z\ <<\ \textcolor{stringliteral}{"{}>"{}};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00060}00060\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ os;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00061}00061\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00062}00062\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00063}00063\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00070}\mbox{\hyperlink{structfourdst_1_1composition_1_1_global_composition}{00070}}\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structfourdst_1_1composition_1_1_global_composition}{GlobalComposition}}\ \{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00071}\mbox{\hyperlink{structfourdst_1_1composition_1_1_global_composition_a0df6ecfe28d13cbffd0abcbfec9aee41}{00071}}\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_global_composition_a0df6ecfe28d13cbffd0abcbfec9aee41}{specificNumberDensity}};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00072}\mbox{\hyperlink{structfourdst_1_1composition_1_1_global_composition_a9c35810d965841a755da9ce4644a2f1b}{00072}}\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_global_composition_a9c35810d965841a755da9ce4644a2f1b}{meanParticleMass}};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00073}00073\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00074}00074\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Overload\ the\ output\ stream\ operator\ for\ GlobalComposition}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00075}00075\ \ \ \ \ \ \ \ \ \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_l00076}00076\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00077}00077\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00084}\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry}{00084}}\ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a1cccb94c150dd1dcde860f55fbeaf2bd}{CompositionEntry}}\ \{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00085}\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_ac273debdba6a1b3ac0f11698c399d38e}{00085}}\ \ \ \ \ \ \ \ \ std::string\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_ac273debdba6a1b3ac0f11698c399d38e}{m\_symbol}};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00086}\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a79039cbdc76b4401eb2ce44b85467503}{00086}}\ \ \ \ \ \ \ \ \ \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_l00087}\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a1e860519bea86793413ed67c76d18c8b}{00087}}\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a1e860519bea86793413ed67c76d18c8b}{m\_massFracMode}}\ =\ \textcolor{keyword}{true};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00088}00088\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00089}\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_adc20165bf94e18eea3458003025579ac}{00089}}\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_adc20165bf94e18eea3458003025579ac}{m\_massFraction}}\ =\ 0.0;\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00090}\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a2b5e245f7dabb11076efdbe1ed516d9f}{00090}}\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a2b5e245f7dabb11076efdbe1ed516d9f}{m\_numberFraction}}\ =\ 0.0;\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00091}\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a0498d707d8ea78be39283786c10657ef}{00091}}\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a0498d707d8ea78be39283786c10657ef}{m\_relAbundance}}\ =\ 0.0;\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00092}\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_acd41be41f03c819521bab28ea0d8bed2}{00092}}\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_acd41be41f03c819521bab28ea0d8bed2}{m\_molesPerMass}}\ =\ 0.0;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00093}\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a3b056b6b923016d271f034333c96d039}{00093}}\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a3b056b6b923016d271f034333c96d039}{m\_cachedNumberFraction}}\ =\ 0.0;\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00094}00094\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00095}00095\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00096}\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a391e899874cd7ef299a3ae1f64c016d2}{00096}}\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a391e899874cd7ef299a3ae1f64c016d2}{m\_initialized}}\ =\ \textcolor{keyword}{false};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00097}00097\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00101}00101\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a1cccb94c150dd1dcde860f55fbeaf2bd}{CompositionEntry}}();}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00102}00102\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00114}00114\ \ \ \ \ \ \ \ \ \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_l00115}00115\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00120}\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a38f3e109b2952c1f0e7444d7fb9e93a0}{00120}}\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a38f3e109b2952c1f0e7444d7fb9e93a0}{CompositionEntry}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a1cccb94c150dd1dcde860f55fbeaf2bd}{CompositionEntry}}\&\ entry);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00121}00121\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00128}00128\ \ \ \ \ \ \ \ \ \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_l00129}00129\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00134}00134\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::string\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a50d18b4c27611fa9314dd756af54c2f0}{symbol}}()\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00135}00135\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00142}00142\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a66cb086719d7f654869bd7b0cee87ffc}{mass\_fraction}}()\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00143}00143\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00150}00150\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a2d55492d285068d4a64db5602dfb1c78}{number\_fraction}}()\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00151}00151\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00157}00157\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a2d55492d285068d4a64db5602dfb1c78}{number\_fraction}}(\textcolor{keywordtype}{double}\ totalMolesPerMass)\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00158}00158\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00163}00163\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_ab6619d23e111905d1e3ab16ee822d96c}{rel\_abundance}}()\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00164}00164\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00169}00169\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{atomic::Species}}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_af49920b1168be92d517aea03a308fee1}{isotope}}()\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00170}00170\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00175}00175\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a14f12b8b0178df2e32e2023bd4564ddc}{getMassFracMode}}()\ \textcolor{keyword}{const};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00176}00176\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00183}00183\ \ \ \ \ \ \ \ \ \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_l00184}00184\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00191}00191\ \ \ \ \ \ \ \ \ \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_l00192}00192\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00198}00198\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a3fb3f63a4e5675c6fefb662a8e3e7aa3}{setMassFracMode}}(\textcolor{keywordtype}{double}\ meanMolarMass);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00199}00199\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00205}00205\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_entry_a00332551f5b2f0d7f10b12a091e21fa8}{setNumberFracMode}}(\textcolor{keywordtype}{double}\ totalMolesPerMass);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00206}00206\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00213}00213\ \ \ \ \ \ \ \ \ \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_l00214}00214\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00215}00215\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00255}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition}{00255}}\ \ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{class_composition_abstract}{CompositionAbstract}}\ \{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00256}00256\ \ \ \ \ \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00257}\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache}{00257}}\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache}{CompositionCache}}\ \{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00258}\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_a9a9dc0e4ec0d094e604569de9ce6c125}{00258}}\ \ \ \ \ \ \ \ \ \ \ \ \ std::optional<GlobalComposition>\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_a9a9dc0e4ec0d094e604569de9ce6c125}{globalComp}};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00259}\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_a459e01b94eb0e78dd95bb6932a967f13}{00259}}\ \ \ \ \ \ \ \ \ \ \ \ \ std::optional<CanonicalComposition>\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_a459e01b94eb0e78dd95bb6932a967f13}{canonicalComp}};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00260}\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_add5ce97ae6a1796c5f6488bfa1555be6}{00260}}\ \ \ \ \ \ \ \ \ \ \ \ \ std::optional<std::vector<double>>\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_add5ce97ae6a1796c5f6488bfa1555be6}{massFractions}};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00261}\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_a41ce9d6b4a0f00030e3027b23c0269fb}{00261}}\ \ \ \ \ \ \ \ \ \ \ \ \ std::optional<std::vector<double>>\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_a41ce9d6b4a0f00030e3027b23c0269fb}{numberFractions}};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00262}\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_ab74c9cd92ba8aaf5f95c8ca5284206a6}{00262}}\ \ \ \ \ \ \ \ \ \ \ \ \ std::optional<std::vector<double>>\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_ab74c9cd92ba8aaf5f95c8ca5284206a6}{molarAbundances}};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00263}\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_a14761ff2df5423884330e423ec38e98c}{00263}}\ \ \ \ \ \ \ \ \ \ \ \ \ std::optional<std::vector<atomic::Species>>\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_a14761ff2df5423884330e423ec38e98c}{sortedSpecies}};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00264}\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_abe45010a5104562d3ebecc77393c04ce}{00264}}\ \ \ \ \ \ \ \ \ \ \ \ \ std::optional<std::vector<std::string>>\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_abe45010a5104562d3ebecc77393c04ce}{sortedSymbols}};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00265}\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_ae844e5a1d2b85c7cfee50157ccf189ce}{00265}}\ \ \ \ \ \ \ \ \ \ \ \ \ std::optional<double>\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_ae844e5a1d2b85c7cfee50157ccf189ce}{Ye}};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00266}00266\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00267}\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_ac8b576c3b48c4cedda6e9e2790072b0d}{00267}}\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_ac8b576c3b48c4cedda6e9e2790072b0d}{clear}}()\ \{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00268}00268\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_a9a9dc0e4ec0d094e604569de9ce6c125}{globalComp}}\ =\ std::nullopt;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00269}00269\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_a459e01b94eb0e78dd95bb6932a967f13}{canonicalComp}}\ =\ std::nullopt;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00270}00270\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_add5ce97ae6a1796c5f6488bfa1555be6}{massFractions}}\ =\ std::nullopt;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00271}00271\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_a41ce9d6b4a0f00030e3027b23c0269fb}{numberFractions}}\ =\ std::nullopt;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00272}00272\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_ab74c9cd92ba8aaf5f95c8ca5284206a6}{molarAbundances}}\ =\ std::nullopt;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00273}00273\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_abe45010a5104562d3ebecc77393c04ce}{sortedSymbols}}\ =\ std::nullopt;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00274}00274\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_a14761ff2df5423884330e423ec38e98c}{sortedSpecies}}\ =\ std::nullopt;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00275}00275\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_ae844e5a1d2b85c7cfee50157ccf189ce}{Ye}}\ =\ std::nullopt;}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00276}00276\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00277}00277\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00278}\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_af291583560120bb53c4546a598666477}{00278}}\ \ \ \ \ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_af291583560120bb53c4546a598666477}{is\_clear}}()\textcolor{keyword}{\ const\ }\{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00279}00279\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ !\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_a9a9dc0e4ec0d094e604569de9ce6c125}{globalComp}}.has\_value()\ \&\&\ !\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_a459e01b94eb0e78dd95bb6932a967f13}{canonicalComp}}.has\_value()\ \&\&\ !\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_add5ce97ae6a1796c5f6488bfa1555be6}{massFractions}}.has\_value()\ \&\&}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00280}00280\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ !\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_a41ce9d6b4a0f00030e3027b23c0269fb}{numberFractions}}.has\_value()\ \&\&\ !\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_ab74c9cd92ba8aaf5f95c8ca5284206a6}{molarAbundances}}.has\_value()\ \&\&\ !\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_abe45010a5104562d3ebecc77393c04ce}{sortedSymbols}}.has\_value()\ \&\&}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00281}00281\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ !\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_ae844e5a1d2b85c7cfee50157ccf189ce}{Ye}}.has\_value()\ \&\&\ !\mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache_a14761ff2df5423884330e423ec38e98c}{sortedSpecies}}.has\_value();}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00282}00282\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00283}00283\ \ \ \ \ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00284}00284\ \ \ \ \ \textcolor{keyword}{private}:}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00285}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a1f96b2c567364368ea5ee6f0826f3091}{00285}}\ \ \ \ \ \ \ \ \ config::Config\&\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a1f96b2c567364368ea5ee6f0826f3091}{m\_config}}\ =\ config::Config::getInstance();}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00286}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a40b2128948f01630cd2968488b450ce5}{00286}}\ \ \ \ \ \ \ \ \ logging::LogManager\&\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a40b2128948f01630cd2968488b450ce5}{m\_logManager}}\ =\ logging::LogManager::getInstance();}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00287}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_ab6c66f35e1fb05dd24aacaf90e115c5e}{00287}}\ \ \ \ \ \ \ \ \ quill::Logger*\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_ab6c66f35e1fb05dd24aacaf90e115c5e}{m\_logger}}\ =\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a40b2128948f01630cd2968488b450ce5}{m\_logManager}}.getLogger(\textcolor{stringliteral}{"{}log"{}});}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00288}00288\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00289}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_aa00cbc0933d8a22bb900ac21a338e5ac}{00289}}\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_aa00cbc0933d8a22bb900ac21a338e5ac}{m\_finalized}}\ =\ \textcolor{keyword}{false};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00290}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_addae4484da7d5072ab66a721dbe04ced}{00290}}\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_addae4484da7d5072ab66a721dbe04ced}{m\_specificNumberDensity}}\ =\ 0.0;\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00291}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a4a36c8d22ce61023e7bea1d9417577d4}{00291}}\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a4a36c8d22ce61023e7bea1d9417577d4}{m\_meanParticleMass}}\ =\ 0.0;\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00292}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a671f1ee8be00f4ff8c1d94fabb382380}{00292}}\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a671f1ee8be00f4ff8c1d94fabb382380}{m\_massFracMode}}\ =\ \textcolor{keyword}{true};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00293}00293\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00294}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a39bfcb7d81d723cbd9d021abd533b4d6}{00294}}\ \ \ \ \ \ \ \ \ std::set<std::string>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a39bfcb7d81d723cbd9d021abd533b4d6}{m\_registeredSymbols}};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00295}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_aa7f2753b10e85ae3bbf0c3d600a973db}{00295}}\ \ \ \ \ \ \ \ \ std::unordered\_map<std::string,\ CompositionEntry>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_aa7f2753b10e85ae3bbf0c3d600a973db}{m\_compositions}};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00296}00296\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00297}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a02cd9d9608da082a200fdfa86d14bf5d}{00297}}\ \ \ \ \ \ \ \ \ \textcolor{keyword}{mutable}\ \mbox{\hyperlink{structfourdst_1_1composition_1_1_composition_1_1_composition_cache}{CompositionCache}}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a02cd9d9608da082a200fdfa86d14bf5d}{m\_cache}};\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00298}00298\ }
\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_l00305}00305\ \ \ \ \ \ \ \ \ \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_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_l00312}00312\ \ \ \ \ \ \ \ \ [[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_l00313}00313\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00319}00319\ \ \ \ \ \ \ \ \ \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_l00320}00320\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00326}00326\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a869dbae3db9d09c57b2df56a813a55fb}{finalizeMassFracMode}}(\textcolor{keywordtype}{bool}\ norm);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00327}00327\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00333}00333\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a461ab4e9cb5975cf865db5f16f03ddfe}{finalizeNumberFracMode}}(\textcolor{keywordtype}{bool}\ norm);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00334}00334\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00335}00335\ \ \ \ \ \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00339}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a23b83b76ee025f6fc009184ee19bba88}{00339}}\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a23b83b76ee025f6fc009184ee19bba88}{Composition}}()\ =\ \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00340}00340\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00344}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a08c1d1fe9384c5255a6ba40e34b18315}{00344}}\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a08c1d1fe9384c5255a6ba40e34b18315}{\string~Composition}}()\ \textcolor{keyword}{override}\ =\ \textcolor{keywordflow}{default};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00345}00345\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00355}00355\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \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_l00356}00356\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00370}00370\ \ \ \ \ \ \ \ \ \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_l00371}00371\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00382}00382\ \ \ \ \ \ \ \ \ \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_l00383}00383\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00401}00401\ \ \ \ \ \ \ \ \ \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_l00402}00402\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00407}00407\ \ \ \ \ \ \ \ \ \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_l00408}00408\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00414}00414\ \ \ \ \ \ \ \ \ \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_l00415}00415\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00430}00430\ \ \ \ \ \ \ \ \ \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_l00431}00431\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00445}00445\ \ \ \ \ \ \ \ \ \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_l00446}00446\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00460}00460\ \ \ \ \ \ \ \ \ \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_l00461}00461\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00462}00462\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00477}00477\ \ \ \ \ \ \ \ \ \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_l00478}00478\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00479}00479\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00484}00484\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::set<std::string>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a3f10f38878ba4be121d6d77a8b1f4d7a}{getRegisteredSymbols}}()\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00485}00485\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00490}00490\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::set<fourdst::atomic::Species>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_af61ebe73a8b5926eb23037bb078fa87a}{getRegisteredSpecies}}()\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00491}00491\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00508}00508\ \ \ \ \ \ \ \ \ \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_l00509}00509\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00519}00519\ \ \ \ \ \ \ \ \ 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_l00520}00520\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00530}00530\ \ \ \ \ \ \ \ \ \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_l00531}00531\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00539}00539\ \ \ \ \ \ \ \ \ 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_l00540}00540\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00551}00551\ \ \ \ \ \ \ \ \ \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_l00552}00552\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00561}00561\ \ \ \ \ \ \ \ \ 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_l00562}00562\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00572}00572\ \ \ \ \ \ \ \ \ \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_l00573}00573\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00581}00581\ \ \ \ \ \ \ \ \ 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_l00582}00582\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00595}00595\ \ \ \ \ \ \ \ \ [[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_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_l00603}00603\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::unordered\_map<std::string,\ double>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_aae07019ab6e02394e6ea353e0b98a417}{getMassFraction}}()\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00604}00604\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00613}00613\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_aae07019ab6e02394e6ea353e0b98a417}{getMassFraction}}(\textcolor{keyword}{const}\ std::string\&\ symbol)\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00614}00614\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00623}00623\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_aae07019ab6e02394e6ea353e0b98a417}{getMassFraction}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{fourdst::atomic::Species}}\&\ species)\ \textcolor{keyword}{const\ override};}
\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_l00633}00633\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_ae46fb8c3020dadd69080a7acd2054ea1}{getNumberFraction}}(\textcolor{keyword}{const}\ std::string\&\ symbol)\ \textcolor{keyword}{const\ override};}
\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_l00643}00643\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_ae46fb8c3020dadd69080a7acd2054ea1}{getNumberFraction}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{fourdst::atomic::Species}}\&\ species)\ \textcolor{keyword}{const\ override};}
\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_l00651}00651\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::unordered\_map<std::string,\ double>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_ae46fb8c3020dadd69080a7acd2054ea1}{getNumberFraction}}()\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00652}00652\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00661}00661\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_add67a92d73e3a57a2bbdb52bc9ca3bfe}{getMolarAbundance}}(\textcolor{keyword}{const}\ std::string\&\ symbol)\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00662}00662\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00671}00671\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_add67a92d73e3a57a2bbdb52bc9ca3bfe}{getMolarAbundance}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{fourdst::atomic::Species}}\&\ species)\ \textcolor{keyword}{const\ override};}
\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_l00681}00681\ \ \ \ \ \ \ \ \ [[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_l00682}00682\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00691}00691\ \ \ \ \ \ \ \ \ [[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_l00692}00692\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00699}00699\ \ \ \ \ \ \ \ \ [[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_l00700}00700\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00707}00707\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a796386824d1358527fed7c6b537935d8}{getMeanParticleMass}}()\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00708}00708\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00715}00715\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_af7dd8f7d69727acfacf1bf58c4083a27}{getMeanAtomicNumber}}()\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00716}00716\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00723}00723\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a62dcfcf8f824d6af7903a9a9c3d5721e}{getElectronAbundance}}()\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00724}00724\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00734}00734\ \ \ \ \ \ \ \ \ [[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_l00735}00735\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00741}00741\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_ac01ae1967c266d8187bc6e104c8a0d19}{hasSymbol}}(\textcolor{keyword}{const}\ std::string\&\ symbol)\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00742}00742\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00748}00748\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a55dfadad6cf5fb249356edad1733a813}{hasSpecies}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{fourdst::atomic::Species}}\ \&species)\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00749}00749\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00757}00757\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a7efe2cd3a69b743bf2086941b6dfd965}{contains}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{atomic::Species}}\&\ isotope)\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00758}00758\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00767}00767\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a0af981ed1074b26c237cf6cf35f82c9e}{setCompositionMode}}(\textcolor{keywordtype}{bool}\ massFracMode);}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00768}00768\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00778}00778\ \ \ \ \ \ \ \ \ [[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_l00779}00779\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00787}00787\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::vector<double>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a85169b763138ab72047e43e07af978fb}{getMassFractionVector}}()\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00788}00788\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00796}00796\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::vector<double>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a49d2eba540f28324c6b7145a5b6cabfd}{getNumberFractionVector}}()\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00797}00797\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00805}00805\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::vector<double>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abed665c07c42b40682da453576621399}{getMolarAbundanceVector}}()\ \textcolor{keyword}{const\ override};}
\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}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00817}00817\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a0d94f62402bb90b5d12679faeaa8c5d7}{getSpeciesIndex}}(\textcolor{keyword}{const}\ std::string\&\ symbol)\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00818}00818\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00829}00829\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_a0d94f62402bb90b5d12679faeaa8c5d7}{getSpeciesIndex}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{atomic::Species}}\&\ species)\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00830}00830\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00840}00840\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{atomic::Species}}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_ae4f854ded38f5e6fcd157a74a57cbf0c}{getSpeciesAtIndex}}(\textcolor{keywordtype}{size\_t}\ index)\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00841}00841\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00848}00848\ \ \ \ \ \ \ \ \ \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_l00849}00849\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00858}00858\ \ \ \ \ \ \ \ \ \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_l00859}00859\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00864}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_ab1701644ff1c83c220dc04eb58d1621b}{00864}}\ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_ab1701644ff1c83c220dc04eb58d1621b}{begin}}()\ \{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00865}00865\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_aa7f2753b10e85ae3bbf0c3d600a973db}{m\_compositions}}.begin();}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00866}00866\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00867}00867\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00872}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_adf41a833e8b704daf4f581fca5c8cb9b}{00872}}\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keyword}{auto}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_adf41a833e8b704daf4f581fca5c8cb9b}{begin}}()\textcolor{keyword}{\ const\ }\{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00873}00873\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_aa7f2753b10e85ae3bbf0c3d600a973db}{m\_compositions}}.cbegin();}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00874}00874\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00875}00875\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00880}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_adeaf6f1213e78cb1fe8a8317f0a8adc2}{00880}}\ \ \ \ \ \ \ \ \ \textcolor{keyword}{auto}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_adeaf6f1213e78cb1fe8a8317f0a8adc2}{end}}()\ \{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00881}00881\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_aa7f2753b10e85ae3bbf0c3d600a973db}{m\_compositions}}.end();}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00882}00882\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00883}00883\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00888}\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_aed2f5676f8f742199f01e4d1e9664bdd}{00888}}\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keyword}{auto}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_aed2f5676f8f742199f01e4d1e9664bdd}{end}}()\textcolor{keyword}{\ const\ }\{}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00889}00889\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_aa7f2753b10e85ae3bbf0c3d600a973db}{m\_compositions}}.cend();}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00890}00890\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00891}00891\ }
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00892}00892\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{composition_8h_source_l00893}00893\ \};\ \textcolor{comment}{//\ namespace\ fourdst::composition}}
\end{DoxyCode}