Chemical reaction

class CChemicalReaction

Description of the chemical reaction.

Public Types

enum class ESubstance

Substance type.

Values:

enumerator REACTANT

Educt substance.

enumerator PRODUCT

Product substance.

Public Functions

CChemicalReaction() = default

Default constructor.

CChemicalReaction(const CChemicalReaction &_other)

Copy constructor.

Parameters:

_other – Target chemical reaction.

CChemicalReaction &operator=(const CChemicalReaction &_other)

Copy assignment operator.

Parameters:

_other – Target chemical reaction.

Returns:

Reference to this reaction.

CChemicalReaction(CChemicalReaction &&_other) = default

Move constructor.

Parameters:

_other – Target chemical reaction.

CChemicalReaction &operator=(CChemicalReaction &&_other) = default

Move assignment operator.

Parameters:

_other – Target chemical reaction.

Returns:

Reference to this reaction.

void Swap(CChemicalReaction &_other) noexcept

Swaps two reactions.

Parameters:

_other – Target chemical reaction.

bool operator==(const CChemicalReaction &_other) const

Comparison.

Parameters:

_other – Second object.

Returns:

Whether objects are equal.

void SetName(const std::string &_name)

Sets name of the reaction.

Parameters:

_name – Reaction name.

std::string GetName() const

Returns name of the reaction.

Returns:

Reaction name.

SChemicalSubstance *AddSubstance()

Adds a new empty chemical substance to the reaction.

Returns:

Pointer to the added reaction.

void AddSubstance(const SChemicalSubstance &_substance)

Adds a new chemical substance to the reaction.

Parameters:

_substance – New substance.

void RemoveSubstance(size_t _index)

Removes substance with the specified index.

Parameters:

_index – Index of the substance.

std::vector<const SChemicalSubstance*> GetSubstances() const

Returns all defined substances.

Returns:

Constant pointers to all defined substances.

std::vector<SChemicalSubstance*> GetSubstances()

Returns all defined substances.

Returns:

Pointers to all defined substances.

size_t GetSubstancesNumber() const

Returns number of defined substances.

Returns:

Number of defined substances.

std::vector<const SChemicalSubstance*> GetSubstances(EPhase _phase) const

Returns all defined substances of the specified phase.

Parameters:

_phase – Target phase.

Returns:

Constant pointers to substances.

std::vector<SChemicalSubstance*> GetSubstances(EPhase _phase)

Returns all defined substances of the specified phase.

Parameters:

_phase – Target phase.

Returns:

Pointers to substances.

std::vector<const SChemicalSubstance*> GetSubstances(ESubstance _type) const

Returns all defined substances of the specified type.

Parameters:

_type – Type of the substance.

Returns:

Constant pointers to substances.

std::vector<SChemicalSubstance*> GetSubstances(ESubstance _type)

Returns all defined substances of the specified type.

Parameters:

_type – Type of the substance.

Returns:

Pointers to substances.

std::vector<const SChemicalSubstance*> GetSubstances(EPhase _phase, ESubstance _type) const

Returns all defined substances of the specified phase and type.

Parameters:
  • _phase – Target phase.

  • _type – Type of the substance.

Returns:

Constant pointers to substances.

std::vector<SChemicalSubstance*> GetSubstances(EPhase _phase, ESubstance _type)

Returns all defined substances of the specified phase and type.

Parameters:
  • _phase – Target phase.

  • _type – Type of the substance.

Returns:

Pointers to substances.

void SetBaseSubstance(size_t _index)

Sets index of the base substance.

Parameters:

_index – Index of the substance.

const SChemicalSubstance *GetBaseSubstance() const

Returns base substance.

Returns:

Pointer to the substance.

SChemicalSubstance *GetBaseSubstance()

Returns base substance.

Returns:

Pointer to the substance.

size_t GetBaseSubstanceIndex() const

Returns index of the base substance.

Returns:

Index to the substance.

void SetEnthalpy(double _enthalpy)

Sets specific reaction enthalpy [J/mol].

Parameters:

_enthalpy – Reaction enthalpy.

double GetEnthalpy() const

Returns specific reaction enthalpy [J/mol].

Returns:

Reaction enthalpy.

struct SChemicalSubstance

Description of the chemical substance.

Public Functions

SChemicalSubstance() = default

Default constructor.

inline SChemicalSubstance(std::string _key, double _nu, double _order, EPhase _phase)

Creates a new substance.

Parameters:
  • _key – Unique key of the chemical substance from MDB.

  • _nu – Stoichiometric coefficient of the substance in the reaction. >0 - product, <0 - reactant.

  • _order – Partial order of reaction for the substance.

  • _phase – Phase of the substance.

inline bool operator==(const SChemicalSubstance &_other) const

Equality comparison.

Parameters:

_other – Second object.

Returns:

Whether objects are equal.

inline bool operator!=(const SChemicalSubstance &_other) const

Inequality comparison.

Parameters:

_other – Second object.

Returns:

Whether objects are not equal.

inline ESubstance GetType() const

Returns type of the substance based on the value of stoichiometric coefficient.

Returns:

Type of the substance in the reaction.

Public Members

std::string key

Unique key of the chemical substance from MDB.

double nu = 1.0

Stoichiometric coefficient of this substance in the reaction.

double order = 0.0

Partial order of reaction for this substance.

EPhase phase = EPhase::UNDEFINED

Phase of this substance.

double MM = 0.0

Molar mass of this substance.