InboxTags.hpp
1 // Distributed under the MIT License.
2 // See LICENSE.txt for details.
3 
4 #pragma once
5 
6 #include <cstddef>
7 #include <map>
8 #include <tuple>
9 
11 #include "NumericalAlgorithms/Convergence/HasConverged.hpp"
12 #include "Parallel/InboxInserters.hpp"
13 #include "Utilities/TMPL.hpp"
14 
15 namespace LinearSolver::gmres::detail::Tags {
16 
17 template <typename OptionsGroup>
18 struct InitialOrthogonalization
19  : Parallel::InboxInserters::Value<InitialOrthogonalization<OptionsGroup>> {
20  using temporal_id = size_t;
21  using type =
23 };
24 
25 template <typename OptionsGroup>
26 struct Orthogonalization
27  : Parallel::InboxInserters::Value<Orthogonalization<OptionsGroup>> {
28  using temporal_id = size_t;
29  using type = std::map<temporal_id, double>;
30 };
31 
32 template <typename OptionsGroup>
33 struct FinalOrthogonalization
34  : Parallel::InboxInserters::Value<FinalOrthogonalization<OptionsGroup>> {
35  using temporal_id = size_t;
38 };
39 
40 } // namespace LinearSolver::gmres::detail::Tags
Parallel::InboxInserters::Value
Inserter for data that is inserted by copy/move.
Definition: InboxInserters.hpp:86
DenseVector.hpp
tuple
Convergence::HasConverged
Signals convergence of the algorithm.
Definition: HasConverged.hpp:59
cstddef
map
TMPL.hpp