Reference documentation for deal.II version 9.0.0
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

typedef std::list< ScratchAndCopyDataObjectsScratchAndCopyDataList
 

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 757 of file work_stream.h.

Member Typedef Documentation

◆ ScratchAndCopyDataList

template<typename Iterator , typename ScratchData , typename CopyData >
typedef std::list<ScratchAndCopyDataObjects> WorkStream::internal::Implementation3::WorkerAndCopier< Iterator, ScratchData, CopyData >::ScratchAndCopyDataList
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 873 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 763 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 781 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 883 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 889 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 894 of file work_stream.h.


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