\doxysection{src/include/serif/backend/mfem/discretization/tensor\+\_\+basis.hpp File Reference} \hypertarget{tensor__basis_8hpp}{}\label{tensor__basis_8hpp}\index{src/include/serif/backend/mfem/discretization/tensor\_basis.hpp@{src/include/serif/backend/mfem/discretization/tensor\_basis.hpp}} Implementation of fast tensor evaluation functions. These do not contribute physics but are used to accelerate evaluations. {\ttfamily \#include $<$algorithm$>$}\newline {\ttfamily \#include $<$array$>$}\newline {\ttfamily \#include $<$cmath$>$}\newline {\ttfamily \#include $<$limits$>$}\newline {\ttfamily \#include $<$memory$>$}\newline {\ttfamily \#include $<$vector$>$}\newline {\ttfamily \#include $<$utility$>$}\newline {\ttfamily \#include "{}mfem/fem/fe/fe\+\_\+h1.\+hpp"{}}\newline {\ttfamily \#include "{}mfem/fem/fe/fe\+\_\+l2.\+hpp"{}}\newline {\ttfamily \#include "{}serif/utils/error/errors.\+hpp"{}}\newline {\ttfamily \#include "{}serif/backend/mfem/discretization/reconstruction.\+hpp"{}}\newline Include dependency graph for tensor\+\_\+basis.\+hpp\+: \nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=350pt]{tensor__basis_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]{tensor__basis_8hpp__dep__incl} \end{center} \end{figure} \doxysubsubsection*{Classes} \begin{DoxyCompactItemize} \item struct \mbox{\hyperlink{structserif_1_1discretization_1_1backend_1_1mfem_1_1_tensor_workspace}{serif\+::discretization\+::backend\+::mfem\+::\+Tensor\+Workspace}} \begin{DoxyCompactList}\small\item\em A workspace for tensor contractions to avoid repeated allocations and pack memory (TODO\+: does this actual pack memory in a useful manner when using mfem vectors? Probably something to look into). \end{DoxyCompactList}\item class \mbox{\hyperlink{classserif_1_1discretization_1_1backend_1_1mfem_1_1_tensor_basis}{serif\+::discretization\+::backend\+::mfem\+::\+Tensor\+Basis}} \begin{DoxyCompactList}\small\item\em A class that represents a tensor basis for a finite element. This class is used to evaluate the basis functions and their derivatives at a set of reference points. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structserif_1_1discretization_1_1backend_1_1mfem_1_1_tensor_basis_1_1_product}{serif\+::discretization\+::backend\+::mfem\+::\+Tensor\+Basis\+::\+Product}} \begin{DoxyCompactList}\small\item\em A struct that represents a product of one-\/dimensional basis functions. \end{DoxyCompactList}\item class \mbox{\hyperlink{classserif_1_1discretization_1_1backend_1_1mfem_1_1_tensor_basis_cache}{serif\+::discretization\+::backend\+::mfem\+::\+Tensor\+Basis\+Cache}} \begin{DoxyCompactList}\small\item\em Share immutable tensor plans within one operator; copied rules are keyed by their contents. \end{DoxyCompactList}\item struct \mbox{\hyperlink{structserif_1_1discretization_1_1backend_1_1mfem_1_1_tensor_basis_cache_1_1_entry}{serif\+::discretization\+::backend\+::mfem\+::\+Tensor\+Basis\+Cache\+::\+Entry}} \begin{DoxyCompactList}\small\item\em A struct that represents an entry in the \doxylink{classserif_1_1discretization_1_1backend_1_1mfem_1_1_tensor_basis_cache}{Tensor\+Basis\+Cache}. Each entry contains a non-\/owning pointer to a finite element, the reference operation, the number of copies, the points used to construct the \doxylink{classserif_1_1discretization_1_1backend_1_1mfem_1_1_tensor_basis}{Tensor\+Basis}, and a shared pointer to the \doxylink{classserif_1_1discretization_1_1backend_1_1mfem_1_1_tensor_basis}{Tensor\+Basis} itself. \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsubsection*{Namespaces} \begin{DoxyCompactItemize} \item namespace \mbox{\hyperlink{namespaceserif}{serif}} \item namespace \mbox{\hyperlink{namespaceserif_1_1discretization}{serif\+::discretization}} \item namespace \mbox{\hyperlink{namespaceserif_1_1discretization_1_1backend}{serif\+::discretization\+::backend}} \item namespace \mbox{\hyperlink{namespaceserif_1_1discretization_1_1backend_1_1mfem}{serif\+::discretization\+::backend\+::mfem}} \end{DoxyCompactItemize} \doxysubsubsection*{Enumerations} \begin{DoxyCompactItemize} \item enum class \mbox{\hyperlink{namespaceserif_1_1discretization_1_1backend_1_1mfem_af75f98db90618153ea4ca169945733f7}{serif\+::discretization\+::backend\+::mfem\+::\+Reference\+Operation}} \{ \mbox{\hyperlink{namespaceserif_1_1discretization_1_1backend_1_1mfem_af75f98db90618153ea4ca169945733f7a2063c1608d6e0baf80249c42e2be5804}{serif\+::discretization\+::backend\+::mfem\+::value}} , \mbox{\hyperlink{namespaceserif_1_1discretization_1_1backend_1_1mfem_af75f98db90618153ea4ca169945733f7ae2b6dfb8a5c48206992d8310d176c37c}{serif\+::discretization\+::backend\+::mfem\+::gradient}} , \mbox{\hyperlink{namespaceserif_1_1discretization_1_1backend_1_1mfem_af75f98db90618153ea4ca169945733f7a6451b8c58cb11acd2c90ef6e811ad939}{serif\+::discretization\+::backend\+::mfem\+::value\+\_\+and\+\_\+gradient}} \} \begin{DoxyCompactList}\small\item\em Options enum to control what is actually evaluated at the reference points. \end{DoxyCompactList}\item enum class \mbox{\hyperlink{namespaceserif_1_1discretization_1_1backend_1_1mfem_a24da3fc8af225640b2d32c378ef40cde}{serif\+::discretization\+::backend\+::mfem\+::\+Contraction\+Mode}} \{ \mbox{\hyperlink{namespaceserif_1_1discretization_1_1backend_1_1mfem_a24da3fc8af225640b2d32c378ef40cdea2bd9c0ed00116be1258e0cc66617d7c8}{serif\+::discretization\+::backend\+::mfem\+::automatic}} , \mbox{\hyperlink{namespaceserif_1_1discretization_1_1backend_1_1mfem_a24da3fc8af225640b2d32c378ef40cdea0eccef1fe0100f85b12e6eabe08eaff6}{serif\+::discretization\+::backend\+::mfem\+::dense}} \} \begin{DoxyCompactList}\small\item\em Options enum to control how the tensor contractions are performed. \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsection{Detailed Description} Implementation of fast tensor evaluation functions. These do not contribute physics but are used to accelerate evaluations. \begin{DoxyAuthor}{Author} Emily M. Boudreaux \end{DoxyAuthor}