dune-assembler 2.12
Loading...
Searching...
No Matches
istlvectorbackend.hh
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright © DUNE Project contributors, see file AUTHORS.md
2// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception OR LGPL-3.0-or-later
3
4#ifndef DUNE_ASSEMBLER_BACKENDS_ISTLVECTORBACKEND_HH
5#define DUNE_ASSEMBLER_BACKENDS_ISTLVECTORBACKEND_HH
6
9
10namespace Dune::Assembler {
11
12template <class Vector>
14 : public Dune::Functions::Impl::ISTLVectorBackend<Vector>
15{
16 using Base = Dune::Functions::Impl::ISTLVectorBackend<Vector>;
17
18public:
19 using value_type = typename Vector::field_type;
21
22public:
23 ISTLVectorBackend (Vector& vector)
24 : Base(vector)
25 {}
26
27 template <class LocalView>
28 void scatter (const LocalView& localView, const LocalVector& localVector)
29 {
30 for (std::size_t i = 0; i < localView.size(); ++i)
31 (*this)[localView.index(i)] += localVector[i];
32 }
33
34 void setZero ()
35 {
36 Base::operator= (0);
37 }
38
39 using Base::operator=;
40};
41
42} // end namespace Dune::Assembler
43
44#endif // DUNE_ASSEMBLER_BACKENDS_ISTLVECTORBACKEND_HH
Definition localboundaryintersectionmatrixassembler.hh:9
Definition istlvectorbackend.hh:15
typename Vector::field_type value_type
Definition istlvectorbackend.hh:19
void scatter(const LocalView &localView, const LocalVector &localVector)
Definition istlvectorbackend.hh:28
ISTLVectorBackend(Vector &vector)
Definition istlvectorbackend.hh:23
void setZero()
Definition istlvectorbackend.hh:34