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)
67 lines
8.5 KiB
TeX
67 lines
8.5 KiB
TeX
\doxysection{src/include/serif/solver/preconditioner/graph.hpp File Reference}
|
|
\hypertarget{solver_2preconditioner_2graph_8hpp}{}\label{solver_2preconditioner_2graph_8hpp}\index{src/include/serif/solver/preconditioner/graph.hpp@{src/include/serif/solver/preconditioner/graph.hpp}}
|
|
{\ttfamily \#include $<$tuple$>$}\newline
|
|
{\ttfamily \#include $<$utility$>$}\newline
|
|
{\ttfamily \#include "{}serif/solver/preconditioner/computations/inverse.\+hpp"{}}\newline
|
|
{\ttfamily \#include "{}serif/solver/preconditioner/computations/coupling.\+hpp"{}}\newline
|
|
{\ttfamily \#include "{}serif/solver/preconditioner/computations/gravity.\+hpp"{}}\newline
|
|
{\ttfamily \#include "{}serif/solver/preconditioner/computations/surface.\+hpp"{}}\newline
|
|
{\ttfamily \#include "{}serif/solver/preconditioner/computations/ordering.\+hpp"{}}\newline
|
|
{\ttfamily \#include "{}serif/solver/preconditioner/computations/coarse.\+hpp"{}}\newline
|
|
{\ttfamily \#include "{}serif/utils/dependencies/computation\+\_\+graph.\+hpp"{}}\newline
|
|
Include dependency graph for graph.\+hpp\+:\nopagebreak
|
|
\begin{figure}[H]
|
|
\begin{center}
|
|
\leavevmode
|
|
\includegraphics[width=350pt]{solver_2preconditioner_2graph_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=242pt]{solver_2preconditioner_2graph_8hpp__dep__incl}
|
|
\end{center}
|
|
\end{figure}
|
|
\doxysubsubsection*{Namespaces}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
namespace \mbox{\hyperlink{namespaceserif}{serif}}
|
|
\item
|
|
namespace \mbox{\hyperlink{namespaceserif_1_1solver}{serif\+::solver}}
|
|
\item
|
|
namespace \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner}{serif\+::solver\+::preconditioner}}
|
|
\item
|
|
namespace \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1detail}{serif\+::solver\+::preconditioner\+::detail}}
|
|
\end{DoxyCompactItemize}
|
|
\doxysubsubsection*{Functions}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
{\footnotesize template$<$typename Row, typename Field, typename Strategy$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1detail_afd1cd39e19b9e25bbf58163ee4b85960}{serif\+::solver\+::preconditioner\+::detail\+::preconditioner\+\_\+computations}} (const \mbox{\hyperlink{structserif_1_1solver_1_1preconditioner_1_1_block_preconditioner}{Block\+Preconditioner}}$<$ Row, Field, Strategy $>$ \&choice)
|
|
\begin{DoxyCompactList}\small\item\em Declare recursive recipe expansion before its composed overloads are defined. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename First, typename Second, typename Policy$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1detail_ac7c4daf68f557cd176057d5624451eed}{serif\+::solver\+::preconditioner\+::detail\+::preconditioner\+\_\+computations}} (const \mbox{\hyperlink{structserif_1_1solver_1_1preconditioner_1_1_coupled_preconditioner}{Coupled\+Preconditioner}}$<$ First, Second, Policy $>$ \&choice)
|
|
\begin{DoxyCompactList}\small\item\em Declare the composed recipe overload for recursive graph expansion. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename Fields, typename Constraints$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1detail_a50435dbfb8699b61961b62671c410c58}{serif\+::solver\+::preconditioner\+::detail\+::preconditioner\+\_\+computations}} (const \mbox{\hyperlink{structserif_1_1solver_1_1preconditioner_1_1_bordered_preconditioner}{Bordered\+Preconditioner}}$<$ Fields, Constraints $>$ \&choice)
|
|
\begin{DoxyCompactList}\small\item\em Declare the composed recipe overload for recursive graph expansion. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename Gradient, typename Potential, typename Mass, typename Schur, typename Policy$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1detail_ad04c200261ce3f1f8ac054856432c546}{serif\+::solver\+::preconditioner\+::detail\+::preconditioner\+\_\+computations}} (const \mbox{\hyperlink{structserif_1_1solver_1_1preconditioner_1_1_gravity_preconditioner}{Gravity\+Preconditioner}}$<$ Gradient, Potential, Mass, Schur, Policy $>$ \&choice)
|
|
\begin{DoxyCompactList}\small\item\em Declare the composed recipe overload for recursive graph expansion. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename Field, typename Row, typename Strategy, typename Backend$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1detail_a7644345e7b3426268c63cb38592c9a1c}{serif\+::solver\+::preconditioner\+::detail\+::preconditioner\+\_\+computations}} (const \mbox{\hyperlink{structserif_1_1solver_1_1preconditioner_1_1_surface_preconditioner}{Surface\+Preconditioner}}$<$ Field, Row, Strategy, Backend $>$ \&choice)
|
|
\begin{DoxyCompactList}\small\item\em Declare the composed recipe overload for recursive graph expansion. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename Field, typename Row, typename Strategy, typename Backend$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1detail_aaa7f8654ac4b0772a62ea78500e47b1b}{serif\+::solver\+::preconditioner\+::detail\+::surface\+\_\+inverse\+\_\+computations}} (const \mbox{\hyperlink{structserif_1_1solver_1_1preconditioner_1_1_surface_preconditioner}{Surface\+Preconditioner}}$<$ Field, Row, Strategy, Backend $>$ \&choice)
|
|
\begin{DoxyCompactList}\small\item\em List the surface fit and inverse stages separately from their direct or material-\/relaxed physical target. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename Recipe$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_a0e6d2e61115ded4891d57330e180266c}{serif\+::solver\+::preconditioner\+::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}{serif\+::solver\+::preconditioner\+::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_ab8595f84696482d6a21db9641a9654db}{serif\+::solver\+::preconditioner\+::make\+\_\+preconditioner\+\_\+graph}} (const Recipe \&choice, const 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$<$utils\+::dependencies\+::\+Is\+Key\+List Coarse\+Rows, utils\+::dependencies\+::\+Is\+Key\+List Coarse\+Values, typename Recipe, discretization\+::blocks\+::\+System\+Layout\+Type Layout$>$ }\\auto \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_a90a53f77cf3f61f86737a2dbd9e01cca}{serif\+::solver\+::preconditioner\+::make\+\_\+coarse\+\_\+preconditioner\+\_\+graph}} (const Recipe \&unbordered, const Layout \&, const \mbox{\hyperlink{structserif_1_1solver_1_1preconditioner_1_1strategies_1_1inverse_1_1_dense_direct}{strategies\+::inverse\+::\+Dense\+Direct}} \&options=\{.minimum\+\_\+reciprocal\+\_\+condition=1.\+0e-\/14\})
|
|
\begin{DoxyCompactList}\small\item\em Assemble the optional coarse correction after ordering the original unbordered inverse into root coordinates. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
|
\doxysubsubsection*{Variables}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
{\footnotesize template$<$typename Recipe$>$ }\\constexpr bool \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1detail_a3d8465b6fae02c6aa8d1ad0b5471f8b8}{serif\+::solver\+::preconditioner\+::detail\+::calibrated\+\_\+surface}} = false
|
|
\item
|
|
{\footnotesize template$<$typename Field, typename Row, typename Strategy, typename Backend$>$ }\\constexpr bool \mbox{\hyperlink{namespaceserif_1_1solver_1_1preconditioner_1_1detail_a279a603aebd8f324d7bfec8e48c32993}{serif\+::solver\+::preconditioner\+::detail\+::calibrated\+\_\+surface$<$ Surface\+Preconditioner$<$ Field, Row, Strategy, Backend $>$ $>$}} = !std\+::same\+\_\+as$<$Strategy, \mbox{\hyperlink{structserif_1_1solver_1_1preconditioner_1_1strategies_1_1surface_1_1_reference_surface_mass}{strategies\+::surface\+::\+Reference\+Surface\+Mass}}$>$
|
|
\end{DoxyCompactItemize}
|