Reference documentation for deal.II version 9.5.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\}}\)
Loading...
Searching...
No Matches
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/parallel_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
 
struct  WorkStream::internal::tbb_colored::ScratchAndCopyDataObjects< Iterator, ScratchData, CopyData >
 
class  WorkStream::internal::tbb_colored::WorkerAndCopier< Iterator, ScratchData, CopyData >
 

Namespaces

namespace  WorkStream
 
namespace  WorkStream::internal
 
namespace  WorkStream::internal::tbb_no_coloring
 
namespace  WorkStream::internal::sequential
 
namespace  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 std_cxx20::type_identity_t< Iterator > &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 std_cxx20::type_identity_t< Iterator > &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 std_cxx20::type_identity_t< Iterator > &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 = std::enable_if_t<has_begin_and_end<IteratorRangeType>>>
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 std_cxx20::type_identity_t< Iterator > &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< std_cxx20::type_identity_t< Iterator > > &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 = std::enable_if_t<has_begin_and_end<IteratorRangeType>>>
void WorkStream::run (IteratorRangeType iterator_range, MainClass &main_object, void(MainClass::*worker)(const typename std_cxx20::type_identity_t< IteratorRangeType >::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)