\doxysection{src/include/serif/backend/mfem/shared/parallel.hpp File Reference} \hypertarget{parallel_8hpp}{}\label{parallel_8hpp}\index{src/include/serif/backend/mfem/shared/parallel.hpp@{src/include/serif/backend/mfem/shared/parallel.hpp}} {\ttfamily \#include $<$exception$>$}\newline {\ttfamily \#include $<$vector$>$}\newline Include dependency graph for parallel.\+hpp\+: \nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=209pt]{parallel_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]{parallel_8hpp__dep__incl} \end{center} \end{figure} \doxysubsubsection*{Namespaces} \begin{DoxyCompactItemize} \item namespace \mbox{\hyperlink{namespacemfem}{mfem}} \item namespace \mbox{\hyperlink{namespaceserif}{serif}} \item namespace \mbox{\hyperlink{namespaceserif_1_1utils}{serif\+::utils}} \item namespace \mbox{\hyperlink{namespaceserif_1_1utils_1_1parallel}{serif\+::utils\+::parallel}} \item namespace \mbox{\hyperlink{namespaceserif_1_1utils_1_1parallel_1_1detail}{serif\+::utils\+::parallel\+::detail}} \end{DoxyCompactItemize} \doxysubsubsection*{Typedefs} \begin{DoxyCompactItemize} \item using \mbox{\hyperlink{namespaceserif_1_1utils_1_1parallel_1_1detail_ae223047094edcf77dc097e5af446d0a2}{serif\+::utils\+::parallel\+::detail\+::\+Body}} = void (\texorpdfstring{$\ast$}{*})(void\texorpdfstring{$\ast$}{*} context, int index, int worker) \end{DoxyCompactItemize} \doxysubsubsection*{Functions} \begin{DoxyCompactItemize} \item int \mbox{\hyperlink{namespaceserif_1_1utils_1_1parallel_a845c655da35a46d0be87880f0e4fa2d9}{serif\+::utils\+::parallel\+::worker\+\_\+count}} () noexcept \begin{DoxyCompactList}\small\item\em Workers an element loop may use\+: Open\+MP\textquotesingle{}s thread limit (OMP\+\_\+\+NUM\+\_\+\+THREADS), or 1 without Open\+MP or inside an enclosing parallel region. \end{DoxyCompactList}\item void \mbox{\hyperlink{namespaceserif_1_1utils_1_1parallel_1_1detail_a596686939c1c39cc9554552322779933}{serif\+::utils\+::parallel\+::detail\+::run}} (int count, void \texorpdfstring{$\ast$}{*}context, \mbox{\hyperlink{namespaceserif_1_1utils_1_1parallel_1_1detail_ae223047094edcf77dc097e5af446d0a2}{Body}} body) \begin{DoxyCompactList}\small\item\em Run body for every index; body must not throw. Compiled in libserif so Open\+MP never depends on the caller\textquotesingle{}s flags. \end{DoxyCompactList}\item {\footnotesize template$<$typename BodyT$>$ }\\void \mbox{\hyperlink{namespaceserif_1_1utils_1_1parallel_a453320d288c9e42300bdc59ee8dccd2d}{serif\+::utils\+::parallel\+::for\+\_\+each\+\_\+index}} (const int count, BodyT \&\&body) \begin{DoxyCompactList}\small\item\em Call body(index, worker) once for every index in \mbox{[}0, count), possibly concurrently. \end{DoxyCompactList}\item void \mbox{\hyperlink{namespaceserif_1_1utils_1_1parallel_a8e0e78d02ab6c49ae588644e579bed79}{serif\+::utils\+::parallel\+::element\+\_\+transformation}} (const \+::mfem\+::\+Mesh \&mesh, int element, \+::mfem\+::\+Isoparametric\+Transformation \&transformation) \begin{DoxyCompactList}\small\item\em Mesh\+::\+Get\+Element\+Transformation(element, transformation), safe in concurrent element loops. \end{DoxyCompactList}\end{DoxyCompactItemize}