FEAT 3
Finite Element Analysis Toolbox
Loading...
Searching...
No Matches
none_filter.hpp
1// FEAT3: Finite Element Analysis Toolbox, Version 3
2// Copyright (C) 2010 by Stefan Turek & the FEAT group
3// FEAT3 is released under the GNU General Public License version 3,
4// see the file 'copyright.txt' in the top level directory for details.
5
6#pragma once
7
8// includes, FEAT
9#include <kernel/lafem/dense_vector.hpp>
10#include <kernel/lafem/dense_vector_blocked.hpp>
11
12namespace FEAT
13{
14 namespace LAFEM
15 {
25 template<
26 typename DataType_,
27 typename IndexType_ = Index>
29 {
30 public:
32 typedef DataType_ DataType;
34 typedef IndexType_ IndexType;
35
38
40 template <typename DT2_ = DataType_, typename IT2_ = IndexType_>
42
44 template <typename DataType2_, typename IndexType2_>
46
47 static constexpr bool is_global = false;
48 static constexpr bool is_local = true;
49
51 NoneFilter clone(CloneMode /*clone_mode*/ = CloneMode::Deep) const
52 {
53 return NoneFilter();
54 }
55
57 void clone(const NoneFilter & /*other*/, CloneMode /*clone_mode*/ = CloneMode::Deep)
58 {
59 // do nothing
60 }
61
62 template<typename DT2_, typename IT2_>
63 void convert(const NoneFilter<DT2_, IT2_>&)
64 {
65 }
66
68 std::size_t bytes() const
69 {
70 return 0;
71 }
72
79 void filter_rhs(VectorType& DOXY(vector)) const
80 {
81 }
82
89 void filter_sol(VectorType& DOXY(vector)) const
90 {
91 }
92
99 void filter_def(VectorType& DOXY(vector)) const
100 {
101 }
102
109 void filter_cor(VectorType& DOXY(vector)) const
110 {
111 }
112
119 template<typename MT_>
120 void filter_mat(MT_& DOXY(matrix)) const
121 {
122 }
123 }; // class NoneFilter<...>
124
134 template<
135 typename DataType_,
136 typename IndexType_,
137 int BlockSize_
138 >
140 {
141 public:
143 typedef DataType_ DataType;
145 typedef IndexType_ IndexType;
146
147 static constexpr int BlockSize = BlockSize_;
148
151
153 template <typename DT2_ = DataType_, typename IT2_ = IndexType_, int BS_ = BlockSize_>
155
157 template <typename DataType2_, typename IndexType2_, int BlockSize2_>
159
162 {
163 return NoneFilterBlocked();
164 }
165
167 void clone(const NoneFilterBlocked & /*other*/, CloneMode /*clone_mode*/ = CloneMode::Deep)
168 {
169 // do nothing
170 }
171
172 template<typename DT2_, typename IT2_>
174 {
175 }
176
178 std::size_t bytes() const
179 {
180 return 0;
181 }
182
189 void filter_rhs(VectorType& DOXY(vector)) const
190 {
191 }
192
199 void filter_sol(VectorType& DOXY(vector)) const
200 {
201 }
202
209 void filter_def(VectorType& DOXY(vector)) const
210 {
211 }
212
219 void filter_cor(VectorType& DOXY(vector)) const
220 {
221 }
222
229 template<typename MT_>
230 void filter_mat(MT_& DOXY(matrix)) const
231 {
232 }
233 }; // class NoneFilterBlocked<...>
234 } // namespace LAFEM
235} // namespace FEAT
Blocked Dense data vector class template.
Dense data vector class template.
Blocked None Filter class template.
void filter_sol(VectorType &vector) const
Applies the filter onto the solution vector.
void filter_rhs(VectorType &vector) const
Applies the filter onto the right-hand-side vector.
void filter_mat(MT_ &matrix) const
Applies the filter onto a system matrix.
NoneFilterBlocked clone(CloneMode=CloneMode::Deep) const
Creates a (empty) clone of itself.
DataType_ DataType
data-type typedef
void filter_def(VectorType &vector) const
Applies the filter onto a defect vector.
void filter_cor(VectorType &vector) const
Applies the filter onto a correction vector.
std::size_t bytes() const
Returns the total amount of bytes allocated.
IndexType_ IndexType
index-type typedef
DenseVectorBlocked< DataType, IndexType, BlockSize > VectorType
our supported vector type
void clone(const NoneFilterBlocked &, CloneMode=CloneMode::Deep)
Clones data from another NoneFilterBlocked.
None Filter class template.
Definition: none_filter.hpp:29
void filter_rhs(VectorType &vector) const
Applies the filter onto the right-hand-side vector.
Definition: none_filter.hpp:79
DataType_ DataType
data-type typedef
Definition: none_filter.hpp:32
void filter_sol(VectorType &vector) const
Applies the filter onto the solution vector.
Definition: none_filter.hpp:89
void filter_mat(MT_ &matrix) const
Applies the filter onto a system matrix.
NoneFilter clone(CloneMode=CloneMode::Deep) const
Creates a (empty) clone of itself.
Definition: none_filter.hpp:51
IndexType_ IndexType
index-type typedef
Definition: none_filter.hpp:34
DenseVector< DataType, IndexType > VectorType
our supported vector type
Definition: none_filter.hpp:37
void clone(const NoneFilter &, CloneMode=CloneMode::Deep)
Clones data from another NoneFilter.
Definition: none_filter.hpp:57
void filter_def(VectorType &vector) const
Applies the filter onto a defect vector.
Definition: none_filter.hpp:99
void filter_cor(VectorType &vector) const
Applies the filter onto a correction vector.
std::size_t bytes() const
Returns the total amount of bytes allocated.
Definition: none_filter.hpp:68
FEAT namespace.
Definition: adjactor.hpp:12
std::uint64_t Index
Index data type.