16 #ifndef dealii__trilinos_block_vector_h 17 #define dealii__trilinos_block_vector_h 20 #include <deal.II/base/config.h> 22 #ifdef DEAL_II_WITH_TRILINOS 24 # include <deal.II/lac/trilinos_vector.h> 25 # include <deal.II/lac/trilinos_parallel_block_vector.h> 26 # include <deal.II/lac/block_indices.h> 27 # include <deal.II/lac/block_vector_base.h> 28 # include <deal.II/lac/exceptions.h> 30 DEAL_II_NAMESPACE_OPEN
86 typedef BaseClass::pointer pointer;
87 typedef BaseClass::const_pointer const_pointer;
88 typedef BaseClass::reference reference;
89 typedef BaseClass::const_reference const_reference;
90 typedef BaseClass::size_type size_type;
111 explicit BlockVector (
const std::vector<IndexSet> &partitioner,
131 explicit
BlockVector (const size_type num_blocks) DEAL_II_DEPRECATED;
139 explicit
BlockVector (const
std::vector<size_type> &N) DEAL_II_DEPRECATED;
149 template <typename InputIterator>
151 const InputIterator first,
152 const InputIterator
end) DEAL_II_DEPRECATED;
164 operator = (const value_type s);
188 template <typename Number>
204 void reinit (const
std::vector<Epetra_Map> &partitioning,
205 const
bool omit_zeroing_entries = false);
219 const MPI_Comm &communicator = MPI_COMM_WORLD,
220 const
bool omit_zeroing_entries = false);
230 void reinit (const
std::vector<size_type> &N,
231 const
bool omit_zeroing_entries=false);
254 const
bool omit_zeroing_entries = false);
262 void reinit (const size_type num_blocks);
285 const
unsigned int precision = 3,
286 const
bool scientific = true,
287 const
bool across = true) const;
304 << "For the generation of a localized vector the map has "
305 << "to assign all elements to all vectors! "
306 << "local_size = global_size is a necessary condition, but"
307 << arg1 << " != " << arg2 << " was given!");
333 const MPI_Comm &communicator)
335 reinit (partitioning, communicator);
348 template <
typename InputIterator>
350 const InputIterator first,
351 const InputIterator
end)
358 InputIterator start = first;
359 for (size_type b=0; b<n.size(); ++b)
361 InputIterator end = start;
362 std::advance (end, static_cast<size_type>(n[b]));
364 for (size_type i=0; i<n[b]; ++i, ++start)
365 this->
block(b)(i) = *start;
367 Assert (start == end, ExcIteratorRangeDoesNotMatchVectorSize());
402 for (size_type i=0; i<this->
n_blocks(); ++i)
414 for (
unsigned int row=0; row<
n_blocks(); ++row)
419 template <
typename Number>
425 std::vector<size_type> block_sizes (v.n_blocks(), 0);
431 for (size_type i=0; i<this->
n_blocks(); ++i)
464 template <
typename>
class ReinitHelper;
474 template <
typename Matrix>
476 void reinit_range_vector (
const Matrix &matrix,
478 bool omit_zeroing_entries)
480 v.
reinit(matrix.range_partitioner(), omit_zeroing_entries);
483 template <
typename Matrix>
485 void reinit_domain_vector(
const Matrix &matrix,
487 bool omit_zeroing_entries)
489 v.
reinit(matrix.domain_partitioner(), omit_zeroing_entries);
497 DEAL_II_NAMESPACE_CLOSE
499 #endif // DEAL_II_WITH_TRILINOS DeclException2(ExcNoSubscriber, char *, char *,<< "No subscriber with identifier <"<< arg2<< "> subscribes to this object of class "<< arg1<< ". Consequently, it cannot be unsubscribed.")
void swap(BlockVector &v)
void reinit(const std::vector< Epetra_Map > ¶llel_partitioning, const bool omit_zeroing_entries=false) DEAL_II_DEPRECATED
#define DEAL_II_DEPRECATED
BlockIndices block_indices
#define Assert(cond, exc)
void reinit(const unsigned int n_blocks, const size_type n_elements_per_block)
BaseClass::value_type value_type
BlockVector & operator=(const value_type s)
std::vector< Vector > components
virtual void swap(Vector< Number > &v)
void swap(BlockVector &u, BlockVector &v)
unsigned int n_blocks() const
void reinit(const std::vector< Epetra_Map > &partitioning, const bool omit_zeroing_entries=false)
BaseClass::BlockType BlockType
void swap(BlockVector &v)
BlockVectorBase< Vector > BaseClass
BlockType & block(const unsigned int i)
void print(std::ostream &out, const unsigned int precision=3, const bool scientific=true, const bool across=true) const
DeclException0(ExcIteratorRangeDoesNotMatchVectorSize)