deal.II version GIT relicensing-6842-g793a97d2aa 2026-10-02 14:00: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
sparse_mic.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) 2002 - 2023 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_sparse_mic_h
14#define dealii_sparse_mic_h
15
16#include <deal.II/base/config.h>
17
20
22
42template <typename number>
43class SparseMIC : public SparseLUDecomposition<number>
44{
45public:
50
55 SparseMIC() = default;
56
60 virtual ~SparseMIC() override;
61
66 virtual void
67 clear() override;
68
74
92 template <typename somenumber>
93 void
95 const AdditionalData &parameters = AdditionalData());
96
103 template <typename somenumber>
104 void
106
115 template <typename somenumber>
116 void
118
123 std::size_t
124 memory_consumption() const override;
125
139 double,
140 << "The strengthening parameter " << arg1
141 << " is not greater or equal than zero!");
146 int,
147 double,
148 << "The diagonal element (" << arg1 << ',' << arg1 << ") is "
149 << arg2 << ", but must be positive");
150
152private:
156 std::vector<number> diag;
157
161 std::vector<number> inv_diag;
162
167 std::vector<number> inner_sums;
168
172 number
173 get_rowsum(const size_type row) const;
174};
175
179
180#endif // dealii_
std::vector< number > inv_diag
Definition sparse_mic.h:161
void initialize(const SparseMatrix< somenumber > &matrix, const AdditionalData &parameters=AdditionalData())
typename SparseLUDecomposition< number >::AdditionalData AdditionalData
Definition sparse_mic.h:73
void vmult(Vector< somenumber > &dst, const Vector< somenumber > &src) const
std::size_t memory_consumption() const override
virtual ~SparseMIC() override
std::vector< number > diag
Definition sparse_mic.h:156
SparseMIC()=default
virtual void clear() override
void Tvmult(Vector< somenumber > &dst, const Vector< somenumber > &src) const
number get_rowsum(const size_type row) const
std::vector< number > inner_sums
Definition sparse_mic.h:167
#define DEAL_II_NAMESPACE_OPEN
Definition config.h:38
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:39
#define DeclException0(Exception0)
#define DeclException2(Exception2, type1, type2, outsequence)
static ::ExceptionBase & ExcInvalidStrengthening(double arg1)
#define DeclException1(Exception1, type1, outsequence)
static ::ExceptionBase & ExcDecompositionNotStable(int arg1, double arg2)
static ::ExceptionBase & ExcStrengthenDiagonalTooSmall()
unsigned int global_dof_index
Definition types.h:92