(neighbor->index() > cell->index() &&
neighbor->level() == cell->level()))
{
- // Here we know, that the neighbor is not coarser so we
- // can use the usual @p neighbor_of_neighbor
- // function. However, we could also use the more
- // general @p neighbor_face_no function.
- const unsigned int neighbor2 =
- cell->neighbor_of_neighbor(face_no);
-
- ue_vi_matrix = 0;
- ui_ve_matrix = 0;
- ue_ve_matrix = 0;
-
- fe_v_face.reinit(cell, face_no);
- fe_v_face_neighbor.reinit(neighbor, neighbor2);
-
- dg.assemble_face_term2(fe_v_face,
- fe_v_face_neighbor,
- ui_vi_matrix,
- ue_vi_matrix,
- ui_ve_matrix,
- ue_ve_matrix);
-
- neighbor->get_dof_indices(dofs_neighbor);
-
- for (unsigned int i = 0; i < dofs_per_cell; ++i)
- for (unsigned int j = 0; j < dofs_per_cell; ++j)
- {
- system_matrix.add(dofs[i],
- dofs_neighbor[j],
- ue_vi_matrix(i, j));
- system_matrix.add(dofs_neighbor[i],
- dofs[j],
- ui_ve_matrix(i, j));
- system_matrix.add(dofs_neighbor[i],
- dofs_neighbor[j],
- ue_ve_matrix(i, j));
- }
+ // Here we know, that the neighbor is not coarser so we
+ // can use the usual @p neighbor_of_neighbor
+ // function. However, we could also use the more
+ // general @p neighbor_face_no function.
+ const unsigned int neighbor2 =
+ cell->neighbor_of_neighbor(face_no);
+
+ ue_vi_matrix = 0;
+ ui_ve_matrix = 0;
+ ue_ve_matrix = 0;
+
+ fe_v_face.reinit(cell, face_no);
+ fe_v_face_neighbor.reinit(neighbor, neighbor2);
+
+ dg.assemble_face_term2(fe_v_face,
+ fe_v_face_neighbor,
+ ui_vi_matrix,
+ ue_vi_matrix,
+ ui_ve_matrix,
+ ue_ve_matrix);
+
+ neighbor->get_dof_indices(dofs_neighbor);
+
+ for (unsigned int i = 0; i < dofs_per_cell; ++i)
+ for (unsigned int j = 0; j < dofs_per_cell; ++j)
+ {
+ system_matrix.add(dofs[i],
+ dofs_neighbor[j],
+ ue_vi_matrix(i, j));
+ system_matrix.add(dofs_neighbor[i],
+ dofs[j],
+ ui_ve_matrix(i, j));
+ system_matrix.add(dofs_neighbor[i],
+ dofs_neighbor[j],
+ ue_ve_matrix(i, j));
+ }
}
// We do not need to consider case d), as those faces are