ivutils
Loading...
Searching...
No Matches
ZGrid< VECSIZE, value_tt, index_t, CUBESIZE > Class Template Reference

Z-ordered vector-packed grid. More...

#include <zgrid.h>

Inheritance diagram for ZGrid< VECSIZE, value_tt, index_t, CUBESIZE >:
Collaboration diagram for ZGrid< VECSIZE, value_tt, index_t, CUBESIZE >:

Public Member Functions

iterator get_same (const iterator &it) const
 returns iterator with the same indicies but this parent grid
 
- Public Member Functions inherited from UniformGrid< value_tt, interleave, index_t, data_structure_t >
iterator get_same (const iterator &it) const
 returns iterator with the same indicies but this parent grid
 
template<class T , size_t il>
 UniformGrid (const UniformGrid< T, il, index_t, data_structure_t > &other)
 constructs grid with the same geometrical layout
 
template<class T , size_t il>
void init (const UniformGrid< T, il, index_t, data_structure_t > &other)
 initializes grid with the same geometrical layout as the other
 
void init (const Vector_3 &v1, const Vector_3 &v2, const int dir, const index_t *sz, const index_t *start=NULL, const index_t *end=NULL)
 v1, v2 are opposite points of the box which confines the grid sz is array form 3 numbers specifying grid nodes numbers along 3 directions dir is wierd construction.
 
void SetIteratorRange (const index_t *start=NULL, const index_t *end=NULL)
 sets limits for iterator
 
void SetInterpolationRange (const index_t *start=NULL, const index_t *end=NULL)
 sets limits for interpolation
 
void SetMemoryRange (const index_t *start=NULL, const index_t *end=NULL)
 set memory block ranges to be addressed
 
size_t msize (int dir=-1) const
 gets active array size in memory
 
size_t size () const
 gets full size in memory (including auxilliary cells)
 
Vector_3 get_total_surface () const
 get total grid surface, if grid is 2D in 3D space
 
Vector_3 Position (index_t ix, index_t iy, index_t iz) const
 
index_t get_range1 (index_t shift) const
 gets the loop ranges for two loops: [0, range1) and [range1, nintz) which must be performed for each interleave bank for convolution with given positive shift returns: bank section point: range1 bank shift for the first loop (the other one is dbank0+1), shifts for the first and the second loop
 
bool check_interpolation_ind (index_t ix, index_t iy, index_t iz) const
 validity check for interpolation index
 
bool check_memory_ind (index_t ix, index_t iy, index_t iz) const
 validity check for memory index
 
bool check_iterator_ind (index_t ix, index_t iy, index_t iz) const
 validity check for iterator index
 
template<typename iter_t >
bool check_iterator_ind (const iter_t &it) const
 validity check for iterator index
 
bool check_iterator_ind_comp (int comp, index_t ix) const
 validity check for memory index by component
 
int GetCoeff (const Vector_3 &place, index_t *int_ind, vec_type *values, int force_external=0, std::vector< Vector_3 > *nonlocal=NULL, bool all_nonlocal=false) const
 Gets interpolation coefficients (int_ind - index ararys, values - coefficients in interpolation).
 
int test_local (const Vector_3 &place) const
 if point indices are inside interpolation region
 
value_tt Interpolate (const Vector_3 &place, int force_external=0) const
 interpolate value using array ptr
 
int AddValue (const Vector_3 &place, value_tt value, int force_external=0)
 distributes the value being added between nearest grid points
 

Additional Inherited Members

- Protected Member Functions inherited from UniformGrid< value_tt, interleave, index_t, data_structure_t >
void set_range (index_t *st, index_t *en, index_t *gr, const index_t *start, const index_t *end)
 sets range to st, en and gr uses start and end for st and en, or nst and nen, if start = end = NULL
 
virtual void get_1d_coeff (const Vector_3 &p, index_t *ind, vec_type *c, bool nonlocal=false) const
 gets 1d interpolation coefficiencts for projection on dir axis
 
template<typename descendant >
 UniformGrid (descendant *des)
 Constructor to be used in descendant classes.
 
- Protected Attributes inherited from UniformGrid< value_tt, interleave, index_t, data_structure_t >
Vector_3 dx
 data array
 
Vector_3 pref
 space step
 
Vector_3 ds
 from where grid starts. wierd construction, delete it
 
Box b
 surface area of one elementary cell
 
index_t ngr [3]
 grid is confined within this box
 
index_t igr [3]
 iterator settings. iterator starts, ends and moves correspondingly to this settings
 
index_t mgr [3]
 memory settings
 
size_t GSZ
 mgr[1]*mgr[2]
 
index_t nintz
 total used memory size
 

Detailed Description

template<int VECSIZE, class value_tt, class index_t = long, int CUBESIZE = 1>
class ZGrid< VECSIZE, value_tt, index_t, CUBESIZE >

Z-ordered vector-packed grid.


The documentation for this class was generated from the following file: