// copy dofs one-by-one
for (unsigned int j=0; j<old_dofs.size(); ++j)
- transfer_matrix.set (new_dofs[j], old_dofs[j], 1.0);
+ // use the dSMatrix:: as a workaround
+ // for a bug in egcs
+ transfer_matrix.dSMatrix::set (new_dofs[j], old_dofs[j], 1.0);
}
else
if (!new_cell->active() && old_cell->active())
for (unsigned int k=0; k<selected_fe->total_dofs; ++k)
for (unsigned int j=0; j<selected_fe->total_dofs; ++j)
if (selected_fe->prolongate(c)(k,j) != 0.)
- transfer_matrix.set (child_dof_indices[k],
- old_dof_indices[j],
- selected_fe->prolongate(c)(k,j));
+ // use the dSMatrix::
+ // as a workaround
+ // for a bug in egcs
+ transfer_matrix.dSMatrix::set (child_dof_indices[k],
+ old_dof_indices[j],
+ selected_fe->prolongate(c)(k,j));
};
} else {
// old cell has children, new one has not
for (unsigned int k=0; k<selected_fe->total_dofs; ++k)
for (unsigned int j=0; j<selected_fe->total_dofs; ++j)
if (selected_fe->restrict(c)(k,j) != 0.)
- transfer_matrix.set (new_dof_indices[k],
- child_dof_indices[j],
- selected_fe->restrict(c)(k,j));
+ // use the dSMatrix:: as
+ // a workaround
+ // for a bug in egcs
+
+ transfer_matrix.dSMatrix::set (new_dof_indices[k],
+ child_dof_indices[j],
+ selected_fe->restrict(c)(k,j));
};
};
};
template <>
void Triangulation<2>::create_hyper_ball (const Point<2> &p, const double radius) {
- const unsigned int dim=2;
const double a = 1./(1+sqrt(2)); // equilibrate cell sizes at transition
// from the inner part to the radial
// cells
- const Point<dim> vertices[8] = { p+Point<dim>(-1,-1)*(radius/sqrt(2)),
- p+Point<dim>(+1,-1)*(radius/sqrt(2)),
- p+Point<dim>(-1,-1)*(radius/sqrt(2)*a),
- p+Point<dim>(+1,-1)*(radius/sqrt(2)*a),
- p+Point<dim>(-1,+1)*(radius/sqrt(2)*a),
- p+Point<dim>(+1,+1)*(radius/sqrt(2)*a),
- p+Point<dim>(-1,+1)*(radius/sqrt(2)),
- p+Point<dim>(+1,+1)*(radius/sqrt(2)) };
+ const Point<2> vertices[8] = { p+Point<2>(-1,-1)*(radius/sqrt(2)),
+ p+Point<2>(+1,-1)*(radius/sqrt(2)),
+ p+Point<2>(-1,-1)*(radius/sqrt(2)*a),
+ p+Point<2>(+1,-1)*(radius/sqrt(2)*a),
+ p+Point<2>(-1,+1)*(radius/sqrt(2)*a),
+ p+Point<2>(+1,+1)*(radius/sqrt(2)*a),
+ p+Point<2>(-1,+1)*(radius/sqrt(2)),
+ p+Point<2>(+1,+1)*(radius/sqrt(2)) };
const int cell_vertices[5][4] = {{0, 1, 3, 2},
{0, 2, 4, 6},
cells[i].material_id = 0;
};
- create_triangulation (vector<Point<dim> >(&vertices[0], &vertices[8]),
+ create_triangulation (vector<Point<2> >(&vertices[0], &vertices[8]),
cells,
SubCellData()); // no boundary information
};