Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] cutting the peanut in half: thin elements

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] cutting the peanut in half: thin elements


Chronological Thread 
  • From: Michel Audette <>
  • To:
  • Subject: Re: [cgal-discuss] cutting the peanut in half: thin elements
  • Date: Mon, 20 Jun 2011 16:57:56 -0400

Hi Andreas,

it does not look very different with . The post-processing is being triggered, but looks like it might not be well tuned. I'm including the readout in verbose mode below...

I'm open to tuning it further, if there is something that I'm not doing right. If I didn't know better, some of these look like thin hexes, or at least the slice-intersection looks like thin quads, for some shapes, but every cell is indeed 4 points, from what I can tell. I'm going to poke around with high verbosity.

Cheers,

Michel

michel@michel-desktop:~/simProject/NeuroSurgSim/SimplexDecimationBuild/bin$ !./me
./mesh_two_implicit_spheres_with_balls
Inserting protection balls...
insert_corners() done. Nb of points in triangulation: 0
insert_balls_on_edges() done. Nb of points in triangulation: 13
 D vertices.size() 0
refine_balls() done. Nb of points in triangulation: 13

construct initial points:
12/12 initial point(s) found...
Start surface scan...end scan. [Bad facets:32]

Refining Surface...
Legende of the following line: (#vertices,#steps,#facets to refine,#tets to refine)
(129,106,0,0) (706.7 vertices/s)
Total refining surface time: 0.15s

Start volume scan...end scan. [Bad tets:299]

Refining...
Legende of the following line: (#vertices,#steps,#facets to refine,#tets to refine)
(207,87,0,0) (1450.0 vertices/s)))
Total refining volume time: 0.06s
Total refining time: 0.22s

Fill sizing field...done (0.03s)
Running Odt-smoothing...
end interation 12 (77.8 frozen), 46 / 207 (5), last step:0.03s, step avg:0.16s, avg large move:0.078          
Convergence reached
Total optimization time: 2.1s

Running sliver perturbation...
Legend of the following line: (#vertices in pqueue, #iterations, #fails)
bound 9: (0,1,0) (25.0 iteration/s)
Total perturbation time: 0.05s
Perturbation statistics:
Sq radius gradient perturbation: 100% (1 in 0s)
Volume gradient perturbation: 0% (0 in 0s)
Dihedral angle gradient perturbation: 0% (0 in 0s)
Li random perturbation [100, 0.15, in]: 0% (0 in 0s)

Exuding...
Legend of the following line: (#cells left,#vertices pumped,#vertices ignored)
(0,5,10) (500.0 vertices/s)
Total exuding time: 0.02s





On Mon, Jun 20, 2011 at 3:42 PM, Michel Audette <> wrote:
Hi Andreas,

thanks for your prompt reply, and I apologize if the email just sent is also covered by this workaround.

I'll give it a try and report back.

Best wishes,

Michel


On Mon, Jun 20, 2011 at 3:35 PM, Andreas Fabri <> wrote:

Hi Michel,

Some days ago we found a bug in the code that removes slivers.
The workaround is to define the macro
CGAL_MESH_3_USE_RELAXED_HEAP

Can you report back if it helped in your case.

andreas



On 20/06/2011 20:58, Michel Audette wrote:
Dear CGAL developers,

In the past week or so, I've become interested in the new capacity of
3.8 to offer boundary-faithful and controlled-resolution tetrahedralization.

Returning to the example in

examples/Mesh_3/mesh_two_implicit_spheres_with_balls.cpp,
playing with the mesh size a little bit,

 Mesh_criteria criteria(edge_size = 0.5,
                        facet_angle = 25, facet_size = 0.5,
                        cell_radius_edge_ratio = 2, cell_size = 0.5);


  c3t3 = CGAL::make_mesh_3<C3t3>(domain, criteria,
                                      odt(time_limit=30),
                                      perturb(sliver_bound=10,
time_limit=30),
                                      exude(time_limit=30,
sliver_bound=15));

and visualizing the interior with Paraview (by producing a vtk file),
  vtkSmartPointer<vtkUnstructuredGrid>
    outputUnstructuredGrid = vtkSmartPointer<vtkUnstructuredGrid>::New();

  CGAL::output_c3t3_to_vtk_unstructured_grid(c3t3, outputUnstructuredGrid);
  outputUnstructuredGrid->Squeeze();

  vtkSmartPointer<vtkUnstructuredGridWriter> writer =
    vtkSmartPointer<vtkUnstructuredGridWriter>::New();

  writer->SetInput(outputUnstructuredGrid);
  writer->SetFileName("out.vtk");
  writer->Write();

I'm finding nonetheless that some slivers remain in the peanut... See
the enclosed visualization. I'd be happy to help track down the problem.
Is this a parameter of odt(), perturb() or exude() that I am not using
properly?

Best wishes,

Michel


--
Michel Audette, Ph.D.
R & D Engineer,
Kitware Inc.,
Chapel Hill, N.C.



--
Andreas Fabri, PhD
Chief Officer, GeometryFactory
Editor, The CGAL Project

phone: +33.492.954.912    skype: andreas.fabri

--
You are currently subscribed to cgal-discuss.
To unsubscribe or access the archives, go to
https://lists-sop.inria.fr/wws/info/cgal-discuss




--
Michel Audette, Ph.D.
R & D Engineer,
Kitware Inc.,
Chapel Hill, N.C.




--
Michel Audette, Ph.D.
R & D Engineer,
Kitware Inc.,
Chapel Hill, N.C.

Attachment: CGAL3.8peanutSlivers2.gif
Description: GIF image




Archive powered by MHonArc 2.6.16.

Top of Page