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)
70 lines
6.8 KiB
TeX
70 lines
6.8 KiB
TeX
\doxysection{src/include/serif/model/validation.hpp File Reference}
|
|
\hypertarget{model_2validation_8hpp}{}\label{model_2validation_8hpp}\index{src/include/serif/model/validation.hpp@{src/include/serif/model/validation.hpp}}
|
|
{\ttfamily \#include "{}serif/model/description.\+hpp"{}}\newline
|
|
{\ttfamily \#include "{}serif/model/detail/specification\+\_\+endpoints.\+hpp"{}}\newline
|
|
{\ttfamily \#include "{}serif/model/plan.\+hpp"{}}\newline
|
|
{\ttfamily \#include "{}serif/operators/linearized\+\_\+system\+\_\+view.\+hpp"{}}\newline
|
|
Include dependency graph for validation.\+hpp\+:
|
|
\nopagebreak
|
|
\begin{figure}[H]
|
|
\begin{center}
|
|
\leavevmode
|
|
\includegraphics[width=350pt]{model_2validation_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]{model_2validation_8hpp__dep__incl}
|
|
\end{center}
|
|
\end{figure}
|
|
\doxysubsubsection*{Classes}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
struct \mbox{\hyperlink{structserif_1_1model_1_1detail_1_1_equation_couplings_3_01_equation_00_01utils_1_1types_1_1_typef24c48fc52ee458347e39dd0b9bd8b4f}{serif\+::model\+::detail\+::\+Equation\+Couplings$<$ Equation, utils\+::types\+::\+Type\+List$<$ Columns... $>$ $>$}}
|
|
\item
|
|
struct \mbox{\hyperlink{structserif_1_1model_1_1detail_1_1_interior_couplings_3_01equations_1_1_equation_registry_3_01_equations_8_8_8_01_4_01_4}{serif\+::model\+::detail\+::\+Interior\+Couplings$<$ equations\+::\+Equation\+Registry$<$ Equations... $>$ $>$}}
|
|
\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_specification_endpoints_valid}{serif\+::model\+::\+Specification\+Endpoints\+Valid}}
|
|
\begin{DoxyCompactList}\small\item\em Validate physical ownership, available inputs and uniquely owned generated equations. \end{DoxyCompactList}\item
|
|
concept \mbox{\hyperlink{conceptserif_1_1model_1_1_specification_topology_valid}{serif\+::model\+::\+Specification\+Topology\+Valid}}
|
|
\begin{DoxyCompactList}\small\item\em Validate physical endpoints and every derivative in an explicitly declared contract. \end{DoxyCompactList}\item
|
|
concept \mbox{\hyperlink{conceptserif_1_1model_1_1_specification_backend_available}{serif\+::model\+::\+Specification\+Backend\+Available}}
|
|
\begin{DoxyCompactList}\small\item\em Require a registered implementation for every declared generated derivative, including explicit zeros. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
|
\doxysubsubsection*{Typedefs}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
{\footnotesize template$<$typename Row, typename Field$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1model_a95bbbd670343f9cd11939d21c5bf79ab}{serif\+::model\+::\+Derivative}} = \mbox{\hyperlink{structserif_1_1operators_1_1_physical_block}{operators\+::\+Physical\+Block}}$<$\mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1_key_list}{utils\+::dependencies\+::\+Key\+List}}$<$Row$>$, \mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1_key_list}{utils\+::dependencies\+::\+Key\+List}}$<$Field$>$$>$
|
|
\begin{DoxyCompactList}\small\item\em Name a physical derivative using the shared block-\/source key convention. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$utils\+::dependencies\+::\+Is\+Binding... Additional$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1model_aa7c7c71dc1c2c0431623ac27c88bdb0b}{serif\+::model\+::\+Specification\+Bindings}}
|
|
\begin{DoxyCompactList}\small\item\em Map physical names and built-\/in generated identities once; custom identities require explicit bindings. \end{DoxyCompactList}\item
|
|
using \mbox{\hyperlink{namespaceserif_1_1model_adae046e777aafb66e79a039911580916}{serif\+::model\+::\+Default\+Specification\+Bindings}} = \mbox{\hyperlink{namespaceserif_1_1model_aa7c7c71dc1c2c0431623ac27c88bdb0b}{Specification\+Bindings}}$<$$>$
|
|
\item
|
|
{\footnotesize template$<$Executable\+Interior\+Equations Registry$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1model_a5d147fdea58527d7b5ee14302ab8cd57}{serif\+::model\+::\+Declared\+Equation\+Couplings}} = typename \mbox{\hyperlink{structserif_1_1model_1_1detail_1_1_interior_couplings}{detail\+::\+Interior\+Couplings}}$<$std\+::remove\+\_\+cvref\+\_\+t$<$Registry$>$$>$\+::\+Type
|
|
\begin{DoxyCompactList}\small\item\em Derive declared interior couplings from actual operands rather than a second physical sparsity table. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
|
\doxysubsubsection*{Functions}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
{\footnotesize template$<$Dimensional\+Scalar\+Specification Specification, typename Model, typename Values, typename Inputs, typename Rows, typename Inactive\+Rows, typename Bindings$>$ }\\consteval bool \mbox{\hyperlink{namespaceserif_1_1model_1_1detail_aae26e7579ddb1668e7abef12a8c70067}{serif\+::model\+::detail\+::valid\+\_\+specification\+\_\+endpoints}} ()
|
|
\begin{DoxyCompactList}\small\item\em Check physical inputs separately from unknowns and explicitly inactive equations. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename Model, typename Values, typename Inputs, typename Rows, typename Inactive\+Rows, typename Bindings, typename... Specifications$>$ }\\consteval bool \mbox{\hyperlink{namespaceserif_1_1model_1_1detail_ad2113b4e1a949598fc2f7be37f1c0927}{serif\+::model\+::detail\+::valid\+\_\+specifications}} (\mbox{\hyperlink{structserif_1_1utils_1_1types_1_1_type_list}{utils\+::types\+::\+Type\+List}}$<$ Specifications... $>$)
|
|
\begin{DoxyCompactList}\small\item\em Fold independent physical declarations; no equation counting or rank inference is involved. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$Dimensional\+Scalar\+Specification Specification, typename Couplings, typename Bindings$>$ }\\consteval bool \mbox{\hyperlink{namespaceserif_1_1model_1_1detail_a17b67ad43340da0fcbb5688d6b90e9a1}{serif\+::model\+::detail\+::specification\+\_\+derivatives\+\_\+available}} ()
|
|
\begin{DoxyCompactList}\small\item\em Validate declared derivative contracts without inferring zeros from missing providers. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename Couplings, typename Bindings, typename... Specifications$>$ }\\consteval bool \mbox{\hyperlink{namespaceserif_1_1model_1_1detail_a0d6ab5f248c85c95fd813dbb801fe90d}{serif\+::model\+::detail\+::specification\+\_\+derivatives\+\_\+available}} (\mbox{\hyperlink{structserif_1_1utils_1_1types_1_1_type_list}{utils\+::types\+::\+Type\+List}}$<$ Specifications... $>$)
|
|
\begin{DoxyCompactList}\small\item\em Check each prescription against independently supplied derivative registrations. \end{DoxyCompactList}\end{DoxyCompactItemize}
|