void
GridGenerator::
- extrude_triangulation(const Triangulation<2, 2> & input,
+ extrude_triangulation(const Triangulation<2, 2> &input,
- const unsigned int n_slices,
+ const size_type n_slices,
const double height,
Triangulation<3,3> &result)
{
std::vector<CellData<3> > cells;
cells.reserve((n_slices-1)*input.n_active_cells());
- for (size_type slice=0;slice<n_slices;++slice)
- for (unsigned int slice=0; slice<n_slices; ++slice)
++ for (size_type slice=0; slice<n_slices; ++slice)
{
- for (size_type i=0;i<input.n_vertices();++i)
- for (unsigned int i=0; i<input.n_vertices(); ++i)
++ for (size_type i=0; i<input.n_vertices(); ++i)
- {
- const Point<2> & v = input.get_vertices()[i];
- points[i+slice*input.n_vertices()](0) = v(0);
- points[i+slice*input.n_vertices()](1) = v(1);
- points[i+slice*input.n_vertices()](2) = height * slice / (n_slices-1);
- }
+ {
+ const Point<2> &v = input.get_vertices()[i];
+ points[i+slice*input.n_vertices()](0) = v(0);
+ points[i+slice*input.n_vertices()](1) = v(1);
+ points[i+slice*input.n_vertices()](2) = height * slice / (n_slices-1);
+ }
}
for (Triangulation<2,2>::cell_iterator
- cell = input.begin(); cell != input.end(); ++cell)
+ cell = input.begin(); cell != input.end(); ++cell)
{
- for (size_type slice=0;slice<n_slices-1;++slice)
- for (unsigned int slice=0; slice<n_slices-1; ++slice)
++ for (size_type slice=0; slice<n_slices-1; ++slice)
{
CellData<3> this_cell;
for (unsigned int v=0; v<GeometryInfo<2>::vertices_per_cell; ++v)
{
quad.boundary_id = cell->face(f)->boundary_indicator();
bid = std::max(bid, quad.boundary_id);
- for (size_type slice=0;slice<n_slices-1;++slice)
- for (unsigned int slice=0; slice<n_slices-1; ++slice)
- {
- quad.vertices[0] = cell->face(f)->vertex_index(0)+slice*input.n_vertices();
- quad.vertices[1] = cell->face(f)->vertex_index(1)+slice*input.n_vertices();
- quad.vertices[2] = cell->face(f)->vertex_index(0)+(slice+1)*input.n_vertices();
- quad.vertices[3] = cell->face(f)->vertex_index(1)+(slice+1)*input.n_vertices();
- s.boundary_quads.push_back(quad);
- }
++ for (size_type slice=0; slice<n_slices-1; ++slice)
+ {
+ quad.vertices[0] = cell->face(f)->vertex_index(0)+slice*input.n_vertices();
+ quad.vertices[1] = cell->face(f)->vertex_index(1)+slice*input.n_vertices();
+ quad.vertices[2] = cell->face(f)->vertex_index(0)+(slice+1)*input.n_vertices();
+ quad.vertices[3] = cell->face(f)->vertex_index(1)+(slice+1)*input.n_vertices();
+ s.boundary_quads.push_back(quad);
+ }
}
}
typename FunctionMap<dim>::type dirichlet_boundary;
ZeroFunction<dim> homogeneous_dirichlet_bc (1);
dirichlet_boundary[0] = &homogeneous_dirichlet_bc;
- std::vector<std::set<unsigned int> > boundary_indices(triangulation.n_levels());
+ std::vector<std::set<types::global_dof_index> > boundary_indices(triangulation.n_levels());
- MGTools::make_boundary_list (mg_dof_handler,
+ MGTools::make_boundary_list (dof_handler,
dirichlet_boundary,
boundary_indices);
for (unsigned int level=0; level<nlevels; ++level)