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)
170 lines
17 KiB
TeX
170 lines
17 KiB
TeX
\doxysection{serif\+::eos\+::models Namespace Reference}
|
|
\hypertarget{namespaceserif_1_1eos_1_1models}{}\label{namespaceserif_1_1eos_1_1models}\index{serif::eos::models@{serif::eos::models}}
|
|
\doxysubsubsection*{Classes}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
struct \mbox{\hyperlink{structserif_1_1eos_1_1models_1_1_implements_partial_derivative__t}{Implements\+Partial\+Derivative\+\_\+t}}
|
|
\begin{DoxyCompactList}\small\item\em A trait to determine if a type implements a partial derivative for a given relation and input quantity. This is the default false specialization. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1eos_1_1models_1_1_implements_relation__t}{Implements\+Relation\+\_\+t}}
|
|
\begin{DoxyCompactList}\small\item\em A trait to determine if a type is an equation of state model. This is the default false specialization. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1eos_1_1models_1_1_implements_relation_catalog__t}{Implements\+Relation\+Catalog\+\_\+t}}
|
|
\begin{DoxyCompactList}\small\item\em A specialization of the \doxylink{structserif_1_1eos_1_1models_1_1_implements_relation__t}{Implements\+Relation\+\_\+t} trait for a relation. This is used to determine if an EOS type implements a given relation. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1eos_1_1models_1_1_implements_relation_catalog__t_3_01_e_o_s_00_01relations_1_1_re84a27b22ac57c74adaf074b343ae5413}{Implements\+Relation\+Catalog\+\_\+t$<$ EOS, relations\+::\+Relation\+Catalog$<$ Relations... $>$ $>$}}
|
|
\begin{DoxyCompactList}\small\item\em A specialization of the \doxylink{structserif_1_1eos_1_1models_1_1_implements_relation_catalog__t}{Implements\+Relation\+Catalog\+\_\+t} trait for a relation catalog. This is used to determine if an EOS type implements all relations in a given relation catalog. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1eos_1_1models_1_1_implements_second_partial_derivative__t}{Implements\+Second\+Partial\+Derivative\+\_\+t}}
|
|
\begin{DoxyCompactList}\small\item\em A second partial is available only for two actual inputs of the relation. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1eos_1_1models_1_1_is_equation_of_state_model__t}{Is\+Equation\+Of\+State\+Model\+\_\+t}}
|
|
\begin{DoxyCompactList}\small\item\em A trait to determine if a type is an equation of state model. This is the default false specialization. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1eos_1_1models_1_1_is_equation_of_state_model__t_3_01_e_o_s_candidate_00_01std_1_12c3fff187c709d66c77cc44935c5cf28}{Is\+Equation\+Of\+State\+Model\+\_\+t$<$ EOSCandidate, std\+::void\+\_\+t$<$ typename std\+::remove\+\_\+cvref\+\_\+t$<$ EOSCandidate $>$\+::\+Relations $>$ $>$}}
|
|
\begin{DoxyCompactList}\small\item\em A specialization of the \doxylink{structserif_1_1eos_1_1models_1_1_is_equation_of_state_model__t}{Is\+Equation\+Of\+State\+Model\+\_\+t} trait for a type that has a Relations type alias. A candidate is an equation of state model if it has a valid relation catalog and implements all relations in that catalog. \end{DoxyCompactList}\item
|
|
class \mbox{\hyperlink{classserif_1_1eos_1_1models_1_1_polytrope}{Polytrope}}
|
|
\item
|
|
struct \mbox{\hyperlink{structserif_1_1eos_1_1models_1_1_polytrope_parameters}{Polytrope\+Parameters}}
|
|
\begin{DoxyCompactList}\small\item\em A struct to hold the parameters for a polytropic equation of state. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
|
\doxysubsubsection*{Concepts}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
concept \mbox{\hyperlink{conceptserif_1_1eos_1_1models_1_1_e_o_s_model}{EOSModel}}
|
|
\begin{DoxyCompactList}\small\item\em A concept to determine if a type is an equation of state model. A type is a valid EOSModel if it satisfies the is\+\_\+equation\+\_\+of\+\_\+state\+\_\+model\+\_\+v trait. \end{DoxyCompactList}\item
|
|
concept \mbox{\hyperlink{conceptserif_1_1eos_1_1models_1_1_e_o_s_supporting_relation}{EOSSupporting\+Relation}}
|
|
\begin{DoxyCompactList}\small\item\em A concept to determine if a type is an equation of state model that supports a given relation. A type is a valid EOSSupporting\+Relation if it satisfies the supports\+\_\+relation\+\_\+v trait. \end{DoxyCompactList}\item
|
|
concept \mbox{\hyperlink{conceptserif_1_1eos_1_1models_1_1_e_o_s_supporting_partial_derivative}{EOSSupporting\+Partial\+Derivative}}
|
|
\begin{DoxyCompactList}\small\item\em A concept to determine if a type is an equation of state model that supports a given relation and a given input quantity. A type is a valid EOSSupporting\+Partial\+Derivative if it satisfies the supports\+\_\+partial\+\_\+derivative\+\_\+v trait. \end{DoxyCompactList}\item
|
|
concept \mbox{\hyperlink{conceptserif_1_1eos_1_1models_1_1_e_o_s_supporting_second_partial_derivative}{EOSSupporting\+Second\+Partial\+Derivative}}
|
|
\begin{DoxyCompactList}\small\item\em Require a declared EOS relation and its analytic second partial. \end{DoxyCompactList}\item
|
|
concept \mbox{\hyperlink{conceptserif_1_1eos_1_1models_1_1_structure_seed_e_o_s}{Structure\+Seed\+EOS}}
|
|
\begin{DoxyCompactList}\small\item\em A concept to determine if a type is an equation of state model that can be used in the current SERiF seed initialization system. This is satisfied for types that are both valid EOSModels and which also support the relation for computing specific enthalpy from density. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
|
\doxysubsubsection*{Enumerations}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
enum class \mbox{\hyperlink{namespaceserif_1_1eos_1_1models_ab04484c13887f78337c2331fb2911346}{SERi\+FError\+Code}}
|
|
\end{DoxyCompactItemize}
|
|
\doxysubsubsection*{Functions}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
{\footnotesize template$<$typename Exception\+Type, errors\+::\+SERi\+FError\+Code Error\+Code, concepts\+::\+Is\+Numeric Scalar$>$ }\\void \mbox{\hyperlink{namespaceserif_1_1eos_1_1models_a81150dfc59c33d2e767a9e572cb15fce}{validate\+\_\+finite}} (const Scalar value)
|
|
\item
|
|
{\footnotesize template$<$typename Exception\+Type, errors\+::\+SERi\+FError\+Code Error\+Code, concepts\+::\+Is\+Comparable\+To\+Numeric Scalar$>$ }\\void \mbox{\hyperlink{namespaceserif_1_1eos_1_1models_a21655a5b8f48ae49f385e0a7ea836f3a}{validate\+\_\+greater\+\_\+than}} (const Scalar value, const Scalar predicate)
|
|
\item
|
|
{\footnotesize template$<$typename Exception\+Type, errors\+::\+SERi\+FError\+Code Error\+Code, concepts\+::\+Is\+Comparable\+To\+Numeric Scalar$>$ }\\void \mbox{\hyperlink{namespaceserif_1_1eos_1_1models_ade362937d8732832b60a4d829b15d611}{validate\+\_\+less\+\_\+than}} (const Scalar value, const Scalar predicate)
|
|
\item
|
|
{\footnotesize template$<$typename Exception\+Type, errors\+::\+SERi\+FError\+Code Error\+Code, concepts\+::\+Is\+Comparable\+To\+Numeric Scalar$>$ }\\void \mbox{\hyperlink{namespaceserif_1_1eos_1_1models_a7f0bf6f20695cc8bb3c052c8a8f16dff}{validate\+\_\+nonnegativity}} (const Scalar value)
|
|
\end{DoxyCompactItemize}
|
|
\doxysubsubsection*{Variables}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
{\footnotesize template$<$typename EOSCandidate$>$ }\\constexpr bool \mbox{\hyperlink{namespaceserif_1_1eos_1_1models_a54483208e757570d1ef38aa59b9da8d6}{is\+\_\+equation\+\_\+of\+\_\+state\+\_\+model\+\_\+v}} = \mbox{\hyperlink{structserif_1_1eos_1_1models_1_1_is_equation_of_state_model__t}{Is\+Equation\+Of\+State\+Model\+\_\+t}}$<$std\+::remove\+\_\+cvref\+\_\+t$<$EOSCandidate$>$$>$\+::value
|
|
\begin{DoxyCompactList}\small\item\em A specialization of the \doxylink{structserif_1_1eos_1_1models_1_1_implements_partial_derivative__t}{Implements\+Partial\+Derivative\+\_\+t} trait for a relation and input quantity. This is used to determine if an EOS type implements a partial derivative for a given relation and input quantity. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename EOS, typename RelationT$>$ }\\constexpr bool \mbox{\hyperlink{namespaceserif_1_1eos_1_1models_ade35b41c252dd1f4369ebf954c8c81e8}{supports\+\_\+relation\+\_\+v}} = \mbox{\hyperlink{namespaceserif_1_1eos_1_1models_a54483208e757570d1ef38aa59b9da8d6}{is\+\_\+equation\+\_\+of\+\_\+state\+\_\+model\+\_\+v}}$<$EOS$>$ \&\& \mbox{\hyperlink{structserif_1_1eos_1_1models_1_1_implements_relation__t}{Implements\+Relation\+\_\+t}}$<$std\+::remove\+\_\+cvref\+\_\+t$<$EOS$>$, std\+::remove\+\_\+cvref\+\_\+t$<$RelationT$>$$>$\+::value
|
|
\begin{DoxyCompactList}\small\item\em Require an analytic implementation with the exact physical return type. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename EOS, typename RelationT, typename Input\+Quantity$>$ }\\constexpr bool \mbox{\hyperlink{namespaceserif_1_1eos_1_1models_ab0fa71430824737b86a42a5eb08a83ee}{supports\+\_\+partial\+\_\+derivative\+\_\+v}} = \mbox{\hyperlink{namespaceserif_1_1eos_1_1models_a54483208e757570d1ef38aa59b9da8d6}{is\+\_\+equation\+\_\+of\+\_\+state\+\_\+model\+\_\+v}}$<$EOS$>$ \&\& \mbox{\hyperlink{structserif_1_1eos_1_1models_1_1_implements_partial_derivative__t}{Implements\+Partial\+Derivative\+\_\+t}}$<$std\+::remove\+\_\+cvref\+\_\+t$<$EOS$>$, std\+::remove\+\_\+cvref\+\_\+t$<$RelationT$>$, Input\+Quantity$>$\+::value
|
|
\begin{DoxyCompactList}\small\item\em A variable template to determine if an EOS type supports a partial derivative for a given relation and input quantity. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
|
|
|
|
|
\doxysubsection{Enumeration Type Documentation}
|
|
\Hypertarget{namespaceserif_1_1eos_1_1models_ab04484c13887f78337c2331fb2911346}\index{serif::eos::models@{serif::eos::models}!SERiFErrorCode@{SERiFErrorCode}}
|
|
\index{SERiFErrorCode@{SERiFErrorCode}!serif::eos::models@{serif::eos::models}}
|
|
\doxysubsubsection{\texorpdfstring{SERiFErrorCode}{SERiFErrorCode}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1eos_1_1models_ab04484c13887f78337c2331fb2911346}
|
|
enum class \mbox{\hyperlink{namespaceserif_1_1utils_1_1errors_ab04484c13887f78337c2331fb2911346}{serif\+::utils\+::errors\+::\+SERi\+FError\+Code}} \+: uint16\+\_\+t\hspace{0.3cm}{\ttfamily [strong]}}
|
|
|
|
|
|
|
|
\doxysubsection{Function Documentation}
|
|
\Hypertarget{namespaceserif_1_1eos_1_1models_a81150dfc59c33d2e767a9e572cb15fce}\index{serif::eos::models@{serif::eos::models}!validate\_finite@{validate\_finite}}
|
|
\index{validate\_finite@{validate\_finite}!serif::eos::models@{serif::eos::models}}
|
|
\doxysubsubsection{\texorpdfstring{validate\_finite()}{validate\_finite()}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1eos_1_1models_a81150dfc59c33d2e767a9e572cb15fce}
|
|
template$<$typename Exception\+Type, errors\+::\+SERi\+FError\+Code Error\+Code, concepts\+::\+Is\+Numeric Scalar$>$ \\
|
|
void serif\+::utils\+::misc\+::validate\+\_\+finite (\begin{DoxyParamCaption}\item[{const Scalar}]{value}{}\end{DoxyParamCaption})}
|
|
|
|
\Hypertarget{namespaceserif_1_1eos_1_1models_a21655a5b8f48ae49f385e0a7ea836f3a}\index{serif::eos::models@{serif::eos::models}!validate\_greater\_than@{validate\_greater\_than}}
|
|
\index{validate\_greater\_than@{validate\_greater\_than}!serif::eos::models@{serif::eos::models}}
|
|
\doxysubsubsection{\texorpdfstring{validate\_greater\_than()}{validate\_greater\_than()}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1eos_1_1models_a21655a5b8f48ae49f385e0a7ea836f3a}
|
|
template$<$typename Exception\+Type, errors\+::\+SERi\+FError\+Code Error\+Code, concepts\+::\+Is\+Comparable\+To\+Numeric Scalar$>$ \\
|
|
void serif\+::utils\+::misc\+::validate\+\_\+greater\+\_\+than (\begin{DoxyParamCaption}\item[{const Scalar}]{value}{, }\item[{const Scalar}]{predicate}{}\end{DoxyParamCaption})}
|
|
|
|
\Hypertarget{namespaceserif_1_1eos_1_1models_ade362937d8732832b60a4d829b15d611}\index{serif::eos::models@{serif::eos::models}!validate\_less\_than@{validate\_less\_than}}
|
|
\index{validate\_less\_than@{validate\_less\_than}!serif::eos::models@{serif::eos::models}}
|
|
\doxysubsubsection{\texorpdfstring{validate\_less\_than()}{validate\_less\_than()}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1eos_1_1models_ade362937d8732832b60a4d829b15d611}
|
|
template$<$typename Exception\+Type, errors\+::\+SERi\+FError\+Code Error\+Code, concepts\+::\+Is\+Comparable\+To\+Numeric Scalar$>$ \\
|
|
void serif\+::utils\+::misc\+::validate\+\_\+less\+\_\+than (\begin{DoxyParamCaption}\item[{const Scalar}]{value}{, }\item[{const Scalar}]{predicate}{}\end{DoxyParamCaption})}
|
|
|
|
\Hypertarget{namespaceserif_1_1eos_1_1models_a7f0bf6f20695cc8bb3c052c8a8f16dff}\index{serif::eos::models@{serif::eos::models}!validate\_nonnegativity@{validate\_nonnegativity}}
|
|
\index{validate\_nonnegativity@{validate\_nonnegativity}!serif::eos::models@{serif::eos::models}}
|
|
\doxysubsubsection{\texorpdfstring{validate\_nonnegativity()}{validate\_nonnegativity()}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1eos_1_1models_a7f0bf6f20695cc8bb3c052c8a8f16dff}
|
|
template$<$typename Exception\+Type, errors\+::\+SERi\+FError\+Code Error\+Code, concepts\+::\+Is\+Comparable\+To\+Numeric Scalar$>$ \\
|
|
void serif\+::utils\+::misc\+::validate\+\_\+nonnegativity (\begin{DoxyParamCaption}\item[{const Scalar}]{value}{}\end{DoxyParamCaption})}
|
|
|
|
|
|
|
|
\doxysubsection{Variable Documentation}
|
|
\Hypertarget{namespaceserif_1_1eos_1_1models_a54483208e757570d1ef38aa59b9da8d6}\index{serif::eos::models@{serif::eos::models}!is\_equation\_of\_state\_model\_v@{is\_equation\_of\_state\_model\_v}}
|
|
\index{is\_equation\_of\_state\_model\_v@{is\_equation\_of\_state\_model\_v}!serif::eos::models@{serif::eos::models}}
|
|
\doxysubsubsection{\texorpdfstring{is\_equation\_of\_state\_model\_v}{is\_equation\_of\_state\_model\_v}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1eos_1_1models_a54483208e757570d1ef38aa59b9da8d6}
|
|
template$<$typename EOSCandidate$>$ \\
|
|
bool serif\+::eos\+::models\+::is\+\_\+equation\+\_\+of\+\_\+state\+\_\+model\+\_\+v = \mbox{\hyperlink{structserif_1_1eos_1_1models_1_1_is_equation_of_state_model__t}{Is\+Equation\+Of\+State\+Model\+\_\+t}}$<$std\+::remove\+\_\+cvref\+\_\+t$<$EOSCandidate$>$$>$\+::value\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}}
|
|
|
|
|
|
|
|
A specialization of the \doxylink{structserif_1_1eos_1_1models_1_1_implements_partial_derivative__t}{Implements\+Partial\+Derivative\+\_\+t} trait for a relation and input quantity. This is used to determine if an EOS type implements a partial derivative for a given relation and input quantity.
|
|
|
|
|
|
\begin{DoxyTemplParams}{Template Parameters}
|
|
{\em EOS} & The EOS type to check. \\
|
|
\hline
|
|
{\em Output} & The output quantity of the relation. \\
|
|
\hline
|
|
{\em Inputs} & The input quantities of the relation. \\
|
|
\hline
|
|
{\em Input\+Quantity} & The input quantity to check.\\
|
|
\hline
|
|
\end{DoxyTemplParams}
|
|
A variable template to determine if a type is an equation of state model.
|
|
\begin{DoxyTemplParams}{Template Parameters}
|
|
{\em EOSCandidate} & The type to check. \\
|
|
\hline
|
|
\end{DoxyTemplParams}
|
|
\Hypertarget{namespaceserif_1_1eos_1_1models_ab0fa71430824737b86a42a5eb08a83ee}\index{serif::eos::models@{serif::eos::models}!supports\_partial\_derivative\_v@{supports\_partial\_derivative\_v}}
|
|
\index{supports\_partial\_derivative\_v@{supports\_partial\_derivative\_v}!serif::eos::models@{serif::eos::models}}
|
|
\doxysubsubsection{\texorpdfstring{supports\_partial\_derivative\_v}{supports\_partial\_derivative\_v}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1eos_1_1models_ab0fa71430824737b86a42a5eb08a83ee}
|
|
template$<$typename EOS, typename RelationT, typename Input\+Quantity$>$ \\
|
|
bool serif\+::eos\+::models\+::supports\+\_\+partial\+\_\+derivative\+\_\+v = \mbox{\hyperlink{namespaceserif_1_1eos_1_1models_a54483208e757570d1ef38aa59b9da8d6}{is\+\_\+equation\+\_\+of\+\_\+state\+\_\+model\+\_\+v}}$<$EOS$>$ \&\& \mbox{\hyperlink{structserif_1_1eos_1_1models_1_1_implements_partial_derivative__t}{Implements\+Partial\+Derivative\+\_\+t}}$<$std\+::remove\+\_\+cvref\+\_\+t$<$EOS$>$, std\+::remove\+\_\+cvref\+\_\+t$<$RelationT$>$, Input\+Quantity$>$\+::value\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}}
|
|
|
|
|
|
|
|
A variable template to determine if an EOS type supports a partial derivative for a given relation and input quantity.
|
|
|
|
|
|
\begin{DoxyTemplParams}{Template Parameters}
|
|
{\em EOS} & The EOS type to check. \\
|
|
\hline
|
|
{\em RelationT} & The relation to check. \\
|
|
\hline
|
|
{\em Input\+Quantity} & The input quantity to check. \\
|
|
\hline
|
|
\end{DoxyTemplParams}
|
|
\Hypertarget{namespaceserif_1_1eos_1_1models_ade35b41c252dd1f4369ebf954c8c81e8}\index{serif::eos::models@{serif::eos::models}!supports\_relation\_v@{supports\_relation\_v}}
|
|
\index{supports\_relation\_v@{supports\_relation\_v}!serif::eos::models@{serif::eos::models}}
|
|
\doxysubsubsection{\texorpdfstring{supports\_relation\_v}{supports\_relation\_v}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1eos_1_1models_ade35b41c252dd1f4369ebf954c8c81e8}
|
|
template$<$typename EOS, typename RelationT$>$ \\
|
|
bool serif\+::eos\+::models\+::supports\+\_\+relation\+\_\+v = \mbox{\hyperlink{namespaceserif_1_1eos_1_1models_a54483208e757570d1ef38aa59b9da8d6}{is\+\_\+equation\+\_\+of\+\_\+state\+\_\+model\+\_\+v}}$<$EOS$>$ \&\& \mbox{\hyperlink{structserif_1_1eos_1_1models_1_1_implements_relation__t}{Implements\+Relation\+\_\+t}}$<$std\+::remove\+\_\+cvref\+\_\+t$<$EOS$>$, std\+::remove\+\_\+cvref\+\_\+t$<$RelationT$>$$>$\+::value\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}}
|
|
|
|
|
|
|
|
Require an analytic implementation with the exact physical return type.
|
|
|
|
A variable template to determine if an EOS type supports a given relation.
|
|
\begin{DoxyTemplParams}{Template Parameters}
|
|
{\em EOS} & The EOS type to check. \\
|
|
\hline
|
|
{\em RelationT} & The relation to check. \\
|
|
\hline
|
|
\end{DoxyTemplParams}
|