Hi
I was playing with the basic options of the Triangulation and DofHandler
classes and I was wondering, it is possible that for one vertex to have
two boundary indicators?
I'm doing the following:
void Problem1::make_grid ()
{
GridGenerator::hyper_cube (triangulation, -1, 1);
triangulation.refine_global (2);
typename Triangulation<2>::cell_iterator
cell = triangulation.begin (),
endc = triangulation.end ();
for (;cell != endc; ++cell)
for (unsigned int face = 0; face < GeometryInfo<2>::faces_per_cell;
++face){
if (cell->face(face)->at_boundary() &&
((std::fabs(cell->face(face)->center()(1) - (-1.0)) < 1e-12)
||
(std::fabs(cell->face(face)->center()(0) - (-1.0)) < 1e-12)))
cell->face(face)->set_boundary_indicator (1);
}
std::cout << "Number of active cells: "
<< triangulation.n_active_cells()
<< std::endl;
std::cout << "Total number of cells: "
<< triangulation.n_cells()
<< std::endl;
std::cout << "Total number of vertices: "
<< triangulation.n_vertices()
<< std::endl;
std::cout << "Number of used vertices: "
<< triangulation.n_used_vertices()
<< std::endl;
dof_handler.distribute_dofs (fe);
std::cout << "Number of degrees of freedom: "
<< dof_handler.n_dofs()
<< std::endl;
std::set<unsigned char> boundary_indicators_0;
boundary_indicators_0.insert (0);
std::set<unsigned char> boundary_indicators_1;
boundary_indicators_1.insert (1);
std::cout << "Number of degrees of freedom on the boundary: "
<< dof_handler.n_boundary_dofs()
<< std::endl;
std::cout << "Number of degrees of freedom on the boundary with
indicator 0: "
<< dof_handler.n_boundary_dofs(boundary_indicators_0)
<< std::endl;
std::cout << "Number of degrees of freedom on the boundary with
indicator 1: "
<< dof_handler.n_boundary_dofs(boundary_indicators_1)
<< std::endl;
std::cout << "Number of max coupling dofs: "
<< dof_handler.max_couplings_between_dofs()
<< std::endl;
std::cout << "Number of max coupling dofs at the boundary: "
<< dof_handler.max_couplings_between_boundary_dofs()
<< std::endl;
}
And the output would be:
Number of active cells: 16
Total number of cells: 21
Total number of vertices: 25
Number of used vertices: 25
Number of degrees of freedom: 25
Number of degrees of freedom on the boundary: 16
Number of degrees of freedom on the boundary with indicator 0: 9
Number of degrees of freedom on the boundary with indicator 1: 9
Number of max coupling dofs: 19
Number of max coupling dofs at the boundary: 3
It seems to me that vertices at (-1,1) and (-1,1) have two boundary
indicators. If so, does this affects my program later when I assign
boundary conditions?
And also, if I use polynomial degree 1 for the fe functions each vertex
should have 1 degree of freedom. How can I know which degree of freedom
(as they are numbered) was assigned to which vertex? Does this makes any
sense?
Regards
Javier Muñoz
_______________________________________________
dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii