const bool check_right_vertex = ((boundary_indicators.size() == 0) ||
(boundary_indicators.find(1) !=
boundary_indicators.end()));
+
+ // see whether we have to check
+ // whether a certain vector
+ // component is selected, or all
+ const bool check_vector_component
+ = (component_select != std::vector<bool>(component_select.size(),
+ true));
// loop over coarse grid cells
for (DoFHandler<1>::cell_iterator cell=dof_handler.begin(0);
if (check_left_vertex)
if (cell->neighbor(0) == dof_handler.end())
for (unsigned int i=0; i<dof_handler.get_fe().dofs_per_face; ++i)
- if (component_select[dof_handler.get_fe().
- face_system_to_component_index(i).first] == true)
+ if (!check_vector_component
+ ||
+ (component_select[dof_handler.get_fe().
+ face_system_to_component_index(i).first] == true))
selected_dofs[cell->vertex_dof_index(0,i)] = true;
// check right-most vertex
if (check_right_vertex)
if (cell->neighbor(1) == dof_handler.end())
for (unsigned int i=0; i<dof_handler.get_fe().dofs_per_face; ++i)
- if (component_select[dof_handler.get_fe().
- face_system_to_component_index(i).first] == true)
+ if (!check_vector_component
+ ||
+ (component_select[dof_handler.get_fe().
+ face_system_to_component_index(i).first] == true))
selected_dofs[cell->vertex_dof_index(1,i)] = true;
};
};