\doxysection{composition\+\_\+masked.\+h}
\hypertarget{composition__masked_8h_source}{}\label{composition__masked_8h_source}\index{src/composition/include/fourdst/composition/decorators/composition\_masked.h@{src/composition/include/fourdst/composition/decorators/composition\_masked.h}}
\mbox{\hyperlink{composition__masked_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00001}00001\ \textcolor{preprocessor}{\#pragma\ once}}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00002}00002\ }
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00003}00003\ \textcolor{preprocessor}{\#include\ <vector>}}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00004}00004\ \textcolor{preprocessor}{\#include\ <set>}}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00005}00005\ \textcolor{preprocessor}{\#include\ <unordered\_map>}}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00006}00006\ \textcolor{preprocessor}{\#include\ <memory>}}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00007}00007\ \textcolor{preprocessor}{\#include\ <string>}}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00008}00008\ }
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00009}00009\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{composition__abstract_8h}{fourdst/composition/composition\_abstract.h}}"{}}}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00010}00010\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{composition__decorator__abstract_8h}{fourdst/composition/decorators/composition\_decorator\_abstract.h}}"{}}}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00011}00011\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{composition__abstract__iterator_8h}{fourdst/composition/iterators/composition\_abstract\_iterator.h}}"{}}}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00012}00012\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{atomic_species_8h}{fourdst/atomic/atomicSpecies.h}}"{}}}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00013}00013\ }
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00014}00014\ \textcolor{keyword}{namespace\ }\mbox{\hyperlink{namespacefourdst_1_1composition}{fourdst::composition}}\ \{}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00015}\mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition}{00015}}\ \ \ \ \ \textcolor{keyword}{class\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a9a0d839e4534494b7adaf353d56e5375}{MaskedComposition}}\ final\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_decorator_a115e0c194a3dffddc558e0305cc56677}{CompositionDecorator}}\ \{}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00016}00016\ \ \ \ \ \textcolor{keyword}{public}:}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00017}\mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_afe3129b1dbebfbe0578c3a555aa742bf}{00017}}\ \ \ \ \ \ \ \ \ \textcolor{keyword}{using\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_afe3129b1dbebfbe0578c3a555aa742bf}{iterator}}\ =\ \mbox{\hyperlink{classfourdst_1_1composition_1_1detail_1_1_composition_iterator}{detail::CompositionIterator<false>}};}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00018}\mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_acd2bbf05d4f5fce5a1146619a0b16b6d}{00018}}\ \ \ \ \ \ \ \ \ \textcolor{keyword}{using\ }\mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_acd2bbf05d4f5fce5a1146619a0b16b6d}{const\_iterator}}\ =\ \mbox{\hyperlink{classfourdst_1_1composition_1_1detail_1_1_composition_iterator}{detail::CompositionIterator<true>}};}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00019}00019\ }
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00020}00020\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a9a0d839e4534494b7adaf353d56e5375}{MaskedComposition}}(}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00021}00021\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract}{CompositionAbstract}}\&\ baseComposition,}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00022}00022\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ std::vector<atomic::Species>\&\ activeSpecies}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00023}00023\ \ \ \ \ \ \ \ \ );}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00024}00024\ }
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00025}00025\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a045cfdf1e771895df872a6da61c53966}{contains}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{structfourdst_1_1atomic_1_1_species}{atomic::Species}}\ \&species)\ \textcolor{keyword}{const}\ \textcolor{keyword}{noexcept}\ \textcolor{keyword}{override};}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00026}00026\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a045cfdf1e771895df872a6da61c53966}{contains}}(\textcolor{keyword}{const}\ std::string\ \&symbol)\ \textcolor{keyword}{const\ override};}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00027}00027\ }
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00028}00028\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keyword}{const}\ std::vector<atomic::Species>\&\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a44fddc3b8d34b76114afafbdc9b0ec6d}{getRegisteredSpecies}}()\ const\ noexcept\ override;}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00029}00029\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::set<std::\textcolor{keywordtype}{string}>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a9b33507e9820b7fd55209d3624388077}{getRegisteredSymbols}}()\ const\ noexcept\ override;}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00030}00030\ }
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00031}00031\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a6b6c7a9ad6293558ddc8834d22f4bc62}{size}}()\ const\ noexcept\ override;}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00032}00032\ }
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00033}00033\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::unordered\_map<\mbox{\hyperlink{namespacefourdst_1_1atomic}{atomic}}::Species,\ \textcolor{keywordtype}{double}>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a2383b69a4b1dbe1c7be01bb826b06c07}{getMassFraction}}()\ const\ noexcept\ override;}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00034}00034\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::unordered\_map<\mbox{\hyperlink{namespacefourdst_1_1atomic}{atomic}}::Species,\ \textcolor{keywordtype}{double}>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a2c299c44f385b65202ed0d475402562a}{getNumberFraction}}()\ const\ noexcept\ override;}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00035}00035\ }
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00036}00036\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a2383b69a4b1dbe1c7be01bb826b06c07}{getMassFraction}}(const\ std::\textcolor{keywordtype}{string}\ \&symbol)\ const\ override;}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00037}00037\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a2383b69a4b1dbe1c7be01bb826b06c07}{getMassFraction}}(const\ \mbox{\hyperlink{namespacefourdst_1_1atomic}{atomic}}::Species\ \&species)\ const\ override;}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00038}00038\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a2c299c44f385b65202ed0d475402562a}{getNumberFraction}}(const\ std::\textcolor{keywordtype}{string}\ \&symbol)\ const\ override;}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00039}00039\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a2c299c44f385b65202ed0d475402562a}{getNumberFraction}}(const\ \mbox{\hyperlink{namespacefourdst_1_1atomic}{atomic}}::Species\ \&species)\ const\ override;}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00040}00040\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a3064af4fb0b59dce5b484d5657d25506}{getMolarAbundance}}(const\ std::\textcolor{keywordtype}{string}\ \&symbol)\ const\ override;}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00041}00041\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a3064af4fb0b59dce5b484d5657d25506}{getMolarAbundance}}(const\ \mbox{\hyperlink{namespacefourdst_1_1atomic}{atomic}}::Species\ \&species)\ const\ override;}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00042}00042\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a3f50005318f2aa7bf7c3cd5b1d2aef7a}{getMeanParticleMass}}()\ const\ noexcept\ override;}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00043}00043\ }
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00044}00044\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{double}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a38fc871469f94b3c07ba18a00548085d}{getElectronAbundance}}()\ const\ noexcept\ override;}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00045}00045\ }
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00046}00046\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::vector<\textcolor{keywordtype}{double}>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a7655d278224486e762d22d0501187f58}{getMassFractionVector}}()\ const\ noexcept\ override;}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00047}00047\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::vector<\textcolor{keywordtype}{double}>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_ad28b1f5c98bd25378c24c732d74deab4}{getNumberFractionVector}}()\ const\ noexcept\ override;}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00048}00048\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::vector<\textcolor{keywordtype}{double}>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_ac2f827bedae5405ebab7108b2e4397c5}{getMolarAbundanceVector}}()\ const\ noexcept\ override;}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00049}00049\ }
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00050}00050\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a7277650debc78e081963663557de73eb}{getSpeciesIndex}}(const\ std::\textcolor{keywordtype}{string}\ \&symbol)\ const\ override;}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00051}00051\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a7277650debc78e081963663557de73eb}{getSpeciesIndex}}(const\ \mbox{\hyperlink{namespacefourdst_1_1atomic}{atomic}}::Species\ \&species)\ const\ override;}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00052}00052\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \mbox{\hyperlink{namespacefourdst_1_1atomic}{atomic}}::Species\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_acc9d3af0aad6c6209c9aefd94f86996b}{getSpeciesAtIndex}}(\textcolor{keywordtype}{size\_t}\ index)\ const\ override;}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00053}00053\ }
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00054}00054\ \ \ \ \ \ \ \ \ [[nodiscard]]\ std::unique\_ptr<\mbox{\hyperlink{classfourdst_1_1composition_1_1_composition_abstract}{CompositionAbstract}}>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a30f89ba71d9db6ad330c645d0a161164}{clone}}()\ const\ override;}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00055}00055\ }
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00056}00056\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_afe3129b1dbebfbe0578c3a555aa742bf}{iterator}}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_aa01637b823d0127736cdc767284eb28d}{begin}}()\ override;}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00057}00057\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_afe3129b1dbebfbe0578c3a555aa742bf}{iterator}}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_aae6a6799ee6877064728bd880348420d}{end}}()\ override;}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00058}00058\ }
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00059}00059\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_acd2bbf05d4f5fce5a1146619a0b16b6d}{const\_iterator}}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_aa01637b823d0127736cdc767284eb28d}{begin}}()\ const\ override;}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00060}00060\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_acd2bbf05d4f5fce5a1146619a0b16b6d}{const\_iterator}}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_aae6a6799ee6877064728bd880348420d}{end}}()\ const\ override;}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00061}00061\ }
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00062}00062\ \ \ \ \ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{size\_t}\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a0cff238d7aec2db1f7c509d199b56afb}{hash}}()\ const\ override;}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00063}00063\ }
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00064}00064\ \ \ \ \ private:}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00065}\mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a22a5b2ea210bb14a07b6461270631a3b}{00065}}\ \ \ \ \ \ \ \ \ std::vector<\mbox{\hyperlink{namespacefourdst_1_1atomic}{atomic}}::Species>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_a22a5b2ea210bb14a07b6461270631a3b}{m\_activeSpecies}};}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00066}\mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_abe4e28b36230fa41c11c22e36aaa15e7}{00066}}\ \ \ \ \ \ \ \ \ std::vector<\textcolor{keywordtype}{double}>\ \mbox{\hyperlink{classfourdst_1_1composition_1_1_masked_composition_abe4e28b36230fa41c11c22e36aaa15e7}{m\_molarAbundances}};}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00067}00067\ \ \ \ \ \};}
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00068}00068\ }
\DoxyCodeLine{\Hypertarget{composition__masked_8h_source_l00069}00069\ \}}

\end{DoxyCode}
