Files
MeanField_SERiF/docs/latex/namespaceserif_1_1eos_1_1relations.tex
Emily Boudreaux 6b57738330 docs(docs): built docs
Note for now much of the docs is LLM written. This was done to save time and focus on code development. The docs have been LOOSLEY reviewed. However, the code itself has been either fully written by hand or fully reviewed. Therefore, the docs should at the moment be seen as a loose resource rather than authoratiative (and this is on top of the general ability for docs to drift)
2026-11-09 14:09:44 -05:00

224 lines
26 KiB
TeX

\doxysection{serif\+::eos\+::relations Namespace Reference}
\hypertarget{namespaceserif_1_1eos_1_1relations}{}\label{namespaceserif_1_1eos_1_1relations}\index{serif::eos::relations@{serif::eos::relations}}
\doxysubsubsection*{Classes}
\begin{DoxyCompactItemize}
\item
struct \mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_catalog_contains_relation}{Catalog\+Contains\+Relation}}
\begin{DoxyCompactList}\small\item\em A trait to determine if a catalog contains a given relation. This is the default false specialization. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_catalog_contains_relation_3_01_relation_catalog_3_01_relatiof166251502ef7194950babe717df3f53}{Catalog\+Contains\+Relation$<$ Relation\+Catalog$<$ Relations... $>$, Relation\+T $>$}}
\begin{DoxyCompactList}\small\item\em A specialization of the \doxylink{structserif_1_1eos_1_1relations_1_1_catalog_contains_relation}{Catalog\+Contains\+Relation} trait for a \doxylink{structserif_1_1eos_1_1relations_1_1_relation_catalog}{Relation\+Catalog}. This trait is used to determine if a \doxylink{structserif_1_1eos_1_1relations_1_1_relation_catalog}{Relation\+Catalog} contains a given relation. This is true so long as any of the relations in the catalog match the relation type being checked for. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_is_thermodynamic_relation}{Is\+Thermodynamic\+Relation}}
\begin{DoxyCompactList}\small\item\em A trait to determine if a type is a valid thermodynamic relation. This is the default false specialization. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_is_thermodynamic_relation_3_01_relation_3_01_output_00_01_inputs_8_8_8_01_4_01_4}{Is\+Thermodynamic\+Relation$<$ Relation$<$ Output, Inputs... $>$ $>$}}
\begin{DoxyCompactList}\small\item\em A specialization of the \doxylink{structserif_1_1eos_1_1relations_1_1_is_thermodynamic_relation}{Is\+Thermodynamic\+Relation} trait for a \doxylink{structserif_1_1eos_1_1relations_1_1_relation}{Relation}. This trait is used to determine if a \doxylink{structserif_1_1eos_1_1relations_1_1_relation}{Relation} is a valid thermodynamic relation. A relation is considered valid if its output quantity and all of its input quantities are valid thermodynamic quantities, and if all of its input quantities are unique types. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_is_valid_relation_catalog}{Is\+Valid\+Relation\+Catalog}}
\begin{DoxyCompactList}\small\item\em A trait to determine if a type is a valid relation catalog. This is the default false specialization. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_is_valid_relation_catalog_3_01_relation_catalog_3_01_relations_8_8_8_01_4_01_4}{Is\+Valid\+Relation\+Catalog$<$ Relation\+Catalog$<$ Relations... $>$ $>$}}
\begin{DoxyCompactList}\small\item\em A specialization of the \doxylink{structserif_1_1eos_1_1relations_1_1_is_valid_relation_catalog}{Is\+Valid\+Relation\+Catalog} trait for a \doxylink{structserif_1_1eos_1_1relations_1_1_relation_catalog}{Relation\+Catalog}. This trait is used to determine if a \doxylink{structserif_1_1eos_1_1relations_1_1_relation_catalog}{Relation\+Catalog} is a valid relation catalog. A relation catalog is considered valid if it contains at least one relation, if all of its relations are valid thermodynamic relations, and if all of its relations are unique types. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_relation}{Relation}}
\begin{DoxyCompactList}\small\item\em A struct to represent a relation between physical quantities. This is used to define the relations that an EOS model supports. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_relation_catalog}{Relation\+Catalog}}
\begin{DoxyCompactList}\small\item\em A struct to represent a catalog of relations between physical quantities. This is used to group relations for use in EOS models. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_relation_contains_input}{Relation\+Contains\+Input}}
\begin{DoxyCompactList}\small\item\em A trait to determine if a relation contains a given input quantity. This is the default false specialization. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_relation_contains_input_3_01_relation_3_01_output_00_01_inpu428eb9fbaac87b867ddc49c3b87f5f48}{Relation\+Contains\+Input$<$ Relation$<$ Output, Inputs... $>$, Quantity $>$}}
\begin{DoxyCompactList}\small\item\em A specialization of the \doxylink{structserif_1_1eos_1_1relations_1_1_relation_contains_input}{Relation\+Contains\+Input} trait for a \doxylink{structserif_1_1eos_1_1relations_1_1_relation}{Relation}. This trait is used to determine if a \doxylink{structserif_1_1eos_1_1relations_1_1_relation}{Relation} contains a given input quantity. This is true so long as any of the input quantities in the relation match the quantity type being checked for. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Concepts}
\begin{DoxyCompactItemize}
\item
concept \mbox{\hyperlink{conceptserif_1_1eos_1_1relations_1_1_catalog_containing_relation}{Catalog\+Containing\+Relation}}
\begin{DoxyCompactList}\small\item\em A concept used to constrain a type to a catalog that contains a given relation. \end{DoxyCompactList}\item
concept \mbox{\hyperlink{conceptserif_1_1eos_1_1relations_1_1_relation_containing_input}{Relation\+Containing\+Input}}
\begin{DoxyCompactList}\small\item\em A concept used to constrain a type to a relation that contains a given input quantity. \end{DoxyCompactList}\item
concept \mbox{\hyperlink{conceptserif_1_1eos_1_1relations_1_1_valid_thermodynamic_relation}{Valid\+Thermodynamic\+Relation}}
\begin{DoxyCompactList}\small\item\em A concept used to constrain a type to a valid thermodynamic relation. A type is a valid thermodynamic relation if it satisfies the is\+\_\+thermodynamic\+\_\+relation\+\_\+v trait. \end{DoxyCompactList}\item
concept \mbox{\hyperlink{conceptserif_1_1eos_1_1relations_1_1_valid_relation_catalog}{Valid\+Relation\+Catalog}}
\begin{DoxyCompactList}\small\item\em A concept used to constrain a type to a valid relation catalog. A type is a valid relation catalog if it satisfies the is\+\_\+valid\+\_\+relation\+\_\+catalog\+\_\+v trait. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item
using \mbox{\hyperlink{namespaceserif_1_1eos_1_1relations_ac555319520c74d14fb945024aefe4dfd}{Pressure\+From\+Density}} = \mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_relation}{Relation}}$<$\mbox{\hyperlink{structserif_1_1dimensions_1_1_pressure}{dimensions\+::\+Pressure}}, \mbox{\hyperlink{structserif_1_1dimensions_1_1_mass_density}{dimensions\+::\+Mass\+Density}}$>$
\begin{DoxyCompactList}\small\item\em A relation to compute pressure from density. \end{DoxyCompactList}\item
using \mbox{\hyperlink{namespaceserif_1_1eos_1_1relations_a8b0ab5938c9b254628f6acb2c84389f5}{Density\+From\+Pressure}} = \mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_relation}{Relation}}$<$\mbox{\hyperlink{structserif_1_1dimensions_1_1_mass_density}{dimensions\+::\+Mass\+Density}}, \mbox{\hyperlink{structserif_1_1dimensions_1_1_pressure}{dimensions\+::\+Pressure}}$>$
\begin{DoxyCompactList}\small\item\em A relation to compute density at a prescribed pressure. \end{DoxyCompactList}\item
using \mbox{\hyperlink{namespaceserif_1_1eos_1_1relations_a43e126ea01a149f642ba5e3c6aebf4f3}{Pressure\+Potential\+From\+Density}} = \mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_relation}{Relation}}$<$\mbox{\hyperlink{structserif_1_1dimensions_1_1_barotropic_pressure_potential}{dimensions\+::\+Barotropic\+Pressure\+Potential}}, \mbox{\hyperlink{structserif_1_1dimensions_1_1_mass_density}{dimensions\+::\+Mass\+Density}}$>$
\begin{DoxyCompactList}\small\item\em Evaluate A(density), whose derivative on the positive barotropic branch is (d\+P/density)/density. \end{DoxyCompactList}\item
using \mbox{\hyperlink{namespaceserif_1_1eos_1_1relations_ae7cf9462c33962f4ade777ea5a560670}{Pressure\+From\+Specific\+Enthalpy}} = \mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_relation}{Relation}}$<$\mbox{\hyperlink{structserif_1_1dimensions_1_1_pressure}{dimensions\+::\+Pressure}}, \mbox{\hyperlink{structserif_1_1dimensions_1_1_specific_enthalpy}{dimensions\+::\+Specific\+Enthalpy}}$>$
\begin{DoxyCompactList}\small\item\em A relation to compute pressure from specific enthalpy. \end{DoxyCompactList}\item
using \mbox{\hyperlink{namespaceserif_1_1eos_1_1relations_ad3bc12d4673999d6b90a6c3d9838ae52}{Specific\+Enthalpy\+From\+Density}} = \mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_relation}{Relation}}$<$\mbox{\hyperlink{structserif_1_1dimensions_1_1_specific_enthalpy}{dimensions\+::\+Specific\+Enthalpy}}, \mbox{\hyperlink{structserif_1_1dimensions_1_1_mass_density}{dimensions\+::\+Mass\+Density}}$>$
\begin{DoxyCompactList}\small\item\em A relation to compute specific enthalpy from density. \end{DoxyCompactList}\item
using \mbox{\hyperlink{namespaceserif_1_1eos_1_1relations_aaf50999b585768be908f8da3e50fcea9}{Specific\+Enthalpy\+From\+Pressure}} = \mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_relation}{Relation}}$<$\mbox{\hyperlink{structserif_1_1dimensions_1_1_specific_enthalpy}{dimensions\+::\+Specific\+Enthalpy}}, \mbox{\hyperlink{structserif_1_1dimensions_1_1_pressure}{dimensions\+::\+Pressure}}$>$
\begin{DoxyCompactList}\small\item\em A relation to compute specific enthalpy from pressure. \end{DoxyCompactList}\item
using \mbox{\hyperlink{namespaceserif_1_1eos_1_1relations_a537de2b3f7c974159bc5639b831117c4}{Density\+From\+Specific\+Enthalpy}} = \mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_relation}{Relation}}$<$\mbox{\hyperlink{structserif_1_1dimensions_1_1_mass_density}{dimensions\+::\+Mass\+Density}}, \mbox{\hyperlink{structserif_1_1dimensions_1_1_specific_enthalpy}{dimensions\+::\+Specific\+Enthalpy}}$>$
\begin{DoxyCompactList}\small\item\em A relation to compute density from specific enthalpy. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item
{\footnotesize template$<$typename... Ts$>$ }\\consteval std\+::size\+\_\+t \mbox{\hyperlink{namespaceserif_1_1eos_1_1relations_a1b57d195e9d643b262222f5d50ed1dd0}{Count\+Variadic\+Arguments}} () noexcept
\end{DoxyCompactItemize}
\doxysubsubsection*{Variables}
\begin{DoxyCompactItemize}
\item
{\footnotesize template$<$typename Catalog, typename RelationT$>$ }\\constexpr bool \mbox{\hyperlink{namespaceserif_1_1eos_1_1relations_ad1657a018022b22d497bc6d9f7870fe3}{relation\+\_\+catalog\+\_\+contains\+\_\+relation\+\_\+v}} = \mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_catalog_contains_relation}{Catalog\+Contains\+Relation}}$<$std\+::remove\+\_\+cv\+\_\+t$<$Catalog$>$, std\+::remove\+\_\+cv\+\_\+t$<$RelationT$>$$>$\+::value
\begin{DoxyCompactList}\small\item\em A trait to determine if a catalog contains a given relation. This is a helper variable template that simplifies the usage of the \doxylink{structserif_1_1eos_1_1relations_1_1_catalog_contains_relation}{Catalog\+Contains\+Relation} trait. \end{DoxyCompactList}\item
{\footnotesize template$<$typename RelationT, typename Quantity$>$ }\\constexpr bool \mbox{\hyperlink{namespaceserif_1_1eos_1_1relations_a9d99a6a6d3edf16e9a3d33f6b6c5a88e}{relation\+\_\+contains\+\_\+input\+\_\+v}} = \mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_relation_contains_input}{Relation\+Contains\+Input}}$<$std\+::remove\+\_\+cv\+\_\+t$<$RelationT$>$, std\+::remove\+\_\+cv\+\_\+t$<$Quantity$>$$>$\+::value
\begin{DoxyCompactList}\small\item\em A trait to determine if a relation contains a given input quantity. This is a helper variable template that simplifies the usage of the \doxylink{structserif_1_1eos_1_1relations_1_1_relation_contains_input}{Relation\+Contains\+Input} trait. \end{DoxyCompactList}\item
{\footnotesize template$<$typename Relation\+Candidate$>$ }\\constexpr bool \mbox{\hyperlink{namespaceserif_1_1eos_1_1relations_a3371acb573f6f7cbd3183f83e4e01267}{is\+\_\+thermodynamic\+\_\+relation\+\_\+v}} = \mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_is_thermodynamic_relation}{Is\+Thermodynamic\+Relation}}$<$Relation\+Candidate$>$\+::value
\begin{DoxyCompactList}\small\item\em A trait to determine if a relation is a valid thermodynamic relation. This is a helper variable template that simplifies the usage of the \doxylink{structserif_1_1eos_1_1relations_1_1_is_thermodynamic_relation}{Is\+Thermodynamic\+Relation} trait. \end{DoxyCompactList}\item
{\footnotesize template$<$typename Catalog\+Candidate$>$ }\\constexpr bool \mbox{\hyperlink{namespaceserif_1_1eos_1_1relations_adf6db0c674d98babbb9ea510c92a7eef}{is\+\_\+valid\+\_\+relation\+\_\+catalog\+\_\+v}} = \mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_is_valid_relation_catalog}{Is\+Valid\+Relation\+Catalog}}$<$Catalog\+Candidate$>$\+::value
\begin{DoxyCompactList}\small\item\em A trait to determine if a catalog is a valid relation catalog. This is a helper variable template that simplifies the usage of the \doxylink{structserif_1_1eos_1_1relations_1_1_is_valid_relation_catalog}{Is\+Valid\+Relation\+Catalog} trait. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection{Typedef Documentation}
\Hypertarget{namespaceserif_1_1eos_1_1relations_a8b0ab5938c9b254628f6acb2c84389f5}\index{serif::eos::relations@{serif::eos::relations}!DensityFromPressure@{DensityFromPressure}}
\index{DensityFromPressure@{DensityFromPressure}!serif::eos::relations@{serif::eos::relations}}
\doxysubsubsection{\texorpdfstring{DensityFromPressure}{DensityFromPressure}}
{\footnotesize\ttfamily \label{namespaceserif_1_1eos_1_1relations_a8b0ab5938c9b254628f6acb2c84389f5}
using \mbox{\hyperlink{namespaceserif_1_1eos_1_1relations_a8b0ab5938c9b254628f6acb2c84389f5}{serif\+::eos\+::relations\+::\+Density\+From\+Pressure}} = \mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_relation}{Relation}}$<$\mbox{\hyperlink{structserif_1_1dimensions_1_1_mass_density}{dimensions\+::\+Mass\+Density}}, \mbox{\hyperlink{structserif_1_1dimensions_1_1_pressure}{dimensions\+::\+Pressure}}$>$}
A relation to compute density at a prescribed pressure.
\Hypertarget{namespaceserif_1_1eos_1_1relations_a537de2b3f7c974159bc5639b831117c4}\index{serif::eos::relations@{serif::eos::relations}!DensityFromSpecificEnthalpy@{DensityFromSpecificEnthalpy}}
\index{DensityFromSpecificEnthalpy@{DensityFromSpecificEnthalpy}!serif::eos::relations@{serif::eos::relations}}
\doxysubsubsection{\texorpdfstring{DensityFromSpecificEnthalpy}{DensityFromSpecificEnthalpy}}
{\footnotesize\ttfamily \label{namespaceserif_1_1eos_1_1relations_a537de2b3f7c974159bc5639b831117c4}
using \mbox{\hyperlink{namespaceserif_1_1eos_1_1relations_a537de2b3f7c974159bc5639b831117c4}{serif\+::eos\+::relations\+::\+Density\+From\+Specific\+Enthalpy}} = \mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_relation}{Relation}}$<$\mbox{\hyperlink{structserif_1_1dimensions_1_1_mass_density}{dimensions\+::\+Mass\+Density}}, \mbox{\hyperlink{structserif_1_1dimensions_1_1_specific_enthalpy}{dimensions\+::\+Specific\+Enthalpy}}$>$}
A relation to compute density from specific enthalpy.
\Hypertarget{namespaceserif_1_1eos_1_1relations_ac555319520c74d14fb945024aefe4dfd}\index{serif::eos::relations@{serif::eos::relations}!PressureFromDensity@{PressureFromDensity}}
\index{PressureFromDensity@{PressureFromDensity}!serif::eos::relations@{serif::eos::relations}}
\doxysubsubsection{\texorpdfstring{PressureFromDensity}{PressureFromDensity}}
{\footnotesize\ttfamily \label{namespaceserif_1_1eos_1_1relations_ac555319520c74d14fb945024aefe4dfd}
using \mbox{\hyperlink{namespaceserif_1_1eos_1_1relations_ac555319520c74d14fb945024aefe4dfd}{serif\+::eos\+::relations\+::\+Pressure\+From\+Density}} = \mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_relation}{Relation}}$<$\mbox{\hyperlink{structserif_1_1dimensions_1_1_pressure}{dimensions\+::\+Pressure}}, \mbox{\hyperlink{structserif_1_1dimensions_1_1_mass_density}{dimensions\+::\+Mass\+Density}}$>$}
A relation to compute pressure from density.
\Hypertarget{namespaceserif_1_1eos_1_1relations_ae7cf9462c33962f4ade777ea5a560670}\index{serif::eos::relations@{serif::eos::relations}!PressureFromSpecificEnthalpy@{PressureFromSpecificEnthalpy}}
\index{PressureFromSpecificEnthalpy@{PressureFromSpecificEnthalpy}!serif::eos::relations@{serif::eos::relations}}
\doxysubsubsection{\texorpdfstring{PressureFromSpecificEnthalpy}{PressureFromSpecificEnthalpy}}
{\footnotesize\ttfamily \label{namespaceserif_1_1eos_1_1relations_ae7cf9462c33962f4ade777ea5a560670}
using \mbox{\hyperlink{namespaceserif_1_1eos_1_1relations_ae7cf9462c33962f4ade777ea5a560670}{serif\+::eos\+::relations\+::\+Pressure\+From\+Specific\+Enthalpy}} = \mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_relation}{Relation}}$<$\mbox{\hyperlink{structserif_1_1dimensions_1_1_pressure}{dimensions\+::\+Pressure}}, \mbox{\hyperlink{structserif_1_1dimensions_1_1_specific_enthalpy}{dimensions\+::\+Specific\+Enthalpy}}$>$}
A relation to compute pressure from specific enthalpy.
\Hypertarget{namespaceserif_1_1eos_1_1relations_a43e126ea01a149f642ba5e3c6aebf4f3}\index{serif::eos::relations@{serif::eos::relations}!PressurePotentialFromDensity@{PressurePotentialFromDensity}}
\index{PressurePotentialFromDensity@{PressurePotentialFromDensity}!serif::eos::relations@{serif::eos::relations}}
\doxysubsubsection{\texorpdfstring{PressurePotentialFromDensity}{PressurePotentialFromDensity}}
{\footnotesize\ttfamily \label{namespaceserif_1_1eos_1_1relations_a43e126ea01a149f642ba5e3c6aebf4f3}
using \mbox{\hyperlink{namespaceserif_1_1eos_1_1relations_a43e126ea01a149f642ba5e3c6aebf4f3}{serif\+::eos\+::relations\+::\+Pressure\+Potential\+From\+Density}} = \mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_relation}{Relation}}$<$\mbox{\hyperlink{structserif_1_1dimensions_1_1_barotropic_pressure_potential}{dimensions\+::\+Barotropic\+Pressure\+Potential}}, \mbox{\hyperlink{structserif_1_1dimensions_1_1_mass_density}{dimensions\+::\+Mass\+Density}}$>$}
Evaluate A(density), whose derivative on the positive barotropic branch is (d\+P/density)/density.
An additive constant is arbitrary. A finite surface value is required when a consumer subtracts A at a prescribed pressure. This mechanical primitive need not be thermodynamic enthalpy. \Hypertarget{namespaceserif_1_1eos_1_1relations_ad3bc12d4673999d6b90a6c3d9838ae52}\index{serif::eos::relations@{serif::eos::relations}!SpecificEnthalpyFromDensity@{SpecificEnthalpyFromDensity}}
\index{SpecificEnthalpyFromDensity@{SpecificEnthalpyFromDensity}!serif::eos::relations@{serif::eos::relations}}
\doxysubsubsection{\texorpdfstring{SpecificEnthalpyFromDensity}{SpecificEnthalpyFromDensity}}
{\footnotesize\ttfamily \label{namespaceserif_1_1eos_1_1relations_ad3bc12d4673999d6b90a6c3d9838ae52}
using \mbox{\hyperlink{namespaceserif_1_1eos_1_1relations_ad3bc12d4673999d6b90a6c3d9838ae52}{serif\+::eos\+::relations\+::\+Specific\+Enthalpy\+From\+Density}} = \mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_relation}{Relation}}$<$\mbox{\hyperlink{structserif_1_1dimensions_1_1_specific_enthalpy}{dimensions\+::\+Specific\+Enthalpy}}, \mbox{\hyperlink{structserif_1_1dimensions_1_1_mass_density}{dimensions\+::\+Mass\+Density}}$>$}
A relation to compute specific enthalpy from density.
\Hypertarget{namespaceserif_1_1eos_1_1relations_aaf50999b585768be908f8da3e50fcea9}\index{serif::eos::relations@{serif::eos::relations}!SpecificEnthalpyFromPressure@{SpecificEnthalpyFromPressure}}
\index{SpecificEnthalpyFromPressure@{SpecificEnthalpyFromPressure}!serif::eos::relations@{serif::eos::relations}}
\doxysubsubsection{\texorpdfstring{SpecificEnthalpyFromPressure}{SpecificEnthalpyFromPressure}}
{\footnotesize\ttfamily \label{namespaceserif_1_1eos_1_1relations_aaf50999b585768be908f8da3e50fcea9}
using \mbox{\hyperlink{namespaceserif_1_1eos_1_1relations_aaf50999b585768be908f8da3e50fcea9}{serif\+::eos\+::relations\+::\+Specific\+Enthalpy\+From\+Pressure}} = \mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_relation}{Relation}}$<$\mbox{\hyperlink{structserif_1_1dimensions_1_1_specific_enthalpy}{dimensions\+::\+Specific\+Enthalpy}}, \mbox{\hyperlink{structserif_1_1dimensions_1_1_pressure}{dimensions\+::\+Pressure}}$>$}
A relation to compute specific enthalpy from pressure.
\doxysubsection{Function Documentation}
\Hypertarget{namespaceserif_1_1eos_1_1relations_a1b57d195e9d643b262222f5d50ed1dd0}\index{serif::eos::relations@{serif::eos::relations}!CountVariadicArguments@{CountVariadicArguments}}
\index{CountVariadicArguments@{CountVariadicArguments}!serif::eos::relations@{serif::eos::relations}}
\doxysubsubsection{\texorpdfstring{CountVariadicArguments()}{CountVariadicArguments()}}
{\footnotesize\ttfamily \label{namespaceserif_1_1eos_1_1relations_a1b57d195e9d643b262222f5d50ed1dd0}
template$<$typename... Ts$>$ \\
std\+::size\+\_\+t serif\+::utils\+::misc\+::std\+\_\+helper\+::\+Count\+Variadic\+Arguments (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [consteval]}, {\ttfamily [noexcept]}}
\doxysubsection{Variable Documentation}
\Hypertarget{namespaceserif_1_1eos_1_1relations_a3371acb573f6f7cbd3183f83e4e01267}\index{serif::eos::relations@{serif::eos::relations}!is\_thermodynamic\_relation\_v@{is\_thermodynamic\_relation\_v}}
\index{is\_thermodynamic\_relation\_v@{is\_thermodynamic\_relation\_v}!serif::eos::relations@{serif::eos::relations}}
\doxysubsubsection{\texorpdfstring{is\_thermodynamic\_relation\_v}{is\_thermodynamic\_relation\_v}}
{\footnotesize\ttfamily \label{namespaceserif_1_1eos_1_1relations_a3371acb573f6f7cbd3183f83e4e01267}
template$<$typename Relation\+Candidate$>$ \\
bool serif\+::eos\+::relations\+::is\+\_\+thermodynamic\+\_\+relation\+\_\+v = \mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_is_thermodynamic_relation}{Is\+Thermodynamic\+Relation}}$<$Relation\+Candidate$>$\+::value\hspace{0.3cm}{\ttfamily [constexpr]}}
A trait to determine if a relation is a valid thermodynamic relation. This is a helper variable template that simplifies the usage of the \doxylink{structserif_1_1eos_1_1relations_1_1_is_thermodynamic_relation}{Is\+Thermodynamic\+Relation} trait.
\begin{DoxyTemplParams}{Template Parameters}
{\em Relation\+Candidate} & The relation type to check. \\
\hline
\end{DoxyTemplParams}
\Hypertarget{namespaceserif_1_1eos_1_1relations_adf6db0c674d98babbb9ea510c92a7eef}\index{serif::eos::relations@{serif::eos::relations}!is\_valid\_relation\_catalog\_v@{is\_valid\_relation\_catalog\_v}}
\index{is\_valid\_relation\_catalog\_v@{is\_valid\_relation\_catalog\_v}!serif::eos::relations@{serif::eos::relations}}
\doxysubsubsection{\texorpdfstring{is\_valid\_relation\_catalog\_v}{is\_valid\_relation\_catalog\_v}}
{\footnotesize\ttfamily \label{namespaceserif_1_1eos_1_1relations_adf6db0c674d98babbb9ea510c92a7eef}
template$<$typename Catalog\+Candidate$>$ \\
bool serif\+::eos\+::relations\+::is\+\_\+valid\+\_\+relation\+\_\+catalog\+\_\+v = \mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_is_valid_relation_catalog}{Is\+Valid\+Relation\+Catalog}}$<$Catalog\+Candidate$>$\+::value\hspace{0.3cm}{\ttfamily [constexpr]}}
A trait to determine if a catalog is a valid relation catalog. This is a helper variable template that simplifies the usage of the \doxylink{structserif_1_1eos_1_1relations_1_1_is_valid_relation_catalog}{Is\+Valid\+Relation\+Catalog} trait.
\begin{DoxyTemplParams}{Template Parameters}
{\em Catalog\+Candidate} & The catalog type to check. \\
\hline
\end{DoxyTemplParams}
\Hypertarget{namespaceserif_1_1eos_1_1relations_ad1657a018022b22d497bc6d9f7870fe3}\index{serif::eos::relations@{serif::eos::relations}!relation\_catalog\_contains\_relation\_v@{relation\_catalog\_contains\_relation\_v}}
\index{relation\_catalog\_contains\_relation\_v@{relation\_catalog\_contains\_relation\_v}!serif::eos::relations@{serif::eos::relations}}
\doxysubsubsection{\texorpdfstring{relation\_catalog\_contains\_relation\_v}{relation\_catalog\_contains\_relation\_v}}
{\footnotesize\ttfamily \label{namespaceserif_1_1eos_1_1relations_ad1657a018022b22d497bc6d9f7870fe3}
template$<$typename Catalog, typename RelationT$>$ \\
bool serif\+::eos\+::relations\+::relation\+\_\+catalog\+\_\+contains\+\_\+relation\+\_\+v = \mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_catalog_contains_relation}{Catalog\+Contains\+Relation}}$<$std\+::remove\+\_\+cv\+\_\+t$<$Catalog$>$, std\+::remove\+\_\+cv\+\_\+t$<$RelationT$>$$>$\+::value\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}}
A trait to determine if a catalog contains a given relation. This is a helper variable template that simplifies the usage of the \doxylink{structserif_1_1eos_1_1relations_1_1_catalog_contains_relation}{Catalog\+Contains\+Relation} trait.
\begin{DoxyTemplParams}{Template Parameters}
{\em Catalog} & The catalog type to check. \\
\hline
{\em RelationT} & The relation type to check for. \\
\hline
\end{DoxyTemplParams}
\Hypertarget{namespaceserif_1_1eos_1_1relations_a9d99a6a6d3edf16e9a3d33f6b6c5a88e}\index{serif::eos::relations@{serif::eos::relations}!relation\_contains\_input\_v@{relation\_contains\_input\_v}}
\index{relation\_contains\_input\_v@{relation\_contains\_input\_v}!serif::eos::relations@{serif::eos::relations}}
\doxysubsubsection{\texorpdfstring{relation\_contains\_input\_v}{relation\_contains\_input\_v}}
{\footnotesize\ttfamily \label{namespaceserif_1_1eos_1_1relations_a9d99a6a6d3edf16e9a3d33f6b6c5a88e}
template$<$typename RelationT, typename Quantity$>$ \\
bool serif\+::eos\+::relations\+::relation\+\_\+contains\+\_\+input\+\_\+v = \mbox{\hyperlink{structserif_1_1eos_1_1relations_1_1_relation_contains_input}{Relation\+Contains\+Input}}$<$std\+::remove\+\_\+cv\+\_\+t$<$RelationT$>$, std\+::remove\+\_\+cv\+\_\+t$<$Quantity$>$$>$\+::value\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}}
A trait to determine if a relation contains a given input quantity. This is a helper variable template that simplifies the usage of the \doxylink{structserif_1_1eos_1_1relations_1_1_relation_contains_input}{Relation\+Contains\+Input} trait.
\begin{DoxyTemplParams}{Template Parameters}
{\em RelationT} & The relation type to check. \\
\hline
{\em Quantity} & The quantity type to check for. \\
\hline
\end{DoxyTemplParams}