Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] meshing 2d

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] meshing 2d


Chronological Thread 
  • From: Hansjoerg Seybold <>
  • To:
  • Subject: Re: [cgal-discuss] meshing 2d
  • Date: Mon, 24 May 2010 15:12:00 -0300

hello,
I am trying to use the member function cdt.incident_constraints(va,done);
but i am not sure if i use the EdgeItOutput correctly.

I first create a list with the iterators
insert_iterator<list<Edge> > ei,done;
and later iterate over the content of the list with list<Edge>::iterator eit;
This looks a bit wired to me that i have to use a list where i store the edges first.

Is there an example using these things in the CGAL demo/examples?

Thanks a lot
 hj





On Sun, May 23, 2010 at 8:45 AM, Hansjoerg Seybold <> wrote:
Hi,
thanks a lot for the hints.
I had a deeper search in the reference manual and found the linewalk function which could be used to walk along the constraint edges of the PGLS.

The question is if the linewalk is save with respect to exact predictions.
Otherwise i can also search along the constraint edges wwith circulators until i reach the endpoint of the constraint PGLS edge.
thanks
     hj





On Tue, May 18, 2010 at 5:32 PM, Mariette Yvinec <> wrote:


Hansjoerg Seybold wrote:
thanks for the answer, but i dont understand how i should mark the cells.


assume i have an internal segment edge of the PLGS, which is devided into 3 parts by the insetion of 2 gabriel points. There are mesh cells
left and right to the PLGS edge.
How do i have to iterate the determine the cells which are left/right of the edge?
or inide/outside of a polygon for example inside/outside of the
triangular region in example 45.4

Can i mark the cells during the mesh generation to keep track on to which region they belong to?


thanks a lot
   hj


You may mark the cells once the mesh is generated.
There is an example of such a marking in the file:
demo/Triangultion_2/Constrained_Delaunay_triangulation_2.cpp





On Mon, May 17, 2010 at 2:38 PM, Mariette Yvinec <> wrote:
A better way, may be to mark the cells
with some indexes of the subdomain they belong to.
Using a propagation algorithm  through cell adjacency
it is easy to mark the cells.
Then knowing on which boundary
are the edges is straightforward.

The main advantage is to avoid using
geometric tests like is_colinear()
which might yield a false result if you use floating point computations
and is costly when using an EPIC Kernel.


Hansjoerg Seybold wrote:
hello,
thanks a lot. This would help to determine weather boundary or not.
For a fem mesh i further have to know on which boundary the
nodes are to apply the appropriate boundary conditions in the calculations. Also for internal boundary conditions the is_in_domain()
is not sufficient.
I was thinking to check all vvertices with all edges of the PLGS with the basic functions
are_ordered_along line() or is_colinear() because i could not find a better
point location method which returns the edge of the PLGS for a given
vertex. Please let me know if you have a better suggestion for me.

best hj





On Mon, May 17, 2010 at 10:51 AM, Mariette Yvinec <> wrote:

You may identify the boundary edges as edges incident
to a single face that is in the doamain.
This can be tested using the is_in_domain() member function
of the  facet.

Hansjoerg Seybold wrote:
Hello,
i could not find a function /flag in the mesher that identifies the boundary
edges, meaning edges that are part of the initial PLGS.
I saw that for a 3D mesh a IS_BOUNDARY type exists. but for 2d meshes i could not find an equivalence.
Do i have to check the boundary query by hand using geometric queries for the vertex points of the mesh and the  edges of the original PLGS?

thanks a lot
    hansjoerg


On Thu, Apr 22, 2010 at 3:31 PM, Hansjoerg Seybold <> wrote:
Thanks for the reply.

 the mesh_domain thus is a simple triangulation object.

One question remains: how do i identify if the newly inserted vertices (edge) is lying on the original boundary
triangulation identify the boudnary of the mesh domain

thanks


On Thu, Apr 22, 2010 at 2:01 PM, Ramin H <> wrote:
Look here:
http://www.cgal.org/Manual/last/doc_html/cgal_manual/Triangulation_2_ref/Class_Triangulation_2.html

typedef Tds::Face_iterator All_faces_iterator; iterator over all faces.
typedef Tds::Edge_iterator All_edges_iterator; iterator over all edges
typedef Tds::Vertex_iterator All_vertices_iterator; iterator over all vertices


-Ramin


On Thu, Apr 22, 2010 at 5:44 AM, Hansjoerg Seybold <> wrote:
hello,
I am trying to make a simple 2D mesher for a FEM code using the cgal meshing capabilities.

 I experimenteeeed with the meshing examples and demos. What i could not find in the
documentation and the examples is

How can i iterate through the mesh, Faces, Vertices, Edges?

Is there a method to determine if a edge/vertex lies on a boundary (meaning part of the CDT which is used as input
for the mesher?

Are there default io streams for the meshs?

It would be nice if anybody has some suggestions references for  documentation etc on this topic.

Thanks a lot
   best hansjoerg




-- 
Mariette Yvinec
Geometrica project team
INRIA  Sophia-Antipolis  


    


-- 
Mariette Yvinec
Geometrica project team
INRIA  Sophia-Antipolis  


    


-- 
Mariette Yvinec
Geometrica project team
INRIA  Sophia-Antipolis  







Archive powered by MHonArc 2.6.16.

Top of Page