Ali,

I have a problem with imposing homogeneous Dirichlet boundary conditions for pressure in a vector-valued problem.

I have defined interpolate_ and apply_boundary_values as following  in the assembly routine:

std::map<types::global_dof_index, double> boundary_values;
VectorTools::interpolate_boundary_values(dof_handler,
                                                                      1,
BoundaryValues<dim>(), //copied from step-22 with slight modifications boundary_values, fe.component_mask(pressure));

  MatrixTools::apply_boundary_values(boundary_values, system_matrix, solution, system_rhs);

But it throws an exception (in line 261, matrix_tools.cc) stating:

 matrix.get_sparsity_pattern().get_column_indices() == solution.get_block_indices()
Additional information:
    You are providing a matrix whose subdivision into blocks in either row or column direction does not use the same block sizes as the solution vector or right hand side vectors, respectively.

Well, what is the subdivision of matrix and vector, and why are they different? How did you subdivide them?

Best
 W.

--
------------------------------------------------------------------------
Wolfgang Bangerth          email:                 bange...@colostate.edu
                           www: http://www.math.colostate.edu/~bangerth/

--
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
https://groups.google.com/d/forum/dealii?hl=en
--- You received this message because you are subscribed to the Google Groups "deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to dealii+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/dealii/9a97e1d5-4377-77ca-ec41-693d42af7ebb%40colostate.edu.

Reply via email to