16 #ifndef dealii_sparse_vanka_h 17 #define dealii_sparse_vanka_h 33 template <
typename number>
35 template <
typename number>
37 template <
typename number>
40 template <
typename number>
42 template <
typename number>
139 template <
typename number>
183 const bool conserve_memory =
false,
201 const bool conserve_memory =
false,
240 template <
typename number2>
242 vmult(Vector<number2> &dst,
const Vector<number2> &src)
const;
248 template <
typename number2>
250 Tvmult(Vector<number2> &dst,
const Vector<number2> &src)
const;
294 template <
typename number2>
297 const Vector<number2> & src,
298 const std::vector<bool> *
const dof_mask =
nullptr)
const;
381 template <
typename T>
520 template <
typename number>
552 const bool conserve_memory =
false,
558 template <
typename number2>
560 vmult(Vector<number2> &dst,
const Vector<number2> &src)
const;
590 const std::vector<bool> & selected,
599 template <
typename number>
607 template <
typename number>
615 template <
typename number>
616 template <
typename number2>
619 const Vector<number2> & )
const
void vmult(Vector< number2 > &dst, const Vector< number2 > &src) const
const unsigned int n_blocks
std::size_t memory_consumption() const
static ::ExceptionBase & ExcNotInitialized()
#define AssertThrow(cond, exc)
void initialize(const SparseMatrix< number > &M, const AdditionalData &additional_data)
std::vector< std::vector< bool > > dof_masks
friend class SparseBlockVanka
#define Assert(cond, exc)
const std::vector< bool > * selected
#define DEAL_II_NAMESPACE_CLOSE
VectorType::value_type * end(VectorType &V)
std::enable_if< IsBlockVector< VectorType >::value, unsigned int >::type n_blocks(const VectorType &vector)
AdditionalData(const std::vector< bool > &selected, const bool conserve_memory=false, const unsigned int n_threads=MultithreadInfo::n_threads())
const unsigned int n_threads
unsigned int global_dof_index
std::vector< SmartPointer< FullMatrix< float >, SparseVanka< number > > > inverses
#define DEAL_II_NAMESPACE_OPEN
VectorType::value_type * begin(VectorType &V)
void compute_inverse(const size_type row, std::vector< size_type > &local_indices)
static ::ExceptionBase & ExcNotImplemented()
static unsigned int n_threads()
SmartPointer< const SparseMatrix< number >, SparseVanka< number > > matrix
const std::vector< bool > & selected
void apply_preconditioner(Vector< number2 > &dst, const Vector< number2 > &src, const std::vector< bool > *const dof_mask=nullptr) const
void Tvmult(Vector< number2 > &dst, const Vector< number2 > &src) const