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)
107 lines
11 KiB
TeX
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}
|