Dear all,
I have some meshes generated by gmsh, each composed of a number of
volumes. The aspect ratios of these volumes can be very large -- e.g.
100:50:1. However, I need my final refined cells to have aspect ratios
much closer to 1:1:1. Anisotropic refinement to the rescue: I can
simply subdivide only the elongated axes, if the cells are too
elongated.
However, I have been unable to find out how to find the cell
dimensions, specifically the length along each axis, in order to get
the aspect ratio and thus decide how the cell should be divided. Can
someone tell me how this is done?
If the above was too unclear, the following is what I want to do:
while(!done){
done = true;
for(cell = dof_handler.begin_active();cell!=endc;cell++){
double L[dim] = cell->???; // <--- HERE: Some way of
obtaining the cell dimensions or at least a bounding box.
for(int j=0; j<dim;j++)
for(int k=0; k<dim;k++)
if(L[j] > max_aspect_ratio*L[k]){
cell->set_refine_flag(RefinementCase<dim>::cut_axis(j));
done = false;
}
}
triangulation.execute_coarsening_and_refinement();
}
Thanks ever so much in advance!
--
Med venlig hilsen,
James Avery <[email protected]>
_______________________________________________
dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii