Files
MeanField_SERiF/docs/latex/volume__data_8hpp.tex
Emily Boudreaux 6b57738330 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)
2026-11-09 14:09:44 -05:00

107 lines
11 KiB
TeX

\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}