16#ifndef dealii_sparse_decomposition_h
17#define dealii_sparse_decomposition_h
105template <
typename number>
209 template <
typename somenumber>
243 template <
class OutVector,
class InVector>
254 template <
class OutVector,
class InVector>
275 <<
"The strengthening parameter " << arg1
276 <<
" is not greater or equal than zero!");
283 template <
typename somenumber>
344template <
typename number>
348 const size_type )
const
350 return strengthen_diagonal;
355template <
typename number>
363template <
typename number>
371template <
typename number>
382template <
typename number>
383template <
class OutVector,
class InVector>
386 const InVector &src)
const
390 this->vmult(tmp, src);
398template <
typename number>
399template <
class OutVector,
class InVector>
402 const InVector &src)
const
406 this->Tvmult(tmp, src);
413template <
typename number>
415 const double strengthen_diag,
416 const unsigned int extra_off_diag,
417 const bool use_prev_sparsity,
419 : strengthen_diagonal(strengthen_diag)
420 , extra_off_diagonals(extra_off_diag)
421 , use_previous_sparsity(use_prev_sparsity)
422 , use_this_sparsity(use_this_spars)
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
unsigned int extra_off_diagonals
virtual number get_strengthen_diagonal(const number rowsum, const size_type row) const
virtual void strengthen_diagonal_impl()
double strengthen_diagonal
static ::ExceptionBase & ExcInvalidStrengthening(double arg1)
void copy_from(const SparseMatrix< somenumber > &matrix)
std::vector< const size_type * > prebuilt_lower_bound
AdditionalData(const double strengthen_diagonal=0, const unsigned int extra_off_diagonals=0, const bool use_previous_sparsity=false, const SparsityPattern *use_this_sparsity=nullptr)
void prebuild_lower_bound()
#define DeclException1(Exception1, type1, outsequence)
SparsityPattern * own_sparsity
double strengthen_diagonal
bool use_previous_sparsity
const SparsityPattern * use_this_sparsity
void Tvmult_add(OutVector &dst, const InVector &src) const
typename SparseMatrix< number >::size_type size_type
virtual ~SparseLUDecomposition() override=0
void vmult_add(OutVector &dst, const InVector &src) const
virtual std::size_t memory_consumption() const
virtual void clear() override
void initialize(const SparseMatrix< somenumber > &matrix, const AdditionalData parameters)