Reference documentation for deal.II version Git f6c556c4e9 2020-09-24 06:57:19 +0200
\(\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\}}\)
Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
internal::AlignedVectorSet< T, initialize_memory > Class Template Reference

#include <deal.II/base/aligned_vector.h>

Inheritance diagram for internal::AlignedVectorSet< T, initialize_memory >:
[legend]

Public Member Functions

 AlignedVectorSet (const std::size_t size, const T &element, T *const destination)
 
virtual void apply_to_subrange (const std::size_t begin, const std::size_t end) const override
 

Private Member Functions

void copy_construct_or_assign (const std::size_t begin, const std::size_t end, std::integral_constant< bool, false >) const
 
void copy_construct_or_assign (const std::size_t begin, const std::size_t end, std::integral_constant< bool, true >) const
 
void apply_parallel (const std::size_t begin, const std::size_t end, const std::size_t minimum_parallel_grain_size) const
 

Private Attributes

const T & element_
 
T * destination_
 
bool trivial_element
 

Static Private Attributes

static const std::size_t minimum_parallel_grain_size
 

Detailed Description

template<typename T, bool initialize_memory>
class internal::AlignedVectorSet< T, initialize_memory >

Class that issues the set commands for AlignedVector.

Template Parameters
initialize_memorySets whether the set command should initialize memory (with a call to the copy constructor) or rather use the copy assignment operator. A template is necessary to select the appropriate operation since some classes might define only one of those two operations.

Definition at line 532 of file aligned_vector.h.

Constructor & Destructor Documentation

◆ AlignedVectorSet()

template<typename T, bool initialize_memory>
internal::AlignedVectorSet< T, initialize_memory >::AlignedVectorSet ( const std::size_t  size,
const T &  element,
T *const  destination 
)
inline

Constructor. Issues a parallel call if there are sufficiently many elements, otherwise work in serial.

Definition at line 542 of file aligned_vector.h.

Member Function Documentation

◆ apply_to_subrange()

template<typename T, bool initialize_memory>
virtual void internal::AlignedVectorSet< T, initialize_memory >::apply_to_subrange ( const std::size_t  begin,
const std::size_t  end 
) const
inlineoverridevirtual

This sets elements on a subrange given by two integers.

Implements parallel::ParallelForInteger.

Definition at line 578 of file aligned_vector.h.

◆ copy_construct_or_assign() [1/2]

template<typename T, bool initialize_memory>
void internal::AlignedVectorSet< T, initialize_memory >::copy_construct_or_assign ( const std::size_t  begin,
const std::size_t  end,
std::integral_constant< bool, false >   
) const
inlineprivate

Definition at line 601 of file aligned_vector.h.

◆ copy_construct_or_assign() [2/2]

template<typename T, bool initialize_memory>
void internal::AlignedVectorSet< T, initialize_memory >::copy_construct_or_assign ( const std::size_t  begin,
const std::size_t  end,
std::integral_constant< bool, true >   
) const
inlineprivate

Definition at line 611 of file aligned_vector.h.

◆ apply_parallel()

void parallel::ParallelForInteger::apply_parallel ( const std::size_t  begin,
const std::size_t  end,
const std::size_t  minimum_parallel_grain_size 
) const
inlineinherited

This function runs the for loop over the given range [lower,upper), possibly in parallel when end-begin is larger than the minimum parallel grain size. This function is marked const because it any operation that changes the data of a derived class will inherently not be thread-safe when several threads work with the same data simultaneously.

Definition at line 839 of file parallel.h.

Member Data Documentation

◆ minimum_parallel_grain_size

template<typename T, bool initialize_memory>
const std::size_t internal::AlignedVectorSet< T, initialize_memory >::minimum_parallel_grain_size
staticprivate
Initial value:
=
160000 / sizeof(T) + 1

Definition at line 534 of file aligned_vector.h.

◆ element_

template<typename T, bool initialize_memory>
const T& internal::AlignedVectorSet< T, initialize_memory >::element_
private

Definition at line 595 of file aligned_vector.h.

◆ destination_

template<typename T, bool initialize_memory>
T* internal::AlignedVectorSet< T, initialize_memory >::destination_
mutableprivate

Definition at line 596 of file aligned_vector.h.

◆ trivial_element

template<typename T, bool initialize_memory>
bool internal::AlignedVectorSet< T, initialize_memory >::trivial_element
private

Definition at line 597 of file aligned_vector.h.


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