DUNE ISTL (2.10)

pinfo.hh
1// SPDX-FileCopyrightText: Copyright © DUNE Project contributors, see file LICENSE.md in module root
2// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception
3// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
4// vi: set et ts=4 sw=2 sts=2:
5#ifndef DUNE_AMG_PINFO_HH
6#define DUNE_AMG_PINFO_HH
7
8#include <dune/common/parallel/communication.hh>
9#include <dune/common/enumset.hh>
10
11#if HAVE_MPI
12
13#include <dune/common/parallel/mpicommunication.hh>
14#include <dune/common/parallel/mpitraits.hh>
15#include <dune/common/parallel/remoteindices.hh>
16#include <dune/common/parallel/interface.hh>
17#include <dune/common/parallel/communicator.hh>
18
19#endif
20
21#include <dune/istl/solvercategory.hh>
22namespace Dune
23{
24 namespace Amg
25 {
26
27 class SequentialInformation
28 {
29 public:
30 typedef Communication<void*> MPICommunicator;
31 typedef EmptySet<int> CopyFlags;
32 typedef AllSet<int> OwnerSet;
33
34 SolverCategory::Category category () const {
36 }
37
38 MPICommunicator communicator() const
39 {
40 return comm_;
41 }
42
43 int procs() const
44 {
45 return 1;
46 }
47
48 template<typename T>
49 T globalSum(const T& t) const
50 {
51 return t;
52 }
53
54 typedef int GlobalLookupIndexSet;
55
56 void buildGlobalLookup(std::size_t){}
57
58 void freeGlobalLookup(){}
59
60 const GlobalLookupIndexSet& globalLookup() const
61 {
62 return gli;
63 }
64
65 template<class V>
66 void copyOwnerToAll([[maybe_unused]] V& v, [[maybe_unused]] V& v1) const
67 {}
68
69 template<class V>
70 void project([[maybe_unused]] V& v) const
71 {}
72
73 template<class T1, class T2>
74 void dot (const T1& x, const T1& y, T2& result) const
75 {
76 result = x.dot(y);
77 }
78
79 template<class T1>
80 typename FieldTraits<typename T1::field_type>::real_type norm (const T1& x) const
81 {
82 return x.two_norm();
83 }
84
85 template<class T>
86 SequentialInformation(const Communication<T>&)
87 {}
88
89 SequentialInformation()
90 {}
91
92 SequentialInformation(const SequentialInformation&)
93 {}
94 private:
95 MPICommunicator comm_{};
96 GlobalLookupIndexSet gli{};
97 };
98
99
100 } // namespace Amg
101} //namespace Dune
102#endif
Category
Definition: solvercategory.hh:23
@ sequential
Category for sequential solvers.
Definition: solvercategory.hh:25
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden & Uni Heidelberg  |  generated with Hugo v0.111.3 (May 27, 22:36, 2026)