18 #ifdef DEAL_II_WITH_PETSC
37 std::vector<size_type> block_sizes(num_blocks, 0);
39 if (this->
components.size() != this->n_blocks())
42 for (
unsigned int i = 0; i < this->
n_blocks(); ++i)
54 PetscObjectTypeCompare(
reinterpret_cast<PetscObject
>(v),
62 ierr = VecNestGetSize(v, &nb);
64 for (PetscInt i = 0; i < nb; ++i)
67 ierr = VecNestGetSubVec(v, i, &vv);
78 std::vector<size_type> block_sizes(nb, 0);
82 for (
unsigned int i = 0; i < nb; ++i)
96 BlockVector::operator
const Vec &()
const
98 return petsc_nest_vector;
116 std::vector<Vec> pcomponents(n);
117 for (
unsigned int i = 0; i < n; i++)
121 pcomponents.size() > 0 ?
122 PetscObjectComm(
reinterpret_cast<PetscObject
>(pcomponents[0])) :
void reinit(const unsigned int n_blocks, const size_type n_elements_per_block)
unsigned int n_blocks() const
std::vector< Vector > components
BlockIndices block_indices
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
#define AssertThrow(cond, exc)
types::global_dof_index size_type
unsigned int global_dof_index