deal.II version 9.7.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
Portable::DeviceBlockVector< Number > Class Template Reference

#include <deal.II/matrix_free/portable_matrix_free.h>

Detailed Description

template<typename Number>
class Portable::DeviceBlockVector< Number >

A block vector used for source and destination vectors in device functions like MatrixFree::cell_loop().

The maximum number of block is limited by the constant n_max_dof_handlers.

Definition at line 96 of file portable_matrix_free.h.

Public Member Functions

 DeviceBlockVector ()
 DeviceBlockVector (const DeviceBlockVector &other)=default
 DeviceBlockVector (const DeviceVector< Number > &src)
template<typename MemorySpace>
 DeviceBlockVector (const LinearAlgebra::distributed::BlockVector< Number, MemorySpace > &src)
DeviceVector< Number > & block (unsigned int index)
const DeviceVector< Number > & block (unsigned int index) const

Private Attributes

unsigned int n_blocks
Kokkos::Array< DeviceVector< Number >, n_max_dof_handlersblocks

Constructor & Destructor Documentation

◆ DeviceBlockVector() [1/4]

template<typename Number>
Portable::DeviceBlockVector< Number >::DeviceBlockVector ( )
inline

Constructor.

Definition at line 102 of file portable_matrix_free.h.

◆ DeviceBlockVector() [2/4]

template<typename Number>
Portable::DeviceBlockVector< Number >::DeviceBlockVector ( const DeviceBlockVector< Number > & other)
default

Constructor.

◆ DeviceBlockVector() [3/4]

template<typename Number>
Portable::DeviceBlockVector< Number >::DeviceBlockVector ( const DeviceVector< Number > & src)
inlineexplicit

Constructor from a DeviceVector. Creates a DeviceBlockVector with a single block.

Definition at line 115 of file portable_matrix_free.h.

◆ DeviceBlockVector() [4/4]

template<typename Number>
template<typename MemorySpace>
Portable::DeviceBlockVector< Number >::DeviceBlockVector ( const LinearAlgebra::distributed::BlockVector< Number, MemorySpace > & src)
inline

Constructor from a LinearAlgebra::distributed::BlockVector. Creates a DeviceVector from each block and stores it.

Definition at line 125 of file portable_matrix_free.h.

Member Function Documentation

◆ block() [1/2]

template<typename Number>
DeviceVector< Number > & Portable::DeviceBlockVector< Number >::block ( unsigned int index)
inline

Access block index.

Definition at line 145 of file portable_matrix_free.h.

◆ block() [2/2]

template<typename Number>
const DeviceVector< Number > & Portable::DeviceBlockVector< Number >::block ( unsigned int index) const
inline

Access block index.

Definition at line 155 of file portable_matrix_free.h.

Member Data Documentation

◆ n_blocks

template<typename Number>
unsigned int Portable::DeviceBlockVector< Number >::n_blocks
private

The number of components / blocks

Definition at line 165 of file portable_matrix_free.h.

◆ blocks

template<typename Number>
Kokkos::Array<DeviceVector<Number>, n_max_dof_handlers> Portable::DeviceBlockVector< Number >::blocks
private

Storage for the blocks

Definition at line 170 of file portable_matrix_free.h.


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