Reference documentation for deal.II version 9.1.1
\(\newcommand{\dealcoloneq}{\mathrel{\vcenter{:}}=}\)
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 ScratchAndCopyDataList = std::list< ScratchAndCopyDataObjects >
 

Private Attributes

const std::function< void(const Iterator &, ScratchData &, CopyData &)> worker
 
const std::function< void(const CopyData &)> copier
 
const ScratchData & sample_scratch_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 747 of file work_stream.h.

Member Typedef Documentation

◆ 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 866 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 753 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 771 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::Implementation3::WorkerAndCopier< Iterator, ScratchData, CopyData >::worker
private

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

Definition at line 875 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 881 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 886 of file work_stream.h.


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