16 #ifndef dealii_diagonal_matrix_h 17 #define dealii_diagonal_matrix_h 20 #include <deal.II/lac/vector.h> 21 #include <deal.II/lac/vector_operation.h> 23 DEAL_II_NAMESPACE_OPEN
46 template <
typename VectorType=Vector<
double> >
50 typedef typename VectorType::value_type value_type;
51 typedef typename VectorType::size_type size_type;
62 void reinit (
const VectorType &vec);
109 const size_type j)
const;
134 template <
typename number2>
135 void add (
const size_type row,
136 const size_type n_cols,
137 const size_type *col_indices,
138 const number2 *values,
139 const bool elide_zero_values =
true,
140 const bool col_indices_are_sorted =
false);
148 void add (
const size_type i,
150 const value_type value);
155 void vmult (VectorType &dst,
156 const VectorType &src)
const;
163 void Tvmult (VectorType &dst,
164 const VectorType &src)
const;
172 const VectorType &src)
const;
180 const VectorType &src)
const;
207 template <
typename VectorType>
216 template <
typename VectorType>
220 return diagonal.memory_consumption();
225 template <
typename VectorType>
234 template <
typename VectorType>
238 dst.reinit(diagonal);
243 template <
typename VectorType>
252 template <
typename VectorType>
261 template <
typename VectorType>
270 template <
typename VectorType>
271 typename VectorType::size_type
279 template <
typename VectorType>
280 typename VectorType::size_type
288 template <
typename VectorType>
289 typename VectorType::value_type
291 const size_type j)
const 300 template <
typename VectorType>
301 typename VectorType::value_type &
312 template <
typename VectorType>
313 template <
typename number2>
316 const size_type n_cols,
317 const size_type *col_indices,
318 const number2 *values,
322 for (size_type i=0; i<n_cols; ++i)
323 if (col_indices[i] == row)
329 template <
typename VectorType>
333 const value_type value)
341 template <
typename VectorType>
344 const VectorType &src)
const 352 template <
typename VectorType>
355 const VectorType &src)
const 362 template <
typename VectorType>
365 const VectorType &src)
const 374 template <
typename VectorType>
377 const VectorType &src)
const 385 DEAL_II_NAMESPACE_CLOSE
std::size_t memory_consumption() const
VectorType & get_vector()
void Tvmult(VectorType &dst, const VectorType &src) const
void compress(VectorOperation::values operation)
static ::ExceptionBase & ExcIndexRange(int arg1, int arg2, int arg3)
value_type operator()(const size_type i, const size_type j) const
void add(const size_type row, const size_type n_cols, const size_type *col_indices, const number2 *values, const bool elide_zero_values=true, const bool col_indices_are_sorted=false)
void vmult(VectorType &dst, const VectorType &src) const
#define Assert(cond, exc)
void initialize_dof_vector(VectorType &dst) const
void reinit(const VectorType &vec)
void vmult_add(VectorType &dst, const VectorType &src) const
void Tvmult_add(VectorType &dst, const VectorType &src) const