Re: [deal.II] KDTree implementation error
Dear Luca, Thank you very much. It now works in both ways. Thanks for advice. Regards, Heena On Fri, Jul 24, 2020 at 12:31 PM luca.heltai wrote: > KDTree needs nanoflann to be available. Did you compile deal.II with > nanoflann exnabled? Check in the summary.log if DEAL_II_WITH_NANOFLANN is > ON. > > RTree, on the other hand, does not require nanoflann, as it is included > with boost (and it is faster than nanoflann). > > L. > > > On 24 Jul 2020, at 10:05, heena patel wrote: > > > > Dear Luca, > > I am using 9.2 version and the > implementation I try to follow from your presentation at SISSA 2018 but it > gives me error. Following are the lines I added to step-1. I want to > implement K nearest neighbor. I will work on your suggestion. > > #include > > Point<2> p; > >KDTree<2> tree(10,triangulation.get_vertices()); > >auto w = tree.get_closest_points(p, 3); > > > > Regards, > > Heena > > > > > > On Fri, Jul 24, 2020 at 8:30 AM Luca Heltai > wrote: > > If you are using version 9.3pre of deal.II, kdtree was removed. Use > RTree instead, which is faster and more flexible. > > > > Luca > > > >> Il giorno 24 lug 2020, alle ore 05:41, heena patel > ha scritto: > >> > >> > >> Dear Bruno, > >>I had already added kdree.h header file, > check the question again. But it seems it does not read KDTree; something > is not compatible between class and header file. > >> > >> Regards, > >> Heena > >> > >> On Thu, Jul 23, 2020 at 9:03 PM Bruno Turcksin < > bruno.turck...@gmail.com> wrote: > >> Heena, > >> > >> You are missing an include. Try adding #include > > >> > >> Best, > >> > >> Bruno > >> > >> On Thursday, July 23, 2020 at 2:55:53 PM UTC-4, heena patel wrote: > >> > >> Dear all, > >> I had tried to implement KDTree in step_1 > tutoria and header file for kdtree is added to the codel. It is as follows: > >> > >> void first_grid() > >> { > >> > >> Triangulation<2> triangulation; > >> > >> GridGenerator::hyper_cube(triangulation); > >> triangulation.refine_global(4); > >> Point<2> p; > >>KDTree<2> tree(10,triangulation.get_vertices()); > >>auto w = tree.get_closest_points(p, 3); > >> std::ofstream out("grid-1.svg"); > >> GridOut grid_out; > >> grid_out.write_svg(triangulation, out); > >> std::cout << "Grid written to grid-1.svg" << std::endl; > >> } > >> > >> > >> > >> It gives me error as below > >> > >> /home/heena/Project/examples/step-1/step-1.cc:76:4: error: ‘KDTree’ was > not declared in this scope > >> KDTree<2> tree(10,triangulation.get_vertices()); > >> ^~ > >> /home/heena/Project/examples/step-1/step-1.cc:76:4: note: suggested > alternative: ‘free’ > >> KDTree<2> tree(10,triangulation.get_vertices()); > >> ^~ > >> free > >> /home/heena/Project/examples/step-1/step-1.cc:76:14: error: ‘tree’ was > not declared in this scope > >> KDTree<2> tree(10,triangulation.get_vertices()); > >> ^~~~ > >> /home/heena/Project/examples/step-1/step-1.cc:76:14: note: suggested > alternative: ‘free’ > >> KDTree<2> tree(10,triangulation.get_vertices()); > >> ^~~~ > >> free > >> > >> > >> > >> Is there something missing? > >> > >> > >> > >> Regards, > >> Heena > >> > >> -- > >> The deal.II project is located at http://www.dealii.org/ > >> For mailing list/forum options, see > https://groups.google.com/d/forum/dealii?hl=en > >> --- > >> You received this message because you are subscribed to the Google > Groups "deal.II User Group" group. > >> To unsubscribe from this group and stop receiving emails from it, send > an email to dealii+unsubscr...@googlegroups.com. > >> To view this discussion on the web visit > https://groups.google.com/d/msgid/dealii/d761c989-ef92-4603-8c8e-85ec4eeb3766o%40googlegroups.com > . > >> > >> -- > >> The deal.II project is located at http://www.dealii.org/ > >> For mailing list/forum options, see > https://groups.google.com/d/forum/dealii?hl=en > >> --- > >> You received this message because you are subscribed to the Google > Groups "deal.II User Group" group. > >> To unsubscribe from this group and stop receiving emails from it, send > an email to dealii+unsubscr...@googlegroups.com. > >> To view this discussion on the web visit > https://groups.google.com/d/msgid/dealii/CAG_OxbgYqw02b4TnJAvBgWo7dvjRvf7zr6V%2BcBDKE_5hafCDJA%40mail.gmail.com > . > > > > -- > > The deal.II project is located at http://www.dealii.org/ > > For mailing list/forum options, see > https://groups.google.com/d/forum/dealii?hl=en > > --- > > You received this message because you are subscribed to the Google > Groups "deal.II User Group" group. > > To unsubscribe from this group and stop receiving emails from it, send > an email to dealii+unsubscr...@googlegroups.com. > > To view this discussion on the web visit >
Re: [deal.II] KDTree implementation error
KDTree needs nanoflann to be available. Did you compile deal.II with nanoflann exnabled? Check in the summary.log if DEAL_II_WITH_NANOFLANN is ON. RTree, on the other hand, does not require nanoflann, as it is included with boost (and it is faster than nanoflann). L. > On 24 Jul 2020, at 10:05, heena patel wrote: > > Dear Luca, > I am using 9.2 version and the implementation > I try to follow from your presentation at SISSA 2018 but it gives me error. > Following are the lines I added to step-1. I want to implement K nearest > neighbor. I will work on your suggestion. > #include > Point<2> p; >KDTree<2> tree(10,triangulation.get_vertices()); >auto w = tree.get_closest_points(p, 3); > > Regards, > Heena > > > On Fri, Jul 24, 2020 at 8:30 AM Luca Heltai wrote: > If you are using version 9.3pre of deal.II, kdtree was removed. Use RTree > instead, which is faster and more flexible. > > Luca > >> Il giorno 24 lug 2020, alle ore 05:41, heena patel ha >> scritto: >> >> >> Dear Bruno, >>I had already added kdree.h header file, >> check the question again. But it seems it does not read KDTree; something is >> not compatible between class and header file. >> >> Regards, >> Heena >> >> On Thu, Jul 23, 2020 at 9:03 PM Bruno Turcksin >> wrote: >> Heena, >> >> You are missing an include. Try adding #include >> >> Best, >> >> Bruno >> >> On Thursday, July 23, 2020 at 2:55:53 PM UTC-4, heena patel wrote: >> >> Dear all, >> I had tried to implement KDTree in step_1 tutoria >> and header file for kdtree is added to the codel. It is as follows: >> >> void first_grid() >> { >> >> Triangulation<2> triangulation; >> >> GridGenerator::hyper_cube(triangulation); >> triangulation.refine_global(4); >> Point<2> p; >>KDTree<2> tree(10,triangulation.get_vertices()); >>auto w = tree.get_closest_points(p, 3); >> std::ofstream out("grid-1.svg"); >> GridOut grid_out; >> grid_out.write_svg(triangulation, out); >> std::cout << "Grid written to grid-1.svg" << std::endl; >> } >> >> >> >> It gives me error as below >> >> /home/heena/Project/examples/step-1/step-1.cc:76:4: error: ‘KDTree’ was not >> declared in this scope >> KDTree<2> tree(10,triangulation.get_vertices()); >> ^~ >> /home/heena/Project/examples/step-1/step-1.cc:76:4: note: suggested >> alternative: ‘free’ >> KDTree<2> tree(10,triangulation.get_vertices()); >> ^~ >> free >> /home/heena/Project/examples/step-1/step-1.cc:76:14: error: ‘tree’ was not >> declared in this scope >> KDTree<2> tree(10,triangulation.get_vertices()); >> ^~~~ >> /home/heena/Project/examples/step-1/step-1.cc:76:14: note: suggested >> alternative: ‘free’ >> KDTree<2> tree(10,triangulation.get_vertices()); >> ^~~~ >> free >> >> >> >> Is there something missing? >> >> >> >> Regards, >> Heena >> >> -- >> The deal.II project is located at http://www.dealii.org/ >> For mailing list/forum options, see >> https://groups.google.com/d/forum/dealii?hl=en >> --- >> You received this message because you are subscribed to the Google Groups >> "deal.II User Group" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to dealii+unsubscr...@googlegroups.com. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/dealii/d761c989-ef92-4603-8c8e-85ec4eeb3766o%40googlegroups.com. >> >> -- >> The deal.II project is located at http://www.dealii.org/ >> For mailing list/forum options, see >> https://groups.google.com/d/forum/dealii?hl=en >> --- >> You received this message because you are subscribed to the Google Groups >> "deal.II User Group" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to dealii+unsubscr...@googlegroups.com. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/dealii/CAG_OxbgYqw02b4TnJAvBgWo7dvjRvf7zr6V%2BcBDKE_5hafCDJA%40mail.gmail.com. > > -- > The deal.II project is located at http://www.dealii.org/ > For mailing list/forum options, see > https://groups.google.com/d/forum/dealii?hl=en > --- > You received this message because you are subscribed to the Google Groups > "deal.II User Group" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to dealii+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/dealii/82AC7F19-2444-4E74-90B0-DCAC8F3722C2%40gmail.com. > > -- > The deal.II project is located at http://www.dealii.org/ > For mailing list/forum options, see > https://groups.google.com/d/forum/dealii?hl=en > --- > You received this message because you are subscribed to the Google Groups > "deal.II User Group" group. > To unsubscribe from this group and stop receiving emails from it, send an >
Re: [deal.II] KDTree implementation error
Dear Heena, here is a snippet to achieve what you want: #include namespace bgi = boost::geometry::index; … Point<2> p0; const auto tree = pack_rtree(tria.get_vertices()); for (const auto : tree | bgi::adaptors::queried(bgi::nearest(p0, 3))) // do something with p std::cout << p << std::endl; or, if you need the indices of the points: const auto tree_of_indices = pack_rtree_of_indices(tria.get_vertices()); for (const auto : tree_of_indices | bgi::adaptors::queried(bgi::nearest(p0, 3))) // do something with i std::cout << “Closest vertex has index "<< i << std::endl; see https://github.com/dealii/dealii/blob/master/tests/boost/rtree_03.cc for the example above. L. > On 24 Jul 2020, at 10:05, heena patel wrote: > > Dear Luca, > I am using 9.2 version and the implementation > I try to follow from your presentation at SISSA 2018 but it gives me error. > Following are the lines I added to step-1. I want to implement K nearest > neighbor. I will work on your suggestion. > #include > Point<2> p; >KDTree<2> tree(10,triangulation.get_vertices()); >auto w = tree.get_closest_points(p, 3); > > Regards, > Heena > > > On Fri, Jul 24, 2020 at 8:30 AM Luca Heltai wrote: > If you are using version 9.3pre of deal.II, kdtree was removed. Use RTree > instead, which is faster and more flexible. > > Luca > >> Il giorno 24 lug 2020, alle ore 05:41, heena patel ha >> scritto: >> >> >> Dear Bruno, >>I had already added kdree.h header file, >> check the question again. But it seems it does not read KDTree; something is >> not compatible between class and header file. >> >> Regards, >> Heena >> >> On Thu, Jul 23, 2020 at 9:03 PM Bruno Turcksin >> wrote: >> Heena, >> >> You are missing an include. Try adding #include >> >> Best, >> >> Bruno >> >> On Thursday, July 23, 2020 at 2:55:53 PM UTC-4, heena patel wrote: >> >> Dear all, >> I had tried to implement KDTree in step_1 tutoria >> and header file for kdtree is added to the codel. It is as follows: >> >> void first_grid() >> { >> >> Triangulation<2> triangulation; >> >> GridGenerator::hyper_cube(triangulation); >> triangulation.refine_global(4); >> Point<2> p; >>KDTree<2> tree(10,triangulation.get_vertices()); >>auto w = tree.get_closest_points(p, 3); >> std::ofstream out("grid-1.svg"); >> GridOut grid_out; >> grid_out.write_svg(triangulation, out); >> std::cout << "Grid written to grid-1.svg" << std::endl; >> } >> >> >> >> It gives me error as below >> >> /home/heena/Project/examples/step-1/step-1.cc:76:4: error: ‘KDTree’ was not >> declared in this scope >> KDTree<2> tree(10,triangulation.get_vertices()); >> ^~ >> /home/heena/Project/examples/step-1/step-1.cc:76:4: note: suggested >> alternative: ‘free’ >> KDTree<2> tree(10,triangulation.get_vertices()); >> ^~ >> free >> /home/heena/Project/examples/step-1/step-1.cc:76:14: error: ‘tree’ was not >> declared in this scope >> KDTree<2> tree(10,triangulation.get_vertices()); >> ^~~~ >> /home/heena/Project/examples/step-1/step-1.cc:76:14: note: suggested >> alternative: ‘free’ >> KDTree<2> tree(10,triangulation.get_vertices()); >> ^~~~ >> free >> >> >> >> Is there something missing? >> >> >> >> Regards, >> Heena >> >> -- >> The deal.II project is located at http://www.dealii.org/ >> For mailing list/forum options, see >> https://groups.google.com/d/forum/dealii?hl=en >> --- >> You received this message because you are subscribed to the Google Groups >> "deal.II User Group" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to dealii+unsubscr...@googlegroups.com. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/dealii/d761c989-ef92-4603-8c8e-85ec4eeb3766o%40googlegroups.com. >> >> -- >> The deal.II project is located at http://www.dealii.org/ >> For mailing list/forum options, see >> https://groups.google.com/d/forum/dealii?hl=en >> --- >> You received this message because you are subscribed to the Google Groups >> "deal.II User Group" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to dealii+unsubscr...@googlegroups.com. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/dealii/CAG_OxbgYqw02b4TnJAvBgWo7dvjRvf7zr6V%2BcBDKE_5hafCDJA%40mail.gmail.com. > > -- > The deal.II project is located at http://www.dealii.org/ > For mailing list/forum options, see > https://groups.google.com/d/forum/dealii?hl=en > --- > You received this message because you are subscribed to the Google Groups > "deal.II User Group" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to dealii+unsubscr...@googlegroups.com. > To view this discussion on the