milupHPC documentation
Functions | Variables
KeyNS Namespace Reference

Key (keyType) related functions and kernels. More...

Functions

CUDA_CALLABLE_MEMBER void key2Char (keyType key, integer maxLevel, char *keyAsChar)
 Convert a key to a char for printing. More...
 
CUDA_CALLABLE_MEMBER integer key2proc (keyType key, SubDomainKeyTree *subDomainKeyTree)
 Convert the key to the corresponding process. More...
 
CUDA_CALLABLE_MEMBER keyType lebesgue2hilbert (keyType lebesgue, integer maxLevel)
 Convert a Lebesgue key to a Hilbert key. More...
 
CUDA_CALLABLE_MEMBER keyType lebesgue2hilbert (keyType lebesgue, int maxLevel, int level)
 

Variables

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

Detailed Description

Key (keyType) related functions and kernels.

Function Documentation

◆ key2Char()

CUDA_CALLABLE_MEMBER void KeyNS::key2Char ( keyType  key,
integer  maxLevel,
char *  keyAsChar 
)

Convert a key to a char for printing.

Parameters
[in]keyKey to be converted
[in]maxLevelmaximum (tree) level
[out]keyAsCharkey as char

Definition at line 5 of file subdomain.cu.

◆ key2proc()

CUDA_CALLABLE_MEMBER integer KeyNS::key2proc ( keyType  key,
SubDomainKeyTree *  subDomainKeyTree 
)

Convert the key to the corresponding process.

The mapping from a key to a MPI process via ranges can be implemented by checking in between which successive entries of the range the key is located.

Parameters
keyKey to be evaluated
subDomainKeyTreeSubDomainKeyTree class instance
Returns
Process key belongs to

Definition at line 17 of file subdomain.cu.

+ Here is the call graph for this function:

◆ lebesgue2hilbert() [1/2]

CUDA_CALLABLE_MEMBER keyType KeyNS::lebesgue2hilbert ( keyType  lebesgue,
int  maxLevel,
int  level 
)

Definition at line 40 of file tree.cu.

◆ lebesgue2hilbert() [2/2]

CUDA_CALLABLE_MEMBER keyType KeyNS::lebesgue2hilbert ( keyType  lebesgue,
integer  maxLevel 
)

Convert a Lebesgue key to a Hilbert key.

Parameters
lebesgueLebesgue key
maxLevelMaximum tree level
Returns
Hilbert key

Definition at line 4 of file tree.cu.

Variable Documentation

◆ DIM

KeyNS::DIM
Initial value:
== 3
const unsigned char DirTable[12][8] =
{{8, 10, 3, 3, 4, 5, 4, 5},
{2, 2, 11, 9, 4, 5, 4, 5},
{7, 6, 7, 6, 8, 10, 1, 1},
{7, 6, 7, 6, 0, 0, 11, 9},
{0, 8, 1, 11, 6, 8, 6, 11},
{10, 0, 9, 1, 10, 7, 9, 7},
{10, 4, 9, 4, 10, 2, 9, 3},
{5, 8, 5, 11, 2, 8, 3, 11},
{4, 9, 0, 0, 7, 9, 2, 2},
{1, 1, 8, 5, 3, 3, 8, 6},
{11, 5, 0, 0, 11, 6, 2, 2},
{1, 1, 4, 10, 3, 3, 7, 10}}

Table needed to convert from Lebesgue to Hilbert keys.

Definition at line 38 of file tree.cuh.

◆ HilbertTable

const unsigned char KeyNS::HilbertTable[12][8]
Initial value:
= {{0, 7, 3, 4, 1, 6, 2, 5},
{4, 3, 7, 0, 5, 2, 6, 1},
{6, 1, 5, 2, 7, 0, 4, 3},
{2, 5, 1, 6, 3, 4, 0, 7},
{0, 1, 7, 6, 3, 2, 4, 5},
{6, 7, 1, 0, 5, 4, 2, 3},
{2, 3, 5, 4, 1, 0, 6, 7},
{4, 5, 3, 2, 7, 6, 0, 1},
{0, 3, 1, 2, 7, 4, 6, 5},
{2, 1, 3, 0, 5, 6, 4, 7},
{4, 7, 5, 6, 3, 0, 2, 1},
{6, 5, 7, 4, 1, 2, 0, 3}}

Table needed to convert from Lebesgue to Hilbert keys.

Definition at line 83 of file tree.cuh.


milupHPC - KeyNS Namespace Reference
Generated on Wed Aug 31 2022 12:16:53 by Doxygen 1.9.3