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)
62 lines
6.8 KiB
TeX
62 lines
6.8 KiB
TeX
\doxysection{src/include/serif/geometry/deformation/actions.hpp File Reference}
|
|
\hypertarget{actions_8hpp}{}\label{actions_8hpp}\index{src/include/serif/geometry/deformation/actions.hpp@{src/include/serif/geometry/deformation/actions.hpp}}
|
|
{\ttfamily \#include $<$algorithm$>$}\newline
|
|
{\ttfamily \#include $<$concepts$>$}\newline
|
|
{\ttfamily \#include $<$span$>$}\newline
|
|
{\ttfamily \#include "{}serif/geometry/deformation/failure.\+hpp"{}}\newline
|
|
{\ttfamily \#include "{}serif/geometry/deformation/detail/action\+\_\+storage.\+hpp"{}}\newline
|
|
{\ttfamily \#include "{}serif/geometry/deformation/spaces.\+hpp"{}}\newline
|
|
{\ttfamily \#include "{}serif/geometry/deformation/workspace.\+hpp"{}}\newline
|
|
Include dependency graph for actions.\+hpp\+:\nopagebreak
|
|
\begin{figure}[H]
|
|
\begin{center}
|
|
\leavevmode
|
|
\includegraphics[width=350pt]{actions_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]{actions_8hpp__dep__incl}
|
|
\end{center}
|
|
\end{figure}
|
|
\doxysubsubsection*{Namespaces}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
namespace \mbox{\hyperlink{namespaceserif}{serif}}
|
|
\item
|
|
namespace \mbox{\hyperlink{namespaceserif_1_1geometry}{serif\+::geometry}}
|
|
\item
|
|
namespace \mbox{\hyperlink{namespaceserif_1_1geometry_1_1deformation}{serif\+::geometry\+::deformation}}
|
|
\end{DoxyCompactItemize}
|
|
\doxysubsubsection*{Concepts}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
concept \mbox{\hyperlink{conceptserif_1_1geometry_1_1deformation_1_1_deformation_dimensions}{serif\+::geometry\+::deformation\+::\+Deformation\+Dimensions}}
|
|
\begin{DoxyCompactList}\small\item\em Matching lengths never replace the physical meanings of the input and output spaces. \end{DoxyCompactList}\item
|
|
concept \mbox{\hyperlink{conceptserif_1_1geometry_1_1deformation_1_1_linear_deformation_map}{serif\+::geometry\+::deformation\+::\+Linear\+Deformation\+Map}}
|
|
\begin{DoxyCompactList}\small\item\em Fixed maps provide just forward and transpose actions with caller-\/owned scratch. \end{DoxyCompactList}\item
|
|
concept \mbox{\hyperlink{conceptserif_1_1geometry_1_1deformation_1_1_differentiable_deformation_map}{serif\+::geometry\+::deformation\+::\+Differentiable\+Deformation\+Map}}
|
|
\begin{DoxyCompactList}\small\item\em Nonlinear maps explicitly provide every term needed by a Newton force pullback. \end{DoxyCompactList}\item
|
|
concept \mbox{\hyperlink{conceptserif_1_1geometry_1_1deformation_1_1_deformation_map}{serif\+::geometry\+::deformation\+::\+Deformation\+Map}}
|
|
\end{DoxyCompactItemize}
|
|
\doxysubsubsection*{Functions}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
{\footnotesize template$<$Deformation\+Map Map$>$ }\\\mbox{\hyperlink{namespaceserif_1_1geometry_1_1deformation_ae1f99a74025eac52e6ff4a4b77fb41c6}{Deformation\+Workspace}}$<$ Map $>$ \mbox{\hyperlink{namespaceserif_1_1geometry_1_1deformation_aa3ab7cc89a2262523938808363fda865}{serif\+::geometry\+::deformation\+::make\+\_\+deformation\+\_\+workspace}} (const Map \&map)
|
|
\begin{DoxyCompactList}\small\item\em Allocate action scratch explicitly, once per independent caller. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$Deformation\+Map Map$>$ }\\\mbox{\hyperlink{namespaceserif_1_1geometry_1_1deformation_a08306ee593c172f4877facc061e98f97}{Deformation\+Status}} \mbox{\hyperlink{namespaceserif_1_1geometry_1_1deformation_ad539328115ca03a435d339f2c551a21b}{serif\+::geometry\+::deformation\+::build\+\_\+displacement}} (const Map \&map, std\+::span$<$ const double $>$ parameters, std\+::span$<$ double $>$ displacement, \mbox{\hyperlink{namespaceserif_1_1geometry_1_1deformation_ae1f99a74025eac52e6ff4a4b77fb41c6}{Deformation\+Workspace}}$<$ Map $>$ \&workspace)
|
|
\begin{DoxyCompactList}\small\item\em Evaluate physical displacement with caller-\/owned output and scratch. All action outputs must be disjoint from their inputs. Workspace storage is reserved for the map and must not supply public input or output spans. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$Deformation\+Map Map$>$ }\\\mbox{\hyperlink{namespaceserif_1_1geometry_1_1deformation_a08306ee593c172f4877facc061e98f97}{Deformation\+Status}} \mbox{\hyperlink{namespaceserif_1_1geometry_1_1deformation_a47622764fd6178445526c8b3d984a6b2}{serif\+::geometry\+::deformation\+::apply\+\_\+jacobian}} (const Map \&map, std\+::span$<$ const double $>$ parameters, std\+::span$<$ const double $>$ direction, std\+::span$<$ double $>$ displacement\+\_\+direction, \mbox{\hyperlink{namespaceserif_1_1geometry_1_1deformation_ae1f99a74025eac52e6ff4a4b77fb41c6}{Deformation\+Workspace}}$<$ Map $>$ \&workspace)
|
|
\begin{DoxyCompactList}\small\item\em Linear maps reuse their primal action; nonlinear maps supply their exact tangent. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$Deformation\+Map Map$>$ }\\\mbox{\hyperlink{namespaceserif_1_1geometry_1_1deformation_a08306ee593c172f4877facc061e98f97}{Deformation\+Status}} \mbox{\hyperlink{namespaceserif_1_1geometry_1_1deformation_a28c839bb898ee76ac62ceaddadcba6b1}{serif\+::geometry\+::deformation\+::apply\+\_\+jacobian\+\_\+transpose}} (const Map \&map, std\+::span$<$ const double $>$ parameters, std\+::span$<$ const double $>$ displacement\+\_\+dual, std\+::span$<$ double $>$ parameter\+\_\+dual, \mbox{\hyperlink{namespaceserif_1_1geometry_1_1deformation_ae1f99a74025eac52e6ff4a4b77fb41c6}{Deformation\+Workspace}}$<$ Map $>$ \&workspace)
|
|
\begin{DoxyCompactList}\small\item\em Transfer virtual work from the displacement field to its independent shape coefficients. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$Deformation\+Map Map$>$ }\\\mbox{\hyperlink{namespaceserif_1_1geometry_1_1deformation_a08306ee593c172f4877facc061e98f97}{Deformation\+Status}} \mbox{\hyperlink{namespaceserif_1_1geometry_1_1deformation_a5738813c140911a0c9ec69eec58af8e7}{serif\+::geometry\+::deformation\+::apply\+\_\+pullback\+\_\+derivative}} (const Map \&map, std\+::span$<$ const double $>$ parameters, std\+::span$<$ const double $>$ direction, std\+::span$<$ const double $>$ displacement\+\_\+dual, std\+::span$<$ double $>$ parameter\+\_\+dual, \mbox{\hyperlink{namespaceserif_1_1geometry_1_1deformation_ae1f99a74025eac52e6ff4a4b77fb41c6}{Deformation\+Workspace}}$<$ Map $>$ \&workspace)
|
|
\begin{DoxyCompactList}\small\item\em Differentiate the transpose at fixed dual; zero is justified only for a declared linear map. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
|
\doxysubsubsection*{Variables}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
{\footnotesize template$<$typename Map$>$ }\\constexpr bool \mbox{\hyperlink{namespaceserif_1_1geometry_1_1deformation_a6947f0057c614e85f67ad79f50a11606}{serif\+::geometry\+::deformation\+::is\+\_\+linear\+\_\+deformation}}
|
|
\begin{DoxyCompactList}\small\item\em Linearity is an explicit property of the mathematics, independent of its action interface. \end{DoxyCompactList}\end{DoxyCompactItemize}
|