Dear Heena, 

here is a snippet to achieve what you want:


#include <deal.II/numerics/rtree.h>
namespace bgi = boost::geometry::index;

…


Point<2>  p0;
const auto tree = pack_rtree(tria.get_vertices());

for (const auto &p : 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 &i : 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 <heena8...@gmail.com> 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 <deal.II/numerics/kdtree.h>
> 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 <luca.hel...@gmail.com> 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 <heena8...@gmail.com> 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 <deal.II/numerics/kdtree.h>
>> 
>> 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 
> email to dealii+unsubscr...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/dealii/CAG_OxbjDa--k4K%3Dxu5KN1MZ%3DLt%2BSkouY-8cXqh2UwPE2Rv3%3D6Q%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/1346A4EE-3773-4962-AB09-69801AA22D85%40gmail.com.

Reply via email to