Subject: CGAL users discussion list
List archive
Re: [cgal-discuss] "About conserving the boundary polyhedron while tetrahedral discretization"
Chronological Thread
- From: Burak ER <>
- To:
- Subject: Re: [cgal-discuss] "About conserving the boundary polyhedron while tetrahedral discretization"
- Date: Sat, 26 Oct 2013 23:18:53 +0300
Hi,
Would you please guide me to achieve a meshing procedure where I only
set the minimum element volume. Therefore, I have the ability to change
the mesh density with having it uniform with using a single parameter.
Is it possible? Can you provide me a simple example of code?
Thank you in advance.
Burak
Cum, 2013-10-25 tarihinde 16:48 +0200 saatinde, Sebastien Loriot
(GeometryFactory) yazdı:
> On 10/25/2013 04:44 PM, Burak ER wrote:
> > Hi Sebastien,
> >
> > I am now having difficulties with the space filling tetrahedrons. They
> > are too small[1] when compared to other tetrahedrons. How can I prevent
> > this behavior?
> >
> > Sorry for these newbie questions.
>
>
> I guess it's coming from the way you protected the sharp edges. You need
> to reduce the number of protecting balls on the sharp edges.
>
> Sebastien.
>
>
> >
> > Thank you.
> >
> > Burak
> >
> > [1]http://s10.postimg.org/rblr196hl/Screenshot_from_2013_10_25_17_40_10.png
> >
> > Cum, 2013-10-25 tarihinde 16:13 +0300 saatinde, Burak ER yazdı:
> >> Thank you,
> >>
> >> This solved my problem.
> >>
> >> Burak ER
> >>
> >> Cum, 2013-10-25 tarihinde 12:03 +0200 saatinde, Sebastien Loriot
> >> (GeometryFactory) yazdı:
> >>> You need to protect the edges of your box.
> >>>
> >>> One solution is to do like this example:
> >>> http://doc.cgal.org/latest/Mesh_3/index.html#Mesh_3MeshingDomainswithSharpFeatures
> >>>
> >>> or to protect them by hand.
> >>>
> >>> Sebastien.
> >>>
> >>> On 10/25/2013 11:20 AM, Burak ER wrote:
> >>>> Sorry for the not working link. You can find it here.
> >>>> <http://s16.postimg.org/pv4ehn3et/Screenshot_from_2013_10_25_12_17_21.png>
> >>>>
> >>>> Cum, 2013-10-25 tarihinde 12:14 +0300 saatinde, Burak ER yazdı:
> >>>>> Dear Sebastian,
> >>>>>
> >>>>> This may not be a minimal example. I have created a python interface
> >>>>> for my application. Within this interface I divide the off file into
> >>>>> tetrahedrons with CGAL c++ api on the background. I use this
> >>>>> generation code on the c++ side;
> >>>>>
> >>>>> #include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
> >>>>> #include <CGAL/Mesh_triangulation_3.h>
> >>>>> #include <CGAL/Mesh_complex_3_in_triangulation_3.h>
> >>>>> #include <CGAL/Mesh_criteria_3.h>
> >>>>> #include <CGAL/Polyhedral_mesh_domain_3.h>
> >>>>> #include <CGAL/make_mesh_3.h>
> >>>>> #include <CGAL/refine_mesh_3.h>
> >>>>> #include <iostream>
> >>>>> // IO
> >>>>> #include <CGAL/IO/Polyhedron_iostream.h>
> >>>>>
> >>>>> // Domain
> >>>>> typedef CGAL::Exact_predicates_inexact_constructions_kernel K;
> >>>>> typedef CGAL::Polyhedron_3<K> Polyhedron;
> >>>>> typedef CGAL::Polyhedral_mesh_domain_3<Polyhedron, K> Mesh_domain;
> >>>>>
> >>>>> // Triangulation
> >>>>> typedef CGAL::Mesh_triangulation_3<Mesh_domain>::type Tr;
> >>>>> typedef CGAL::Mesh_complex_3_in_triangulation_3<Tr> C3t3;
> >>>>>
> >>>>> // Criteria
> >>>>> typedef CGAL::Mesh_criteria_3<Tr> Mesh_criteria;
> >>>>>
> >>>>> // To avoid verbose function and named parameters call
> >>>>> using namespace CGAL::parameters;
> >>>>>
> >>>>> class MeshElement;
> >>>>>
> >>>>> void Mesh(void)
> >>>>> {
> >>>>>
> >>>>> boost::filesystem::path mypath(filename);
> >>>>> std::ifstream input(filename.data());
> >>>>>
> >>>>> if(mypath.extension()!=boost::filesystem::path(".off")){
> >>>>> std::string errormessage ="Invalid extension is specified with the
> >>>>> mesh file";
> >>>>> throw std::invalid_argument(errormessage);
> >>>>> }
> >>>>>
> >>>>> // Create input polyhedron
> >>>>> Polyhedron polyhedron;
> >>>>>
> >>>>> input >> polyhedron;
> >>>>>
> >>>>> // Create domain
> >>>>> Mesh_domain domain(polyhedron);
> >>>>>
> >>>>> // Mesh criteria (no cell_size set)
> >>>>> Mesh_criteria criteria(facet_angle, facet_size,
> >>>>> facet_distance,/*facet_topology*/
> >>>>> cell_radius_edge_ratio, cell_size);
> >>>>>
> >>>>> // Mesh generation
> >>>>> c3t3.clear();
> >>>>>
> >>>>> c3t3 = CGAL::make_mesh_3<C3t3>(domain, criteria, no_perturb(),
> >>>>> no_exude());
> >>>>>
> >>>>> elems.clear();// clear our vector
> >>>>>
> >>>>> interfacingpairs.clear();
> >>>>>
> >>>>> handlemap.clear();
> >>>>>
> >>>>> elems.resize(c3t3.number_of_cells_in_complex()); // resize it as
> >>>>> the
> >>>>> new number of elements
> >>>>>
> >>>>> size_t i=0;
> >>>>> /*
> >>>>> * This is not a nice way to index elements
> >>>>> * we could use cell_with_info structure of cgal but really how to
> >>>>> use that? No tutorial, no example at all on its document!!!
> >>>>> *
> >>>>> * */
> >>>>> for(C3t3::Cells_in_complex_iterator
> >>>>> it=c3t3.cells_begin();it!=c3t3.cells_end();it++){
> >>>>>
> >>>>> //Create new elements
> >>>>>
> >>>>> //share_ptr handles deletion of the newly created element
> >>>>> elems[i]=shared_ptr<MeshElement>(new Linear4NodeTetMeshElem(it));
> >>>>>
> >>>>> //Give an index to handle
> >>>>> handlemap[it]=i;
> >>>>> i++;
> >>>>> }
> >>>>> // Add interactions
> >>>>> for(C3t3::Cells_in_complex_iterator
> >>>>> it=c3t3.cells_begin();it!=c3t3.cells_end();it++){
> >>>>>
> >>>>> //For each neighbor of the currrent iterator
> >>>>> for(int j=0;j<4;j++)
> >>>>> {
> >>>>>
> >>>>> C3t3::Cell_handle neigh=it->neighbor(j);
> >>>>>
> >>>>> /*Check if we have this neighbor handle*/
> >>>>> if(c3t3.is_in_complex(neigh))
> >>>>> {
> >>>>> size_t indexel=handlemap[it];
> >>>>> size_t indexneigh=handlemap[neigh];
> >>>>>
> >>>>> //Get element and its neighbors from element list
> >>>>> shared_ptr<MeshElement> el;
> >>>>> shared_ptr<MeshElement> neighel;
> >>>>> //Change the ordering of the elements
> >>>>> if(indexel<indexneigh){
> >>>>> el=elems[indexel];
> >>>>> neighel=elems[indexneigh];}
> >>>>> else{
> >>>>> neighel=elems[indexel];
> >>>>> el=elems[indexneigh];
> >>>>> }
> >>>>>
> >>>>>
> >>>>> nodePairsIndices indiceofpairs;
> >>>>>
> >>>>> //Get shared node list
> >>>>> indiceofpairs=getNodeCon(el,neighel);
> >>>>>
> >>>>> //check if there is a face share
> >>>>> if(indiceofpairs.size()>=3)
> >>>>> {
> >>>>> //Create the pair
> >>>>> ElementPair pair(el,neighel,indiceofpairs);
> >>>>>
> >>>>> //Add it into the interfacing pair list
> >>>>> if(!interfacingpairs[pair])
> >>>>> {
> >>>>>
> >>>>> interfacingpairs[pair]=shared_ptr<ElementPair>(new
> >>>>> ElementPair(el,neighel,indiceofpairs));
> >>>>>
> >>>>> }
> >>>>> }
> >>>>> }
> >>>>> }
> >>>>>
> >>>>> }
> >>>>> std::cout<<"Meshing is complete "<<std::endl;
> >>>>> std::cout<<"Number of tetrahedral elements
> >>>>> "<<elems.size()<<std::endl;
> >>>>> std::cout<<"Number of interaction elements
> >>>>> "<<interfacingpairs.size()<<std::endl;
> >>>>> }
> >>>>>
> >>>>> Using this function and the off file in the attachment;
> >>>>>
> >>>>> When I use the parameters as
> >>>>> facet_angle=33,
> >>>>> facet_distance=.6,
> >>>>> facet_size=0.6,
> >>>>> cell_radius_edge_ratio=0.11,
> >>>>> cell_size=1e-3
> >>>>>
> >>>>> The result is 5580 elements and they are distributed as here <http://>
> >>>>> where you can see the empty parts on the boundary of the plate.
> >>>>>
> >>>>> Also slight change on the cell_radius_edge_ratio=0.15 makes it even
> >>>>> worser as here.
> >>>>> <http://s14.postimg.org/o8j6yl07l/Screenshot_from_2013_10_25_12_08_06.png>
> >>>>>
> >>>>> What do you think the problem is?
> >>>>>
> >>>>> Burak
> >>>>>
> >>>>> Cum, 2013-10-25 tarihinde 09:28 +0200 saatinde, Sebastien Loriot
> >>>>> (GeometryFactory) yazdı:
> >>>>>> It might help if you share a minimal example showing the pb.
> >>>>>>
> >>>>>> Sebastien.
> >>>>>>
> >>>>>> On 10/25/2013 09:26 AM, Burak ER wrote:
> >>>>>>> Dear Cgal Users,
> >>>>>>>
> >>>>>>> I really need help on this problem. Still waiting for an answer.
> >>>>>>>
> >>>>>>> Thank you in advance.
> >>>>>>>
> >>>>>>> Burak ER
> >>>>>>>
> >>>>>>> Pzt, 2013-10-21 tarihinde 18:40 +0300 saatinde, Burak ER yazdı:
> >>>>>>>> Dear Cgal Users,
> >>>>>>>>
> >>>>>>>> I am trying to mesh a rectengular prism domain from an off file
> >>>>>>>> into
> >>>>>>>> tetrahedral elements using cgal. But whatever parameters I use
> >>>>>>>> within
> >>>>>>>> criteria structure, I get a mesh where the boundaries are not
> >>>>>>>> conserved
> >>>>>>>> rather they are "uneven".
> >>>>>>>>
> >>>>>>>> What may cause that? How to force keeping boundaries exact while
> >>>>>>>> meshing?
> >>>>>>>>
> >>>>>>>> Thank you in advance.
> >>>>>>>>
> >>>>>>>> --
> >>>>>>>> Burak ER
> >>>>>>>>
> >>>>>>>> Research Assistant
> >>>>>>>> Mechanical Engineering Department
> >>>>>>>> Bursa Technical University
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>> --
> >>>> Burak ER
> >>>> <
> >>>>
> >>>> <mailto:>>
> >>>>
> >>>>
> >>>> Bu elektronik posta ve ekleri sadece adreste belirtilen kisi veya
> >>>> kurulusun kullanimi icin gonderilmektedir. Bu mesaj tarafiniza
> >>>> yanlislikla ulasirsa, lutfen gonderen kisiyi bilgilendiriniz ve mesaji
> >>>> sisteminizden siliniz. Mesajda ve eklerinde yer alan bilgilerin her ne
> >>>> sekilde olursa olsun ucuncu kisiler ile paylasilmasi hukuki ve cezai
> >>>> sorumluluk dogurabilir. Bursa Teknik Universitesi'nin, bu mesaj ve
> >>>> eklerinin icerigi ve yayimi ile ilgili hicbir sorumlulugu
> >>>> bulunmamaktadir.
> >>>>
> >>>> This email and the attachments are sent to the individual or entity
> >>>> defined in the address field only. If you are not the intended
> >>>> recipient or have received the message in error, please notify the
> >>>> sender and remove the message from your system immediately. Sharing the
> >>>> information in the message or the attachments with the 3rd parties may
> >>>> cause legal rules and penalties to apply. Bursa Technical University
> >>>> has
> >>>> no responsibility on the submission of this message and the
> >>>> attachments.
> >>>
> >>>
> >>
> >> --
> >> Burak ER
> >> <>
> >>
> >>
> >>
> >
>
>
--
Burak ER
<>
- [cgal-discuss] "About conserving the boundary polyhedron", Burak ER, 10/21/2013
- Re: [cgal-discuss] "About conserving the boundary polyhedron while tetrahedral discretization", Burak ER, 10/25/2013
- Re: [cgal-discuss] "About conserving the boundary polyhedron while tetrahedral discretization", Sebastien Loriot (GeometryFactory), 10/25/2013
- Re: [cgal-discuss] "About conserving the boundary polyhedron while tetrahedral discretization", Burak ER, 10/25/2013
- Re: [cgal-discuss] "About conserving the boundary polyhedron while tetrahedral discretization", Burak ER, 10/25/2013
- Re: [cgal-discuss] "About conserving the boundary polyhedron while tetrahedral discretization", Sebastien Loriot (GeometryFactory), 10/25/2013
- Re: [cgal-discuss] "About conserving the boundary polyhedron while tetrahedral discretization", Burak ER, 10/25/2013
- Re: [cgal-discuss] "About conserving the boundary polyhedron while tetrahedral discretization", Burak ER, 10/25/2013
- Re: [cgal-discuss] "About conserving the boundary polyhedron while tetrahedral discretization", Sebastien Loriot (GeometryFactory), 10/25/2013
- Re: [cgal-discuss] "About conserving the boundary polyhedron while tetrahedral discretization", Burak ER, 10/26/2013
- Re: [cgal-discuss] "About conserving the boundary polyhedron while tetrahedral discretization", Burak ER, 10/28/2013
- Re: [cgal-discuss] "About conserving the boundary polyhedron while tetrahedral discretization", Sebastien Loriot (GeometryFactory), 10/28/2013
- Re: [cgal-discuss] "About conserving the boundary polyhedron while tetrahedral discretization", Laurent Rineau (CGAL/GeometryFactory), 10/30/2013
- Re: [cgal-discuss] "About conserving the boundary polyhedron while tetrahedral discretization", Burak ER, 10/25/2013
- Re: [cgal-discuss] "About conserving the boundary polyhedron while tetrahedral discretization", Sebastien Loriot (GeometryFactory), 10/25/2013
- Re: [cgal-discuss] "About conserving the boundary polyhedron while tetrahedral discretization", Burak ER, 10/25/2013
- Re: [cgal-discuss] "About conserving the boundary polyhedron while tetrahedral discretization", Burak ER, 10/25/2013
- Re: [cgal-discuss] "About conserving the boundary polyhedron while tetrahedral discretization", Sebastien Loriot (GeometryFactory), 10/25/2013
- Re: [cgal-discuss] "About conserving the boundary polyhedron while tetrahedral discretization", Burak ER, 10/25/2013
Archive powered by MHonArc 2.6.18.