My Project
programmer's documentation
Data Structures | Typedefs | Enumerations | Functions
fvm_morton.h File Reference
#include "cs_defs.h"
#include <stdio.h>
#include "fvm_defs.h"
Include dependency graph for fvm_morton.h:

Go to the source code of this file.

Data Structures

struct  fvm_morton_code_t
 

Typedefs

typedef unsigned int fvm_morton_int_t
 

Enumerations

enum  fvm_morton_compare_t { FVM_MORTON_EQUAL_ID, FVM_MORTON_SAME_ANCHOR, FVM_MORTON_DIFFERENT_ID }
 

Functions

void fvm_morton_get_coord_extents (int dim, size_t n_coords, const cs_coord_t coords[], cs_coord_t g_extents[])
 
void fvm_morton_get_global_extents (int dim, size_t n_extents, const cs_coord_t extents[], cs_coord_t g_extents[])
 
fvm_morton_code_t fvm_morton_encode (int dim, fvm_morton_int_t level, const cs_coord_t coords[])
 
void fvm_morton_encode_coords (int dim, fvm_morton_int_t level, const cs_coord_t extents[], size_t n_coords, const cs_coord_t coords[], fvm_morton_code_t m_code[])
 
void fvm_morton_get_children (int dim, fvm_morton_code_t parent, fvm_morton_code_t children[])
 
fvm_morton_compare_t fvm_morton_compare (int dim, fvm_morton_code_t code_a, fvm_morton_code_t code_b)
 
void fvm_morton_local_order (cs_lnum_t n_codes, const fvm_morton_code_t morton_codes[], cs_lnum_t order[])
 
void fvm_morton_local_sort (cs_lnum_t n_codes, fvm_morton_code_t morton_codes[])
 
bool fvm_morton_a_gt_b (fvm_morton_code_t a, fvm_morton_code_t b)
 
bool fvm_morton_a_ge_b (fvm_morton_code_t a, fvm_morton_code_t b)
 
int fvm_morton_binary_search (cs_lnum_t size, fvm_morton_code_t code, fvm_morton_code_t *codes)
 
void fvm_morton_s_to_code (double s, void *elt, const void *input)
 Function pointer for conversion of a double precision value in range [0, 1] to a given Morton code. More...
 
int fvm_morton_compare_o (const void *elt1, const void *elt2, const void *input)
 Function pointer for comparison of 2 Morton codes. More...
 
void fvm_morton_dump (int dim, fvm_morton_code_t code)
 

Typedef Documentation

◆ fvm_morton_int_t

typedef unsigned int fvm_morton_int_t

Enumeration Type Documentation

◆ fvm_morton_compare_t

Enumerator
FVM_MORTON_EQUAL_ID 
FVM_MORTON_SAME_ANCHOR 
FVM_MORTON_DIFFERENT_ID 

Function Documentation

◆ fvm_morton_a_ge_b()

bool fvm_morton_a_ge_b ( fvm_morton_code_t  a,
fvm_morton_code_t  b 
)

◆ fvm_morton_a_gt_b()

bool fvm_morton_a_gt_b ( fvm_morton_code_t  a,
fvm_morton_code_t  b 
)

◆ fvm_morton_binary_search()

int fvm_morton_binary_search ( cs_lnum_t  size,
fvm_morton_code_t  code,
fvm_morton_code_t codes 
)

◆ fvm_morton_compare()

fvm_morton_compare_t fvm_morton_compare ( int  dim,
fvm_morton_code_t  code_a,
fvm_morton_code_t  code_b 
)

◆ fvm_morton_compare_o()

int fvm_morton_compare_o ( const void *  elt1,
const void *  elt2,
const void *  input 
)

Function pointer for comparison of 2 Morton codes.

This function is the same type as that used by qsort_r.

Parameters
[in]elt1coordinate between 0 and 1
[in]elt2pointer to optional (untyped) value or structure.
[in]inputpointer to optional (untyped) value or structure.
Returns
< 0 if elt1 < elt2, 0 if elt1 == elt2, > 0 if elt1 > elt2

◆ fvm_morton_dump()

void fvm_morton_dump ( int  dim,
fvm_morton_code_t  code 
)

◆ fvm_morton_encode()

fvm_morton_code_t fvm_morton_encode ( int  dim,
fvm_morton_int_t  level,
const cs_coord_t  coords[] 
)

◆ fvm_morton_encode_coords()

void fvm_morton_encode_coords ( int  dim,
fvm_morton_int_t  level,
const cs_coord_t  extents[],
size_t  n_coords,
const cs_coord_t  coords[],
fvm_morton_code_t  m_code[] 
)

◆ fvm_morton_get_children()

void fvm_morton_get_children ( int  dim,
fvm_morton_code_t  parent,
fvm_morton_code_t  children[] 
)

◆ fvm_morton_get_coord_extents()

void fvm_morton_get_coord_extents ( int  dim,
size_t  n_coords,
const cs_coord_t  coords[],
cs_coord_t  g_extents[] 
)

◆ fvm_morton_get_global_extents()

void fvm_morton_get_global_extents ( int  dim,
size_t  n_extents,
const cs_coord_t  extents[],
cs_coord_t  g_extents[] 
)

◆ fvm_morton_local_order()

void fvm_morton_local_order ( cs_lnum_t  n_codes,
const fvm_morton_code_t  morton_codes[],
cs_lnum_t  order[] 
)

◆ fvm_morton_local_sort()

void fvm_morton_local_sort ( cs_lnum_t  n_codes,
fvm_morton_code_t  morton_codes[] 
)

◆ fvm_morton_s_to_code()

void fvm_morton_s_to_code ( double  s,
void *  elt,
const void *  input 
)

Function pointer for conversion of a double precision value in range [0, 1] to a given Morton code.

Parameters
[in]scoordinate between 0 and 1
[out]eltpointer to element
[in]inputpointer to optional (untyped) value or structure; here, this is an interger representing the spatial dimension.