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

99 lines
8.7 KiB
TeX

\doxysection{src/include/serif/model/specification.hpp File Reference}
\hypertarget{specification_8hpp}{}\label{specification_8hpp}\index{src/include/serif/model/specification.hpp@{src/include/serif/model/specification.hpp}}
{\ttfamily \#include $<$array$>$}\newline
{\ttfamily \#include $<$concepts$>$}\newline
{\ttfamily \#include $<$limits$>$}\newline
{\ttfamily \#include $<$string\+\_\+view$>$}\newline
{\ttfamily \#include $<$type\+\_\+traits$>$}\newline
{\ttfamily \#include "{}serif/dimensions/quantities.\+hpp"{}}\newline
{\ttfamily \#include "{}serif/utils/types/strings.\+hpp"{}}\newline
{\ttfamily \#include "{}serif/utils/types/type\+\_\+list.\+hpp"{}}\newline
Include dependency graph for specification.\+hpp\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{specification_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]{specification_8hpp__dep__incl}
\end{center}
\end{figure}
\doxysubsubsection*{Classes}
\begin{DoxyCompactItemize}
\item
struct \mbox{\hyperlink{structserif_1_1model_1_1_scalar_constraint}{serif\+::model\+::\+Scalar\+Constraint$<$ Target, Coordinate, Residual, Coordinate\+Id, Coordinate\+Symbol, Residual\+Id, Residual\+Symbol $>$}}
\begin{DoxyCompactList}\small\item\em Declare independent target, unknown and residual units and stable descriptive identities. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1model_1_1_specification_definition}{serif\+::model\+::\+Specification\+Definition$<$ Owner, Name, Role, Kind, Scalar, Read\+Fields, Changed\+Equations $>$}}
\begin{DoxyCompactList}\small\item\em Declare a prescription once; numerical providers and normalization consume this metadata. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1model_1_1_generated_coordinate_of}{serif\+::model\+::\+Generated\+Coordinate\+Of$<$ Specification $>$}}
\begin{DoxyCompactList}\small\item\em Name another prescription, including a forward declaration, without erasing its identity. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1model_1_1_constraint_of}{serif\+::model\+::\+Constraint\+Of$<$ Specification $>$}}
\begin{DoxyCompactList}\small\item\em Identify a generated residual independently from its target and unknown units. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1model_1_1_enforcement_of}{serif\+::model\+::\+Enforcement\+Of$<$ Specification $>$}}
\begin{DoxyCompactList}\small\item\em Select an explicit numerical enforcement while preserving the public physical prescription. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1model_1_1_specification_descriptor}{serif\+::model\+::\+Specification\+Descriptor}}
\begin{DoxyCompactList}\small\item\em Inspect canonical prescription identity without claiming numerical availability. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
namespace \mbox{\hyperlink{namespaceserif}{serif}}
\item
namespace \mbox{\hyperlink{namespaceserif_1_1model}{serif\+::model}}
\item
namespace \mbox{\hyperlink{namespaceserif_1_1model_1_1detail}{serif\+::model\+::detail}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Concepts}
\begin{DoxyCompactItemize}
\item
concept \mbox{\hyperlink{conceptserif_1_1model_1_1_model_specification}{serif\+::model\+::\+Model\+Specification}}
\begin{DoxyCompactList}\small\item\em Recognize a self-\/describing prescription without demanding executable physics or optional metadata. \end{DoxyCompactList}\item
concept \mbox{\hyperlink{conceptserif_1_1model_1_1_dimensional_scalar_specification}{serif\+::model\+::\+Dimensional\+Scalar\+Specification}}
\begin{DoxyCompactList}\small\item\em Require exact dimensional agreement only when scalar numerical metadata is needed. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item
{\footnotesize template$<$typename... Fields$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1model_a251ff98f4ef742b690180c7cb06292bb}{serif\+::model\+::\+Reads}} = \mbox{\hyperlink{structserif_1_1utils_1_1types_1_1_type_list}{utils\+::types\+::\+Type\+List}}$<$Fields...$>$
\item
{\footnotesize template$<$typename... Equations$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1model_a5cbe5c0513a11299350110cee5d31821}{serif\+::model\+::\+Changes}} = \mbox{\hyperlink{structserif_1_1utils_1_1types_1_1_type_list}{utils\+::types\+::\+Type\+List}}$<$Equations...$>$
\item
{\footnotesize template$<$Dimensional\+Scalar\+Specification Specification$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1model_ac7544ec47f3986209861b7fb0b6ae4bf}{serif\+::model\+::\+Generated\+Coordinate\+Quantity}} = typename Specification\+::\+Model\+Definition\+::\+Scalar\+Description\+::\+Coordinate\+Quantity
\begin{DoxyCompactList}\small\item\em Query scalar units only once the owning prescription is complete. \end{DoxyCompactList}\item
{\footnotesize template$<$Dimensional\+Scalar\+Specification Specification$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1model_a36d5c59d89fffbd444ee44415f85bbed}{serif\+::model\+::\+Constraint\+Quantity}} = typename Specification\+::\+Model\+Definition\+::\+Scalar\+Description\+::\+Residual\+Quantity
\begin{DoxyCompactList}\small\item\em Residual units remain independent from the target and generated coordinate. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item
enum class \mbox{\hyperlink{namespaceserif_1_1model_a80cb843c4b97c06905b775aba9d4b813}{serif\+::model\+::\+Specification\+Role}} \{ \newline
\mbox{\hyperlink{namespaceserif_1_1model_a80cb843c4b97c06905b775aba9d4b813a7832eb62b9d5da114fbd828501794b90}{serif\+::model\+::constitutive\+\_\+law}}
, \mbox{\hyperlink{namespaceserif_1_1model_a80cb843c4b97c06905b775aba9d4b813a8360be627354dd5a66ea7e358d0109a4}{serif\+::model\+::boundary\+\_\+condition}}
, \mbox{\hyperlink{namespaceserif_1_1model_a80cb843c4b97c06905b775aba9d4b813a97a1fb4792ab0d80857d825020ced2f0}{serif\+::model\+::invariant}}
, \mbox{\hyperlink{namespaceserif_1_1model_a80cb843c4b97c06905b775aba9d4b813ab55fad3fe78d06b3d481aef2500c784b}{serif\+::model\+::phase\+\_\+condition}}
, \newline
\mbox{\hyperlink{namespaceserif_1_1model_a80cb843c4b97c06905b775aba9d4b813a49d377e11d9c996137d2ef9ca80a1482}{serif\+::model\+::gauge\+\_\+choice}}
, \mbox{\hyperlink{namespaceserif_1_1model_a80cb843c4b97c06905b775aba9d4b813ae7aa3fcb6ca31a1a1fa583a6e4a98c30}{serif\+::model\+::rotation\+\_\+law}}
\}
\begin{DoxyCompactList}\small\item\em Physical purpose of a prescription, independently of its numerical implementation. \end{DoxyCompactList}\item
enum class \mbox{\hyperlink{namespaceserif_1_1model_a9dbd561b48b9cbb817a4102517d065ca}{serif\+::model\+::\+Generated\+State\+Kind}} \{ \mbox{\hyperlink{namespaceserif_1_1model_a9dbd561b48b9cbb817a4102517d065caa334c4a4c42fdb79d7ebc3e73b517e6f8}{serif\+::model\+::none}}
, \mbox{\hyperlink{namespaceserif_1_1model_a9dbd561b48b9cbb817a4102517d065caa2375dfa839ccd84978745547605b21e4}{serif\+::model\+::multiplier}}
, \mbox{\hyperlink{namespaceserif_1_1model_a9dbd561b48b9cbb817a4102517d065caa5b029370da350a18e571dffd4b78ae47}{serif\+::model\+::physical\+\_\+coordinate}}
, \mbox{\hyperlink{namespaceserif_1_1model_a9dbd561b48b9cbb817a4102517d065caa2fadfbbb30ccd79bbdcae01edd52f2b5}{serif\+::model\+::solver\+\_\+border}}
\}
\begin{DoxyCompactList}\small\item\em Distinguish prescribed physics from the physical meaning of a generated scalar. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item
consteval bool \mbox{\hyperlink{namespaceserif_1_1model_1_1detail_a63cb8dc552f2d77e4cd94e95ab5632a1}{serif\+::model\+::detail\+::compatible\+\_\+generated\+\_\+state}} (\mbox{\hyperlink{namespaceserif_1_1model_a80cb843c4b97c06905b775aba9d4b813}{Specification\+Role}} role, \mbox{\hyperlink{namespaceserif_1_1model_a9dbd561b48b9cbb817a4102517d065ca}{Generated\+State\+Kind}} kind)
\begin{DoxyCompactList}\small\item\em Reject unknown enums and mismatched physical roles before inspecting optional scalar metadata. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Variables}
\begin{DoxyCompactItemize}
\item
{\footnotesize template$<$typename Candidate$>$ }\\constexpr bool \mbox{\hyperlink{namespaceserif_1_1model_1_1detail_a4a7f81eee6f624fa023ae185500c3af7}{serif\+::model\+::detail\+::is\+\_\+type\+\_\+list}} = false
\item
{\footnotesize template$<$typename... Types$>$ }\\constexpr bool \mbox{\hyperlink{namespaceserif_1_1model_1_1detail_a326ac931281a47b95c3caabb1698e95a}{serif\+::model\+::detail\+::is\+\_\+type\+\_\+list$<$ utils\+::types\+::\+Type\+List$<$ Types... $>$ $>$}} = true
\end{DoxyCompactItemize}