deal.II version GIT relicensing-6816-g8d70a4508a 2026-09-28 16:30:01+00:00
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Loading...
Searching...
No Matches
sparsity_pattern_base.h
Go to the documentation of this file.
1// -----------------------------------------------------------------------------
2//
3// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception OR LGPL-2.1-or-later
4// Copyright (C) 2022 - 2026 by the deal.II authors
5//
6// This file is part of the deal.II library.
7//
8// Detailed license information governing the source code and contributions
9// can be found in LICENSE.md and CONTRIBUTING.md at the top level directory.
10//
11// -----------------------------------------------------------------------------
12
13#ifndef dealii_sparsity_pattern_base_h
14#define dealii_sparsity_pattern_base_h
15
16
17#include <deal.II/base/config.h>
18
22#include <deal.II/base/types.h>
23
24#include <utility>
25
27
38{
39public:
44
49
54
58 SparsityPatternBase(const SparsityPatternBase &sparsity_pattern) = default;
59
63 SparsityPatternBase(SparsityPatternBase &&sparsity_pattern) noexcept =
64 default;
65
70 operator=(const SparsityPatternBase &sparsity_pattern) = default;
71
76 operator=(SparsityPatternBase &&sparsity_pattern) noexcept = default;
77
83 n_rows() const;
84
90 n_cols() const;
91
106 virtual void
108 const ArrayView<const size_type> &columns,
109 const bool indices_are_sorted = false) = 0;
110
121 virtual void
122 add_entries(const ArrayView<const std::pair<size_type, size_type>> &entries);
123
124protected:
128 virtual void
130
135
140};
141
147/* ---------------------------- Inline functions ---------------------------- */
148
149#ifndef DOXYGEN
150
152 : rows(0)
153 , cols(0)
154{}
155
156
157
158inline SparsityPatternBase::SparsityPatternBase(const size_type rows,
159 const size_type cols)
160 : rows(rows)
161 , cols(cols)
162{}
163
164
165
168{
169 return rows;
170}
171
172
173
176{
177 return cols;
178}
179
180
181
182inline void
183SparsityPatternBase::resize(const size_type n_rows, const size_type n_cols)
184{
185 this->rows = n_rows;
186 this->cols = n_cols;
187}
188#endif
189
191
192#endif
SparsityPatternBase(SparsityPatternBase &&sparsity_pattern) noexcept=default
virtual void resize(const size_type rows, const size_type cols)
size_type n_rows() const
virtual void add_entries(const ArrayView< const std::pair< size_type, size_type > > &entries)
SparsityPatternBase & operator=(SparsityPatternBase &&sparsity_pattern) noexcept=default
SparsityPatternBase(const SparsityPatternBase &sparsity_pattern)=default
virtual void add_row_entries(const size_type &row, const ArrayView< const size_type > &columns, const bool indices_are_sorted=false)=0
SparsityPatternBase & operator=(const SparsityPatternBase &sparsity_pattern)=default
SparsityPatternBase(const size_type rows, const size_type cols)
size_type n_cols() const
#define DEAL_II_NAMESPACE_OPEN
Definition config.h:38
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:39
unsigned int global_dof_index
Definition types.h:92