\doxysection{src/include/serif/operators/backend/mfem/nodal\+\_\+rows.hpp File Reference} \hypertarget{nodal__rows_8hpp}{}\label{nodal__rows_8hpp}\index{src/include/serif/operators/backend/mfem/nodal\_rows.hpp@{src/include/serif/operators/backend/mfem/nodal\_rows.hpp}} {\ttfamily \#include $<$array$>$}\newline {\ttfamily \#include $<$cmath$>$}\newline {\ttfamily \#include "{}serif/operators/backend/mfem/nodal\+\_\+data.\+hpp"{}}\newline Include dependency graph for nodal\+\_\+rows.\+hpp\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=350pt]{nodal__rows_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=348pt]{nodal__rows_8hpp__dep__incl} \end{center} \end{figure} \doxysubsubsection*{Namespaces} \begin{DoxyCompactItemize} \item namespace \mbox{\hyperlink{namespaceserif}{serif}} \item namespace \mbox{\hyperlink{namespaceserif_1_1operators}{serif\+::operators}} \item namespace \mbox{\hyperlink{namespaceserif_1_1operators_1_1backend}{serif\+::operators\+::backend}} \item namespace \mbox{\hyperlink{namespaceserif_1_1operators_1_1backend_1_1mfem}{serif\+::operators\+::backend\+::mfem}} \end{DoxyCompactItemize} \doxysubsubsection*{Functions} \begin{DoxyCompactItemize} \item {\footnotesize template$<$Nodal\+Value\+Equation EquationT, discretization\+::domain\+::schema\+::\+Is\+Schema SchemaT$>$ }\\void \mbox{\hyperlink{namespaceserif_1_1operators_1_1backend_1_1mfem_ac27fe30f54ce37d0d6fe97b6a6699118}{serif\+::operators\+::backend\+::mfem\+::validate\+\_\+nodal\+\_\+output}} (const \mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1_nodal_data}{Nodal\+Data}}$<$ EquationT, SchemaT $>$ \&data, const \mbox{\hyperlink{namespaceserif_1_1operators_1_1backend_1_1mfem_a317d4e0bea2ef8780ac3747cfe62bf72}{\+::mfem\+::\+Vector}} \&result) \begin{DoxyCompactList}\small\item\em A frozen linearization still requires a current selection and a correctly sized output. \end{DoxyCompactList}\item {\footnotesize template$<$Nodal\+Value\+Equation EquationT, discretization\+::domain\+::schema\+::\+Is\+Schema SchemaT$>$ }\\void \mbox{\hyperlink{namespaceserif_1_1operators_1_1backend_1_1mfem_a486ec1739c5a479f0edc8f1f1bf3b770}{serif\+::operators\+::backend\+::mfem\+::apply\+\_\+residual\+\_\+rows}} (const \mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1_nodal_data}{Nodal\+Data}}$<$ EquationT, SchemaT $>$ \&data, \mbox{\hyperlink{namespaceserif_1_1operators_1_1backend_1_1mfem_a317d4e0bea2ef8780ac3747cfe62bf72}{\+::mfem\+::\+Vector}} \&result) \begin{DoxyCompactList}\small\item\em Replace only selected entries of an assembled residual with the accepted nodal residual. \end{DoxyCompactList}\item {\footnotesize template$<$Nodal\+Value\+Equation EquationT, discretization\+::domain\+::schema\+::\+Is\+Schema SchemaT$>$ }\\void \mbox{\hyperlink{namespaceserif_1_1operators_1_1backend_1_1mfem_a633c4a0eb8e05d26d9211ffdd6f50fab}{serif\+::operators\+::backend\+::mfem\+::apply\+\_\+jacobian\+\_\+rows}} (const \mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1_nodal_data}{Nodal\+Data}}$<$ EquationT, SchemaT $>$ \&data, const \mbox{\hyperlink{namespaceserif_1_1operators_1_1backend_1_1mfem_a317d4e0bea2ef8780ac3747cfe62bf72}{\+::mfem\+::\+Vector}} \&direction, \mbox{\hyperlink{namespaceserif_1_1operators_1_1backend_1_1mfem_a317d4e0bea2ef8780ac3747cfe62bf72}{\+::mfem\+::\+Vector}} \&result) \begin{DoxyCompactList}\small\item\em Replace complete Jacobian rows, including every unconstrained coupling at the selected rows. \end{DoxyCompactList}\item {\footnotesize template$<$Nodal\+Value\+Equation EquationT, discretization\+::domain\+::schema\+::\+Is\+Schema SchemaT, typename CoefficientsT$>$ \newline requires requires(const CoefficientsT\& direction) \{ direction.\+template get$<$typename Equation\+T\+::\+Test$>$(); \}}\\void \mbox{\hyperlink{namespaceserif_1_1operators_1_1backend_1_1mfem_ab5a8a9d6c953645c0093689a2e41d653}{serif\+::operators\+::backend\+::mfem\+::apply\+\_\+jacobian\+\_\+rows}} (const \mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1_nodal_data}{Nodal\+Data}}$<$ EquationT, SchemaT $>$ \&data, const CoefficientsT \&direction, \mbox{\hyperlink{namespaceserif_1_1operators_1_1backend_1_1mfem_a317d4e0bea2ef8780ac3747cfe62bf72}{\+::mfem\+::\+Vector}} \&result) \begin{DoxyCompactList}\small\item\em Select the nodal direction by its physical term and verify its coefficient ordering. \end{DoxyCompactList}\item {\footnotesize template$<$Nodal\+Value\+Equation EquationT, discretization\+::domain\+::schema\+::\+Is\+Schema SchemaT$>$ }\\void \mbox{\hyperlink{namespaceserif_1_1operators_1_1backend_1_1mfem_a7cd49bd3070de81c2357169dc34b6866}{serif\+::operators\+::backend\+::mfem\+::mask\+\_\+residual\+\_\+dual}} (const \mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1_nodal_data}{Nodal\+Data}}$<$ EquationT, SchemaT $>$ \&data, const \mbox{\hyperlink{namespaceserif_1_1operators_1_1backend_1_1mfem_a317d4e0bea2ef8780ac3747cfe62bf72}{\+::mfem\+::\+Vector}} \&dual, \mbox{\hyperlink{namespaceserif_1_1operators_1_1backend_1_1mfem_a317d4e0bea2ef8780ac3747cfe62bf72}{\+::mfem\+::\+Vector}} \&volume\+\_\+dual) \begin{DoxyCompactList}\small\item\em Remove constrained rows before applying the volume Jacobian transpose. \end{DoxyCompactList}\item {\footnotesize template$<$Nodal\+Value\+Equation EquationT, discretization\+::domain\+::schema\+::\+Is\+Schema SchemaT$>$ }\\void \mbox{\hyperlink{namespaceserif_1_1operators_1_1backend_1_1mfem_a2af4d3baf6e298e9e8acaaa4e49281e0}{serif\+::operators\+::backend\+::mfem\+::add\+\_\+jacobian\+\_\+transpose\+\_\+rows}} (const \mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1_nodal_data}{Nodal\+Data}}$<$ EquationT, SchemaT $>$ \&data, const \mbox{\hyperlink{namespaceserif_1_1operators_1_1backend_1_1mfem_a317d4e0bea2ef8780ac3747cfe62bf72}{\+::mfem\+::\+Vector}} \&dual, \mbox{\hyperlink{namespaceserif_1_1operators_1_1backend_1_1mfem_a317d4e0bea2ef8780ac3747cfe62bf72}{\+::mfem\+::\+Vector}} \&result) \begin{DoxyCompactList}\small\item\em Add the constrained-\/row transpose after applying the volume transpose to the masked dual. \end{DoxyCompactList}\end{DoxyCompactItemize}