13#ifndef dealii_relaxation_block_h
14#define dealii_relaxation_block_h
51 typename InverseNumberType =
typename MatrixType::value_type,
59 using number =
typename MatrixType::value_type;
169 std::vector<std::vector<unsigned int>>
order;
237 const VectorType &
prev,
238 const VectorType &src,
239 const bool backward)
const;
280template <
typename MatrixType,
281 typename InverseNumberType =
typename MatrixType::value_type,
296 using number =
typename MatrixType::value_type;
339 step(VectorType &dst,
const VectorType &rhs)
const;
345 Tstep(VectorType &dst,
const VectorType &rhs)
const;
352 vmult(VectorType &dst,
const VectorType &rhs)
const;
359 Tvmult(VectorType &dst,
const VectorType &rhs)
const;
376template <
typename MatrixType,
377 typename InverseNumberType =
typename MatrixType::value_type,
392 using number =
typename MatrixType::value_type;
435 step(VectorType &dst,
const VectorType &rhs)
const;
441 Tstep(VectorType &dst,
const VectorType &rhs)
const;
448 vmult(VectorType &dst,
const VectorType &rhs)
const;
455 Tvmult(VectorType &dst,
const VectorType &rhs)
const;
472template <
typename MatrixType,
473 typename InverseNumberType =
typename MatrixType::value_type,
483 using number =
typename MatrixType::value_type;
526 step(VectorType &dst,
const VectorType &rhs)
const;
532 Tstep(VectorType &dst,
const VectorType &rhs)
const;
539 vmult(VectorType &dst,
const VectorType &rhs)
const;
546 Tvmult(VectorType &dst,
const VectorType &rhs)
const;
void log_statistics() const
FullMatrix< number > & inverse(const size_type i)
LAPACKFullMatrix< number > & inverse_svd(const size_type i)
unsigned int size() const
Householder< number > & inverse_householder(const size_type i)
void Tstep(VectorType &dst, const VectorType &rhs) const
void Tvmult(VectorType &dst, const VectorType &rhs) const
void vmult(VectorType &dst, const VectorType &rhs) const
void step(VectorType &dst, const VectorType &rhs) const
typename MatrixType::value_type number
void Tvmult(VectorType &dst, const VectorType &rhs) const
void step(VectorType &dst, const VectorType &rhs) const
void vmult(VectorType &dst, const VectorType &rhs) const
typename MatrixType::value_type number
void Tstep(VectorType &dst, const VectorType &rhs) const
void Tstep(VectorType &dst, const VectorType &rhs) const
void Tvmult(VectorType &dst, const VectorType &rhs) const
typename MatrixType::value_type number
void step(VectorType &dst, const VectorType &rhs) const
void vmult(VectorType &dst, const VectorType &rhs) const
AdditionalData(const double relaxation=1., const bool invert_diagonal=true, const bool same_diagonal=false, const typename PreconditionBlockBase< InverseNumberType >::Inversion inversion=PreconditionBlockBase< InverseNumberType >::gauss_jordan, const double threshold=0., VectorType *temp_ghost_vector=nullptr)
PreconditionBlockBase< InverseNumberType >::Inversion inversion
SparsityPattern block_list
std::size_t memory_consumption() const
VectorType * temp_ghost_vector
std::vector< std::vector< unsigned int > > order
ObserverPointer< const AdditionalData, RelaxationBlock< MatrixType, InverseNumberType, VectorType > > additional_data
void initialize(const MatrixType &A, const AdditionalData ¶meters)
void block_kernel(const size_type block_begin, const size_type block_end)
ObserverPointer< const MatrixType, RelaxationBlock< MatrixType, InverseNumberType, VectorType > > A
void do_step(VectorType &dst, const VectorType &prev, const VectorType &src, const bool backward) const
typename MatrixType::value_type number
InverseNumberType value_type
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
Tpetra::Vector< Number, LO, GO, NodeType< MemorySpace > > VectorType
Tpetra::CrsMatrix< Number, LO, GO, NodeType< MemorySpace > > MatrixType
unsigned int global_dof_index
void prev(std::tuple< I1, I2 > &t)