Files
MeanField_SERiF/docs/latex/eos_2models_2traits_8hpp.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

70 lines
7.2 KiB
TeX

\doxysection{src/include/serif/eos/models/traits.hpp File Reference}
\hypertarget{eos_2models_2traits_8hpp}{}\label{eos_2models_2traits_8hpp}\index{src/include/serif/eos/models/traits.hpp@{src/include/serif/eos/models/traits.hpp}}
File containing the traits for the eos module. These traits are used to determine if a type is an equation of state model and if it supports a given relation or partial derivative.
{\ttfamily \#include "{}serif/dimensions/quantities.\+hpp"{}}\newline
{\ttfamily \#include "{}serif/dimensions/partial.\+hpp"{}}\newline
{\ttfamily \#include "{}serif/eos/relations/concepts.\+hpp"{}}\newline
Include dependency graph for traits.\+hpp\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{eos_2models_2traits_8hpp__incl}
\end{center}
\end{figure}
This graph shows which files directly or indirectly include this file\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{eos_2models_2traits_8hpp__dep__incl}
\end{center}
\end{figure}
\doxysubsubsection*{Classes}
\begin{DoxyCompactItemize}
\item
struct \mbox{\hyperlink{structserif_1_1eos_1_1models_1_1_implements_relation__t}{serif\+::eos\+::models\+::\+Implements\+Relation\+\_\+t$<$ EOS, 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}{serif\+::eos\+::models\+::\+Implements\+Relation\+Catalog\+\_\+t$<$ EOS, Output, Inputs $>$}}
\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}{serif\+::eos\+::models\+::\+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_is_equation_of_state_model__t}{serif\+::eos\+::models\+::\+Is\+Equation\+Of\+State\+Model\+\_\+t$<$ EOSCandidate, typename $>$}}
\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}{serif\+::eos\+::models\+::\+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
struct \mbox{\hyperlink{structserif_1_1eos_1_1models_1_1_implements_partial_derivative__t}{serif\+::eos\+::models\+::\+Implements\+Partial\+Derivative\+\_\+t$<$ EOS, Relation\+T, Input\+Quantity $>$}}
\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_second_partial_derivative__t}{serif\+::eos\+::models\+::\+Implements\+Second\+Partial\+Derivative\+\_\+t$<$ EOS, Relation\+T, First\+Input, Second\+Input $>$}}
\begin{DoxyCompactList}\small\item\em A second partial is available only for two actual inputs of the relation. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
namespace \mbox{\hyperlink{namespaceserif}{serif}}
\item
namespace \mbox{\hyperlink{namespaceserif_1_1eos}{serif\+::eos}}
\item
namespace \mbox{\hyperlink{namespaceserif_1_1eos_1_1models}{serif\+::eos\+::models}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Variables}
\begin{DoxyCompactItemize}
\item
{\footnotesize template$<$typename EOSCandidate$>$ }\\constexpr bool \mbox{\hyperlink{namespaceserif_1_1eos_1_1models_a54483208e757570d1ef38aa59b9da8d6}{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
\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}{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
\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}{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
\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{Detailed Description}
File containing the traits for the eos module. These traits are used to determine if a type is an equation of state model and if it supports a given relation or partial derivative.
\begin{DoxyAuthor}{Author}
Emily M. Boudreaux
\end{DoxyAuthor}