VM2D 1.14
Vortex methods for 2D flows simulation
Loading...
Searching...
No Matches
morton_tree.h
Go to the documentation of this file.
1#pragma once
2#include <utility>
3#include <vector>
4#include <complex>
5#include "../common/utils.h"
6
7namespace fmm {
8
9template <typename point, typename value>
11{
13
15 point center;
16
17 std::pair<size_t, size_t> source_range;
18 std::pair<size_t, size_t> target_range;
19 size_t parent;
21 std::vector<size_t> closeneighbours, farneighbours;
22};
23
24template <int dim, typename point, typename value>
26{
27public:
30
31 MortonTree(std::vector<particle_t>&& particles, size_t tree_depth);
32
33 std::vector<std::vector<TreeCell_t>> levels;
34 std::vector<size_t> level_sizes;
35 size_t tree_depth;
36 size_t targets_num = 0; // number of target points in tree
37 std::vector<particle_t> particles;
38 std::vector<size_t> positions_map; // maps sorted to initial
39
40private:
41 void FillNeighbours();
42 point shift;
43 double scale;
44
45};
46
53
54} // fmm
std::vector< std::vector< TreeCell_t > > levels
Definition morton_tree.h:33
std::vector< particle_t > particles
Definition morton_tree.h:37
std::vector< size_t > level_sizes
Definition morton_tree.h:34
std::vector< size_t > positions_map
Definition morton_tree.h:38
TreeCell< point, value > TreeCell_t
Definition morton_tree.h:29
Definition avx.h:5
TreeCell< point3d, point3d > TreeCell3d3
Definition morton_tree.h:49
TreeCell< point3d, double > TreeCell3d
Definition morton_tree.h:48
MortonTree< 2, point2d, double > MortonTree2d
Definition morton_tree.h:50
TreeCell< point2d, double > TreeCell2d
Definition morton_tree.h:47
MortonTree< 3, point3d, double > MortonTree3d
Definition morton_tree.h:51
MortonTree< 3, point3d, point3d > MortonTree3d3
Definition morton_tree.h:52
size_t morton_code
Definition morton_tree.h:20
particle< point, value > particle_t
Definition morton_tree.h:12
std::pair< size_t, size_t > source_range
Definition morton_tree.h:17
std::vector< size_t > closeneighbours
Definition morton_tree.h:21
TreeCell & operator=(const particle_t &particle)
Definition morton_tree.h:14
std::vector< size_t > farneighbours
Definition morton_tree.h:21
std::pair< size_t, size_t > target_range
Definition morton_tree.h:18
size_t morton_code
Definition utils.h:34