Reference documentation for deal.II version 9.1.1
\(\newcommand{\dealcoloneq}{\mathrel{\vcenter{:}}=}\)
source
lac
petsc_parallel_block_vector.cc
1
// ---------------------------------------------------------------------
2
//
3
// Copyright (C) 2004 - 2018 by the deal.II authors
4
//
5
// This file is part of the deal.II library.
6
//
7
// The deal.II library is free software; you can use it, redistribute
8
// it, and/or modify it under the terms of the GNU Lesser General
9
// Public License as published by the Free Software Foundation; either
10
// version 2.1 of the License, or (at your option) any later version.
11
// The full text of the license can be found in the file LICENSE.md at
12
// the top level directory of deal.II.
13
//
14
// ---------------------------------------------------------------------
15
16
#include <deal.II/lac/petsc_block_vector.h>
17
18
#ifdef DEAL_II_WITH_PETSC
19
20
DEAL_II_NAMESPACE_OPEN
21
22
namespace
PETScWrappers
23
{
24
namespace
MPI
25
{
26
using
size_type =
types::global_dof_index
;
27
28
void
29
BlockVector::reinit
(
const
unsigned
int
num_blocks)
30
{
31
std::vector<size_type> block_sizes(num_blocks, 0);
32
this->
block_indices
.
reinit
(block_sizes);
33
if
(this->
components
.size() != this->
n_blocks
())
34
this->
components
.resize(this->n_blocks());
35
36
for
(
unsigned
int
i = 0; i < this->
n_blocks
(); ++i)
37
components
[i].
reinit
(MPI_COMM_SELF, 0, 0);
38
39
collect_sizes
();
40
}
41
}
// namespace MPI
42
43
}
// namespace PETScWrappers
44
45
DEAL_II_NAMESPACE_CLOSE
46
47
#endif // DEAL_II_WITH_PETSC
PETScWrappers::MPI::BlockVector::reinit
void reinit(const unsigned int n_blocks, const MPI_Comm &communicator, const size_type block_size, const size_type local_size, const bool omit_zeroing_entries=false)
Definition:
petsc_block_vector.h:366
PETScWrappers
Definition:
la_parallel_block_vector.h:37
BlockVectorBase< Vector >::collect_sizes
void collect_sizes()
BlockVectorBase< Vector >::components
std::vector< Vector > components
Definition:
block_vector_base.h:966
types::global_dof_index
unsigned int global_dof_index
Definition:
types.h:89
BlockVectorBase< Vector >::n_blocks
unsigned int n_blocks() const
BlockVectorBase< Vector >::block_indices
BlockIndices block_indices
Definition:
block_vector_base.h:972
BlockIndices::reinit
void reinit(const unsigned int n_blocks, const size_type n_elements_per_block)
Definition:
block_indices.h:260
Generated by
1.8.16