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)
119 lines
19 KiB
TeX
119 lines
19 KiB
TeX
\doxysection{src/include/serif/discretization/functional\+\_\+space/space.hpp File Reference}
|
|
\hypertarget{space_8hpp}{}\label{space_8hpp}\index{src/include/serif/discretization/functional\_space/space.hpp@{src/include/serif/discretization/functional\_space/space.hpp}}
|
|
|
|
|
|
This file defines the functional space types used in the discretization framework, including compile-\/time descriptors and runtime descriptors.
|
|
|
|
|
|
{\ttfamily \#include $<$type\+\_\+traits$>$}\newline
|
|
{\ttfamily \#include $<$format$>$}\newline
|
|
{\ttfamily \#include "{}serif/meta/enums.\+hpp"{}}\newline
|
|
Include dependency graph for space.\+hpp\+:\nopagebreak
|
|
\begin{figure}[H]
|
|
\begin{center}
|
|
\leavevmode
|
|
\includegraphics[width=350pt]{space_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]{space_8hpp__dep__incl}
|
|
\end{center}
|
|
\end{figure}
|
|
\doxysubsubsection*{Classes}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
struct \mbox{\hyperlink{structserif_1_1discretization_1_1functional__space_1_1_rank}{serif\+::discretization\+::functional\+\_\+space\+::\+Rank$<$ R $>$}}
|
|
\begin{DoxyCompactList}\small\item\em Compile-\/time descriptor for the rank of a functional space. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1discretization_1_1functional__space_1_1_space_descriptor}{serif\+::discretization\+::functional\+\_\+space\+::\+Space\+Descriptor}}
|
|
\begin{DoxyCompactList}\small\item\em Compile-\/time descriptor for a functional space. This struct is used to describe the family, continuity, trace, and mapping of a functional space at compile time. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1discretization_1_1functional__space_1_1_discrete_functional_space}{serif\+::discretization\+::functional\+\_\+space\+::\+Discrete\+Functional\+Space$<$ Space, Order, R $>$}}
|
|
\begin{DoxyCompactList}\small\item\em Compile-\/time descriptor for a discrete functional space. The difference between a Functional\+Space and a discrete functional space is that a discrete functional space carries some additional information which is needed to actually construct a finite element space (e.\+g. polynomial order, and rank). Once you have a discrete functional space you have, for MFEM at least, enough information to fully define a finite element space. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structstd_1_1formatter_3_01serif_1_1discretization_1_1functional__space_1_1_rank_3_01_r_01_4_01_4}{std\+::formatter$<$ serif\+::discretization\+::functional\+\_\+space\+::\+Rank$<$ R $>$ $>$}}
|
|
\begin{DoxyCompactList}\small\item\em Specialization of the std\+::formatter for the functional space types. This allows us to use std\+::format to format the functional space types as strings. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structstd_1_1formatter_3_01serif_1_1discretization_1_1functional__space_1_1_space_descriptor_01_4}{std\+::formatter$<$ serif\+::discretization\+::functional\+\_\+space\+::\+Space\+Descriptor $>$}}
|
|
\begin{DoxyCompactList}\small\item\em Specialization of the std\+::formatter for the Space\+Descriptor types. This allows us to use std\+::format to format the Space\+Descriptor types as strings. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structstd_1_1formatter_3_01serif_1_1discretization_1_1functional__space_1_1_discrete_functional_78b19b6a039d41c9bd4413cbbc536dbd}{std\+::formatter$<$ serif\+::discretization\+::functional\+\_\+space\+::\+Discrete\+Functional\+Space$<$ Space, Order, R $>$ $>$}}
|
|
\begin{DoxyCompactList}\small\item\em Specialization of the std\+::formatter for the Discrete\+Functional\+Space types. This allows us to use std\+::format to format the Discrete\+Functional\+Space types as strings. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structstd_1_1formatter_3_01serif_1_1discretization_1_1functional__space_1_1_family_01_4}{std\+::formatter$<$ serif\+::discretization\+::functional\+\_\+space\+::\+Family $>$}}
|
|
\begin{DoxyCompactList}\small\item\em Specialization of the std\+::formatter for the Family enum. This allows us to use std\+::format to format the Family enum as strings. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structstd_1_1formatter_3_01serif_1_1discretization_1_1functional__space_1_1_continuity_01_4}{std\+::formatter$<$ serif\+::discretization\+::functional\+\_\+space\+::\+Continuity $>$}}
|
|
\begin{DoxyCompactList}\small\item\em Specialization of the std\+::formatter for the Continuity enum. This allows us to use std\+::format to format the Continuity enum as strings. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structstd_1_1formatter_3_01serif_1_1discretization_1_1functional__space_1_1_trace_01_4}{std\+::formatter$<$ serif\+::discretization\+::functional\+\_\+space\+::\+Trace $>$}}
|
|
\begin{DoxyCompactList}\small\item\em Specialization of the std\+::formatter for the Trace enum. This allows us to use std\+::format to format the Trace enum as strings. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structstd_1_1formatter_3_01serif_1_1discretization_1_1functional__space_1_1_mapping_01_4}{std\+::formatter$<$ serif\+::discretization\+::functional\+\_\+space\+::\+Mapping $>$}}
|
|
\begin{DoxyCompactList}\small\item\em Specialization of the std\+::formatter for the Mapping enum. This allows us to use std\+::format to format the Mapping enum as strings. \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_1functional__space}{serif\+::discretization\+::functional\+\_\+space}}
|
|
\end{DoxyCompactItemize}
|
|
\doxysubsubsection*{Enumerations}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
enum class \mbox{\hyperlink{namespaceserif_1_1discretization_1_1functional__space_a9cef5bcb37ac268d2f0f2053433f8594}{serif\+::discretization\+::functional\+\_\+space\+::\+Family}} \{ \mbox{\hyperlink{namespaceserif_1_1discretization_1_1functional__space_a9cef5bcb37ac268d2f0f2053433f8594abec25675775e9e0a0d783a5018b463e3}{serif\+::discretization\+::functional\+\_\+space\+::l2}}
|
|
, \mbox{\hyperlink{namespaceserif_1_1discretization_1_1functional__space_a9cef5bcb37ac268d2f0f2053433f8594a346b81a32e7007eccadf60252bb599f0}{serif\+::discretization\+::functional\+\_\+space\+::h1}}
|
|
, \mbox{\hyperlink{namespaceserif_1_1discretization_1_1functional__space_a9cef5bcb37ac268d2f0f2053433f8594a6e8f220388195916569b1090b37f1586}{serif\+::discretization\+::functional\+\_\+space\+::hdiv}}
|
|
, \mbox{\hyperlink{namespaceserif_1_1discretization_1_1functional__space_a9cef5bcb37ac268d2f0f2053433f8594a7536ab19fae96565f170bdf0d44fb47f}{serif\+::discretization\+::functional\+\_\+space\+::hcurl}}
|
|
\}
|
|
\begin{DoxyCompactList}\small\item\em Compile-\/time descriptor for the family, continuity, trace, and mapping of a functional space. \end{DoxyCompactList}\item
|
|
enum class \mbox{\hyperlink{namespaceserif_1_1discretization_1_1functional__space_a4a023144b19edc1f9083dbfc4634fdd2}{serif\+::discretization\+::functional\+\_\+space\+::\+Continuity}} \{ \mbox{\hyperlink{namespaceserif_1_1discretization_1_1functional__space_a4a023144b19edc1f9083dbfc4634fdd2a5d0c72e53471642349f8c98884f71177}{serif\+::discretization\+::functional\+\_\+space\+::discontinuous}}
|
|
, \mbox{\hyperlink{namespaceserif_1_1discretization_1_1functional__space_a4a023144b19edc1f9083dbfc4634fdd2ad2884efee751eb4746b685827c7efcd9}{serif\+::discretization\+::functional\+\_\+space\+::continuous}}
|
|
, \mbox{\hyperlink{namespaceserif_1_1discretization_1_1functional__space_a4a023144b19edc1f9083dbfc4634fdd2acc01e9d14a276e8d6043cfb93afdec02}{serif\+::discretization\+::functional\+\_\+space\+::normal\+\_\+continuous}}
|
|
, \mbox{\hyperlink{namespaceserif_1_1discretization_1_1functional__space_a4a023144b19edc1f9083dbfc4634fdd2a5cef5968318cec98376e690990d97521}{serif\+::discretization\+::functional\+\_\+space\+::tangential\+\_\+continuous}}
|
|
\}
|
|
\begin{DoxyCompactList}\small\item\em Compile-\/time descriptor for the continuity of a functional space. This enum is parallel to the Family enum. \end{DoxyCompactList}\item
|
|
enum class \mbox{\hyperlink{namespaceserif_1_1discretization_1_1functional__space_a128c56423cc3d7e8877c6e21df58b82a}{serif\+::discretization\+::functional\+\_\+space\+::\+Trace}} \{ \mbox{\hyperlink{namespaceserif_1_1discretization_1_1functional__space_a128c56423cc3d7e8877c6e21df58b82aa334c4a4c42fdb79d7ebc3e73b517e6f8}{serif\+::discretization\+::functional\+\_\+space\+::none}}
|
|
, \mbox{\hyperlink{namespaceserif_1_1discretization_1_1functional__space_a128c56423cc3d7e8877c6e21df58b82aa2063c1608d6e0baf80249c42e2be5804}{serif\+::discretization\+::functional\+\_\+space\+::value}}
|
|
, \mbox{\hyperlink{namespaceserif_1_1discretization_1_1functional__space_a128c56423cc3d7e8877c6e21df58b82aafea087517c26fadd409bd4b9dc642555}{serif\+::discretization\+::functional\+\_\+space\+::normal}}
|
|
, \mbox{\hyperlink{namespaceserif_1_1discretization_1_1functional__space_a128c56423cc3d7e8877c6e21df58b82aaeee008e363b3d7a6ceb8a6ce8eec1214}{serif\+::discretization\+::functional\+\_\+space\+::tangential}}
|
|
\}
|
|
\begin{DoxyCompactList}\small\item\em Compile-\/time descriptor for the trace of a functional space. This enum is parallel to the Family enum. \end{DoxyCompactList}\item
|
|
enum class \mbox{\hyperlink{namespaceserif_1_1discretization_1_1functional__space_af7d4ffb524e01c1524394bf2d128808e}{serif\+::discretization\+::functional\+\_\+space\+::\+Mapping}} \{ \mbox{\hyperlink{namespaceserif_1_1discretization_1_1functional__space_af7d4ffb524e01c1524394bf2d128808eaff483d1ff591898a9942916050d2ca3f}{serif\+::discretization\+::functional\+\_\+space\+::identity}}
|
|
, \mbox{\hyperlink{namespaceserif_1_1discretization_1_1functional__space_af7d4ffb524e01c1524394bf2d128808eab0ecbc62272a71e2181b8a0a5db8819a}{serif\+::discretization\+::functional\+\_\+space\+::contravariant\+\_\+piola}}
|
|
, \mbox{\hyperlink{namespaceserif_1_1discretization_1_1functional__space_af7d4ffb524e01c1524394bf2d128808ea4235da30cc45a142b5ce7761ac3fbc8f}{serif\+::discretization\+::functional\+\_\+space\+::covariant\+\_\+piola}}
|
|
\}
|
|
\begin{DoxyCompactList}\small\item\em Compile-\/time descriptor for the mapping of a functional space. This tells the Domain\+Mapper which piola transformations to use when moving between reference and physical spaces. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
|
\doxysubsubsection*{Variables}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
static auto \mbox{\hyperlink{namespaceserif_1_1discretization_1_1functional__space_ac6251caa4914cace463f8fa5540ce62b}{serif\+::discretization\+::functional\+\_\+space\+::\+Family2\+String\+Map}} = \mbox{\hyperlink{namespaceserif_1_1meta_a228074fe1d60918db17444e31b601c2f}{meta\+::enum\+\_\+to\+\_\+enum\+\_\+string\+\_\+map}}$<$\mbox{\hyperlink{namespaceserif_1_1discretization_1_1functional__space_a9cef5bcb37ac268d2f0f2053433f8594}{Family}}$>$()
|
|
\begin{DoxyCompactList}\small\item\em \doxylink{namespaceserif_1_1discretization_1_1functional__space_af7d4ffb524e01c1524394bf2d128808e}{Mapping} from \doxylink{namespaceserif_1_1discretization_1_1functional__space_a9cef5bcb37ac268d2f0f2053433f8594}{Family} enum values to their string representations. \end{DoxyCompactList}\item
|
|
static auto \mbox{\hyperlink{namespaceserif_1_1discretization_1_1functional__space_a179e46e1bb0d677df1ced3b21a4c3000}{serif\+::discretization\+::functional\+\_\+space\+::\+String2\+Family\+Map}} = \mbox{\hyperlink{namespaceserif_1_1meta_a27a478b13abbbddd3b16dce448ce87fa}{meta\+::enum\+\_\+to\+\_\+string\+\_\+enum\+\_\+map}}$<$\mbox{\hyperlink{namespaceserif_1_1discretization_1_1functional__space_a9cef5bcb37ac268d2f0f2053433f8594}{Family}}$>$()
|
|
\begin{DoxyCompactList}\small\item\em \doxylink{namespaceserif_1_1discretization_1_1functional__space_af7d4ffb524e01c1524394bf2d128808e}{Mapping} from string representations to \doxylink{namespaceserif_1_1discretization_1_1functional__space_a9cef5bcb37ac268d2f0f2053433f8594}{Family} enum values. \end{DoxyCompactList}\item
|
|
static auto \mbox{\hyperlink{namespaceserif_1_1discretization_1_1functional__space_a7d451c2e915be9ade5a07defcd73abce}{serif\+::discretization\+::functional\+\_\+space\+::\+Continuity2\+String\+Map}} = \mbox{\hyperlink{namespaceserif_1_1meta_a228074fe1d60918db17444e31b601c2f}{meta\+::enum\+\_\+to\+\_\+enum\+\_\+string\+\_\+map}}$<$\mbox{\hyperlink{namespaceserif_1_1discretization_1_1functional__space_a4a023144b19edc1f9083dbfc4634fdd2}{Continuity}}$>$()
|
|
\begin{DoxyCompactList}\small\item\em \doxylink{namespaceserif_1_1discretization_1_1functional__space_af7d4ffb524e01c1524394bf2d128808e}{Mapping} from \doxylink{namespaceserif_1_1discretization_1_1functional__space_a4a023144b19edc1f9083dbfc4634fdd2}{Continuity} enum values to their string representations. \end{DoxyCompactList}\item
|
|
static auto \mbox{\hyperlink{namespaceserif_1_1discretization_1_1functional__space_a1e9e7e79984881a2cc18b51d0ca24a71}{serif\+::discretization\+::functional\+\_\+space\+::\+String2\+Continuity\+Map}} = \mbox{\hyperlink{namespaceserif_1_1meta_a27a478b13abbbddd3b16dce448ce87fa}{meta\+::enum\+\_\+to\+\_\+string\+\_\+enum\+\_\+map}}$<$\mbox{\hyperlink{namespaceserif_1_1discretization_1_1functional__space_a4a023144b19edc1f9083dbfc4634fdd2}{Continuity}}$>$()
|
|
\begin{DoxyCompactList}\small\item\em \doxylink{namespaceserif_1_1discretization_1_1functional__space_af7d4ffb524e01c1524394bf2d128808e}{Mapping} from string representations to \doxylink{namespaceserif_1_1discretization_1_1functional__space_a4a023144b19edc1f9083dbfc4634fdd2}{Continuity} enum values. \end{DoxyCompactList}\item
|
|
static auto \mbox{\hyperlink{namespaceserif_1_1discretization_1_1functional__space_a18663ffb899c4de2f5d2737cb0db0817}{serif\+::discretization\+::functional\+\_\+space\+::\+Trace2\+String\+Map}} = \mbox{\hyperlink{namespaceserif_1_1meta_a228074fe1d60918db17444e31b601c2f}{meta\+::enum\+\_\+to\+\_\+enum\+\_\+string\+\_\+map}}$<$\mbox{\hyperlink{namespaceserif_1_1discretization_1_1functional__space_a128c56423cc3d7e8877c6e21df58b82a}{Trace}}$>$()
|
|
\begin{DoxyCompactList}\small\item\em \doxylink{namespaceserif_1_1discretization_1_1functional__space_af7d4ffb524e01c1524394bf2d128808e}{Mapping} from \doxylink{namespaceserif_1_1discretization_1_1functional__space_a128c56423cc3d7e8877c6e21df58b82a}{Trace} enum values to their string representations. \end{DoxyCompactList}\item
|
|
static auto \mbox{\hyperlink{namespaceserif_1_1discretization_1_1functional__space_ac2f005fd8923f3fc6e1579389d54e2ba}{serif\+::discretization\+::functional\+\_\+space\+::\+String2\+Trace\+Map}} = \mbox{\hyperlink{namespaceserif_1_1meta_a27a478b13abbbddd3b16dce448ce87fa}{meta\+::enum\+\_\+to\+\_\+string\+\_\+enum\+\_\+map}}$<$\mbox{\hyperlink{namespaceserif_1_1discretization_1_1functional__space_a128c56423cc3d7e8877c6e21df58b82a}{Trace}}$>$()
|
|
\begin{DoxyCompactList}\small\item\em \doxylink{namespaceserif_1_1discretization_1_1functional__space_af7d4ffb524e01c1524394bf2d128808e}{Mapping} from string representations to \doxylink{namespaceserif_1_1discretization_1_1functional__space_a128c56423cc3d7e8877c6e21df58b82a}{Trace} enum values. \end{DoxyCompactList}\item
|
|
static auto \mbox{\hyperlink{namespaceserif_1_1discretization_1_1functional__space_ab5695c611247978a6ff657bc36419236}{serif\+::discretization\+::functional\+\_\+space\+::\+Mapping2\+String\+Map}} = \mbox{\hyperlink{namespaceserif_1_1meta_a228074fe1d60918db17444e31b601c2f}{meta\+::enum\+\_\+to\+\_\+enum\+\_\+string\+\_\+map}}$<$\mbox{\hyperlink{namespaceserif_1_1discretization_1_1functional__space_af7d4ffb524e01c1524394bf2d128808e}{Mapping}}$>$()
|
|
\begin{DoxyCompactList}\small\item\em \doxylink{namespaceserif_1_1discretization_1_1functional__space_af7d4ffb524e01c1524394bf2d128808e}{Mapping} from \doxylink{namespaceserif_1_1discretization_1_1functional__space_af7d4ffb524e01c1524394bf2d128808e}{Mapping} enum values to their string representations. \end{DoxyCompactList}\item
|
|
static auto \mbox{\hyperlink{namespaceserif_1_1discretization_1_1functional__space_a3e9d8d852cc8f2e1258c2c51ce9c4313}{serif\+::discretization\+::functional\+\_\+space\+::\+String2\+Mapping\+Map}} = \mbox{\hyperlink{namespaceserif_1_1meta_a27a478b13abbbddd3b16dce448ce87fa}{meta\+::enum\+\_\+to\+\_\+string\+\_\+enum\+\_\+map}}$<$\mbox{\hyperlink{namespaceserif_1_1discretization_1_1functional__space_af7d4ffb524e01c1524394bf2d128808e}{Mapping}}$>$()
|
|
\begin{DoxyCompactList}\small\item\em \doxylink{namespaceserif_1_1discretization_1_1functional__space_af7d4ffb524e01c1524394bf2d128808e}{Mapping} from string representations to \doxylink{namespaceserif_1_1discretization_1_1functional__space_af7d4ffb524e01c1524394bf2d128808e}{Mapping} enum values. \end{DoxyCompactList}\item
|
|
static constexpr \mbox{\hyperlink{structserif_1_1discretization_1_1functional__space_1_1_space_descriptor}{Space\+Descriptor}} \mbox{\hyperlink{namespaceserif_1_1discretization_1_1functional__space_acb58ec5f3fcddecbb1651363b3712027}{serif\+::discretization\+::functional\+\_\+space\+::\+L2}}
|
|
\begin{DoxyCompactList}\small\item\em Compile-\/time descriptor for an L2 functional space. This is a convenience descriptor that allows you to easily create an L2 functional space descriptor without having to specify all the parameters. The specifications are. \end{DoxyCompactList}\item
|
|
static constexpr \mbox{\hyperlink{structserif_1_1discretization_1_1functional__space_1_1_space_descriptor}{Space\+Descriptor}} \mbox{\hyperlink{namespaceserif_1_1discretization_1_1functional__space_a3c5757cd4267da94451cb55b7bc70987}{serif\+::discretization\+::functional\+\_\+space\+::\+H1}}
|
|
\begin{DoxyCompactList}\small\item\em Compile-\/time descriptor for an H1 functional space. This is a convenience descriptor that allows you to easily create an H1 functional space descriptor without having to specify all the parameters. The specifications are. \end{DoxyCompactList}\item
|
|
static constexpr \mbox{\hyperlink{structserif_1_1discretization_1_1functional__space_1_1_space_descriptor}{Space\+Descriptor}} \mbox{\hyperlink{namespaceserif_1_1discretization_1_1functional__space_a1e28519eef37d87e0c603954989beede}{serif\+::discretization\+::functional\+\_\+space\+::\+Hdiv}}
|
|
\begin{DoxyCompactList}\small\item\em Compile-\/time descriptor for an H(div) functional space. This is a convenience descriptor that allows you to easily create an H(div) functional space descriptor without having to specify all the parameters. The specifications are. \end{DoxyCompactList}\item
|
|
static constexpr \mbox{\hyperlink{structserif_1_1discretization_1_1functional__space_1_1_space_descriptor}{Space\+Descriptor}} \mbox{\hyperlink{namespaceserif_1_1discretization_1_1functional__space_a6afd1fc9bf5a38d45b118feccb59bc9f}{serif\+::discretization\+::functional\+\_\+space\+::\+Hcurl}}
|
|
\begin{DoxyCompactList}\small\item\em Compile-\/time descriptor for an H(curl) functional space. This is a convenience descriptor that allows you to easily create an H(curl) functional space descriptor without having to specify all the parameters. The specifications are. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
|
|
|
|
|
\doxysubsection{Detailed Description}
|
|
This file defines the functional space types used in the discretization framework, including compile-\/time descriptors and runtime descriptors.
|
|
|
|
\begin{DoxyAuthor}{Author}
|
|
Emily M. Boudreaux
|
|
\end{DoxyAuthor}
|