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)
213 lines
21 KiB
TeX
213 lines
21 KiB
TeX
\doxysection{serif\+::solver\+::preconditioner Namespace Reference}
|
|
\hypertarget{namespaceserif_1_1solver_1_1preconditioner}{}\label{namespaceserif_1_1solver_1_1preconditioner}\index{serif::solver::preconditioner@{serif::solver::preconditioner}}
|
|
\doxysubsubsection*{Namespaces}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
namespace \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1backend}{backend}}
|
|
\item
|
|
namespace \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1checks}{checks}}
|
|
\item
|
|
namespace \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1computations}{computations}}
|
|
\item
|
|
namespace \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1detail}{detail}}
|
|
\item
|
|
namespace \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1keys}{keys}}
|
|
\item
|
|
namespace \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1strategies}{strategies}}
|
|
\end{DoxyCompactItemize}
|
|
\doxysubsubsection*{Classes}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
struct \mbox{\hyperlink{structserif_1_1solver_1_1preconditioner_1_1_block_preconditioner}{Block\+Preconditioner}}
|
|
\begin{DoxyCompactList}\small\item\em Select a physical equation/unknown pair and the numerical approximation to its inverse. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1solver_1_1preconditioner_1_1_bordered_preconditioner}{Bordered\+Preconditioner}}
|
|
\begin{DoxyCompactList}\small\item\em Correct a physical field inverse through its dense constraint Schur system. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1solver_1_1preconditioner_1_1_constraint_coordinates}{Constraint\+Coordinates}}
|
|
\begin{DoxyCompactList}\small\item\em Select arbitrary constraint rows and unknowns, including coupled generated scalars. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1solver_1_1preconditioner_1_1_coupled_preconditioner}{Coupled\+Preconditioner}}
|
|
\begin{DoxyCompactList}\small\item\em Compose physical subsystem descriptions without creating an additional preparation owner. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1solver_1_1preconditioner_1_1_failure}{Failure}}
|
|
\begin{DoxyCompactList}\small\item\em A recoverable preparation failure, including the numerical reason and how to correct it. \end{DoxyCompactList}\item
|
|
class \mbox{\hyperlink{classserif_1_1solver_1_1preconditioner_1_1_solver}{Solver}}
|
|
\begin{DoxyCompactList}\small\item\em Expose one accepted inverse to MFEM while binding it to exactly its accepted physical Jacobian. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
|
\doxysubsubsection*{Concepts}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
concept \mbox{\hyperlink{conceptserif_1_1solver_1_1preconditioner_1_1_primal_preconditioner_layout}{Primal\+Preconditioner\+Layout}}
|
|
\begin{DoxyCompactList}\small\item\em Require density and potential fields with paired optional shape and scalar constraints. \end{DoxyCompactList}\item
|
|
concept \mbox{\hyperlink{conceptserif_1_1solver_1_1preconditioner_1_1_disjoint_subsystems}{Disjoint\+Subsystems}}
|
|
\begin{DoxyCompactList}\small\item\em Require disjoint ownership on both sides rather than silently deduplicating physical coordinates. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
|
\doxysubsubsection*{Enumerations}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
enum class \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_aa7f59af2cd4988b0904ebc5b7b575a53}{Application\+Contract}} \{ \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_aa7f59af2cd4988b0904ebc5b7b575a53ac69606d8690b52527aaa940e729c420a}{fixed\+\_\+linear}}
|
|
, \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_aa7f59af2cd4988b0904ebc5b7b575a53ae04aa5104d082e4a51d241391941ba26}{variable}}
|
|
\}
|
|
\begin{DoxyCompactList}\small\item\em Whether repeated applications represent one fixed linear map or a variable inner solve. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
|
\doxysubsubsection*{Functions}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
{\footnotesize template$<$typename Row, typename Field$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_aff3e6544cccc4f31636172fc69a8badc}{physical\+\_\+block}} (\mbox{\hyperlink{classserif_1_1operators_1_1backend_1_1mfem_1_1_linearized_block}{operators\+::backend\+::mfem\+::\+Linearized\+Block}} block)
|
|
\begin{DoxyCompactList}\small\item\em Name a single accepted physical coupling as an ordinary dependency source. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename Recipe$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_a0e6d2e61115ded4891d57330e180266c}{make\+\_\+preconditioner\+\_\+computations}} (const Recipe \&choice)
|
|
\begin{DoxyCompactList}\small\item\em Declare a recipe\textquotesingle{}s numerical stages for composition into one model dependency graph. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename Recipe$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_ad39566dd213a1990a61035cbe088c788}{make\+\_\+preconditioner\+\_\+graph}} (const Recipe \&choice)
|
|
\begin{DoxyCompactList}\small\item\em Construct the complete preconditioner graph in one place, without preparing any numerical data. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename Recipe, discretization\+::blocks\+::\+System\+Layout\+Type Layout, utils\+::dependencies\+::\+Is\+Computation... Additional$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_a7db97879f2bd3f0975895373581923af}{make\+\_\+preconditioner\+\_\+computations}} (const Recipe \&choice, const Layout \&, Additional... additional)
|
|
\begin{DoxyCompactList}\small\item\em Expand a recipe and its coordinate ordering for composition into an existing physical graph. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename Recipe, discretization\+::blocks\+::\+System\+Layout\+Type Layout, utils\+::dependencies\+::\+Is\+Computation... Additional$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_af2cf1c7829a4ff52fb58d3f28d760fb2}{make\+\_\+preconditioner\+\_\+graph}} (const Recipe \&choice, const Layout \&layout, Additional... additional)
|
|
\begin{DoxyCompactList}\small\item\em Order the inverse in system coordinates, optionally including explicit upstream computations such as reference surface assembly. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$Primal\+Preconditioner\+Layout Layout, typename Potential\+Inverse = strategies\+::inverse\+::\+Fixed\+AMG$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_aa5c6d8ad540ecaca25de3555918566f3}{make\+\_\+primal\+\_\+preconditioner}} (const Layout \&, Potential\+Inverse potential\+\_\+inverse=\mbox{\hyperlink{structserif_1_1solver_1_1preconditioner_1_1strategies_1_1inverse_1_1_fixed_a_m_g}{strategies\+::inverse\+::\+Fixed\+AMG}}\{.cycles=3\})
|
|
\begin{DoxyCompactList}\small\item\em Couple scalar density and potential responses, then correct every shape and global constraint together. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename Field, typename Row = Field, typename Strategy$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_afd31d14cec3f663d8ed9c51d6fbc8fc7}{make\+\_\+preconditioner}} (Strategy inverse)
|
|
\begin{DoxyCompactList}\small\item\em Describe an inverse without preparing matrices or binding runtime state. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename Constraints, typename Fields$>$ \newline
|
|
requires Disjoint\+Subsystems$<$Fields, Constraints$>$}\\auto \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_a1443fd07473ce97765003d6730b32204}{with\+\_\+constraints}} (Fields fields, \mbox{\hyperlink{structserif_1_1solver_1_1preconditioner_1_1strategies_1_1inverse_1_1_dense_direct}{strategies\+::inverse\+::\+Dense\+Direct}} inverse=\{\})
|
|
\begin{DoxyCompactList}\small\item\em Attach constraints without a registry of built-\/in mass, rotation, or central-\/density providers. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename First, typename Second, typename Policy$>$ \newline
|
|
requires Disjoint\+Subsystems$<$First, Second$>$}\\auto \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_a4083a10bc61fd512d53a3c1523ae2f95}{couple}} (First first, Second second, Policy coupling)
|
|
\begin{DoxyCompactList}\small\item\em Choose the physical subsystem ordering explicitly; the same algebra serves material/surface and material/gravity. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
|
|
|
|
|
\doxysubsection{Enumeration Type Documentation}
|
|
\Hypertarget{namespaceserif_1_1solver_1_1preconditioner_aa7f59af2cd4988b0904ebc5b7b575a53}\index{serif::solver::preconditioner@{serif::solver::preconditioner}!ApplicationContract@{ApplicationContract}}
|
|
\index{ApplicationContract@{ApplicationContract}!serif::solver::preconditioner@{serif::solver::preconditioner}}
|
|
\doxysubsubsection{\texorpdfstring{ApplicationContract}{ApplicationContract}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_1_1preconditioner_aa7f59af2cd4988b0904ebc5b7b575a53}
|
|
enum class \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_aa7f59af2cd4988b0904ebc5b7b575a53}{serif\+::solver\+::preconditioner\+::\+Application\+Contract}}\hspace{0.3cm}{\ttfamily [strong]}}
|
|
|
|
|
|
|
|
Whether repeated applications represent one fixed linear map or a variable inner solve.
|
|
|
|
\begin{DoxyEnumFields}[2]{Enumerator}
|
|
\raisebox{\heightof{T}}[0pt][0pt]{\index{fixed\_linear@{fixed\_linear}!serif::solver::preconditioner@{serif::solver::preconditioner}}\index{serif::solver::preconditioner@{serif::solver::preconditioner}!fixed\_linear@{fixed\_linear}}}\Hypertarget{namespaceserif_1_1solver_1_1preconditioner_aa7f59af2cd4988b0904ebc5b7b575a53ac69606d8690b52527aaa940e729c420a}\label{namespaceserif_1_1solver_1_1preconditioner_aa7f59af2cd4988b0904ebc5b7b575a53ac69606d8690b52527aaa940e729c420a}
|
|
fixed\+\_\+linear&\\
|
|
\hline
|
|
|
|
\raisebox{\heightof{T}}[0pt][0pt]{\index{variable@{variable}!serif::solver::preconditioner@{serif::solver::preconditioner}}\index{serif::solver::preconditioner@{serif::solver::preconditioner}!variable@{variable}}}\Hypertarget{namespaceserif_1_1solver_1_1preconditioner_aa7f59af2cd4988b0904ebc5b7b575a53ae04aa5104d082e4a51d241391941ba26}\label{namespaceserif_1_1solver_1_1preconditioner_aa7f59af2cd4988b0904ebc5b7b575a53ae04aa5104d082e4a51d241391941ba26}
|
|
variable&\\
|
|
\hline
|
|
|
|
\end{DoxyEnumFields}
|
|
|
|
|
|
\doxysubsection{Function Documentation}
|
|
\Hypertarget{namespaceserif_1_1solver_1_1preconditioner_a4083a10bc61fd512d53a3c1523ae2f95}\index{serif::solver::preconditioner@{serif::solver::preconditioner}!couple@{couple}}
|
|
\index{couple@{couple}!serif::solver::preconditioner@{serif::solver::preconditioner}}
|
|
\doxysubsubsection{\texorpdfstring{couple()}{couple()}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_1_1preconditioner_a4083a10bc61fd512d53a3c1523ae2f95}
|
|
template$<$typename First, typename Second, typename Policy$>$ \newline
|
|
requires Disjoint\+Subsystems$<$First, Second$>$\\
|
|
auto serif\+::solver\+::preconditioner\+::couple (\begin{DoxyParamCaption}\item[{First}]{first}{, }\item[{Second}]{second}{, }\item[{Policy}]{coupling}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
|
|
|
|
|
|
|
|
Choose the physical subsystem ordering explicitly; the same algebra serves material/surface and material/gravity.
|
|
|
|
\Hypertarget{namespaceserif_1_1solver_1_1preconditioner_afd31d14cec3f663d8ed9c51d6fbc8fc7}\index{serif::solver::preconditioner@{serif::solver::preconditioner}!make\_preconditioner@{make\_preconditioner}}
|
|
\index{make\_preconditioner@{make\_preconditioner}!serif::solver::preconditioner@{serif::solver::preconditioner}}
|
|
\doxysubsubsection{\texorpdfstring{make\_preconditioner()}{make\_preconditioner()}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_1_1preconditioner_afd31d14cec3f663d8ed9c51d6fbc8fc7}
|
|
template$<$typename Field, typename Row = Field, typename Strategy$>$ \\
|
|
auto serif\+::solver\+::preconditioner\+::make\+\_\+preconditioner (\begin{DoxyParamCaption}\item[{Strategy}]{inverse}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
|
|
|
|
|
|
|
|
Describe an inverse without preparing matrices or binding runtime state.
|
|
|
|
\Hypertarget{namespaceserif_1_1solver_1_1preconditioner_a0e6d2e61115ded4891d57330e180266c}\index{serif::solver::preconditioner@{serif::solver::preconditioner}!make\_preconditioner\_computations@{make\_preconditioner\_computations}}
|
|
\index{make\_preconditioner\_computations@{make\_preconditioner\_computations}!serif::solver::preconditioner@{serif::solver::preconditioner}}
|
|
\doxysubsubsection{\texorpdfstring{make\_preconditioner\_computations()}{make\_preconditioner\_computations()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_1_1preconditioner_a0e6d2e61115ded4891d57330e180266c}
|
|
template$<$typename Recipe$>$ \\
|
|
auto serif\+::solver\+::preconditioner\+::make\+\_\+preconditioner\+\_\+computations (\begin{DoxyParamCaption}\item[{const Recipe \&}]{choice}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
|
|
|
|
|
|
|
|
Declare a recipe\textquotesingle{}s numerical stages for composition into one model dependency graph.
|
|
|
|
\Hypertarget{namespaceserif_1_1solver_1_1preconditioner_a7db97879f2bd3f0975895373581923af}\index{serif::solver::preconditioner@{serif::solver::preconditioner}!make\_preconditioner\_computations@{make\_preconditioner\_computations}}
|
|
\index{make\_preconditioner\_computations@{make\_preconditioner\_computations}!serif::solver::preconditioner@{serif::solver::preconditioner}}
|
|
\doxysubsubsection{\texorpdfstring{make\_preconditioner\_computations()}{make\_preconditioner\_computations()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_1_1preconditioner_a7db97879f2bd3f0975895373581923af}
|
|
template$<$typename Recipe, discretization\+::blocks\+::\+System\+Layout\+Type Layout, utils\+::dependencies\+::\+Is\+Computation... Additional$>$ \\
|
|
auto serif\+::solver\+::preconditioner\+::make\+\_\+preconditioner\+\_\+computations (\begin{DoxyParamCaption}\item[{const Recipe \&}]{choice}{, }\item[{const Layout \&}]{}{, }\item[{Additional...}]{additional}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
|
|
|
|
|
|
|
|
Expand a recipe and its coordinate ordering for composition into an existing physical graph.
|
|
|
|
\Hypertarget{namespaceserif_1_1solver_1_1preconditioner_ad39566dd213a1990a61035cbe088c788}\index{serif::solver::preconditioner@{serif::solver::preconditioner}!make\_preconditioner\_graph@{make\_preconditioner\_graph}}
|
|
\index{make\_preconditioner\_graph@{make\_preconditioner\_graph}!serif::solver::preconditioner@{serif::solver::preconditioner}}
|
|
\doxysubsubsection{\texorpdfstring{make\_preconditioner\_graph()}{make\_preconditioner\_graph()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_1_1preconditioner_ad39566dd213a1990a61035cbe088c788}
|
|
template$<$typename Recipe$>$ \\
|
|
auto serif\+::solver\+::preconditioner\+::make\+\_\+preconditioner\+\_\+graph (\begin{DoxyParamCaption}\item[{const Recipe \&}]{choice}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
|
|
|
|
|
|
|
|
Construct the complete preconditioner graph in one place, without preparing any numerical data.
|
|
|
|
\begin{DoxyNote}{Note}
|
|
Recipes choose physical branches; computation declarations name all edges. The dependency engine orders execution.
|
|
\end{DoxyNote}
|
|
\Hypertarget{namespaceserif_1_1solver_1_1preconditioner_af2cf1c7829a4ff52fb58d3f28d760fb2}\index{serif::solver::preconditioner@{serif::solver::preconditioner}!make\_preconditioner\_graph@{make\_preconditioner\_graph}}
|
|
\index{make\_preconditioner\_graph@{make\_preconditioner\_graph}!serif::solver::preconditioner@{serif::solver::preconditioner}}
|
|
\doxysubsubsection{\texorpdfstring{make\_preconditioner\_graph()}{make\_preconditioner\_graph()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_1_1preconditioner_af2cf1c7829a4ff52fb58d3f28d760fb2}
|
|
template$<$typename Recipe, discretization\+::blocks\+::\+System\+Layout\+Type Layout, utils\+::dependencies\+::\+Is\+Computation... Additional$>$ \\
|
|
auto serif\+::solver\+::preconditioner\+::make\+\_\+preconditioner\+\_\+graph (\begin{DoxyParamCaption}\item[{const Recipe \&}]{choice}{, }\item[{const Layout \&}]{layout}{, }\item[{Additional...}]{additional}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
|
|
|
|
|
|
|
|
Order the inverse in system coordinates, optionally including explicit upstream computations such as reference surface assembly.
|
|
|
|
\begin{DoxyNote}{Note}
|
|
Supply \doxylink{namespaceserif_1_1solver_1_1preconditioner_1_1keys_a51c4360b9a88a40c2171089db75a643a}{keys\+::\+Layout} in the preparation context. Additional computations must have unique result keys.
|
|
\end{DoxyNote}
|
|
\Hypertarget{namespaceserif_1_1solver_1_1preconditioner_aa5c6d8ad540ecaca25de3555918566f3}\index{serif::solver::preconditioner@{serif::solver::preconditioner}!make\_primal\_preconditioner@{make\_primal\_preconditioner}}
|
|
\index{make\_primal\_preconditioner@{make\_primal\_preconditioner}!serif::solver::preconditioner@{serif::solver::preconditioner}}
|
|
\doxysubsubsection{\texorpdfstring{make\_primal\_preconditioner()}{make\_primal\_preconditioner()}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_1_1preconditioner_aa5c6d8ad540ecaca25de3555918566f3}
|
|
template$<$Primal\+Preconditioner\+Layout Layout, typename Potential\+Inverse = strategies\+::inverse\+::\+Fixed\+AMG$>$ \\
|
|
auto serif\+::solver\+::preconditioner\+::make\+\_\+primal\+\_\+preconditioner (\begin{DoxyParamCaption}\item[{const Layout \&}]{}{, }\item[{Potential\+Inverse}]{potential\+\_\+inverse}{ = {\ttfamily \mbox{\hyperlink{structserif_1_1solver_1_1preconditioner_1_1strategies_1_1inverse_1_1_fixed_a_m_g}{strategies\+::inverse\+::\+Fixed\+AMG}}\{.cycles~=~3\}}}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
|
|
|
|
|
|
|
|
Couple scalar density and potential responses, then correct every shape and global constraint together.
|
|
|
|
Potential responds first and its force contribution then adjusts density. The existing dense border retains surface-\/to-\/field and field-\/to-\/surface responses, including the mean radius mode; shape has no separate mass inverse. Density uses its diagonal without regularization because its pressure-\/force Jacobian includes drift and need not satisfy the positive-\/diagonal contract of the elliptic AMG strategy used for potential. \begin{DoxyNote}{Note}
|
|
The dense border stores one field response per shape/global coordinate and a square border matrix. This default targets bounded surface catalogs; large nodal surfaces require an explicitly chosen scalable recipe.
|
|
|
|
This is an approximate inverse, not a guarantee that the physical constraint Schur system is nonsingular.
|
|
\end{DoxyNote}
|
|
|
|
\begin{DoxyParams}{Parameters}
|
|
{\em potential\+\_\+inverse} & Inverse of the potential block\+: three fixed AMG cycles by default, or for example \doxylink{structserif_1_1solver_1_1preconditioner_1_1strategies_1_1inverse_1_1_sparse_direct}{strategies\+::inverse\+::\+Sparse\+Direct} for an exact factorization of moderate-\/size blocks. \\
|
|
\hline
|
|
\end{DoxyParams}
|
|
\Hypertarget{namespaceserif_1_1solver_1_1preconditioner_aff3e6544cccc4f31636172fc69a8badc}\index{serif::solver::preconditioner@{serif::solver::preconditioner}!physical\_block@{physical\_block}}
|
|
\index{physical\_block@{physical\_block}!serif::solver::preconditioner@{serif::solver::preconditioner}}
|
|
\doxysubsubsection{\texorpdfstring{physical\_block()}{physical\_block()}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_1_1preconditioner_aff3e6544cccc4f31636172fc69a8badc}
|
|
template$<$typename Row, typename Field$>$ \\
|
|
auto serif\+::solver\+::preconditioner\+::physical\+\_\+block (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classserif_1_1operators_1_1backend_1_1mfem_1_1_linearized_block}{operators\+::backend\+::mfem\+::\+Linearized\+Block}}}]{block}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
|
|
|
|
|
|
|
|
Name a single accepted physical coupling as an ordinary dependency source.
|
|
|
|
\Hypertarget{namespaceserif_1_1solver_1_1preconditioner_a1443fd07473ce97765003d6730b32204}\index{serif::solver::preconditioner@{serif::solver::preconditioner}!with\_constraints@{with\_constraints}}
|
|
\index{with\_constraints@{with\_constraints}!serif::solver::preconditioner@{serif::solver::preconditioner}}
|
|
\doxysubsubsection{\texorpdfstring{with\_constraints()}{with\_constraints()}}
|
|
{\footnotesize\ttfamily \label{namespaceserif_1_1solver_1_1preconditioner_a1443fd07473ce97765003d6730b32204}
|
|
template$<$typename Constraints, typename Fields$>$ \newline
|
|
requires Disjoint\+Subsystems$<$Fields, Constraints$>$\\
|
|
auto serif\+::solver\+::preconditioner\+::with\+\_\+constraints (\begin{DoxyParamCaption}\item[{Fields}]{fields}{, }\item[{\mbox{\hyperlink{structserif_1_1solver_1_1preconditioner_1_1strategies_1_1inverse_1_1_dense_direct}{strategies\+::inverse\+::\+Dense\+Direct}}}]{inverse}{ = {\ttfamily \{\}}}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [nodiscard]}}
|
|
|
|
|
|
|
|
Attach constraints without a registry of built-\/in mass, rotation, or central-\/density providers.
|
|
|