docs(docs): built docs

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)
This commit is contained in:
2026-11-09 14:09:44 -05:00
parent d9c4919477
commit 6b57738330
32596 changed files with 4155414 additions and 0 deletions

View File

@@ -0,0 +1,106 @@
\doxysection{src/include/serif/backend/mfem/operators/volume\+\_\+data.hpp File Reference}
\hypertarget{volume__data_8hpp}{}\label{volume__data_8hpp}\index{src/include/serif/backend/mfem/operators/volume\_data.hpp@{src/include/serif/backend/mfem/operators/volume\_data.hpp}}
{\ttfamily \#include $<$array$>$}\newline
{\ttfamily \#include $<$memory$>$}\newline
{\ttfamily \#include $<$vector$>$}\newline
{\ttfamily \#include "{}mfem/fem/gridfunc.\+hpp"{}}\newline
{\ttfamily \#include "{}serif/backend/mfem/mapping/domain\+\_\+mapper.\+hpp"{}}\newline
{\ttfamily \#include "{}serif/backend/mfem/discretization/term\+\_\+coefficients.\+hpp"{}}\newline
{\ttfamily \#include "{}serif/backend/mfem/operators/element\+\_\+data.\+hpp"{}}\newline
{\ttfamily \#include "{}serif/backend/mfem/operators/quadrature.\+hpp"{}}\newline
{\ttfamily \#include "{}serif/backend/mfem/operators/workspace.\+hpp"{}}\newline
Include dependency graph for volume\+\_\+data.\+hpp\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{volume__data_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]{volume__data_8hpp__dep__incl}
\end{center}
\end{figure}
\doxysubsubsection*{Classes}
\begin{DoxyCompactItemize}
\item
struct \mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1volume__keys_1_1_scoped}{serif\+::operators\+::backend\+::mfem\+::volume\+\_\+keys\+::\+Scoped$<$ Scope $>$}}
\begin{DoxyCompactList}\small\item\em Keep equation-\/local stages distinct while sharing physical coefficient sources. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1volume__keys_1_1_scoped_1_1_basis}{serif\+::operators\+::backend\+::mfem\+::volume\+\_\+keys\+::\+Scoped$<$ Scope $>$\+::\+Basis$<$ Contribution $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1volume__keys_1_1_scoped_1_1_geometry}{serif\+::operators\+::backend\+::mfem\+::volume\+\_\+keys\+::\+Scoped$<$ Scope $>$\+::\+Geometry$<$ Contribution $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1volume__keys_1_1_scoped_1_1_reference_values}{serif\+::operators\+::backend\+::mfem\+::volume\+\_\+keys\+::\+Scoped$<$ Scope $>$\+::\+Reference\+Values$<$ Contribution, Operand\+T $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1volume__keys_1_1_scoped_1_1_physical_values}{serif\+::operators\+::backend\+::mfem\+::volume\+\_\+keys\+::\+Scoped$<$ Scope $>$\+::\+Physical\+Values$<$ Contribution, Operand\+T $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1volume__keys_1_1_scoped_1_1_quadrature_linearization}{serif\+::operators\+::backend\+::mfem\+::volume\+\_\+keys\+::\+Scoped$<$ Scope $>$\+::\+Quadrature\+Linearization$<$ Contribution $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1volume__keys_1_1_scoped_1_1_geometry_derivatives}{serif\+::operators\+::backend\+::mfem\+::volume\+\_\+keys\+::\+Scoped$<$ Scope $>$\+::\+Geometry\+Derivatives$<$ Contribution $>$}}
\begin{DoxyCompactList}\small\item\em Weighted local displacement derivatives, owned and invalidated by the graph. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1volume__keys_1_1_scoped_1_1_linearization}{serif\+::operators\+::backend\+::mfem\+::volume\+\_\+keys\+::\+Scoped$<$ Scope $>$\+::\+Linearization}}
\item
struct \mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1volume__keys_1_1_scoped_1_1_bindings}{serif\+::operators\+::backend\+::mfem\+::volume\+\_\+keys\+::\+Scoped$<$ Scope $>$\+::\+Bindings}}
\item
struct \mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1_basis_bindings}{serif\+::operators\+::backend\+::mfem\+::\+Basis\+Bindings$<$ Column\+Count $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1_volume_discretization}{serif\+::operators\+::backend\+::mfem\+::\+Volume\+Discretization$<$ Test\+T, Schema\+T $>$}}
\begin{DoxyCompactList}\small\item\em Borrowed discretization objects must outlive their graph and its accepted results. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1_volume_options}{serif\+::operators\+::backend\+::mfem\+::\+Volume\+Options}}
\begin{DoxyCompactList}\small\item\em Numerical choices fixed when the graph is constructed. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1_operand_samples}{serif\+::operators\+::backend\+::mfem\+::\+Operand\+Samples}}
\begin{DoxyCompactList}\small\item\em Reference samples remain available for derivatives through the physical mapping. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1_contribution_data}{serif\+::operators\+::backend\+::mfem\+::\+Contribution\+Data$<$ Operand\+Count $>$}}
\item
struct \mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1_volume_configuration}{serif\+::operators\+::backend\+::mfem\+::\+Volume\+Configuration$<$ Equation\+T, Schema\+T $>$}}
\begin{DoxyCompactList}\small\item\em Stable equation ownership also retains temporary and move-\/only contribution trees. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1_volume_data}{serif\+::operators\+::backend\+::mfem\+::\+Volume\+Data$<$ Equation\+T, Schema\+T $>$}}
\begin{DoxyCompactList}\small\item\em One accepted result contains ordered contribution batches and the assembled residual. \end{DoxyCompactList}\item
struct \mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1_volume_scratch}{serif\+::operators\+::backend\+::mfem\+::\+Volume\+Scratch}}
\begin{DoxyCompactList}\small\item\em Scratch belongs to graph callables and is never a dependency source. \end{DoxyCompactList}\end{DoxyCompactItemize}
\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}}
\item
namespace \mbox{\hyperlink{namespaceserif_1_1operators_1_1backend_1_1mfem_1_1volume__keys}{serif\+::operators\+::backend\+::mfem\+::volume\+\_\+keys}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item
{\footnotesize template$<$std\+::size\+\_\+t Contribution$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1operators_1_1backend_1_1mfem_1_1volume__keys_aa028250a5d4484bd259cd017200c260c}{serif\+::operators\+::backend\+::mfem\+::volume\+\_\+keys\+::\+Basis}} = \mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1volume__keys_1_1_scoped}{Scoped}}$<$void$>$\+::\+Basis$<$Contribution$>$
\item
{\footnotesize template$<$std\+::size\+\_\+t Contribution$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1operators_1_1backend_1_1mfem_1_1volume__keys_af83c50f3cf4a104f3e6c018312b0371b}{serif\+::operators\+::backend\+::mfem\+::volume\+\_\+keys\+::\+Geometry}} = \mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1volume__keys_1_1_scoped}{Scoped}}$<$void$>$\+::\+Geometry$<$Contribution$>$
\item
{\footnotesize template$<$std\+::size\+\_\+t Contribution, typename OperandT$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1operators_1_1backend_1_1mfem_1_1volume__keys_a0c4171152ebaf4f721a743a2a5fb9014}{serif\+::operators\+::backend\+::mfem\+::volume\+\_\+keys\+::\+Reference\+Values}} = \mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1volume__keys_1_1_scoped}{Scoped}}$<$void$>$\+::\+Reference\+Values$<$Contribution, OperandT$>$
\item
{\footnotesize template$<$std\+::size\+\_\+t Contribution, typename OperandT$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1operators_1_1backend_1_1mfem_1_1volume__keys_a5b639e648c7743b66732b2436d6473c2}{serif\+::operators\+::backend\+::mfem\+::volume\+\_\+keys\+::\+Physical\+Values}} = \mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1volume__keys_1_1_scoped}{Scoped}}$<$void$>$\+::\+Physical\+Values$<$Contribution, OperandT$>$
\item
{\footnotesize template$<$std\+::size\+\_\+t Contribution$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1operators_1_1backend_1_1mfem_1_1volume__keys_af60347c09439498ae0b4971d9280126d}{serif\+::operators\+::backend\+::mfem\+::volume\+\_\+keys\+::\+Quadrature\+Linearization}} = \mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1volume__keys_1_1_scoped}{Scoped}}$<$void$>$\+::\+Quadrature\+Linearization$<$Contribution$>$
\item
{\footnotesize template$<$std\+::size\+\_\+t Contribution$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1operators_1_1backend_1_1mfem_1_1volume__keys_ace4f8ba583b5103c7a8d2477a1236a91}{serif\+::operators\+::backend\+::mfem\+::volume\+\_\+keys\+::\+Geometry\+Derivatives}} = \mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1volume__keys_1_1_scoped}{Scoped}}$<$void$>$\+::\+Geometry\+Derivatives$<$Contribution$>$
\item
using \mbox{\hyperlink{namespaceserif_1_1operators_1_1backend_1_1mfem_1_1volume__keys_a4a5cc4891ad7c8c24f7437ba90d67ee2}{serif\+::operators\+::backend\+::mfem\+::volume\+\_\+keys\+::\+Linearization}} = \mbox{\hyperlink{structserif_1_1operators_1_1backend_1_1mfem_1_1volume__keys_1_1_scoped}{Scoped}}$<$void$>$\+::\+Linearization
\item
{\footnotesize template$<$typename ElementT$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1operators_1_1backend_1_1mfem_afd0d7be8fe679f2666861d91bdbe16b3}{serif\+::operators\+::backend\+::mfem\+::\+Element\+Batch}} = std\+::vector$<$std\+::shared\+\_\+ptr$<$const ElementT$>$$>$
\begin{DoxyCompactList}\small\item\em A stage owns immutable element results, shared with downstream stages and accepted linearizations. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item
enum class \mbox{\hyperlink{namespaceserif_1_1operators_1_1backend_1_1mfem_a24da3fc8af225640b2d32c378ef40cde}{serif\+::operators\+::backend\+::mfem\+::\+Contraction\+Mode}}
\begin{DoxyCompactList}\small\item\em Options enum to control how the tensor contractions are performed. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item
{\footnotesize template$<$typename TestT, typename SchemaT$>$ }\\\mbox{\hyperlink{namespaceserif_1_1operators_1_1backend_1_1mfem_aa7ce3038141b1a709ac67372c17a36c8}{serif\+::operators\+::backend\+::mfem\+::\+Volume\+Discretization}} (const \mbox{\hyperlink{classserif_1_1discretization_1_1backend_1_1mfem_1_1_term_binding}{discretization\+::backend\+::mfem\+::\+Term\+Binding}}$<$ TestT, SchemaT $>$ \&, const \mbox{\hyperlink{classserif_1_1discretization_1_1backend_1_1mfem_1_1_term_binding}{discretization\+::backend\+::mfem\+::\+Term\+Binding}}$<$ \mbox{\hyperlink{structserif_1_1discretization_1_1blocks_1_1displacement_1_1vector}{discretization\+::blocks\+::displacement\+::vector}}, SchemaT $>$ \&, const \+::mfem\+::\+Grid\+Function \&, const \mbox{\hyperlink{classserif_1_1mapping_1_1_domain_mapper}{mapping\+::\+Domain\+Mapper}} \&) -\/$>$ Volume\+Discretization$<$ TestT, SchemaT $>$
\end{DoxyCompactItemize}