Reference documentation for deal.II version 8.1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
Classes | Public Types | Public Member Functions | Public Attributes | List of all members
WorkStream::internal::Implementation3::IteratorRangeToItemStream< Iterator, ScratchData, CopyData >::ItemType Struct Reference

#include <work_stream.h>

Classes

struct  ScratchAndCopyDataObjects
 

Public Types

typedef std::list
< ScratchAndCopyDataObjects
ScratchAndCopyDataList
 

Public Member Functions

 ItemType ()
 

Public Attributes

std::vector< Iterator > work_items
 
unsigned int n_items
 
Threads::ThreadLocalStorage
< ScratchAndCopyDataList > * 
scratch_and_copy_data
 
const ScratchData * sample_scratch_data
 
const CopyData * sample_copy_data
 
bool currently_in_use
 

Detailed Description

template<typename Iterator, typename ScratchData, typename CopyData>
struct WorkStream::internal::Implementation3::IteratorRangeToItemStream< Iterator, ScratchData, CopyData >::ItemType

A data type that we use to identify items to be worked on. This is the structure that is passed around between the different parts of the WorkStream implementation to identify what needs to be done by the various stages of the pipeline.

Definition at line 736 of file work_stream.h.

Member Typedef Documentation

template<typename Iterator, typename ScratchData, typename CopyData>
typedef std::list<ScratchAndCopyDataObjects> WorkStream::internal::Implementation3::IteratorRangeToItemStream< Iterator, ScratchData, CopyData >::ItemType::ScratchAndCopyDataList

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

Constructor & Destructor Documentation

template<typename Iterator, typename ScratchData, typename CopyData>
WorkStream::internal::Implementation3::IteratorRangeToItemStream< Iterator, ScratchData, CopyData >::ItemType::ItemType ( )
inline

Default constructor. Initialize everything that doesn't have a default constructor itself.

Definition at line 832 of file work_stream.h.

Member Data Documentation

template<typename Iterator, typename ScratchData, typename CopyData>
std::vector<Iterator> WorkStream::internal::Implementation3::IteratorRangeToItemStream< Iterator, ScratchData, CopyData >::ItemType::work_items

A list of iterators that need to be worked on. Only the first n_items are relevant.

Definition at line 792 of file work_stream.h.

template<typename Iterator, typename ScratchData, typename CopyData>
unsigned int WorkStream::internal::Implementation3::IteratorRangeToItemStream< Iterator, ScratchData, CopyData >::ItemType::n_items

Number of items identified by the work_items array that the Worker and Copier pipeline stage need to work on. The maximum value of this variable will be chunk_size.

Definition at line 799 of file work_stream.h.

template<typename Iterator, typename ScratchData, typename CopyData>
Threads::ThreadLocalStorage<ScratchAndCopyDataList>* WorkStream::internal::Implementation3::IteratorRangeToItemStream< Iterator, ScratchData, CopyData >::ItemType::scratch_and_copy_data

Pointer to a thread local variable identifying the scratch and copy data objects this thread will use. The same considerations apply as documented in the Implementation2::IteratorRangeToItemStream class as well as in the paper by Turcksin, Kronbichler and Bangerth (see workstream_paper).

Definition at line 808 of file work_stream.h.

template<typename Iterator, typename ScratchData, typename CopyData>
const ScratchData* WorkStream::internal::Implementation3::IteratorRangeToItemStream< Iterator, ScratchData, CopyData >::ItemType::sample_scratch_data

Pointer to a sample scratch data object, to be used to initialize the scratch data objects created for each individual thread.

Definition at line 814 of file work_stream.h.

template<typename Iterator, typename ScratchData, typename CopyData>
const CopyData* WorkStream::internal::Implementation3::IteratorRangeToItemStream< Iterator, ScratchData, CopyData >::ItemType::sample_copy_data

Pointer to a sample copy data object.

Definition at line 819 of file work_stream.h.

template<typename Iterator, typename ScratchData, typename CopyData>
bool WorkStream::internal::Implementation3::IteratorRangeToItemStream< Iterator, ScratchData, CopyData >::ItemType::currently_in_use

Flag is true if the buffer is used and false if the buffer can be used.

Definition at line 825 of file work_stream.h.


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