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 Types | Private Attributes | List of all members
WorkStream::internal::Implementation3::WorkerAndCopier< Iterator, ScratchData, CopyData > Class Template Reference

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

Public Member Functions

 WorkerAndCopier (const std::function< void(const Iterator &, ScratchData &, CopyData &)> &worker, const std::function< void(const CopyData &)> &copier, const ScratchData &sample_scratch_data, const CopyData &sample_copy_data)
 
void operator() (const tbb::blocked_range< typename std::vector< Iterator >::const_iterator > &range)
 

Private Types

using ScratchAndCopyDataObjects = typename Implementation3::ScratchAndCopyDataObjects< Iterator, ScratchData, CopyData >
 
using ScratchAndCopyDataList = std::list< ScratchAndCopyDataObjects >
 

Private Attributes

Threads::ThreadLocalStorage< ScratchAndCopyDataListdata
 
const std::function< void(const Iterator &, ScratchData &, CopyData &)> worker
 
const std::function< void(const CopyData &)> copier
 
const ScratchData & sample_scratch_data
 
const CopyData & sample_copy_data
 

Detailed Description

template<typename Iterator, typename ScratchData, typename CopyData>
class WorkStream::internal::Implementation3::WorkerAndCopier< Iterator, ScratchData, CopyData >

A class that manages calling the worker and copier functions. Unlike the other implementations, parallel_for is used instead of a pipeline.

Definition at line 737 of file work_stream.h.

Member Typedef Documentation

◆ ScratchAndCopyDataObjects

template<typename Iterator , typename ScratchData , typename CopyData >
using WorkStream::internal::Implementation3::WorkerAndCopier< Iterator, ScratchData, CopyData >::ScratchAndCopyDataObjects = typename Implementation3:: ScratchAndCopyDataObjects<Iterator, ScratchData, CopyData>
private

Definition at line 850 of file work_stream.h.

◆ ScratchAndCopyDataList

template<typename Iterator , typename ScratchData , typename CopyData >
using WorkStream::internal::Implementation3::WorkerAndCopier< Iterator, ScratchData, CopyData >::ScratchAndCopyDataList = std::list<ScratchAndCopyDataObjects>
private

Typedef to a list of scratch data objects. The rationale for this list is provided in the variables that use these lists.

Definition at line 856 of file work_stream.h.

Constructor & Destructor Documentation

◆ WorkerAndCopier()

template<typename Iterator , typename ScratchData , typename CopyData >
WorkStream::internal::Implementation3::WorkerAndCopier< Iterator, ScratchData, CopyData >::WorkerAndCopier ( const std::function< void(const Iterator &, ScratchData &, CopyData &)> &  worker,
const std::function< void(const CopyData &)> &  copier,
const ScratchData &  sample_scratch_data,
const CopyData &  sample_copy_data 
)
inline

Constructor.

Definition at line 743 of file work_stream.h.

Member Function Documentation

◆ operator()()

template<typename Iterator , typename ScratchData , typename CopyData >
void WorkStream::internal::Implementation3::WorkerAndCopier< Iterator, ScratchData, CopyData >::operator() ( const tbb::blocked_range< typename std::vector< Iterator >::const_iterator > &  range)
inline

The function that calls the worker and the copier functions on a range of items denoted by the two arguments.

Definition at line 761 of file work_stream.h.

Member Data Documentation

◆ data

template<typename Iterator , typename ScratchData , typename CopyData >
Threads::ThreadLocalStorage<ScratchAndCopyDataList> WorkStream::internal::Implementation3::WorkerAndCopier< Iterator, ScratchData, CopyData >::data
private

Definition at line 858 of file work_stream.h.

◆ worker

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

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

Definition at line 865 of file work_stream.h.

◆ copier

template<typename Iterator , typename ScratchData , typename CopyData >
const std::function<void(const CopyData &)> WorkStream::internal::Implementation3::WorkerAndCopier< Iterator, ScratchData, CopyData >::copier
private

Pointer to the function that does the copying from local contribution to global object.

Definition at line 871 of file work_stream.h.

◆ sample_scratch_data

template<typename Iterator , typename ScratchData , typename CopyData >
const ScratchData& WorkStream::internal::Implementation3::WorkerAndCopier< Iterator, ScratchData, CopyData >::sample_scratch_data
private

References to sample scratch and copy data for when we need them.

Definition at line 876 of file work_stream.h.

◆ sample_copy_data

template<typename Iterator , typename ScratchData , typename CopyData >
const CopyData& WorkStream::internal::Implementation3::WorkerAndCopier< Iterator, ScratchData, CopyData >::sample_copy_data
private

Definition at line 877 of file work_stream.h.


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