Reference documentation for deal.II version Git 2e98021fd4 2020-10-20 17:25:20 -0400
\(\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\}}\)
Classes | Namespaces | Functions
work_stream.h File Reference
#include <deal.II/base/config.h>
#include <deal.II/base/graph_coloring.h>
#include <deal.II/base/iterator_range.h>
#include <deal.II/base/multithread_info.h>
#include <deal.II/base/parallel.h>
#include <deal.II/base/template_constraints.h>
#include <deal.II/base/thread_local_storage.h>
#include <deal.II/base/thread_management.h>
#include <tbb/pipeline.h>
#include <functional>
#include <iterator>
#include <memory>
#include <utility>
#include <vector>

Go to the source code of this file.

Classes

class  WorkStream::internal::tbb_no_coloring::IteratorRangeToItemStream< Iterator, ScratchData, CopyData >
 
struct  WorkStream::internal::tbb_no_coloring::IteratorRangeToItemStream< Iterator, ScratchData, CopyData >::ItemType
 
struct  WorkStream::internal::tbb_no_coloring::IteratorRangeToItemStream< Iterator, ScratchData, CopyData >::ItemType::ScratchDataObject
 
class  WorkStream::internal::tbb_no_coloring::TBBWorker< Iterator, ScratchData, CopyData >
 
class  WorkStream::internal::tbb_no_coloring::TBBCopier< Iterator, ScratchData, CopyData >
 
struct  WorkStream::internal::tbb_colored::ScratchAndCopyDataObjects< Iterator, ScratchData, CopyData >
 
class  WorkStream::internal::tbb_colored::WorkerAndCopier< Iterator, ScratchData, CopyData >
 

Namespaces

 WorkStream
 
 WorkStream::internal
 
 WorkStream::internal::tbb_no_coloring
 
 WorkStream::internal::sequential
 
 WorkStream::internal::tbb_colored
 

Functions

template<typename Worker , typename Copier , typename Iterator , typename ScratchData , typename CopyData >
void WorkStream::internal::tbb_no_coloring::run (const Iterator &begin, const typename identity< Iterator >::type &end, Worker worker, Copier copier, const ScratchData &sample_scratch_data, const CopyData &sample_copy_data, const unsigned int queue_length, const unsigned int chunk_size)
 
template<typename Worker , typename Copier , typename Iterator , typename ScratchData , typename CopyData >
void WorkStream::internal::sequential::run (const Iterator &begin, const typename identity< Iterator >::type &end, Worker worker, Copier copier, const ScratchData &sample_scratch_data, const CopyData &sample_copy_data)
 
template<typename Worker , typename Copier , typename Iterator , typename ScratchData , typename CopyData >
void WorkStream::internal::sequential::run (const std::vector< std::vector< Iterator >> &colored_iterators, Worker worker, Copier copier, const ScratchData &sample_scratch_data, const CopyData &sample_copy_data)
 
template<typename Worker , typename Copier , typename Iterator , typename ScratchData , typename CopyData >
void WorkStream::internal::tbb_colored::run (const std::vector< std::vector< Iterator >> &colored_iterators, Worker worker, Copier copier, const ScratchData &sample_scratch_data, const CopyData &sample_copy_data, const unsigned int chunk_size)
 
template<typename Worker , typename Copier , typename Iterator , typename ScratchData , typename CopyData >
void WorkStream::run (const std::vector< std::vector< Iterator >> &colored_iterators, Worker worker, Copier copier, const ScratchData &sample_scratch_data, const CopyData &sample_copy_data, const unsigned int queue_length=2 *MultithreadInfo::n_threads(), const unsigned int chunk_size=8)
 
template<typename Worker , typename Copier , typename Iterator , typename ScratchData , typename CopyData >
void WorkStream::run (const Iterator &begin, const typename identity< Iterator >::type &end, Worker worker, Copier copier, const ScratchData &sample_scratch_data, const CopyData &sample_copy_data, const unsigned int queue_length=2 *MultithreadInfo::n_threads(), const unsigned int chunk_size=8)
 
template<typename Worker , typename Copier , typename IteratorRangeType , typename ScratchData , typename CopyData , typename = typename std::enable_if< has_begin_and_end<IteratorRangeType>::value>::type>
void WorkStream::run (IteratorRangeType iterator_range, Worker worker, Copier copier, const ScratchData &sample_scratch_data, const CopyData &sample_copy_data, const unsigned int queue_length=2 *MultithreadInfo::n_threads(), const unsigned int chunk_size=8)
 
template<typename Worker , typename Copier , typename Iterator , typename ScratchData , typename CopyData >
void WorkStream::run (const IteratorRange< Iterator > &iterator_range, Worker worker, Copier copier, const ScratchData &sample_scratch_data, const CopyData &sample_copy_data, const unsigned int queue_length=2 *MultithreadInfo::n_threads(), const unsigned int chunk_size=8)
 
template<typename MainClass , typename Iterator , typename ScratchData , typename CopyData >
void WorkStream::run (const Iterator &begin, const typename identity< Iterator >::type &end, MainClass &main_object, void(MainClass::*worker)(const Iterator &, ScratchData &, CopyData &), void(MainClass::*copier)(const CopyData &), const ScratchData &sample_scratch_data, const CopyData &sample_copy_data, const unsigned int queue_length=2 *MultithreadInfo::n_threads(), const unsigned int chunk_size=8)
 
template<typename MainClass , typename Iterator , typename ScratchData , typename CopyData >
void WorkStream::run (const IteratorOverIterators< Iterator > &begin, const IteratorOverIterators< typename identity< Iterator >::type > &end, MainClass &main_object, void(MainClass::*worker)(const Iterator &, ScratchData &, CopyData &), void(MainClass::*copier)(const CopyData &), const ScratchData &sample_scratch_data, const CopyData &sample_copy_data, const unsigned int queue_length=2 *MultithreadInfo::n_threads(), const unsigned int chunk_size=8)
 
template<typename MainClass , typename IteratorRangeType , typename ScratchData , typename CopyData , typename = typename std::enable_if< has_begin_and_end<IteratorRangeType>::value>::type>
void WorkStream::run (IteratorRangeType iterator_range, MainClass &main_object, void(MainClass::*worker)(const typename identity< IteratorRangeType >::type::iterator &, ScratchData &, CopyData &), void(MainClass::*copier)(const CopyData &), const ScratchData &sample_scratch_data, const CopyData &sample_copy_data, const unsigned int queue_length=2 *MultithreadInfo::n_threads(), const unsigned int chunk_size=8)
 
template<typename MainClass , typename Iterator , typename ScratchData , typename CopyData >
void WorkStream::run (IteratorRange< Iterator > iterator_range, MainClass &main_object, void(MainClass::*worker)(const Iterator &, ScratchData &, CopyData &), void(MainClass::*copier)(const CopyData &), const ScratchData &sample_scratch_data, const CopyData &sample_copy_data, const unsigned int queue_length=2 *MultithreadInfo::n_threads(), const unsigned int chunk_size=8)