97 lines
9.2 KiB
TeX
97 lines
9.2 KiB
TeX
|
|
\doxysection{src/include/serif/discretization/forms/value.hpp File Reference}
|
||
|
|
\hypertarget{value_8hpp}{}\label{value_8hpp}\index{src/include/serif/discretization/forms/value.hpp@{src/include/serif/discretization/forms/value.hpp}}
|
||
|
|
|
||
|
|
|
||
|
|
Encode compile time information about the shape (rank) and data type of the result of various Operations.
|
||
|
|
|
||
|
|
|
||
|
|
{\ttfamily \#include $<$array$>$}\newline
|
||
|
|
{\ttfamily \#include $<$type\+\_\+traits$>$}\newline
|
||
|
|
{\ttfamily \#include "{}serif/discretization/blocks/traits.\+hpp"{}}\newline
|
||
|
|
{\ttfamily \#include "{}serif/discretization/forms/operands.\+hpp"{}}\newline
|
||
|
|
Include dependency graph for value.\+hpp\+:
|
||
|
|
\nopagebreak
|
||
|
|
\begin{figure}[H]
|
||
|
|
\begin{center}
|
||
|
|
\leavevmode
|
||
|
|
\includegraphics[width=350pt]{value_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]{value_8hpp__dep__incl}
|
||
|
|
\end{center}
|
||
|
|
\end{figure}
|
||
|
|
\doxysubsubsection*{Classes}
|
||
|
|
\begin{DoxyCompactItemize}
|
||
|
|
\item
|
||
|
|
struct \mbox{\hyperlink{structserif_1_1discretization_1_1forms_1_1_operation_value_3_010_00_01_operation_1_1_value_01_4}{serif\+::discretization\+::forms\+::\+Operation\+Value$<$ 0, Operation\+::\+Value $>$}}
|
||
|
|
\begin{DoxyCompactList}\small\item\em The value of a rank 0 tensor is a scalar, a double in the case of SERiF where we restrict ourselves to double precision. \end{DoxyCompactList}\item
|
||
|
|
struct \mbox{\hyperlink{structserif_1_1discretization_1_1forms_1_1_operation_value_3_011_00_01_operation_1_1_value_01_4}{serif\+::discretization\+::forms\+::\+Operation\+Value$<$ 1, Operation\+::\+Value $>$}}
|
||
|
|
\begin{DoxyCompactList}\small\item\em The value of a rank 1 tensor is a rank 1 tensor (a vector of doubles in SERiF) \end{DoxyCompactList}\item
|
||
|
|
struct \mbox{\hyperlink{structserif_1_1discretization_1_1forms_1_1_operation_value_3_011_00_01_operation_1_1_divergence_01_4}{serif\+::discretization\+::forms\+::\+Operation\+Value$<$ 1, Operation\+::\+Divergence $>$}}
|
||
|
|
\begin{DoxyCompactList}\small\item\em The divergence of a rank one tensor is a scalar (a double) \end{DoxyCompactList}\item
|
||
|
|
struct \mbox{\hyperlink{structserif_1_1discretization_1_1forms_1_1_operation_value_3_010_00_01_operation_1_1_gradient_01_4}{serif\+::discretization\+::forms\+::\+Operation\+Value$<$ 0, Operation\+::\+Gradient $>$}}
|
||
|
|
\begin{DoxyCompactList}\small\item\em The gradient of a rank 0 tensor is a rank 1 tensor (a vector of doubles) \end{DoxyCompactList}\item
|
||
|
|
struct \mbox{\hyperlink{structserif_1_1discretization_1_1forms_1_1_operation_value_3_011_00_01_operation_1_1_gradient_01_4}{serif\+::discretization\+::forms\+::\+Operation\+Value$<$ 1, Operation\+::\+Gradient $>$}}
|
||
|
|
\begin{DoxyCompactList}\small\item\em \doxylink{namespaceserif_ab7690da8665e9d9bd2fa8e8534cd6e57}{Vector} gradients use G\mbox{[}component\mbox{]}\mbox{[}derivative\mbox{]} = partial\+\_\+derivative(u\+\_\+component, x\+\_\+derivative). \end{DoxyCompactList}\item
|
||
|
|
struct \mbox{\hyperlink{structserif_1_1discretization_1_1forms_1_1_operation_value_3_011_00_01_operation_1_1_curl_01_4}{serif\+::discretization\+::forms\+::\+Operation\+Value$<$ 1, Operation\+::\+Curl $>$}}
|
||
|
|
\begin{DoxyCompactList}\small\item\em The curl of a rank 1 tensor is a rank 1 tensor (a vector of doubles) \end{DoxyCompactList}\item
|
||
|
|
struct \mbox{\hyperlink{structserif_1_1discretization_1_1forms_1_1_operation_value_3_011_00_01_operation_1_1_normal_trace_01_4}{serif\+::discretization\+::forms\+::\+Operation\+Value$<$ 1, Operation\+::\+Normal\+Trace $>$}}
|
||
|
|
\item
|
||
|
|
struct \mbox{\hyperlink{structserif_1_1discretization_1_1forms_1_1_operand_result_3_01_operand_t_01_4}{serif\+::discretization\+::forms\+::\+Operand\+Result$<$ Operand\+T $>$}}
|
||
|
|
\begin{DoxyCompactList}\small\item\em Specialization of the \doxylink{structserif_1_1discretization_1_1forms_1_1_operand_result}{Operand\+Result} struct for operands that are valid operands (satisfy the \doxylink{conceptserif_1_1discretization_1_1forms_1_1_is_operand}{Is\+Operand} concept) and are spatial terms (e.\+g defined over the domain, think mass density). This specialization uses the \doxylink{structserif_1_1discretization_1_1forms_1_1_operation_value}{Operation\+Value} struct to determine the value type of the result of the operand based on its term type and operation type. \end{DoxyCompactList}\item
|
||
|
|
struct \mbox{\hyperlink{structserif_1_1discretization_1_1forms_1_1_value_components_3_01double_01_4}{serif\+::discretization\+::forms\+::\+Value\+Components$<$ double $>$}}
|
||
|
|
\item
|
||
|
|
struct \mbox{\hyperlink{structserif_1_1discretization_1_1forms_1_1_value_components_3_01void_01_4}{serif\+::discretization\+::forms\+::\+Value\+Components$<$ void $>$}}
|
||
|
|
\item
|
||
|
|
struct \mbox{\hyperlink{structserif_1_1discretization_1_1forms_1_1_value_components_3_01std_1_1array_3_01_entry_00_01_size_01_4_01_4}{serif\+::discretization\+::forms\+::\+Value\+Components$<$ std\+::array$<$ Entry, Size $>$ $>$}}
|
||
|
|
\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}
|
||
|
|
\doxysubsubsection*{Typedefs}
|
||
|
|
\begin{DoxyCompactItemize}
|
||
|
|
\item
|
||
|
|
using \mbox{\hyperlink{namespaceserif_1_1discretization_1_1forms_a19001a41347e243892d7bfef18abd174}{serif\+::discretization\+::forms\+::\+Vector\+Value}} = std\+::array$<$double, 3$>$
|
||
|
|
\begin{DoxyCompactList}\small\item\em Alias for a rank 1 tensor of dimension 3 with elements doubles. \end{DoxyCompactList}\item
|
||
|
|
using \mbox{\hyperlink{namespaceserif_1_1discretization_1_1forms_aecbaccd35c1209031d60ea7348d6a452}{serif\+::discretization\+::forms\+::\+Matrix\+Value}} = std\+::array$<$\mbox{\hyperlink{namespaceserif_1_1discretization_1_1forms_a19001a41347e243892d7bfef18abd174}{Vector\+Value}}, 3$>$
|
||
|
|
\begin{DoxyCompactList}\small\item\em Alias for a rank 2 tensor of dimension 3 with cells as doubles. \end{DoxyCompactList}\item
|
||
|
|
{\footnotesize template$<$Is\+Operand OperandT$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1discretization_1_1forms_ab58e222c3ef402eeceadd03fd04180bf}{serif\+::discretization\+::forms\+::\+Operand\+Value}} = \mbox{\hyperlink{structserif_1_1discretization_1_1forms_1_1_operand_result}{Operand\+Result}}$<$OperandT$>$\+::type
|
||
|
|
\begin{DoxyCompactList}\small\item\em Alias for the value type of an operand. This is a convenience alias that allows you to easily access the value type of an operand without having to explicitly use the \doxylink{structserif_1_1discretization_1_1forms_1_1_operand_result}{Operand\+Result} struct. \end{DoxyCompactList}\item
|
||
|
|
{\footnotesize template$<$typename OutputT, typename InputT$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1discretization_1_1forms_a259c1476be2e462d8cd07c803434af69}{serif\+::discretization\+::forms\+::\+Partial\+Derivative}}
|
||
|
|
\begin{DoxyCompactList}\small\item\em Alias for the partial derivative of some output type with respect to some input type. This is a convenience alias that allows you to easily access the partial derivative type without having to explicitly use the \doxylink{structserif_1_1discretization_1_1forms_1_1_operand_result}{Operand\+Result} struct. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||
|
|
\doxysubsubsection*{Functions}
|
||
|
|
\begin{DoxyCompactItemize}
|
||
|
|
\item
|
||
|
|
{\footnotesize template$<$typename ValueT$>$ }\\decltype(auto) \mbox{\hyperlink{namespaceserif_1_1discretization_1_1forms_aa4daa912e2157d80dc731a6ce2349dfe}{serif\+::discretization\+::forms\+::component}} (ValueT \&value, int index)
|
||
|
|
\begin{DoxyCompactList}\small\item\em Read one entry of a scalar/vector/matrix value. This is a convenience function that allows you to easily access the components of a value type without having to explicitly use the \doxylink{structserif_1_1discretization_1_1forms_1_1_operand_result}{Operand\+Result} struct. \end{DoxyCompactList}\item
|
||
|
|
{\footnotesize template$<$typename OutputT, typename InputT$>$ }\\double \mbox{\hyperlink{namespaceserif_1_1discretization_1_1forms_a2adce8ae20f5f99c4302d9446cad1ebb}{serif\+::discretization\+::forms\+::derivative\+\_\+component}} (const \mbox{\hyperlink{namespaceserif_1_1discretization_1_1forms_a259c1476be2e462d8cd07c803434af69}{Partial\+Derivative}}$<$ OutputT, InputT $>$ \&value, int output, int input)
|
||
|
|
\begin{DoxyCompactList}\small\item\em Read one entry of a scalar/vector/matrix local derivative. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||
|
|
\doxysubsubsection*{Variables}
|
||
|
|
\begin{DoxyCompactItemize}
|
||
|
|
\item
|
||
|
|
{\footnotesize template$<$typename ValueT$>$ }\\constexpr int \mbox{\hyperlink{namespaceserif_1_1discretization_1_1forms_a8ff94af3602610b4765e1e1e87aebdb9}{serif\+::discretization\+::forms\+::component\+\_\+count}} = \mbox{\hyperlink{structserif_1_1discretization_1_1forms_1_1_value_components}{Value\+Components}}$<$std\+::remove\+\_\+cv\+\_\+t$<$ValueT$>$$>$\+::value
|
||
|
|
\end{DoxyCompactItemize}
|
||
|
|
|
||
|
|
|
||
|
|
\doxysubsection{Detailed Description}
|
||
|
|
Encode compile time information about the shape (rank) and data type of the result of various Operations.
|
||
|
|
|
||
|
|
\begin{DoxyAuthor}{Author}
|
||
|
|
Emily M. Boudreaux
|
||
|
|
\end{DoxyAuthor}
|
||
|
|
|
||
|
|
|
||
|
|
\begin{DoxyRefDesc}{Todo}
|
||
|
|
\item[\mbox{\hyperlink{todo__todo000030}{Todo}}]This should be consolidated and removed. This information could be injected into the Operation itself. \end{DoxyRefDesc}
|