milupHPC documentation
  • include
  • subdomain_key_tree
tree_handler.h
Go to the documentation of this file.
1
10#ifndef MILUPHPC_TREEHANDLER_H
11#define MILUPHPC_TREEHANDLER_H
12
13#include "tree.cuh"
14#include "../parameter.h"
15#include "../utils/logger.h"
16#include "../cuda_utils/cuda_runtime.h"
17#include <boost/mpi.hpp>
18
22class TreeHandler {
23
24public:
25
27 integer numParticles;
29 integer numNodes;
30
32 integer *d_count;
34 integer *d_start;
36 integer *d_sorted;
38 integer *d_child;
40 integer *d_index;
42 integer *h_index;
44 integer *d_mutex;
45
47 integer *h_toDeleteLeaf;
49 integer *h_toDeleteNode;
51 integer *d_toDeleteLeaf;
53 integer *d_toDeleteNode;
54
56 real *d_minX;
58 real *d_maxX;
60 real *h_minX;
62 real *h_maxX;
63#if DIM > 1
65 real *d_minY;
67 real *d_maxY;
69 real *h_minY;
71 real *h_maxY;
72#if DIM == 3
74 real *d_minZ;
76 real *d_maxZ;
78 real *h_minZ;
80 real *h_maxZ;
81#endif
82#endif
83
85 Tree *d_tree;
86
93 TreeHandler(integer numParticles, integer numNodes);
94
98 ~TreeHandler();
99
105 void globalizeBoundingBox(Execution::Location exLoc=Execution::device);
106
115 void copy(To::Target target = To::device, bool borders = true, bool index = true, bool toDelete = true);
116
117};
118
119
120#endif //MILUPHPC_TREEHANDLER_H
TreeHandler
Definition: tree_handler.h:22
TreeHandler::d_tree
Tree * d_tree
device instance of Class Tree
Definition: tree_handler.h:85
TreeHandler::h_minX
real * h_minX
host (pointer to) bounding box minimal x
Definition: tree_handler.h:60
TreeHandler::h_minY
real * h_minY
host (pointer to) bounding box minimal y
Definition: tree_handler.h:69
TreeHandler::d_mutex
integer * d_mutex
device (pointer to) mutex/lock
Definition: tree_handler.h:44
TreeHandler::d_sorted
integer * d_sorted
device (pointer to) sorted (array)
Definition: tree_handler.h:36
TreeHandler::h_maxX
real * h_maxX
host (pointer to) bounding box maximal x
Definition: tree_handler.h:62
TreeHandler::h_index
integer * h_index
host (pointer to) index
Definition: tree_handler.h:42
TreeHandler::h_toDeleteLeaf
integer * h_toDeleteLeaf
host (pointer to) array remembering leaf indices for rebuilding after temporarily inserting particles
Definition: tree_handler.h:47
TreeHandler::d_maxX
real * d_maxX
device (pointer to) bounding box maximal x
Definition: tree_handler.h:58
TreeHandler::d_maxZ
real * d_maxZ
device (pointer to) bounding box maximal z
Definition: tree_handler.h:76
TreeHandler::numParticles
integer numParticles
number of particles
Definition: tree_handler.h:27
TreeHandler::h_toDeleteNode
integer * h_toDeleteNode
host (pointer to) array remembering leaf indices for rebuilding after temporarily inserting particles
Definition: tree_handler.h:49
TreeHandler::d_start
integer * d_start
device (pointer to) start (array)
Definition: tree_handler.h:34
TreeHandler::d_toDeleteLeaf
integer * d_toDeleteLeaf
device (pointer to) array remembering leaf indices for rebuilding after temporarily inserting particl...
Definition: tree_handler.h:51
TreeHandler::d_minZ
real * d_minZ
device (pointer to) bounding box minimal z
Definition: tree_handler.h:74
TreeHandler::d_index
integer * d_index
device (pointer to) index
Definition: tree_handler.h:40
TreeHandler::d_minX
real * d_minX
device (pointer to) bounding box minimal x
Definition: tree_handler.h:56
TreeHandler::copy
void copy(To::Target target=To::device, bool borders=true, bool index=true, bool toDelete=true)
Copy (parts of the) tree instance(s) between host and device.
Definition: tree_handler.cpp:86
TreeHandler::h_maxY
real * h_maxY
host (pointer to) bounding box maximal y
Definition: tree_handler.h:71
TreeHandler::TreeHandler
TreeHandler(integer numParticles, integer numNodes)
Constructor.
Definition: tree_handler.cpp:3
TreeHandler::numNodes
integer numNodes
number of nodes
Definition: tree_handler.h:29
TreeHandler::d_minY
real * d_minY
device (pointer to) bounding box minimal y
Definition: tree_handler.h:65
TreeHandler::h_minZ
real * h_minZ
host (pointer to) bounding box minimal z
Definition: tree_handler.h:78
TreeHandler::d_maxY
real * d_maxY
device (pointer to) bounding box maximal y
Definition: tree_handler.h:67
TreeHandler::~TreeHandler
~TreeHandler()
Destructor.
Definition: tree_handler.cpp:51
TreeHandler::h_maxZ
real * h_maxZ
host (pointer to) bounding box maximal x
Definition: tree_handler.h:80
TreeHandler::d_count
integer * d_count
device (pointer to) count (array)
Definition: tree_handler.h:32
TreeHandler::globalizeBoundingBox
void globalizeBoundingBox(Execution::Location exLoc=Execution::device)
All reduce bounding box(es)/borders (among MPI processes)
Definition: tree_handler.cpp:110
TreeHandler::d_child
integer * d_child
device (pointer to) child/children (array)
Definition: tree_handler.h:38
TreeHandler::d_toDeleteNode
integer * d_toDeleteNode
device (pointer to) array remembering leaf indices for rebuilding after temporarily inserting particl...
Definition: tree_handler.h:53
Tree
Tree class.
Definition: tree.cuh:140
real
double real
Definition: parameter.h:15
integer
int integer
Definition: parameter.h:17
Execution::Location
Location
Definition: parameter.h:192
Execution::device
@ device
Definition: parameter.h:193
To::Target
Target
Definition: parameter.h:164
To::device
@ device
Definition: parameter.h:165
tree.cuh
Tree related classes, kernels and functions.

milupHPC - include/subdomain_key_tree/tree_handler.h Source File
Generated on Wed Aug 31 2022 12:16:52 by Doxygen 1.9.3