milupHPC documentation
  • include
  • subdomain_key_tree
Classes | Namespaces | Macros | Functions | Variables
tree.cuh File Reference

Tree related classes, kernels and functions. More...

#include "../cuda_utils/cuda_utilities.cuh"
#include "../parameter.h"
#include "../particles.cuh"
#include <iostream>
#include <stdio.h>
#include <cuda.h>
#include <assert.h>
#include <cmath>
+ Include dependency graph for tree.cuh:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  Tree
 Tree class. More...
 

Namespaces

namespace  KeyNS
 Key (keyType) related functions and kernels.
 
namespace  TreeNS
 
namespace  TreeNS::Kernel
 
namespace  TreeNS::Kernel::Launch
 

Macros

#define MILUPHPC_TREE_CUH
 

Functions

CUDA_CALLABLE_MEMBER keyType KeyNS::lebesgue2hilbert (keyType lebesgue, integer maxLevel)
 Convert a Lebesgue key to a Hilbert key. More...
 
CUDA_CALLABLE_MEMBER keyType KeyNS::lebesgue2hilbert (keyType lebesgue, int maxLevel, int level)
 
__global__ void TreeNS::Kernel::set (Tree *tree, integer *count, integer *start, integer *child, integer *sorted, integer *index, integer *toDeleteLeaf, integer *toDeleteNode, real *minX, real *maxX)
 Kernel call to setter. More...
 
__global__ void TreeNS::Kernel::info (Tree *tree, Particles *particles, integer n, integer m)
 Info Kernel for tree class (for debugging purposes) More...
 
__global__ void TreeNS::Kernel::info (Tree *tree, Particles *particles)
 
__global__ void TreeNS::Kernel::testTree (Tree *tree, Particles *particles, integer n, integer m)
 
void TreeNS::Kernel::Launch::set (Tree *tree, integer *count, integer *start, integer *child, integer *sorted, integer *index, integer *toDeleteLeaf, integer *toDeleteNode, real *minX, real *maxX)
 Wrapper for TreeNS::Kernel::set() More...
 
real TreeNS::Kernel::Launch::info (Tree *tree, Particles *particles, integer n, integer m)
 Wrapper for TreeNS::Kernel::Launch::info() More...
 
real TreeNS::Kernel::Launch::info (Tree *tree, Particles *particles)
 
real TreeNS::Kernel::Launch::testTree (Tree *tree, Particles *particles, integer n, integer m)
 
__global__ void TreeNS::Kernel::set (Tree *tree, integer *count, integer *start, integer *child, integer *sorted, integer *index, integer *toDeleteLeaf, integer *toDeleteNode, real *minX, real *maxX, real *minY, real *maxY)
 Kernel call to setter. More...
 
void TreeNS::Kernel::Launch::set (Tree *tree, integer *count, integer *start, integer *child, integer *sorted, integer *index, integer *toDeleteLeaf, integer *toDeleteNode, real *minX, real *maxX, real *minY, real *maxY)
 Wrapper for TreeNS::Kernel::Launch::set() More...
 
__global__ void TreeNS::Kernel::set (Tree *tree, integer *count, integer *start, integer *child, integer *sorted, integer *index, integer *toDeleteLeaf, integer *toDeleteNode, real *minX, real *maxX, real *minY, real *maxY, real *minZ, real *maxZ)
 
void TreeNS::Kernel::Launch::set (Tree *tree, integer *count, integer *start, integer *child, integer *sorted, integer *index, integer *toDeleteLeaf, integer *toDeleteNode, real *minX, real *maxX, real *minY, real *maxY, real *minZ, real *maxZ)
 Wrapper for TreeNS::Kernel::Launch::set() More...
 
__global__ void TreeNS::Kernel::sumParticles (Tree *tree)
 Kernel call to sum particles within tree. More...
 
__global__ void TreeNS::Kernel::buildTree (Tree *tree, Particles *particles, integer n, integer m)
 Kernel to construct the tree using the particles within particles More...
 
__global__ void TreeNS::Kernel::prepareSorting (Tree *tree, Particles *particles, integer n, integer m)
 
__global__ void TreeNS::Kernel::calculateCentersOfMass (Tree *tree, Particles *particles, integer n, integer level)
 Compute center of masses (level wise). More...
 
__global__ void TreeNS::Kernel::computeBoundingBox (Tree *tree, Particles *particles, integer *mutex, integer n, integer blockSize)
 Kernel to compute the bounding box/borders of the tree or rather the particles within the tree. More...
 
__global__ void TreeNS::Kernel::centerOfMass (Tree *tree, Particles *particles, integer n)
 
__global__ void TreeNS::Kernel::sort (Tree *tree, integer n, integer m)
 Kernel to sort tree/child indices to optimize cache efficiency. More...
 
__global__ void TreeNS::Kernel::getParticleKeys (Tree *tree, Particles *particles, keyType *keys, integer maxLevel, integer n, Curve::Type curveType=Curve::lebesgue)
 Kernel to get all particle's keys. More...
 
__global__ void TreeNS::Kernel::globalCOM (Tree *tree, Particles *particles, real com[DIM])
 Compute center of mass for all particles. More...
 
real TreeNS::Kernel::Launch::sumParticles (Tree *tree)
 Wrapper for TreeNS::Kernel::sumParticles() More...
 
real TreeNS::Kernel::Launch::getParticleKeys (Tree *tree, Particles *particles, keyType *keys, integer maxLevel, integer n, Curve::Type curveType=Curve::lebesgue, bool time=false)
 Wrapper for TreeNS::Kernel::getParticleKeys() More...
 
real TreeNS::Kernel::Launch::buildTree (Tree *tree, Particles *particles, integer n, integer m, bool time=false)
 Wrapper for TreeNS::Kernel::buildTree() More...
 
real TreeNS::Kernel::Launch::prepareSorting (Tree *tree, Particles *particles, integer n, integer m)
 
real TreeNS::Kernel::Launch::calculateCentersOfMass (Tree *tree, Particles *particles, integer n, integer level, bool time=false)
 
real TreeNS::Kernel::Launch::computeBoundingBox (Tree *tree, Particles *particles, integer *mutex, integer n, integer blockSize, bool time=false)
 Wrapper for TreeNS::Kernel::computeBoundingBox() More...
 
real TreeNS::Kernel::Launch::centerOfMass (Tree *tree, Particles *particles, integer n, bool time=false)
 Wrapper for TreeNS::Kernel::centerOfMass() More...
 
real TreeNS::Kernel::Launch::sort (Tree *tree, integer n, integer m, bool time=false)
 Wrapper for TreeNS::Kernel::sort() More...
 
real TreeNS::Kernel::Launch::globalCOM (Tree *tree, Particles *particles, real com[DIM])
 Wrapper for TreeNS::Kernel::globalCOM() More...
 

Variables

 KeyNS::DIM
 Table needed to convert from Lebesgue to Hilbert keys. More...
 
const unsigned char KeyNS::HilbertTable [12][8]
 Table needed to convert from Lebesgue to Hilbert keys. More...
 

Detailed Description

Tree related classes, kernels and functions.

Author
Michael Staneker
Bug:
no known bugs
Todo:
: compiling on binac: src/gravity/../../include/gravity/../subdomain_key_tree/tree.cuh(26): error: attribute "__host__" does not apply here src/gravity/../../include/gravity/../subdomain_key_tree/tree.cuh(53): error: attribute "__host__" does not apply here

Definition in file tree.cuh.

Macro Definition Documentation

◆ MILUPHPC_TREE_CUH

#define MILUPHPC_TREE_CUH

Definition at line 13 of file tree.cuh.


milupHPC - include/subdomain_key_tree/tree.cuh File Reference
Generated on Wed Aug 31 2022 12:16:53 by Doxygen 1.9.3