Ginkgo: gko::batch::preconditioner::Jacobi< ValueType, IndexType >::parameters_type Struct Reference

| Ginkgo Generated from branch based on main. Ginkgo version 1.11.0 A numerical linear algebra library targeting many-core architectures

Loading...
Searching...
No Matches
gko::batch::preconditioner::Jacobi< ValueType, IndexType >::parameters_type Struct Reference
Inheritance diagram for gko::batch::preconditioner::Jacobi< ValueType, IndexType >::parameters_type:
[legend]
Collaboration diagram for gko::batch::preconditioner::Jacobi< ValueType, IndexType >::parameters_type:
[legend]

## Public Member Functions
template<typename... Args>
auto | with_max_block_size (Args &&... _value) -> std::decay_t< decltype(*(this->self()))> &
template<typename... Args>
auto | with_block_pointers (Args &&... _value) -> std::decay_t< decltype(*(this->self()))> &
Public Member Functions inherited from gko::enable_parameters_type< parameters_type, Factory >
parameters_type & | with_loggers (Args &&... _value)
| Provides the loggers to be added to the factory and its generated objects in a fluent interface.
std::unique_ptr< Factory > | on (std::shared_ptr< const Executor > exec) const
| Creates a new factory on the specified executor.

## Public Attributes
uint32 | max_block_size {8u}
| Maximal size of diagonal blocks.
gko::array< index_type > | block_pointers {nullptr}
| Starting (row / column) indexes of individual blocks, for a single batch item.

## Additional Inherited Members
Public Types inherited from gko::enable_parameters_type< parameters_type, Factory >
using | factory

## Member Data Documentation

## ◆ block_pointers

template<typename ValueType = default_precision, typename IndexType = int32>

gko::array<index_type> gko::batch::preconditioner::Jacobi< ValueType, IndexType >::parameters_type::block_pointers {nullptr}

Starting (row / column) indexes of individual blocks, for a single batch item.

An index past the last block has to be supplied as the last value. I.e. the size of the array has to be the number of blocks plus 1, where the first value is 0, and the last value is the number of rows / columns of the matrix.

Note
  Even if not set explicitly, this parameter will be set to automatically detected values once the preconditioner is generated.
  If the parameter is set automatically, the size of the array does not correlate to the number of blocks, and is implementation defined. To obtain the number of blocks n use Jacobi::get_num_blocks(). The starting indexes of the blocks are stored in the first n+1 values of this array.
  If the block-diagonal structure can be determined from the problem characteristics, it may be beneficial to pass this information specifically via this parameter, as the autodetection procedure is only a rough approximation of the true block structure.
  The maximum block size set by the max_block_size parameter has to be respected when setting this parameter. Failure to do so will lead to undefined behavior.

## ◆ max_block_size

template<typename ValueType = default_precision, typename IndexType = int32>

uint32 gko::batch::preconditioner::Jacobi< ValueType, IndexType >::parameters_type::max_block_size {8u}

Maximal size of diagonal blocks.

Note
  This value has to be between 1 and 32 (NVIDIA)/64 (AMD). For efficiency, when the max_block_size is set to 1, specialized kernels are used and the additional objects (block_ptrs etc) are set to null values.
  Unlike the regular block Jacobi preconditioner, for the batched preconditioner, smaller blocks are more efficient, as the matrices themselves are considerably smaller.

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

- ginkgo/core/preconditioner/batch_jacobi.hpp