Ginkgo
Generated from branch based on main. Ginkgo version 1.11.0
A numerical linear algebra library targeting many-core architectures
Toggle main menu visibility
Loading...
Searching...
No Matches
batch_bicgstab.hpp
1
// SPDX-FileCopyrightText: 2017 - 2025 The Ginkgo authors
2
//
3
// SPDX-License-Identifier: BSD-3-Clause
4
5
#ifndef GKO_PUBLIC_CORE_SOLVER_BATCH_BICGSTAB_HPP_
6
#define GKO_PUBLIC_CORE_SOLVER_BATCH_BICGSTAB_HPP_
7
8
9
#include <vector>
10
11
#include <ginkgo/core/base/batch_lin_op.hpp>
12
#include <ginkgo/core/base/batch_multi_vector.hpp>
13
#include <ginkgo/core/base/exception_helpers.hpp>
14
#include <ginkgo/core/base/lin_op.hpp>
15
#include <ginkgo/core/base/types.hpp>
16
#include <ginkgo/core/solver/batch_solver_base.hpp>
17
#include <ginkgo/core/stop/batch_stop_enum.hpp>
18
19
20
namespace
gko
{
21
namespace
batch {
22
namespace
solver {
23
24
49
template
<
typename
ValueType = default_precision>
50
class
Bicgstab final
51
:
public
EnableBatchSolver<Bicgstab<ValueType>, ValueType> {
52
friend
class
EnableBatchLinOp
<Bicgstab>;
53
friend
class
EnablePolymorphicObject
<Bicgstab,
BatchLinOp
>;
54
GKO_ASSERT_SUPPORTED_VALUE_TYPE;
55
56
public
:
57
using
value_type = ValueType;
58
using
real_type =
gko::remove_complex<ValueType>
;
59
60
class
Factory
;
61
62
struct
parameters_type
63
:
enable_preconditioned_iterative_solver_factory_parameters
<
64
parameters_type, Factory> {};
65
GKO_ENABLE_BATCH_LIN_OP_FACTORY
(Bicgstab, parameters, Factory);
66
GKO_ENABLE_BUILD_METHOD
(Factory);
67
68
private
:
69
explicit
Bicgstab(std::shared_ptr<const Executor> exec);
70
71
explicit
Bicgstab(
const
Factory* factory,
72
std::shared_ptr<const BatchLinOp> system_matrix);
73
74
void
solver_apply(
75
const
MultiVector<ValueType>
* b,
MultiVector<ValueType>
* x,
76
log::detail::log_data<real_type>* log_data)
const override
;
77
};
78
79
80
}
// namespace solver
81
}
// namespace batch
82
}
// namespace gko
83
84
85
#endif
// GKO_PUBLIC_CORE_SOLVER_BATCH_BICGSTAB_HPP_
gko::EnablePolymorphicObject
This mixin inherits from (a subclass of) PolymorphicObject and provides a base implementation of a ne...
Definition
polymorphic_object.hpp:668
gko::batch::BatchLinOp
Definition
batch_lin_op.hpp:59
gko::batch::EnableBatchLinOp
The EnableBatchLinOp mixin can be used to provide sensible default implementations of the majority of...
Definition
batch_lin_op.hpp:252
gko::batch::MultiVector
MultiVector stores multiple vectors in a batched fashion and is useful for batched operations.
Definition
batch_multi_vector.hpp:61
gko::batch::solver::Bicgstab::Factory
Definition
batch_bicgstab.hpp:65
GKO_ENABLE_BATCH_LIN_OP_FACTORY
#define GKO_ENABLE_BATCH_LIN_OP_FACTORY(_batch_lin_op, _parameters_name, _factory_name)
This macro will generate a default implementation of a BatchLinOpFactory for the BatchLinOp subclass ...
Definition
batch_lin_op.hpp:358
GKO_ENABLE_BUILD_METHOD
#define GKO_ENABLE_BUILD_METHOD(_factory_name)
Defines a build method for the factory, simplifying its construction by removing the repetitive typin...
Definition
abstract_factory.hpp:394
gko
The Ginkgo namespace.
Definition
abstract_factory.hpp:20
gko::remove_complex
typename detail::remove_complex_s< T >::type remove_complex
Obtain the type which removed the complex of complex/scalar type or the template parameter of class b...
Definition
math.hpp:264
gko::batch::solver::Bicgstab::parameters_type
Definition
batch_bicgstab.hpp:64
gko::batch::solver::enable_preconditioned_iterative_solver_factory_parameters
Definition
batch_solver_base.hpp:154
ginkgo
core
solver
batch_bicgstab.hpp
Generated by
1.18.0