\doxysection{serif\+::equations Namespace Reference} \hypertarget{namespaceserif_1_1equations}{}\label{namespaceserif_1_1equations}\index{serif::equations@{serif::equations}} \doxysubsubsection*{Classes} \begin{DoxyCompactItemize} \item class \mbox{\hyperlink{classserif_1_1equations_1_1_angular_momentum_constraint}{Angular\+Momentum\+Constraint}} \begin{DoxyCompactList}\small\item\em Angular momentum constraint equation, which enforces a global constraint on the total angular momentum of a system. \end{DoxyCompactList}\item class \mbox{\hyperlink{classserif_1_1equations_1_1_barotropic_density_balance}{Barotropic\+Density\+Balance}} \begin{DoxyCompactList}\small\item\em Enforce A(rho) -\/ A(rho\+\_\+surface) + Phi -\/ Omega\texorpdfstring{$^\wedge$}{\string^}2 Psi -\/ U\+\_\+surface = 0 using density test values. This closure assumes a connected barotrope in rigid rotation. \end{DoxyCompactList}\item class \mbox{\hyperlink{classserif_1_1equations_1_1_barycenter_constraint}{Barycenter\+Constraint}} \begin{DoxyCompactList}\small\item\em Fix one component of integral rho (x-\/center)/\+M\+\_\+target. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structserif_1_1equations_1_1_contribution}{Contribution}} \begin{DoxyCompactList}\small\item\em A helper struct for authoring equations with fewer lines of boiler-\/plate. The idea here is that every equation must report certain members so that the backend can inspect at compile time. An author could certainly write these members themselves, but the \doxylink{structserif_1_1equations_1_1_contribution}{Contribution} struct auto generates those members based on its template parameters. Therefore, by inheriting from the \doxylink{structserif_1_1equations_1_1_contribution}{Contribution} struct an equation author can avoid writing those members themselves. Note that while this is inheritance it is still a compile-\/time relation. \doxylink{structserif_1_1equations_1_1_contribution}{Contribution} does not add any runtime overhead to the equation. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structserif_1_1equations_1_1_contributions}{Contributions}} \begin{DoxyCompactList}\small\item\em Helper struct to pack a list of contributions into a tuple. This is used to define the set of contributions of an equation. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structserif_1_1equations_1_1_contributions_3_01_t_00_01std_1_1void__t_3_01decltype_07std_1_1decl671b42e5568b3715d07217eb0f34ce32}{Contributions$<$ T, std\+::void\+\_\+t$<$ decltype(std\+::declval$<$ const T \& $>$().\+contributions())$>$ $>$}} \begin{DoxyCompactList}\small\item\em Specialization of \doxylink{structserif_1_1equations_1_1_contributions}{Contributions} for types that have the contributions() method. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structserif_1_1equations_1_1_contribution_support}{Contribution\+Support}} \begin{DoxyCompactList}\small\item\em Helper alias to extract the support type for a given contribution. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structserif_1_1equations_1_1_contribution_support_3_01_t_00_01std_1_1void__t_3_01typename_01_t_1_1_support_01_4_01_4}{Contribution\+Support$<$ T, std\+::void\+\_\+t$<$ typename T\+::\+Support $>$ $>$}} \begin{DoxyCompactList}\small\item\em Specialization of \doxylink{structserif_1_1equations_1_1_contribution_support}{Contribution\+Support} for types that have a Support member type. This allows us to extract the support type from contributions or equations that define a Support type. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structserif_1_1equations_1_1_contribution_tuple}{Contribution\+Tuple}} \begin{DoxyCompactList}\small\item\em Type representing the contributions of an equation. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structserif_1_1equations_1_1_contribution_tuple_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1e282a2c4b2ce56d3b5a3d2dda19385da}{Contribution\+Tuple$<$ std\+::tuple$<$ Ts... $>$, std\+::void\+\_\+t$<$ decltype(std\+::tuple\+\_\+cat(std\+::declval$<$ typename Contributions$<$ std\+::remove\+\_\+cvref\+\_\+t$<$ Ts $>$ $>$\+::type $>$()...))$>$ $>$}} \begin{DoxyCompactList}\small\item\em Specialization of \doxylink{structserif_1_1equations_1_1_contribution_tuple}{Contribution\+Tuple} for tuples of contributions. This allows us to extract the contributions from a tuple of contributions. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structserif_1_1equations_1_1_equation_point}{Equation\+Point}} \begin{DoxyCompactList}\small\item\em A struct to represent the values of operands at a given point in space. \end{DoxyCompactList}\item class \mbox{\hyperlink{classserif_1_1equations_1_1_equation_registry}{Equation\+Registry}} \begin{DoxyCompactList}\small\item\em A compile-\/time registry of equations. \end{DoxyCompactList}\item class \mbox{\hyperlink{classserif_1_1equations_1_1_mass_normalization}{Mass\+Normalization}} \begin{DoxyCompactList}\small\item\em Mass normalization equation, which enforces a global constraint on the total mass of a system. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structserif_1_1equations_1_1_operand_values}{Operand\+Values}} \begin{DoxyCompactList}\small\item\em A helper struct to store the values of operands. There is some convention here, specifically if OutputT is void then this struct represents the values of the operands, otherwise it represents the local derivatives of the operands with respect to OutputT. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structserif_1_1equations_1_1_operand_values_3_01utils_1_1types_1_1_type_list_3_01_operands_8_8_8_01_4_00_01_output_t_01_4}{Operand\+Values$<$ utils\+::types\+::\+Type\+List$<$ Operands... $>$, Output\+T $>$}} \item struct \mbox{\hyperlink{structserif_1_1equations_1_1_point_linearization}{Point\+Linearization}} \begin{DoxyCompactList}\small\item\em A struct to represent the linearization of a pointwise equation at a given point in space. This includes the residual and the local derivatives of the operands with respect to the test operand value, as well as the local derivative of the test operand value with respect to position. \end{DoxyCompactList}\item class \mbox{\hyperlink{classserif_1_1equations_1_1_point_mass_companion}{Point\+Mass\+Companion}} \begin{DoxyCompactList}\small\item\em The potential -\/G M\+\_\+c/\texorpdfstring{$\vert$}{|}x -\/ x\+\_\+c\texorpdfstring{$\vert$}{|} of a point-\/mass companion outside the star. \end{DoxyCompactList}\item class \mbox{\hyperlink{classserif_1_1equations_1_1_primal_poisson_balance}{Primal\+Poisson\+Balance}} \begin{DoxyCompactList}\small\item\em Solve Delta(\+Phi) = 4 pi G rho with one conforming scalar potential field. \end{DoxyCompactList}\item class \mbox{\hyperlink{classserif_1_1equations_1_1_rigid_rotation}{Rigid\+Rotation}} \begin{DoxyCompactList}\small\item\em A class that implements rigid rotation, providing methods to compute the centrifugal potential, its gradient, and its Hessian. \end{DoxyCompactList}\item class \mbox{\hyperlink{classserif_1_1equations_1_1_surface_potential_balance}{Surface\+Potential\+Balance}} \begin{DoxyCompactList}\small\item\em Set the effective potential to one unknown level on the selected isobar. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structserif_1_1equations_1_1_test_operand_traits}{Test\+Operand\+Traits}} \begin{DoxyCompactList}\small\item\em A helper struct to extract the test operand type from a contribution or equation. This is used to determine the test type of an equation or contribution. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structserif_1_1equations_1_1_test_operand_traits_3_01_t_00_01std_1_1void__t_3_01typename_01_t_1_1_test_operand_01_4_01_4}{Test\+Operand\+Traits$<$ T, std\+::void\+\_\+t$<$ typename T\+::\+Test\+Operand $>$ $>$}} \begin{DoxyCompactList}\small\item\em Specialization of \doxylink{structserif_1_1equations_1_1_test_operand_traits}{Test\+Operand\+Traits} for types that have a Test\+Operand member type. This allows us to extract the test operand type from contributions or equations that define a Test\+Operand type. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structserif_1_1equations_1_1_valid_contributions}{Valid\+Contributions}} \begin{DoxyCompactList}\small\item\em A compile-\/time check to ensure that a tuple of contributions is valid for a given residual row type. This is the default false specialization. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structserif_1_1equations_1_1_valid_contributions_3_01_row_t_00_01std_1_1tuple_3_01_c_8_8_8_01_4_01_4}{Valid\+Contributions$<$ Row\+T, std\+::tuple$<$ C... $>$ $>$}} \end{DoxyCompactItemize} \doxysubsubsection*{Concepts} \begin{DoxyCompactItemize} \item concept \mbox{\hyperlink{conceptserif_1_1equations_1_1_point_equation}{Point\+Equation}} \begin{DoxyCompactList}\small\item\em A concept that defines the requirements for a pointwise equation. \end{DoxyCompactList}\item concept \mbox{\hyperlink{conceptserif_1_1equations_1_1_equation}{Equation}} \begin{DoxyCompactList}\small\item\em A concept that defines the requirements for a valid SERiF equation. \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsubsection*{Typedefs} \begin{DoxyCompactItemize} \item {\footnotesize template$<$typename T$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1equations_ab3b0f61ca51136b0ddf4d868ebdfd8df}{Test\+Operand\+Of}} = \mbox{\hyperlink{structserif_1_1equations_1_1_test_operand_traits}{Test\+Operand\+Traits}}$<$T$>$\+::type \begin{DoxyCompactList}\small\item\em Helper alias to extract the test operand type from a contribution or equation. \end{DoxyCompactList}\item {\footnotesize template$<$typename T$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1equations_a7e2dbba73c1ee1b682885f1c178eb9f6}{Support\+Of}} = \mbox{\hyperlink{structserif_1_1equations_1_1_contribution_support}{Contribution\+Support}}$<$T$>$\+::type \begin{DoxyCompactList}\small\item\em Helper alias to extract the support type for a given contribution. \end{DoxyCompactList}\item {\footnotesize template$<$typename T$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1equations_a3d8c1500d535f29fe360f0ab31ac55e3}{Contributions\+Of}} = \mbox{\hyperlink{structserif_1_1equations_1_1_contributions}{Contributions}}$<$std\+::remove\+\_\+cvref\+\_\+t$<$T$>$$>$\+::type \begin{DoxyCompactList}\small\item\em Helper alias to extract the contributions (\doxylink{structserif_1_1equations_1_1_test_operand_traits}{type}) of some type T. \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsection{Typedef Documentation} \Hypertarget{namespaceserif_1_1equations_a3d8c1500d535f29fe360f0ab31ac55e3}\index{serif::equations@{serif::equations}!ContributionsOf@{ContributionsOf}} \index{ContributionsOf@{ContributionsOf}!serif::equations@{serif::equations}} \doxysubsubsection{\texorpdfstring{ContributionsOf}{ContributionsOf}} {\footnotesize\ttfamily \label{namespaceserif_1_1equations_a3d8c1500d535f29fe360f0ab31ac55e3} template$<$typename T$>$ \\ using \mbox{\hyperlink{namespaceserif_1_1equations_a3d8c1500d535f29fe360f0ab31ac55e3}{serif\+::equations\+::\+Contributions\+Of}} = \mbox{\hyperlink{structserif_1_1equations_1_1_contributions}{Contributions}}$<$std\+::remove\+\_\+cvref\+\_\+t$<$T$>$$>$\+::type} Helper alias to extract the contributions (\doxylink{structserif_1_1equations_1_1_test_operand_traits}{type}) of some type T. \begin{DoxyTemplParams}{Template Parameters} {\em T} & The type to extract the contributions from \\ \hline \end{DoxyTemplParams} \Hypertarget{namespaceserif_1_1equations_a7e2dbba73c1ee1b682885f1c178eb9f6}\index{serif::equations@{serif::equations}!SupportOf@{SupportOf}} \index{SupportOf@{SupportOf}!serif::equations@{serif::equations}} \doxysubsubsection{\texorpdfstring{SupportOf}{SupportOf}} {\footnotesize\ttfamily \label{namespaceserif_1_1equations_a7e2dbba73c1ee1b682885f1c178eb9f6} template$<$typename T$>$ \\ using \mbox{\hyperlink{namespaceserif_1_1equations_a7e2dbba73c1ee1b682885f1c178eb9f6}{serif\+::equations\+::\+Support\+Of}} = \mbox{\hyperlink{structserif_1_1equations_1_1_contribution_support}{Contribution\+Support}}$<$T$>$\+::type} Helper alias to extract the support type for a given contribution. \begin{DoxyTemplParams}{Template Parameters} {\em T} & The type to extract the support type from \\ \hline \end{DoxyTemplParams} \Hypertarget{namespaceserif_1_1equations_ab3b0f61ca51136b0ddf4d868ebdfd8df}\index{serif::equations@{serif::equations}!TestOperandOf@{TestOperandOf}} \index{TestOperandOf@{TestOperandOf}!serif::equations@{serif::equations}} \doxysubsubsection{\texorpdfstring{TestOperandOf}{TestOperandOf}} {\footnotesize\ttfamily \label{namespaceserif_1_1equations_ab3b0f61ca51136b0ddf4d868ebdfd8df} template$<$typename T$>$ \\ using \mbox{\hyperlink{namespaceserif_1_1equations_ab3b0f61ca51136b0ddf4d868ebdfd8df}{serif\+::equations\+::\+Test\+Operand\+Of}} = \mbox{\hyperlink{structserif_1_1equations_1_1_test_operand_traits}{Test\+Operand\+Traits}}$<$T$>$\+::type} Helper alias to extract the test operand type from a contribution or equation. \begin{DoxyTemplParams}{Template Parameters} {\em T} & The type to extract the test operand from \\ \hline \end{DoxyTemplParams}