16#ifndef dealii_sparse_vanka_h
17#define dealii_sparse_vanka_h
33template <
typename number>
35template <
typename number>
37template <
typename number>
40template <
typename number>
42template <
typename number>
136template <
typename number>
162 const bool conserve_memory,
203 const bool conserve_memory,
231 template <
typename number2>
239 template <
typename number2>
285 template <
typename number2>
289 const std::vector<bool> *
const dof_mask =
nullptr)
const;
361 template <
typename T>
498template <
typename number>
534 const bool conserve_memory,
548 template <
typename number2>
589template <
typename number>
597template <
typename number>
605template <
typename number>
606template <
typename number2>
static unsigned int n_threads()
#define DEAL_II_DEPRECATED
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
static ::ExceptionBase & ExcNotImplemented()
#define Assert(cond, exc)
static ::ExceptionBase & ExcNotInitialized()
#define AssertThrow(cond, exc)
SparseVanka(const SparseMatrix< number > &M, const std::vector< bool > &selected, const bool conserve_memory, const unsigned int n_threads=MultithreadInfo::n_threads())
SmartPointer< const SparseMatrix< number >, SparseVanka< number > > matrix
std::vector< SmartPointer< FullMatrix< float >, SparseVanka< number > > > inverses
std::size_t memory_consumption() const
void compute_inverse(const size_type row, std::vector< size_type > &local_indices)
AdditionalData(const std::vector< bool > &selected)
void compute_inverses(const size_type begin, const size_type end)
AdditionalData(const std::vector< bool > &selected, const bool conserve_memory, const unsigned int n_threads=MultithreadInfo::n_threads())
void initialize(const SparseMatrix< number > &M, const AdditionalData &additional_data)
void compute_dof_masks(const SparseMatrix< number > &M, const std::vector< bool > &selected, const BlockingStrategy blocking_strategy)
void Tvmult(Vector< number2 > &dst, const Vector< number2 > &src) const
void vmult(Vector< number2 > &dst, const Vector< number2 > &src) const
std::size_t memory_consumption() const
SparseBlockVanka(const SparseMatrix< number > &M, const std::vector< bool > &selected, const unsigned int n_blocks, const BlockingStrategy blocking_strategy)
const std::vector< bool > * selected
SparseBlockVanka(const SparseMatrix< number > &M, const std::vector< bool > &selected, const unsigned int n_blocks, const BlockingStrategy blocking_strategy, const bool conserve_memory, const unsigned int n_threads=MultithreadInfo::n_threads())
void vmult(Vector< number2 > &dst, const Vector< number2 > &src) const
SparseVanka(const SparseMatrix< number > &M, const std::vector< bool > &selected)
void apply_preconditioner(Vector< number2 > &dst, const Vector< number2 > &src, const std::vector< bool > *const dof_mask=nullptr) const
std::vector< std::vector< bool > > dof_masks
const std::vector< bool > & selected
const unsigned int n_blocks
VectorType::value_type * end(VectorType &V)
VectorType::value_type * begin(VectorType &V)
unsigned int global_dof_index