17 #ifndef __deal2__matrix_lib_templates_h
18 #define __deal2__matrix_lib_templates_h
20 #include <deal.II/lac/matrix_lib.h>
21 #include <deal.II/lac/vector.h>
22 #include <deal.II/lac/block_vector.h>
24 DEAL_II_NAMESPACE_OPEN
26 template <
typename number>
38 template <
typename number>
49 dst(i) = src(i) - mean;
54 template <
typename number>
65 dst(i) += src(i) - mean;
70 template <
typename number>
77 for (
unsigned int i=0; i<v.
n_blocks(); ++i)
86 template <
typename number>
97 for (
unsigned int i=0; i<dst.
n_blocks(); ++i)
106 template <
typename number>
117 for (
unsigned int i=0; i<dst.
n_blocks(); ++i)
128 template <
class VECTOR>
140 template <
class VECTOR>
143 if (matrix != 0)
delete matrix;
144 if (precondition != 0)
delete precondition;
148 template <
class VECTOR>
157 solver.solve(*matrix, dst, src, *precondition);
165 template <
class VECTOR>
171 VECTOR *aux = mem.alloc();
175 solver.solve(*matrix, *aux, src, *precondition);
185 template <
class VECTOR>
194 solver.Tsolve(*matrix, dst, src, *precondition);
202 template <
class VECTOR>
208 VECTOR *aux = mem.alloc();
212 solver.Tsolve(*matrix, *aux, src, *precondition);
223 DEAL_II_NAMESPACE_CLOSE
void vmult(VECTOR &, const VECTOR &) const
static const unsigned int invalid_unsigned_int
void vmult(Vector< number > &dst, const Vector< number > &src) const
void filter(Vector< number > &v) const
Number mean_value() const
#define Assert(cond, exc)
void Tvmult_add(VECTOR &, const VECTOR &) const
~InverseMatrixRichardson()
BlockType & block(const unsigned int i)
unsigned int n_blocks() const
InverseMatrixRichardson(SolverControl &control, VectorMemory< VECTOR > &mem)
types::global_dof_index size_type
void vmult_add(VECTOR &, const VECTOR &) const
::ExceptionBase & ExcNotInitialized()
::ExceptionBase & ExcDimensionMismatch(std::size_t arg1, std::size_t arg2)
void vmult_add(Vector< number > &dst, const Vector< number > &src) const
void Tvmult(VECTOR &, const VECTOR &) const