79 lines
6.0 KiB
TeX
79 lines
6.0 KiB
TeX
|
|
\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}
|