16 #ifndef dealii_sparse_vanka_h 17 #define dealii_sparse_vanka_h 21 #include <deal.II/base/config.h> 22 #include <deal.II/base/smartpointer.h> 23 #include <deal.II/base/multithread_info.h> 28 DEAL_II_NAMESPACE_OPEN
32 template <
typename number>
class Vector;
130 template <
typename number>
174 const bool conserve_memory =
false,
192 const bool conserve_memory =
false,
230 template <
typename number2>
231 void vmult (Vector<number2> &dst,
232 const Vector<number2> &src)
const;
238 template <
typename number2>
239 void Tvmult (Vector<number2> &dst,
240 const Vector<number2> &src)
const;
282 template <
typename number2>
284 const Vector<number2> &src,
285 const std::vector<bool> *
const dof_mask =
nullptr)
const;
353 std::vector<size_type> &local_indices);
505 template <
typename number>
537 const bool conserve_memory =
false,
543 template <
typename number2>
544 void vmult (Vector<number2> &dst,
545 const Vector<number2> &src)
const;
582 template <
typename number>
590 template <
typename number>
598 template <
typename number>
599 template <
typename number2>
602 const Vector<number2> &)
const 609 DEAL_II_NAMESPACE_CLOSE
types::global_dof_index size_type
void vmult(Vector< number2 > &dst, const Vector< number2 > &src) const
std::size_t memory_consumption() const
void vmult(Vector< number2 > &dst, const Vector< number2 > &src) const
const unsigned int n_blocks
types::global_dof_index size_type
SparseBlockVanka(const SparseMatrix< number > &M, const std::vector< bool > &selected, const unsigned int n_blocks, const BlockingStrategy blocking_strategy, const bool conserve_memory=false, const unsigned int n_threads=MultithreadInfo::n_threads())
std::size_t memory_consumption() const
std::vector< SmartPointer< FullMatrix< float >, SparseVanka< number > > > inverses
static ::ExceptionBase & ExcNotInitialized()
#define AssertThrow(cond, exc)
void initialize(const SparseMatrix< number > &M, const AdditionalData &additional_data)
std::vector< std::vector< bool > > dof_masks
void compute_dof_masks(const SparseMatrix< number > &M, const std::vector< bool > &selected, const BlockingStrategy blocking_strategy)
unsigned int global_dof_index
#define Assert(cond, exc)
const std::vector< bool > * selected
AdditionalData(const std::vector< bool > &selected, const bool conserve_memory=false, const unsigned int n_threads=MultithreadInfo::n_threads())
const unsigned int n_threads
void compute_inverse(const size_type row, std::vector< size_type > &local_indices)
static ::ExceptionBase & ExcNotImplemented()
static unsigned int n_threads()
const std::vector< bool > & selected
void apply_preconditioner(Vector< number2 > &dst, const Vector< number2 > &src, const std::vector< bool > *const dof_mask=nullptr) const
SmartPointer< const SparseMatrix< number >, SparseVanka< number > > matrix
void Tvmult(Vector< number2 > &dst, const Vector< number2 > &src) const