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>
101 static constexpr
unsigned int communication_block_size = 20;
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,
177 const MPI_Comm communicator);
182 BlockVector(
const std::vector<IndexSet> &local_ranges,
183 const MPI_Comm communicator);
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);
344 update_ghost_values()
const;
355 zero_out_ghosts()
const;
361 has_ghost_elements()
const;
367 template <
typename OtherNumber>
369 add(
const std::vector<size_type> & indices,
370 const ::Vector<OtherNumber> &values);
385 all_zero()
const override;
391 mean_value()
const override;
432 const bool omit_zeroing_entries =
false)
override;
438 operator*=(
const Number factor)
override;
444 operator/=(
const Number factor)
override;
470 std::shared_ptr<const CommunicationPatternBase> communication_pattern =
471 std::shared_ptr<const CommunicationPatternBase>())
override;
495 template <
typename FullMatrixType>
497 multivector_inner_product(FullMatrixType &
matrix,
517 template <
typename FullMatrixType>
519 multivector_inner_product_with_metric(
const FullMatrixType &
matrix,
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;
662 locally_owned_elements()
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 reinit(MatrixBlock< MatrixType > &v, const BlockSparsityPattern &p)
typename BaseClass::BlockType BlockType
Contents is actually a matrix.
types::global_dof_index size_type
std::vector< value_type > l2_norm(const typename ::Triangulation< dim, spacedim >::cell_iterator &parent, const value_type parent_value)
typename BaseClass::reference reference
typename BaseClass::const_reference const_reference
__global__ void add_and_dot(Number *res, Number *v1, const Number *v2, const Number *v3, const Number a, const size_type N)
typename BaseClass::const_iterator const_iterator
typename BaseClass::value_type value_type
void swap(BlockVector &u, BlockVector &v)
std::string compress(const std::string &input)
BlockVector< double > BlockVector
Number linfty_norm(const Tensor< 2, dim, Number > &t)
#define DeclException0(Exception0)
#define DEAL_II_NAMESPACE_CLOSE
void swap(BlockVector< Number > &v)
__global__ void equ(Number *val, const Number a, const Number *V_val, const size_type N)
__global__ void sadd(const Number s, Number *val, const Number a, const Number *V_val, const size_type N)
SymmetricTensor< 2, dim, Number > b(const Tensor< 2, dim, Number > &F)
Vector< Number > BlockType
typename BaseClass::real_type real_type
typename BaseClass::pointer pointer
typename BlockType::value_type value_type
#define DEAL_II_NAMESPACE_OPEN
typename BlockType::real_type real_type
Number l1_norm(const Tensor< 2, dim, Number > &t)
typename BaseClass::size_type size_type
typename BlockType::const_reference const_reference
typename BaseClass::iterator iterator
std::enable_if< std::is_floating_point< T >::value &&std::is_floating_point< U >::value, typename ProductType< std::complex< T >, std::complex< U > >::type >::type operator*(const std::complex< T > &left, const std::complex< U > &right)
typename BaseClass::const_pointer const_pointer
typename BlockType::reference reference
std::enable_if< std::is_fundamental< T >::value, std::size_t >::type memory_consumption(const T &t)
const value_type * const_pointer