Reference documentation for deal.II version 9.2.0
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Public Member Functions | Private Attributes | List of all members
WorkStream::internal::Implementation2::Worker< Iterator, ScratchData, CopyData > Class Template Reference

#include <deal.II/base/work_stream.h>

Inheritance diagram for WorkStream::internal::Implementation2::Worker< Iterator, ScratchData, CopyData >:
[legend]

Public Member Functions

 Worker (const std::function< void(const Iterator &, ScratchData &, CopyData &)> &worker, bool copier_exist=true)
 
void * operator() (void *item) override
 

Private Attributes

const std::function< void(const Iterator &, ScratchData &, CopyData &)> worker
 
bool copier_exist
 

Detailed Description

template<typename Iterator, typename ScratchData, typename CopyData>
class WorkStream::internal::Implementation2::Worker< Iterator, ScratchData, CopyData >

A class that manages calling the worker function on a number of parallel threads. Note that it is, in the TBB notation, a filter that can run in parallel.

Definition at line 460 of file work_stream.h.

Constructor & Destructor Documentation

◆ Worker()

template<typename Iterator , typename ScratchData , typename CopyData >
WorkStream::internal::Implementation2::Worker< Iterator, ScratchData, CopyData >::Worker ( const std::function< void(const Iterator &, ScratchData &, CopyData &)> &  worker,
bool  copier_exist = true 
)
inline

Constructor. Takes a reference to the object on which we will operate as well as a pointer to the function that will do the assembly.

Definition at line 468 of file work_stream.h.

Member Function Documentation

◆ operator()()

template<typename Iterator , typename ScratchData , typename CopyData >
void* WorkStream::internal::Implementation2::Worker< Iterator, ScratchData, CopyData >::operator() ( void *  item)
inlineoverride

Work on an item.

Definition at line 482 of file work_stream.h.

Member Data Documentation

◆ worker

template<typename Iterator , typename ScratchData , typename CopyData >
const std::function<void(const Iterator &, ScratchData &, CopyData &)> WorkStream::internal::Implementation2::Worker< Iterator, ScratchData, CopyData >::worker
private

Pointer to the function that does the assembling on the sequence of cells.

Definition at line 591 of file work_stream.h.

◆ copier_exist

template<typename Iterator , typename ScratchData , typename CopyData >
bool WorkStream::internal::Implementation2::Worker< Iterator, ScratchData, CopyData >::copier_exist
private

This flag is true if the copier stage exist. If it does not, the worker has to free the buffer. Otherwise the copier will do it.

Definition at line 597 of file work_stream.h.


The documentation for this class was generated from the following file: