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)
69 lines
5.9 KiB
TeX
69 lines
5.9 KiB
TeX
\doxysection{src/include/serif/discretization/forms/forms.hpp File Reference}
|
|
\hypertarget{forms_8hpp}{}\label{forms_8hpp}\index{src/include/serif/discretization/forms/forms.hpp@{src/include/serif/discretization/forms/forms.hpp}}
|
|
|
|
|
|
This file defines the forms used in the discretization framework, including mass, divergence, source, force, boundary flux, and projection forms.
|
|
|
|
|
|
{\ttfamily \#include $<$concepts$>$}\newline
|
|
{\ttfamily \#include $<$type\+\_\+traits$>$}\newline
|
|
{\ttfamily \#include "{}serif/discretization/blocks/concepts.\+hpp"{}}\newline
|
|
{\ttfamily \#include "{}serif/discretization/forms/operands.\+hpp"{}}\newline
|
|
{\ttfamily \#include "{}serif/utils/types/type\+\_\+list.\+hpp"{}}\newline
|
|
{\ttfamily \#include "{}serif/meta/names.\+hpp"{}}\newline
|
|
Include dependency graph for forms.\+hpp\+:
|
|
\nopagebreak
|
|
\begin{figure}[H]
|
|
\begin{center}
|
|
\leavevmode
|
|
\includegraphics[width=350pt]{forms_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]{forms_8hpp__dep__incl}
|
|
\end{center}
|
|
\end{figure}
|
|
\doxysubsubsection*{Classes}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
struct \mbox{\hyperlink{structserif_1_1discretization_1_1forms_1_1form}{serif\+::discretization\+::forms\+::form}}
|
|
\begin{DoxyCompactList}\small\item\em The form struct is a tag type that is used to identify a form in the discretization. It is used to group together forms that belong to the same mathematical operation. Each form should have a unique name and a list of operand types that belong to it. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1discretization_1_1forms_1_1mass}{serif\+::discretization\+::forms\+::mass$<$ Trial\+T, Test\+T $>$}}
|
|
\begin{DoxyCompactList}\small\item\em The mass form represents the mass matrix operation in the discretization framework. It takes a trial term and a test term as template parameters and defines the operand types for the mass operation. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1discretization_1_1forms_1_1divergence}{serif\+::discretization\+::forms\+::divergence$<$ Trial\+T, Test\+T $>$}}
|
|
\begin{DoxyCompactList}\small\item\em The divergence form represents the divergence operation in the discretization framework. It takes a trial term and a test term as template parameters and defines the operand types for the divergence operation. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1discretization_1_1forms_1_1source}{serif\+::discretization\+::forms\+::source$<$ Trial\+T, Test\+T $>$}}
|
|
\begin{DoxyCompactList}\small\item\em The source form represents the source term in the discretization framework. It takes a trial term and a test term as template parameters and defines the operand types for the source operation. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1discretization_1_1forms_1_1force}{serif\+::discretization\+::forms\+::force$<$ Trial\+T, Test\+T $>$}}
|
|
\begin{DoxyCompactList}\small\item\em The force form represents the force term in the discretization framework. It takes a trial term and a test term as template parameters and defines the operand types for the force operation. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1discretization_1_1forms_1_1boundary__flux}{serif\+::discretization\+::forms\+::boundary\+\_\+flux$<$ Trial\+T, Test\+T $>$}}
|
|
\begin{DoxyCompactList}\small\item\em The \doxylink{structserif_1_1discretization_1_1forms_1_1boundary__flux}{boundary\+\_\+flux} form represents the boundary flux operation in the discretization framework. It takes a trial term and a test term as template parameters and defines the operand types for the boundary flux operation. \end{DoxyCompactList}\item
|
|
struct \mbox{\hyperlink{structserif_1_1discretization_1_1forms_1_1projection}{serif\+::discretization\+::forms\+::projection$<$ Trial\+T, Test\+T $>$}}
|
|
\begin{DoxyCompactList}\small\item\em The projection form represents the projection operation in the discretization framework. It takes a trial term and a test term as template parameters and defines the operand types for the projection operation. \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_1forms}{serif\+::discretization\+::forms}}
|
|
\end{DoxyCompactItemize}
|
|
|
|
|
|
\doxysubsection{Detailed Description}
|
|
This file defines the forms used in the discretization framework, including mass, divergence, source, force, boundary flux, and projection forms.
|
|
|
|
\begin{DoxyAuthor}{Author}
|
|
Emily M. Boudreaux
|
|
\end{DoxyAuthor}
|
|
\begin{DoxyNote}{Note}
|
|
If you are a developer tasked with the likely horrid task of adding some new equation that cannot be represented within the current framework that SERiF provides, this should probably be your first stop. This file essentially defines the mathematical operations that SERiF can perform. As you can see below none of these forms are particularly complex, and they certainly do not actually describe {\itshape how} to perform these operations. Rather, these form the base of a chain of compile-\/time probability that SERiF {\itshape knows} how to do something. Effectively this file is a contract with the rest of the code that says "{}\+If someone asks for the divergence of a trial field against some test field that is okay because I have claimed in this file that I know how to do that"{}. The actual implementation lives elsewhere.
|
|
\end{DoxyNote}
|
|
\begin{DoxyRefDesc}{Todo}
|
|
\item[\mbox{\hyperlink{todo__todo000028}{Todo}}]Come back and fill in more information about elsewhere. If you are the developer from above and you are reading this todo, then I am, and I mean this truly, very sorry.... \end{DoxyRefDesc}
|