My Project
programmer's documentation
Functions
fvm_morton.c File Reference
#include "cs_defs.h"
#include <assert.h>
#include <float.h>
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "bft_mem.h"
#include "bft_printf.h"
#include "fvm_morton.h"
Include dependency graph for fvm_morton.c:

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[])
 
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[])
 
fvm_morton_compare_t fvm_morton_compare (int dim, fvm_morton_code_t code_a, fvm_morton_code_t code_b)
 
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)
 

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.