|
Reference documentation for deal.II version 9.2.0
|
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\)
\(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\)
\(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\)
\(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Go to the documentation of this file.
16 #ifndef dealii_la_parallel_block_vector_h
17 #define dealii_la_parallel_block_vector_h
38 # ifdef DEAL_II_WITH_PETSC
48 # ifdef DEAL_II_WITH_TRILINOS
84 template <
typename Number>
162 template <
typename OtherNumber>
169 BlockVector(
const std::vector<size_type> &block_sizes);
175 BlockVector(
const std::vector<IndexSet> &local_ranges,
176 const std::vector<IndexSet> &ghost_indices,
182 BlockVector(
const std::vector<IndexSet> &local_ranges,
213 template <
class Number2>
223 #ifdef DEAL_II_WITH_PETSC
235 #ifdef DEAL_II_WITH_TRILINOS
264 const bool omit_zeroing_entries =
false);
286 reinit(
const std::vector<size_type> &
N,
287 const bool omit_zeroing_entries =
false);
303 template <
typename Number2>
306 const bool omit_zeroing_entries =
false);
367 template <
typename OtherNumber>
369 add(
const std::vector<size_type> & indices,
370 const ::Vector<OtherNumber> &values);
432 const bool omit_zeroing_entries =
false)
override;
470 std::shared_ptr<const CommunicationPatternBase> communication_pattern =
471 std::shared_ptr<const CommunicationPatternBase>())
override;
495 template <
typename FullMatrixType>
517 template <
typename FullMatrixType>
532 template <
typename FullMatrixType>
535 const FullMatrixType &
matrix,
536 const Number s = Number(0.),
537 const Number
b = Number(1.))
const;
543 add(
const Number a)
override;
565 add(
const std::vector<size_type> &indices,
566 const std::vector<Number> & values);
648 size()
const override;
668 print(std::ostream & out,
669 const unsigned int precision = 3,
670 const bool scientific =
true,
671 const bool across =
true)
const override;
714 template <
typename Number>
729 template <
typename Number>
738 # include <deal.II/lac/la_parallel_block_vector.templates.h>
void multivector_inner_product(FullMatrixType &matrix, const BlockVector< Number > &V, const bool symmetric=false) const
typename BaseClass::BlockType BlockType
typename BlockType::value_type value_type
void update_ghost_values() const
typename BaseClass::const_reference const_reference
virtual Number add_and_dot(const Number a, const VectorSpaceVector< Number > &V, const VectorSpaceVector< Number > &W) override
virtual ::IndexSet locally_owned_elements() const override
virtual BlockVector< Number > & operator-=(const VectorSpaceVector< Number > &V) override
Number multivector_inner_product_with_metric(const FullMatrixType &matrix, const BlockVector< Number > &V, const bool symmetric=false) const
typename BaseClass::iterator iterator
typename BaseClass::reference reference
virtual Number operator*(const VectorSpaceVector< Number > &V) const override
virtual real_type l2_norm() const override
void zero_out_ghosts() const
typename BlockType::reference reference
virtual void scale(const VectorSpaceVector< Number > &scaling_factors) override
typename BlockType::const_reference const_reference
BlockVector< double > BlockVector
@ symmetric
Matrix is symmetric.
void reinit(const size_type num_blocks, const size_type block_size=0, const bool omit_zeroing_entries=false)
virtual std::size_t memory_consumption() const override
virtual real_type linfty_norm() const override
virtual BlockVector< Number > & operator*=(const Number factor) override
#define DEAL_II_NAMESPACE_OPEN
SymmetricTensor< 2, dim, Number > b(const Tensor< 2, dim, Number > &F)
@ matrix
Contents is actually a matrix.
virtual BlockVector< Number > & operator/=(const Number factor) override
typename BaseClass::const_pointer const_pointer
typename BaseClass::value_type value_type
static ::ExceptionBase & ExcVectorTypeNotCompatible()
void swap(BlockIndices &u, BlockIndices &v)
Vector< Number > BlockType
virtual void equ(const Number a, const VectorSpaceVector< Number > &V) override
void sadd(const Number s, const BlockVector< Number > &V)
const value_type * const_pointer
types::global_dof_index size_type
void swap(BlockVector< Number > &v)
typename BlockType::real_type real_type
typename BaseClass::real_type real_type
::internal::BlockVectorIterators::Iterator< BlockVectorBase, true > const_iterator
static constexpr unsigned int communication_block_size
virtual BlockVector & operator=(const value_type s) override
void mmult(BlockVector< Number > &V, const FullMatrixType &matrix, const Number s=Number(0.), const Number b=Number(1.)) const
::internal::BlockVectorIterators::Iterator< BlockVectorBase, false > iterator
typename BaseClass::size_type size_type
virtual bool all_zero() const override
#define DeclException0(Exception0)
static ::ExceptionBase & ExcIteratorRangeDoesNotMatchVectorSize()
virtual void compress(::VectorOperation::values operation) override
typename BaseClass::pointer pointer
void add(const std::vector< size_type > &indices, const ::Vector< OtherNumber > &values)
virtual real_type l1_norm() const override
virtual BlockVector< Number > & operator+=(const VectorSpaceVector< Number > &V) override
real_type lp_norm(const real_type p) const
#define DEAL_II_NAMESPACE_CLOSE
BlockVector(const size_type num_blocks=0, const size_type block_size=0)
typename BaseClass::const_iterator const_iterator
bool has_ghost_elements() const
virtual size_type size() const override
real_type norm_sqr() const
virtual void print(std::ostream &out, const unsigned int precision=3, const bool scientific=true, const bool across=true) const override
virtual ~BlockVector() override=default
virtual Number mean_value() const override