fourdst::libcomposition v2.3.1
Robust atomic species information library
Loading...
Searching...
No Matches
fourdst::composition::CompositionAbstract Class Referenceabstract

Abstract base class for chemical composition representations. More...

#include <composition_abstract.h>

Inheritance diagram for fourdst::composition::CompositionAbstract:
[legend]

Public Types

using iterator = detail::CompositionIterator<false>
 
using const_iterator = detail::CompositionIterator<true>
 

Public Member Functions

virtual ~CompositionAbstract ()=default
 Virtual destructor.
 
virtual bool contains (const fourdst::atomic::Species &species) const noexcept=0
 Check if the composition contains the given species.
 
virtual bool contains (const std::string &symbol) const =0
 Check if the composition contains the given species.
 
virtual size_t size () const noexcept=0
 
virtual std::set< std::string > getRegisteredSymbols () const noexcept=0
 Get all registered chemical symbols in the composition.
 
virtual const std::vector< atomic::Species > & getRegisteredSpecies () const noexcept=0
 Get all registered atomic species in the composition.
 
virtual std::unordered_map< fourdst::atomic::Species, double > getMassFraction () const noexcept=0
 Get the mass fraction for all registered symbols.
 
virtual std::unordered_map< fourdst::atomic::Species, double > getNumberFraction () const noexcept=0
 Get the number fraction for all registered symbols.
 
virtual double getMassFraction (const std::string &symbol) const =0
 Get the mass fraction for a given symbol.
 
virtual double getMassFraction (const fourdst::atomic::Species &species) const =0
 Get the mass fraction for a given species.
 
virtual double getNumberFraction (const std::string &symbol) const =0
 Get the number fraction for a given symbol.
 
virtual double getNumberFraction (const fourdst::atomic::Species &species) const =0
 Get the number fraction for a given species.
 
virtual double getMolarAbundance (const std::string &symbol) const =0
 Get the molar abundance for a given symbol.
 
virtual double getMolarAbundance (const fourdst::atomic::Species &species) const =0
 Get the molar abundance for a given species.
 
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 > getMassFractionVector () const noexcept=0
 Get the mass fraction as a vector.
 
virtual std::vector< double > getNumberFractionVector () const noexcept=0
 Get the number fraction as a vector.
 
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 getSpeciesIndex (const fourdst::atomic::Species &species) const =0
 Get the index of a species.
 
virtual atomic::Species getSpeciesAtIndex (size_t index) const =0
 Get the species at a given index.
 
virtual std::unique_ptr< CompositionAbstractclone () const =0
 
virtual iterator begin ()=0
 
virtual iterator end ()=0
 
virtual const_iterator begin () const =0
 
virtual const_iterator end () const =0
 
virtual std::size_t hash () const =0
 

Detailed Description

Abstract base class for chemical composition representations.

The purpose of this class is to define a standard interface for all composition types. Children of this class are responsible for implementing the setter methods, but any object that is a child of CompositionAbstract will always have these getter methods.

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

Example
class MyComposition : public CompositionAbstract {
// ...implement all pure virtual methods...
};
MyComposition comp;
if (comp.hasSymbol("H")) {
double mf = comp.getMassFraction("H");
}
std::set<std::string> symbols = comp.getRegisteredSymbols();
Abstract base class for chemical composition representations.

Definition at line 36 of file composition_abstract.h.

Member Typedef Documentation

◆ const_iterator

◆ iterator

Constructor & Destructor Documentation

◆ ~CompositionAbstract()

virtual fourdst::composition::CompositionAbstract::~CompositionAbstract ( )
virtualdefault

Virtual destructor.

Member Function Documentation

◆ begin() [1/2]

virtual const_iterator fourdst::composition::CompositionAbstract::begin ( ) const
nodiscardpure virtual

◆ begin() [2/2]

virtual iterator fourdst::composition::CompositionAbstract::begin ( )
nodiscardpure virtual

◆ clone()

virtual std::unique_ptr< CompositionAbstract > fourdst::composition::CompositionAbstract::clone ( ) const
nodiscardpure virtual

◆ contains() [1/2]

virtual bool fourdst::composition::CompositionAbstract::contains ( const fourdst::atomic::Species & species) const
nodiscardpure virtualnoexcept

Check if the composition contains the given species.

Parameters
speciesThe atomic species to check.
Returns
True if the species is contained, false otherwise.

Implemented in fourdst::composition::Composition, fourdst::composition::CompositionDecorator, and fourdst::composition::MaskedComposition.

◆ contains() [2/2]

virtual bool fourdst::composition::CompositionAbstract::contains ( const std::string & symbol) const
nodiscardpure virtual

Check if the composition contains the given species.

Parameters
symbolThe symbol of the atomic species to check.
Returns
True if the species is contained, false otherwise.

Implemented in fourdst::composition::Composition, fourdst::composition::CompositionDecorator, and fourdst::composition::MaskedComposition.

◆ end() [1/2]

virtual const_iterator fourdst::composition::CompositionAbstract::end ( ) const
nodiscardpure virtual

◆ end() [2/2]

virtual iterator fourdst::composition::CompositionAbstract::end ( )
nodiscardpure virtual

◆ getElectronAbundance()

virtual double fourdst::composition::CompositionAbstract::getElectronAbundance ( ) const
nodiscardpure virtualnoexcept

Get the electron abundance of the composition.

Returns
The electron abundance.

Implemented in fourdst::composition::Composition, fourdst::composition::CompositionDecorator, and fourdst::composition::MaskedComposition.

◆ getMassFraction() [1/3]

virtual std::unordered_map< fourdst::atomic::Species, double > fourdst::composition::CompositionAbstract::getMassFraction ( ) const
nodiscardpure virtualnoexcept

Get the mass fraction for all registered symbols.

Returns
An unordered map from symbol to mass fraction.

Implemented in fourdst::composition::Composition, fourdst::composition::CompositionDecorator, and fourdst::composition::MaskedComposition.

◆ getMassFraction() [2/3]

virtual double fourdst::composition::CompositionAbstract::getMassFraction ( const fourdst::atomic::Species & species) const
nodiscardpure virtual

Get the mass fraction for a given species.

Parameters
speciesThe atomic species.
Returns
The mass fraction for the species.

Implemented in fourdst::composition::Composition, fourdst::composition::CompositionDecorator, and fourdst::composition::MaskedComposition.

◆ getMassFraction() [3/3]

virtual double fourdst::composition::CompositionAbstract::getMassFraction ( const std::string & symbol) const
nodiscardpure virtual

Get the mass fraction for a given symbol.

Parameters
symbolThe chemical symbol.
Returns
The mass fraction for the symbol.

Implemented in fourdst::composition::Composition, fourdst::composition::CompositionDecorator, and fourdst::composition::MaskedComposition.

◆ getMassFractionVector()

virtual std::vector< double > fourdst::composition::CompositionAbstract::getMassFractionVector ( ) const
nodiscardpure virtualnoexcept

Get the mass fraction as a vector.

Returns
A vector of mass fractions for all species.

Implemented in fourdst::composition::Composition, fourdst::composition::CompositionDecorator, and fourdst::composition::MaskedComposition.

◆ getMeanParticleMass()

virtual double fourdst::composition::CompositionAbstract::getMeanParticleMass ( ) const
nodiscardpure virtualnoexcept

Get the mean particle mass of the composition.

Returns
The mean particle mass.

Implemented in fourdst::composition::Composition, fourdst::composition::CompositionDecorator, and fourdst::composition::MaskedComposition.

◆ getMolarAbundance() [1/2]

virtual double fourdst::composition::CompositionAbstract::getMolarAbundance ( const fourdst::atomic::Species & species) const
nodiscardpure virtual

Get the molar abundance for a given species.

Parameters
speciesThe atomic species.
Returns
The molar abundance for the species.

Implemented in fourdst::composition::Composition, fourdst::composition::CompositionDecorator, and fourdst::composition::MaskedComposition.

◆ getMolarAbundance() [2/2]

virtual double fourdst::composition::CompositionAbstract::getMolarAbundance ( const std::string & symbol) const
nodiscardpure virtual

Get the molar abundance for a given symbol.

Parameters
symbolThe chemical symbol.
Returns
The molar abundance for the symbol.

Implemented in fourdst::composition::Composition, fourdst::composition::CompositionDecorator, and fourdst::composition::MaskedComposition.

◆ getMolarAbundanceVector()

virtual std::vector< double > fourdst::composition::CompositionAbstract::getMolarAbundanceVector ( ) const
nodiscardpure virtualnoexcept

Get the molar abundance as a vector.

Returns
A vector of molar abundances for all species.

Implemented in fourdst::composition::Composition, fourdst::composition::CompositionDecorator, and fourdst::composition::MaskedComposition.

◆ getNumberFraction() [1/3]

virtual std::unordered_map< fourdst::atomic::Species, double > fourdst::composition::CompositionAbstract::getNumberFraction ( ) const
nodiscardpure virtualnoexcept

Get the number fraction for all registered symbols.

Returns
An unordered map from symbol to number fraction.

Implemented in fourdst::composition::Composition, fourdst::composition::CompositionDecorator, and fourdst::composition::MaskedComposition.

◆ getNumberFraction() [2/3]

virtual double fourdst::composition::CompositionAbstract::getNumberFraction ( const fourdst::atomic::Species & species) const
nodiscardpure virtual

Get the number fraction for a given species.

Parameters
speciesThe atomic species.
Returns
The number fraction for the species.

Implemented in fourdst::composition::Composition, fourdst::composition::CompositionDecorator, and fourdst::composition::MaskedComposition.

◆ getNumberFraction() [3/3]

virtual double fourdst::composition::CompositionAbstract::getNumberFraction ( const std::string & symbol) const
nodiscardpure virtual

Get the number fraction for a given symbol.

Parameters
symbolThe chemical symbol.
Returns
The number fraction for the symbol.

Implemented in fourdst::composition::Composition, fourdst::composition::CompositionDecorator, and fourdst::composition::MaskedComposition.

◆ getNumberFractionVector()

virtual std::vector< double > fourdst::composition::CompositionAbstract::getNumberFractionVector ( ) const
nodiscardpure virtualnoexcept

Get the number fraction as a vector.

Returns
A vector of number fractions for all species.

Implemented in fourdst::composition::Composition, fourdst::composition::CompositionDecorator, and fourdst::composition::MaskedComposition.

◆ getRegisteredSpecies()

virtual const std::vector< atomic::Species > & fourdst::composition::CompositionAbstract::getRegisteredSpecies ( ) const
nodiscardpure virtualnoexcept

Get all registered atomic species in the composition.

Returns
A set of registered atomic species.

Implemented in fourdst::composition::Composition, fourdst::composition::CompositionDecorator, and fourdst::composition::MaskedComposition.

◆ getRegisteredSymbols()

virtual std::set< std::string > fourdst::composition::CompositionAbstract::getRegisteredSymbols ( ) const
nodiscardpure virtualnoexcept

Get all registered chemical symbols in the composition.

Returns
A set of registered chemical symbols.

Implemented in fourdst::composition::Composition, fourdst::composition::CompositionDecorator, and fourdst::composition::MaskedComposition.

◆ getSpeciesAtIndex()

virtual atomic::Species fourdst::composition::CompositionAbstract::getSpeciesAtIndex ( size_t index) const
nodiscardpure virtual

Get the species at a given index.

Parameters
indexThe index of the species.
Returns
The atomic species at the specified index.

Implemented in fourdst::composition::Composition, fourdst::composition::CompositionDecorator, and fourdst::composition::MaskedComposition.

◆ getSpeciesIndex() [1/2]

virtual size_t fourdst::composition::CompositionAbstract::getSpeciesIndex ( const fourdst::atomic::Species & species) const
nodiscardpure virtual

Get the index of a species.

Parameters
speciesThe atomic species.
Returns
The index of the species.

Implemented in fourdst::composition::Composition, fourdst::composition::CompositionDecorator, and fourdst::composition::MaskedComposition.

◆ getSpeciesIndex() [2/2]

virtual size_t fourdst::composition::CompositionAbstract::getSpeciesIndex ( const std::string & symbol) const
nodiscardpure virtual

Get the index of a species by symbol.

Parameters
symbolThe chemical symbol.
Returns
The index of the species.

Implemented in fourdst::composition::Composition, fourdst::composition::CompositionDecorator, and fourdst::composition::MaskedComposition.

◆ hash()

virtual std::size_t fourdst::composition::CompositionAbstract::hash ( ) const
nodiscardpure virtual

◆ size()

virtual size_t fourdst::composition::CompositionAbstract::size ( ) const
nodiscardpure virtualnoexcept

The documentation for this class was generated from the following file: