fourdst::libcomposition v2.0.1
Robust atomic species information library
Loading...
Searching...
No Matches
composition_abstract.h
Go to the documentation of this file.
1#pragma once
2
4
5#include <string>
6#include <unordered_map>
7#include <set>
8#include <vector>
9
34public:
38 virtual ~CompositionAbstract() = default;
39
45 [[nodiscard]] virtual bool contains(const fourdst::atomic::Species& species) const noexcept = 0;
46
52 [[nodiscard]] virtual bool contains(const std::string& symbol) const = 0;
53
54 [[nodiscard]] virtual size_t size() const noexcept = 0;
55
60 [[nodiscard]] virtual std::set<std::string> getRegisteredSymbols() const noexcept = 0;
61
66 [[nodiscard]] virtual const std::set<fourdst::atomic::Species> &getRegisteredSpecies() const noexcept = 0;
67
72 [[nodiscard]] virtual std::unordered_map<fourdst::atomic::Species, double> getMassFraction() const noexcept = 0;
73
78 [[nodiscard]] virtual std::unordered_map<fourdst::atomic::Species, double> getNumberFraction() const noexcept = 0;
79
85 [[nodiscard]] virtual double getMassFraction(const std::string& symbol) const = 0;
86
92 [[nodiscard]] virtual double getMassFraction(const fourdst::atomic::Species& species) const = 0;
93
99 [[nodiscard]] virtual double getNumberFraction(const std::string& symbol) const = 0;
100
106 [[nodiscard]] virtual double getNumberFraction(const fourdst::atomic::Species& species) const = 0;
107
113 [[nodiscard]] virtual double getMolarAbundance(const std::string& symbol) const = 0;
114
120 [[nodiscard]] virtual double getMolarAbundance(const fourdst::atomic::Species& species) const = 0;
121
126 [[nodiscard]] virtual double getMeanParticleMass() const noexcept = 0;
127
132 [[nodiscard]] virtual double getElectronAbundance() const noexcept = 0;
133
138 [[nodiscard]] virtual std::vector<double> getMassFractionVector() const noexcept = 0;
139
144 [[nodiscard]] virtual std::vector<double> getNumberFractionVector() const noexcept = 0;
145
150 [[nodiscard]] virtual std::vector<double> getMolarAbundanceVector() const noexcept = 0;
151
157 [[nodiscard]] virtual size_t getSpeciesIndex(const std::string& symbol) const = 0;
158
164 [[nodiscard]] virtual size_t getSpeciesIndex(const fourdst::atomic::Species& species) const = 0;
165
171 [[nodiscard]] virtual fourdst::atomic::Species getSpeciesAtIndex(size_t index) const = 0;
172};
Abstract base class for chemical composition representations.
virtual std::vector< double > getMolarAbundanceVector() const noexcept=0
Get the molar abundance as a vector.
virtual size_t getSpeciesIndex(const std::string &symbol) const =0
Get the index of a species by symbol.
virtual size_t size() const noexcept=0
virtual std::unordered_map< fourdst::atomic::Species, double > getNumberFraction() const noexcept=0
Get the number fraction for all registered symbols.
virtual std::set< std::string > getRegisteredSymbols() const noexcept=0
Get all registered chemical symbols in the composition.
virtual double getMolarAbundance(const std::string &symbol) const =0
Get the molar abundance for a given symbol.
virtual std::vector< double > getMassFractionVector() const noexcept=0
Get the mass fraction as a vector.
virtual double getMeanParticleMass() const noexcept=0
Get the mean particle mass of the composition.
virtual double getElectronAbundance() const noexcept=0
Get the electron abundance of the composition.
virtual std::vector< double > getNumberFractionVector() const noexcept=0
Get the number fraction as a vector.
virtual ~CompositionAbstract()=default
Virtual destructor.
virtual fourdst::atomic::Species getSpeciesAtIndex(size_t index) const =0
Get the species at a given index.
virtual const std::set< fourdst::atomic::Species > & getRegisteredSpecies() const noexcept=0
Get all registered atomic species in the composition.
virtual bool contains(const std::string &symbol) const =0
Check if the composition contains the given species.
virtual bool contains(const fourdst::atomic::Species &species) const noexcept=0
Check if the composition contains the given species.
virtual std::unordered_map< fourdst::atomic::Species, double > getMassFraction() const noexcept=0
Get the mass fraction for all registered symbols.
Represents an atomic species (isotope) with its fundamental physical properties.