SkelGIS  3.0
skelgis::DMatrix_impl< T, R, false > Struct Template Reference

DMatrix_impl class. More...

#include <dmatrix_impl.hpp>

Inheritance diagram for skelgis::DMatrix_impl< T, R, false >:
skelgis::DMatrix_base< T >

List of all members.

Public Member Functions

 DMatrix_impl ()
 default constructor of the distributed matrix interface
 DMatrix_impl (HEADER h, const T value, bool loc=false)
 constructor of the distributed matrix
 DMatrix_impl (const char *binFile, bool loc=false)
 constructor of the distributed matrix
 ~DMatrix_impl ()
 destructor of the distributed matrix
void setGlobalMiddleValue (T val)
 Set value in the global middle.
void setPhysicalBorder (T val)
 to set all the values of the physical border of the matrix
void setRightPhysicalBorder (T val)
 to set all the values on the right of physical border of the matrix
void setLeftPhysicalBorder (T val)
 to set all the values on the left of physical border of the matrix
void setUpPhysicalBorder (T val)
 to set all the values on the up of physical border of the matrix
void setDownPhysicalBorder (T val)
 to set all the values on the down of physical border of the matrix
iterator< T, R > begin ()
 Get the beginning iterator of the DMatrix (on the first element of the DMatrix)
iterator_cont< T, R > begin_cont ()
iterator_rev< T, R > begin_rev ()
iterator_step< T, R > begin_step (int step, int nb)
iterator_phb_left< T, R > begin_phb_left ()
iterator_phb_right< T, R > begin_phb_right ()
iterator_phb_up< T, R > begin_phb_up ()
iterator_phb_down< T, R > begin_phb_down ()
iterator_line< T, R > begin_line ()
iterator< T, R > end ()
 Get the ending iterator of the DMatrix (on the last element of the DMatrix)
iterator_cont< T, R > end_cont ()
iterator_rev< T, R > end_rev ()
iterator_step< T, R > end_step ()
iterator_phb_left< T, R > end_phb_left ()
iterator_phb_right< T, R > end_phb_right ()
iterator_phb_up< T, R > end_phb_up ()
iterator_phb_down< T, R > end_phb_down ()
iterator_line< T, R > end_line ()
iterator< T, R > getIterator (int col, int li)
 get the iterator on the matrix at position (x,y)
iterator_cont< T, R > getIterator_cont (int col, int li)
 get the iterator contiguous on the matrix at position (x,y)
iterator_rev< T, R > getIterator_rev (int col, int li)
 get the iterator reverse on the matrix at position (x,y)
void getIndexes (iterator< T, R > it, int &col, int &li)
 get the indexes of the iterator on the matrix
void getIndexes (iterator_cont< T, R > it, int &col, int &li)
void getIndexes (iterator_rev< T, R > it, int &col, int &li)
void print ()
 Print the matrix by bloc.
void printAll ()
 Print all the matrix by bloc.
void write (char *binFile)
 Write the zone file concerned for the current MPI process.
void getBorders ()
 get borders
T * getAllRight (iterator< T, R > it)
 Get all neighbor right values for the element at iterator it.
T * getAllRight (iterator_cont< T, R > it)
T * getAllRight (iterator_step< T, R > it)
T * getAllRight (iterator_rev< T, R > it)
T * getAllRight (iterator_phb_left< T, R > it)
T * getAllLeft (iterator< T, R > it)
 Get all neighbor left values for the element at iterator it.
T * getAllLeft (iterator_cont< T, R > it)
T * getAllLeft (iterator_step< T, R > it)
T * getAllLeft (iterator_rev< T, R > it)
T * getAllLeft (iterator_phb_right< T, R > it)
T * getAllUp (iterator< T, R > it)
 Get all neighbor up values for the element at iterator it.
T * getAllUp (iterator_cont< T, R > it)
T * getAllUp (iterator_step< T, R > it)
T * getAllUp (iterator_rev< T, R > it)
T * getAllUp (iterator_phb_down< T, R > it)
T * getAllDown (iterator< T, R > it)
 Get all neighbor down values for the element at iterator it.
T * getAllDown (iterator_cont< T, R > it)
T * getAllDown (iterator_step< T, R > it)
T * getAllDown (iterator_rev< T, R > it)
T * getAllDown (iterator_phb_up< T, R > it)
T * getAllRightDown (iterator< T, R > it)
 Get all neighbor right down values for the element at iterator it.
T * getAllRightDown (iterator_cont< T, R > it)
T * getAllRightDown (iterator_step< T, R > it)
T * getAllRightDown (iterator_rev< T, R > it)
T * getAllLeftDown (iterator< T, R > it)
 Get all neighbor left down values for the element at iterator it.
T * getAllLeftDown (iterator_cont< T, R > it)
T * getAllLeftDown (iterator_step< T, R > it)
T * getAllLeftDown (iterator_rev< T, R > it)
T * getAllRightUp (iterator< T, R > it)
 Get all neighbor right up values for the element at iterator it.
T * getAllRightUp (iterator_cont< T, R > it)
T * getAllRightUp (iterator_step< T, R > it)
T * getAllRightUp (iterator_rev< T, R > it)
T * getAllLeftUp (iterator< T, R > it)
 Get all neighbor left up values for the element at iterator it.
T * getAllLeftUp (iterator_cont< T, R > it)
T * getAllLeftUp (iterator_step< T, R > it)
T * getAllLeftUp (iterator_rev< T, R > it)
getRight (iterator< T, R > it)
 Get the nearest right neighbor value for the element at iterator it.
getRight (iterator_cont< T, R > it)
getRight (iterator_step< T, R > it)
getRight (iterator_rev< T, R > it)
getRight (iterator_phb_left< T, R > it)
getLeft (iterator< T, R > it)
 Get the nearest left neighbor value for the element at iterator it.
getLeft (iterator_cont< T, R > it)
getLeft (iterator_step< T, R > it)
getLeft (iterator_rev< T, R > it)
getLeft (iterator_phb_right< T, R > it)
getUp (iterator< T, R > it)
 Get the nearest up neighbor value for the element at iterator it.
getUp (iterator_cont< T, R > it)
getUp (iterator_step< T, R > it)
getUp (iterator_rev< T, R > it)
getUp (iterator_phb_down< T, R > it)
getDown (iterator< T, R > it)
 Get the nearest down neighbor value for the element at iterator it.
getDown (iterator_cont< T, R > it)
getDown (iterator_step< T, R > it)
getDown (iterator_rev< T, R > it)
getDown (iterator_phb_up< T, R > it)
getRightDown (iterator< T, R > it)
 Get the nearest right down neighbor value for the element at iterator it.
getRightDown (iterator_cont< T, R > it)
getRightDown (iterator_step< T, R > it)
getRightDown (iterator_rev< T, R > it)
getLeftDown (iterator< T, R > it)
 Get the nearest left down neighbor value for the element at iterator it.
getLeftDown (iterator_cont< T, R > it)
getLeftDown (iterator_step< T, R > it)
getLeftDown (iterator_rev< T, R > it)
getRightUp (iterator< T, R > it)
 Get the nearest right up neighbor value for the element at iterator it.
getRightUp (iterator_cont< T, R > it)
getRightUp (iterator_step< T, R > it)
getRightUp (iterator_rev< T, R > it)
getLeftUp (iterator< T, R > it)
 Get the nearest left up neighbor value for the element at iterator it.
getLeftUp (iterator_cont< T, R > it)
getLeftUp (iterator_step< T, R > it)
getLeftUp (iterator_rev< T, R > it)
T * getAllX (iterator< T, R > it)
 Get all values along X axe for the element at iterator it.
T * getAllX (iterator_cont< T, R > it)
T * getAllX (iterator_step< T, R > it)
T * getAllX (iterator_rev< T, R > it)
void getAllX (iterator< T, R > it, T *t)
 Get all values along X axe for the element at iterator it.
void getAllX (iterator_cont< T, R > it, T *t)
void getAllX (iterator_rev< T, R > it, T *t)
void getAllX (iterator_step< T, R > it, T *t)
T * getAllY (iterator< T, R > it)
 Get all values along Y axe for the element at iterator it.
T * getAllY (iterator_cont< T, R > it)
T * getAllY (iterator_step< T, R > it)
T * getAllY (iterator_rev< T, R > it)
void getAllY (iterator< T, R > it, T *t)
 Get all values along Y axe for the element at iterator it.
void getAllY (iterator_cont< T, R > it, T *t)
void getAllY (iterator_rev< T, R > it, T *t)
void getAllY (iterator_step< T, R > it, T *t)
T * get8 (iterator< T, R > it)
 Get all 8 directions neighbor values for the element at iterator it.
T * get8 (iterator_cont< T, R > it)
T * get8 (iterator_step< T, R > it)
T * get8 (iterator_rev< T, R > it)
T * get4 (iterator< T, R > it)
 Get all 4 directions neighbor values for the element at iterator it.
T * get4 (iterator_cont< T, R > it)
T * get4 (iterator_step< T, R > it)
T * get4 (iterator_rev< T, R > it)
getInRight (iterator_phb_left< T, R > it)
 Get the nearest right neighbor value inside the domain, for physical left border iterators.
getInLeft (iterator_phb_right< T, R > it)
 Get the nearest left neighbor value inside the domain, for physical right border iterators.
getInUp (iterator_phb_down< T, R > it)
 Get the nearest up neighbor value inside the domain, for physical down border iterators.
getInDown (iterator_phb_up< T, R > it)
 Get the nearest down neighbor value inside the domain, for physical up border iterators.

Public Attributes

HEADER border_head

Protected Member Functions

void create ()
 Creation of the ditributed matrix.
void initValues (T value)
 Values initialization of the elements of the DMatrix_impl.
void phBLimits ()
 Calculation of the physical border limits.
void read (const char *binFile)
 Read the zone of the binary file concerned for the current MPI process.
unsigned int getRank (int c, int cs, int r)
 Get rank from a column number and a row number.
void getNeighborRanks ()
 Get ranks.
T * getRightBorderToSend ()
 Get the right border to send to neighbor processors.
void setRightBorder (T *values)
 Set the right border ghost cells with neighbor values from processors.
T * getLeftBorderToSend ()
 Get the left border to send to neighbor processors.
void setLeftBorder (T *values)
 Set the left border ghost cells with neighbor values from processors.
T * getUpBorderToSend ()
 Get the up border to send to neighbor processors.
void setUpBorder (T *values)
 Set the up border ghost cells with neighbor values from processors.
T * getDownBorderToSend ()
 Get the down border to send to neighbor processors.
void setDownBorder (T *values)
 Set the down border ghost cells with neighbor values from processors.
T * getDownRightBorderToSend ()
 Get the down right border to send to neighbor processors.
void setDownRightBorder (T *values)
 Set the down right border ghost cells with neighbor values from processors.
T * getDownLeftBorderToSend ()
 Get the down left border to send to neighbor processors.
void setDownLeftBorder (T *values)
 Set the down left border ghost cells with neighbor values from processors.
T * getUpLeftBorderToSend ()
 Get the up left border to send to neighbor processors.
void setUpLeftBorder (T *values)
 Set the up left border ghost cells with neighbor values from processors.
T * getUpRightBorderToSend ()
 Get the up right border to send to neighbor processors.
void setUpRightBorder (T *values)
 Set the up right border ghost cells with neighbor values from processors.
T * allRight (unsigned int rank)
 Get all neighbor right values for the element to a precise rank.
T * allLeft (unsigned int rank)
 Get all neighbor left values for the element to a precise rank.
T * allUp (unsigned int rank, unsigned int width)
 Get all neighbor up values for the element to a precise rank.
T * allDown (unsigned int rank, unsigned int width)
 Get all neighbor down values for the element to a precise rank.
T * allRightDown (unsigned int rank, unsigned int width)
 Get all neighbor right down values for the element to a precise rank.
T * allLeftDown (unsigned int rank, unsigned int width)
 Get all neighbor left down values for the element to a precise rank.
T * allRightUp (unsigned int rank, unsigned int width)
 Get all neighbor right up values for the element to a precise rank.
T * allLeftUp (unsigned int rank, unsigned int width)
 Get all neighbor left up values for the element to a precise rank.
right (unsigned int rank)
 Get the nearest neighbor right value for the element to a precise rank.
left (unsigned int rank)
 Get the nearest neighbor left value for the element to a precise rank.
up (unsigned int rank, unsigned int width)
 Get the nearest neighbor up value for the element to a precise rank.
down (unsigned int rank, unsigned int width)
 Get the nearest neighbor down value for the element to a precise rank.
rightDown (unsigned int rank, unsigned int width)
 Get the nearest neighbor right down value for the element to a precise rank.
leftDown (unsigned int rank, unsigned int width)
 Get the nearest neighbor left down value for the element to a precise rank.
rightUp (unsigned int rank, unsigned int width)
 Get the nearest neighbor right up value for the element to a precise rank.
leftUp (unsigned int rank, unsigned int width)
 Get the nearest neighbor left up value for the element to a precise rank.
T * allX (unsigned int rank)
 Get all values along X axe for the element to a precise rank.
void allX (unsigned int rank, T *t)
 Get all values along X axe for the element to a precise rank.
T * allY (unsigned int rank, unsigned int width)
 Get all values along Y axe for the element to a precise rank.
void allY (unsigned int rank, unsigned int width, T *t)
 Get all values along Y axe for the element to a precise rank.
T * eight (unsigned int rank, unsigned int width)
 Get all 8 directions neighbor values for the element to a precise rank.
T * four (unsigned int rank, unsigned int width)
 Get all 4 directions neighbor values for the element to a precise rank.
inright (unsigned int rank)
 Get the nearest right neighbor value inside the domain to a precise rank.
inleft (unsigned int rank)
 Get the nearest left neighbor value inside the domain to a precise rank.
inup (unsigned int rank, unsigned int width)
 Get the nearest up neighbor value inside the domain to a precise rank.
indown (unsigned int rank, unsigned int width)
 Get the nearest down neighbor value inside the domain to a precise rank.
void indexesIt (unsigned int rank, int &col, int &li)
 Get the indexes associated to a precise rank.

Protected Attributes

int mpi_ranks [8]
unsigned int beginPhBLeft
unsigned int beginPhBRight
unsigned int beginPhBUp
unsigned int beginPhBDown
unsigned int endPhBLeft
unsigned int endPhBRight
unsigned int endPhBUp
unsigned int endPhBDown

Detailed Description

template<class T, int R>
struct skelgis::DMatrix_impl< T, R, false >

DMatrix_impl class.

template of the distributed matrix implementation of SkelGIS. This is the first specialization of the DMatrix_impl.

Template Parameters:
Tis the type of data to store in the DMatrix_impl
Ris the overlap distance needed by the calculation, in other words, the size of the physical border needed The line template parameter is specialized with the false value. In this case the parallel data distribution will be done along height and width (by block).

Definition at line 1802 of file dmatrix_impl.hpp.


Constructor & Destructor Documentation

template<class T , int R>
skelgis::DMatrix_impl< T, R, false >::DMatrix_impl ( HEADER  h,
const T  value,
bool  loc = false 
) [inline]

constructor of the distributed matrix

This constructor will simply allocate the good space.

Parameters:
his the header to use to build your matrix
valueis the default value to put in the matrix
locis a boolean value to indicate if the DMatrix_impl has to stay local to one MPI process (used in ApplyReduction).

Definition at line 2833 of file dmatrix_impl.hpp.

template<class T , int R>
skelgis::DMatrix_impl< T, R, false >::DMatrix_impl ( const char *  binFile,
bool  loc = false 
) [inline]

constructor of the distributed matrix

The constructor evaluate how to divide the matrix in submatrice and do the work.

Parameters:
binFileis the path of the binary file you want to work on
locis a boolean value to indicate if the DMatrix_impl has to stay local to one MPI process (used in ApplyReduction).

Definition at line 2851 of file dmatrix_impl.hpp.


Member Function Documentation

template<class T , int R>
T* skelgis::DMatrix_impl< T, R, false >::allDown ( unsigned int  rank,
unsigned int  width 
) [inline, protected]

Get all neighbor down values for the element to a precise rank.

Parameters:
rankis the rank at which the neighbor values are wanted
Returns:
table of neighbor values

Definition at line 2414 of file dmatrix_impl.hpp.

template<class T , int R>
T* skelgis::DMatrix_impl< T, R, false >::allLeft ( unsigned int  rank) [inline, protected]

Get all neighbor left values for the element to a precise rank.

Parameters:
rankis the rank at which the neighbor values are wanted
Returns:
table of neighbor values

Definition at line 2376 of file dmatrix_impl.hpp.

template<class T , int R>
T* skelgis::DMatrix_impl< T, R, false >::allLeftDown ( unsigned int  rank,
unsigned int  width 
) [inline, protected]

Get all neighbor left down values for the element to a precise rank.

Parameters:
rankis the rank at which the neighbor values are wanted
Returns:
table of neighbor values

Definition at line 2452 of file dmatrix_impl.hpp.

template<class T , int R>
T* skelgis::DMatrix_impl< T, R, false >::allLeftUp ( unsigned int  rank,
unsigned int  width 
) [inline, protected]

Get all neighbor left up values for the element to a precise rank.

Parameters:
rankis the rank at which the neighbor values are wanted
Returns:
table of neighbor values

Definition at line 2490 of file dmatrix_impl.hpp.

template<class T , int R>
T* skelgis::DMatrix_impl< T, R, false >::allRight ( unsigned int  rank) [inline, protected]

Get all neighbor right values for the element to a precise rank.

Parameters:
rankis the rank at which the neighbor values are wanted
Returns:
table of neighbor values

Definition at line 2357 of file dmatrix_impl.hpp.

template<class T , int R>
T* skelgis::DMatrix_impl< T, R, false >::allRightDown ( unsigned int  rank,
unsigned int  width 
) [inline, protected]

Get all neighbor right down values for the element to a precise rank.

Parameters:
rankis the rank at which the neighbor values are wanted
Returns:
table of neighbor values

Definition at line 2433 of file dmatrix_impl.hpp.

template<class T , int R>
T* skelgis::DMatrix_impl< T, R, false >::allRightUp ( unsigned int  rank,
unsigned int  width 
) [inline, protected]

Get all neighbor right up values for the element to a precise rank.

Parameters:
rankis the rank at which the neighbor values are wanted
Returns:
table of neighbor values

Definition at line 2471 of file dmatrix_impl.hpp.

template<class T , int R>
T* skelgis::DMatrix_impl< T, R, false >::allUp ( unsigned int  rank,
unsigned int  width 
) [inline, protected]

Get all neighbor up values for the element to a precise rank.

Parameters:
rankis the rank at which the neighbor values are wanted
Returns:
table of neighbor values

Definition at line 2395 of file dmatrix_impl.hpp.

template<class T , int R>
T* skelgis::DMatrix_impl< T, R, false >::allX ( unsigned int  rank) [inline, protected]

Get all values along X axe for the element to a precise rank.

Equivalent to allLeft and allRight with a single call.

Parameters:
rankis the rank at which the neighbor value is wanted
Returns:
a table of all neighbor values along X

Definition at line 2613 of file dmatrix_impl.hpp.

template<class T , int R>
void skelgis::DMatrix_impl< T, R, false >::allX ( unsigned int  rank,
T *  t 
) [inline, protected]

Get all values along X axe for the element to a precise rank.

Equivalent to allLeft and allRight with a single call.

Parameters:
rankis the rank at which the neighbor value is wanted
resulttable of all neighbor values along X

Definition at line 2639 of file dmatrix_impl.hpp.

template<class T , int R>
T* skelgis::DMatrix_impl< T, R, false >::allY ( unsigned int  rank,
unsigned int  width 
) [inline, protected]

Get all values along Y axe for the element to a precise rank.

Equivalent to allDown and allUp with a single call.

Parameters:
rankis the rank at which the neighbor value is wanted
Returns:
a table of all neighbor values along X

Definition at line 2663 of file dmatrix_impl.hpp.

template<class T , int R>
void skelgis::DMatrix_impl< T, R, false >::allY ( unsigned int  rank,
unsigned int  width,
T *  t 
) [inline, protected]

Get all values along Y axe for the element to a precise rank.

Equivalent to allDown and allUp with a single call.

Parameters:
rankis the rank at which the neighbor value is wanted
resulttable of all neighbor values along X

Definition at line 2690 of file dmatrix_impl.hpp.

template<class T , int R>
iterator<T,R> skelgis::DMatrix_impl< T, R, false >::begin ( ) [inline]

Get the beginning iterator of the DMatrix (on the first element of the DMatrix)

This method exists for each type of iterator in SkelGIS.

Returns:
the iterator of the first element

Definition at line 2982 of file dmatrix_impl.hpp.

template<class T , int R>
void skelgis::DMatrix_impl< T, R, false >::create ( ) [inline, protected]

Creation of the ditributed matrix.

Data distribution and construction of the parallel data structure.

Definition at line 1819 of file dmatrix_impl.hpp.

template<class T , int R>
T skelgis::DMatrix_impl< T, R, false >::down ( unsigned int  rank,
unsigned int  width 
) [inline, protected]

Get the nearest neighbor down value for the element to a precise rank.

Parameters:
rankis the rank at which the neighbor value is wanted
Returns:
the neighbor value

Definition at line 2547 of file dmatrix_impl.hpp.

template<class T , int R>
T* skelgis::DMatrix_impl< T, R, false >::eight ( unsigned int  rank,
unsigned int  width 
) [inline, protected]

Get all 8 directions neighbor values for the element to a precise rank.

Equivalent to leftUp, up, rightUp, right, rightDown, down, leftDown and left with a single call.

Parameters:
rankis the rank at which the neighbor value is wanted
Returns:
a table of all 8 directions neighbor values

Definition at line 2715 of file dmatrix_impl.hpp.

template<class T , int R>
iterator<T,R> skelgis::DMatrix_impl< T, R, false >::end ( ) [inline]

Get the ending iterator of the DMatrix (on the last element of the DMatrix)

This method exists for each type of iterator in SkelGIS.

Returns:
the iterator of the last element

Definition at line 2998 of file dmatrix_impl.hpp.

template<class T , int R>
T* skelgis::DMatrix_impl< T, R, false >::four ( unsigned int  rank,
unsigned int  width 
) [inline, protected]

Get all 4 directions neighbor values for the element to a precise rank.

Equivalent to up, right, down and left with a single call.

Parameters:
rankis the rank at which the neighbor value is wanted
Returns:
a table of all 8 directions neighbor values

Definition at line 2737 of file dmatrix_impl.hpp.

template<class T , int R>
T* skelgis::DMatrix_impl< T, R, false >::get4 ( iterator< T, R >  it) [inline]

Get all 4 directions neighbor values for the element at iterator it.

Equivalent to getUp, getRight, getDown and getLeft with a single call.

Parameters:
itis the iterator position
Returns:
a table of all 4 directions neighbor values

Definition at line 3525 of file dmatrix_impl.hpp.

template<class T , int R>
T* skelgis::DMatrix_impl< T, R, false >::get8 ( iterator< T, R >  it) [inline]

Get all 8 directions neighbor values for the element at iterator it.

Equivalent to getLeftUp, getUp, getRightUp, getRight, getRightDown, getDown, getLeftDown and getLeft with a single call.

Parameters:
itis the iterator position
Returns:
a table of all 8 directions neighbor values

Definition at line 3513 of file dmatrix_impl.hpp.

template<class T , int R>
T* skelgis::DMatrix_impl< T, R, false >::getAllDown ( iterator< T, R >  it) [inline]

Get all neighbor down values for the element at iterator it.

The returned table will contain R elements. These elements are the R values on the down of the current it. This method exists for each type of iterator with down values in SkelGIS.

Parameters:
itis the iterator position
Returns:
a table of down values

Definition at line 3292 of file dmatrix_impl.hpp.

template<class T , int R>
T* skelgis::DMatrix_impl< T, R, false >::getAllLeft ( iterator< T, R >  it) [inline]

Get all neighbor left values for the element at iterator it.

The returned table will contain R elements. These elements are the R values on the left of the current it. This method exists for each type of iterator with left values in SkelGIS.

Parameters:
itis the iterator position
Returns:
a table of left values

Definition at line 3262 of file dmatrix_impl.hpp.

template<class T , int R>
T* skelgis::DMatrix_impl< T, R, false >::getAllLeftDown ( iterator< T, R >  it) [inline]

Get all neighbor left down values for the element at iterator it.

The returned table will contain R elements. These elements are the R values on the left down of the current it. This method exists for each type of iterator with left down values in SkelGIS.

Parameters:
itis the iterator position
Returns:
a table of left down values

Definition at line 3321 of file dmatrix_impl.hpp.

template<class T , int R>
T* skelgis::DMatrix_impl< T, R, false >::getAllLeftUp ( iterator< T, R >  it) [inline]

Get all neighbor left up values for the element at iterator it.

The returned table will contain R elements. These elements are the R values on the left up of the current it. This method exists for each type of iterator with left up values in SkelGIS.

Parameters:
itis the iterator position
Returns:
a table of left up values

Definition at line 3349 of file dmatrix_impl.hpp.

template<class T , int R>
T* skelgis::DMatrix_impl< T, R, false >::getAllRight ( iterator< T, R >  it) [inline]

Get all neighbor right values for the element at iterator it.

The returned table will contain R elements. These elements are the R values on the right of the current it. This method exists for each type of iterator with right values in SkelGIS.

Parameters:
itis the iterator position
Returns:
a table of right values

Definition at line 3247 of file dmatrix_impl.hpp.

template<class T , int R>
T* skelgis::DMatrix_impl< T, R, false >::getAllRightDown ( iterator< T, R >  it) [inline]

Get all neighbor right down values for the element at iterator it.

The returned table will contain R elements. These elements are the R values on the right down of the current it. This method exists for each type of iterator with right down values in SkelGIS.

Parameters:
itis the iterator position
Returns:
a table of right down values

Definition at line 3307 of file dmatrix_impl.hpp.

template<class T , int R>
T* skelgis::DMatrix_impl< T, R, false >::getAllRightUp ( iterator< T, R >  it) [inline]

Get all neighbor right up values for the element at iterator it.

The returned table will contain R elements. These elements are the R values on the right up of the current it. This method exists for each type of iterator with right up values in SkelGIS.

Parameters:
itis the iterator position
Returns:
a table of right up values

Definition at line 3335 of file dmatrix_impl.hpp.

template<class T , int R>
T* skelgis::DMatrix_impl< T, R, false >::getAllUp ( iterator< T, R >  it) [inline]

Get all neighbor up values for the element at iterator it.

The returned table will contain R elements. These elements are the R values on the up of the current it. This method exists for each type of iterator with up values in SkelGIS.

Parameters:
itis the iterator position
Returns:
a table of up values

Definition at line 3277 of file dmatrix_impl.hpp.

template<class T , int R>
T* skelgis::DMatrix_impl< T, R, false >::getAllX ( iterator< T, R >  it) [inline]

Get all values along X axe for the element at iterator it.

Equivalent to getAllLeft and getAllRight with a single call. This method exists for each type of iterator with left and right values in SkelGIS.

Parameters:
itis the iterator position
Returns:
a table of all neighbor values along X

Definition at line 3462 of file dmatrix_impl.hpp.

template<class T , int R>
void skelgis::DMatrix_impl< T, R, false >::getAllX ( iterator< T, R >  it,
T *  t 
) [inline]

Get all values along X axe for the element at iterator it.

Equivalent to getAllLeft and getAllRight with a single call. This method exists for each type of iterator with left and right values in SkelGIS.

Parameters:
itis the iterator position
resulttable of all neighbor values along X

Definition at line 3475 of file dmatrix_impl.hpp.

template<class T , int R>
T* skelgis::DMatrix_impl< T, R, false >::getAllY ( iterator< T, R >  it) [inline]

Get all values along Y axe for the element at iterator it.

Equivalent to getAllUp and getAllDown with a single call. This method exists for each type of iterator with left and right values in SkelGIS.

Parameters:
itis the iterator position
Returns:
a table of all neighbor values along Y

Definition at line 3488 of file dmatrix_impl.hpp.

template<class T , int R>
void skelgis::DMatrix_impl< T, R, false >::getAllY ( iterator< T, R >  it,
T *  t 
) [inline]

Get all values along Y axe for the element at iterator it.

Equivalent to getAllUp and getAllDown with a single call. This method exists for each type of iterator with left and right values in SkelGIS.

Parameters:
itis the iterator position
resulttable of all neighbor values along Y

Definition at line 3501 of file dmatrix_impl.hpp.

template<class T , int R>
void skelgis::DMatrix_impl< T, R, false >::getBorders ( ) [inline]

get borders

Get the borders from other processors MPI exchanges

Definition at line 3160 of file dmatrix_impl.hpp.

template<class T , int R>
T skelgis::DMatrix_impl< T, R, false >::getDown ( iterator< T, R >  it) [inline]

Get the nearest down neighbor value for the element at iterator it.

This method exists for each type of iterator with down value in SkelGIS.

Parameters:
itis the iterator position
Returns:
the down neighbor element value

Definition at line 3400 of file dmatrix_impl.hpp.

template<class T , int R>
T* skelgis::DMatrix_impl< T, R, false >::getDownBorderToSend ( ) [inline, protected]

Get the down border to send to neighbor processors.

Returns:
list of values

Definition at line 2176 of file dmatrix_impl.hpp.

template<class T , int R>
T* skelgis::DMatrix_impl< T, R, false >::getDownLeftBorderToSend ( ) [inline, protected]

Get the down left border to send to neighbor processors.

Returns:
list of values

Definition at line 2248 of file dmatrix_impl.hpp.

template<class T , int R>
T* skelgis::DMatrix_impl< T, R, false >::getDownRightBorderToSend ( ) [inline, protected]

Get the down right border to send to neighbor processors.

Returns:
list of values

Definition at line 2212 of file dmatrix_impl.hpp.

template<class T , int R>
void skelgis::DMatrix_impl< T, R, false >::getIndexes ( iterator< T, R >  it,
int &  col,
int &  li 
) [inline]

get the indexes of the iterator on the matrix

Parameters:
itis the iterator from which the indexes will be taken
xis the iterator position x returned
yis the iterator position y returned

Definition at line 3062 of file dmatrix_impl.hpp.

template<class T , int R>
T skelgis::DMatrix_impl< T, R, false >::getInDown ( iterator_phb_up< T, R >  it) [inline]

Get the nearest down neighbor value inside the domain, for physical up border iterators.

This work for every size of R and will always give the nearest down inside-domain value.

Parameters:
itis the physical border iterator position
Returns:
the neighbor value

Definition at line 3564 of file dmatrix_impl.hpp.

template<class T , int R>
T skelgis::DMatrix_impl< T, R, false >::getInLeft ( iterator_phb_right< T, R >  it) [inline]

Get the nearest left neighbor value inside the domain, for physical right border iterators.

This work for every size of R and will always give the nearest left inside-domain value.

Parameters:
itis the physical border iterator position
Returns:
the neighbor value

Definition at line 3546 of file dmatrix_impl.hpp.

template<class T , int R>
T skelgis::DMatrix_impl< T, R, false >::getInRight ( iterator_phb_left< T, R >  it) [inline]

Get the nearest right neighbor value inside the domain, for physical left border iterators.

This work for every size of R and will always give the nearest right inside-domain value.

Parameters:
itis the physical border iterator position
Returns:
the neighbor value

Definition at line 3537 of file dmatrix_impl.hpp.

template<class T , int R>
T skelgis::DMatrix_impl< T, R, false >::getInUp ( iterator_phb_down< T, R >  it) [inline]

Get the nearest up neighbor value inside the domain, for physical down border iterators.

This work for every size of R and will always give the nearest up inside-domain value.

Parameters:
itis the physical border iterator position
Returns:
the neighbor value

Definition at line 3555 of file dmatrix_impl.hpp.

template<class T , int R>
iterator<T,R> skelgis::DMatrix_impl< T, R, false >::getIterator ( int  col,
int  li 
) [inline]

get the iterator on the matrix at position (x,y)

Parameters:
xis row index y is column index
Returns:
returns the iterator at position (x,y)

Definition at line 3014 of file dmatrix_impl.hpp.

template<class T , int R>
iterator_cont<T,R> skelgis::DMatrix_impl< T, R, false >::getIterator_cont ( int  col,
int  li 
) [inline]

get the iterator contiguous on the matrix at position (x,y)

Parameters:
xis row index y is column index
Returns:
returns the iterator at position (x,y)

Definition at line 3030 of file dmatrix_impl.hpp.

template<class T , int R>
iterator_rev<T,R> skelgis::DMatrix_impl< T, R, false >::getIterator_rev ( int  col,
int  li 
) [inline]

get the iterator reverse on the matrix at position (x,y)

Parameters:
xis row index y is column index
Returns:
returns the iterator at position (x,y)

Definition at line 3046 of file dmatrix_impl.hpp.

template<class T , int R>
T skelgis::DMatrix_impl< T, R, false >::getLeft ( iterator< T, R >  it) [inline]

Get the nearest left neighbor value for the element at iterator it.

This method exists for each type of iterator with left value in SkelGIS.

Parameters:
itis the iterator position
Returns:
the left neighbor element value

Definition at line 3374 of file dmatrix_impl.hpp.

template<class T , int R>
T* skelgis::DMatrix_impl< T, R, false >::getLeftBorderToSend ( ) [inline, protected]

Get the left border to send to neighbor processors.

Returns:
list of values

Definition at line 2104 of file dmatrix_impl.hpp.

template<class T , int R>
T skelgis::DMatrix_impl< T, R, false >::getLeftDown ( iterator< T, R >  it) [inline]

Get the nearest left down neighbor value for the element at iterator it.

This method exists for each type of iterator with left down value in SkelGIS.

Parameters:
itis the iterator position
Returns:
the left down neighbor element value

Definition at line 3425 of file dmatrix_impl.hpp.

template<class T , int R>
T skelgis::DMatrix_impl< T, R, false >::getLeftUp ( iterator< T, R >  it) [inline]

Get the nearest left up neighbor value for the element at iterator it.

This method exists for each type of iterator with left up value in SkelGIS.

Parameters:
itis the iterator position
Returns:
the left up neighbor element value

Definition at line 3449 of file dmatrix_impl.hpp.

template<class T , int R>
void skelgis::DMatrix_impl< T, R, false >::getNeighborRanks ( ) [inline, protected]

Get ranks.

Get the ranks of the 8 neighbors for MPI exchanges

Returns:
if the value is -55555 then there is no neighbor in this direction if the value is >0 it represent the MPI rank concerned by the exchange

Definition at line 2032 of file dmatrix_impl.hpp.

template<class T , int R>
unsigned int skelgis::DMatrix_impl< T, R, false >::getRank ( int  c,
int  cs,
int  r 
) [inline, protected]

Get rank from a column number and a row number.

Parameters:
columnis the column number
columnsis the total number of columns
rowis the row number
Returns:
the rank

Definition at line 2017 of file dmatrix_impl.hpp.

template<class T , int R>
T skelgis::DMatrix_impl< T, R, false >::getRight ( iterator< T, R >  it) [inline]

Get the nearest right neighbor value for the element at iterator it.

This method exists for each type of iterator with right value in SkelGIS.

Parameters:
itis the iterator position
Returns:
the right neighbor element value

Definition at line 3361 of file dmatrix_impl.hpp.

template<class T , int R>
T* skelgis::DMatrix_impl< T, R, false >::getRightBorderToSend ( ) [inline, protected]

Get the right border to send to neighbor processors.

Returns:
list of values

Definition at line 2068 of file dmatrix_impl.hpp.

template<class T , int R>
T skelgis::DMatrix_impl< T, R, false >::getRightDown ( iterator< T, R >  it) [inline]

Get the nearest right down neighbor value for the element at iterator it.

This method exists for each type of iterator with right down value in SkelGIS.

Parameters:
itis the iterator position
Returns:
the right down neighbor element value

Definition at line 3413 of file dmatrix_impl.hpp.

template<class T , int R>
T skelgis::DMatrix_impl< T, R, false >::getRightUp ( iterator< T, R >  it) [inline]

Get the nearest right up neighbor value for the element at iterator it.

This method exists for each type of iterator with right up value in SkelGIS.

Parameters:
itis the iterator position
Returns:
the right up neighbor element value

Definition at line 3437 of file dmatrix_impl.hpp.

template<class T , int R>
T skelgis::DMatrix_impl< T, R, false >::getUp ( iterator< T, R >  it) [inline]

Get the nearest up neighbor value for the element at iterator it.

This method exists for each type of iterator with up value in SkelGIS.

Parameters:
itis the iterator position
Returns:
the up neighbor element value

Definition at line 3387 of file dmatrix_impl.hpp.

template<class T , int R>
T* skelgis::DMatrix_impl< T, R, false >::getUpBorderToSend ( ) [inline, protected]

Get the up border to send to neighbor processors.

Returns:
list of values

Definition at line 2140 of file dmatrix_impl.hpp.

template<class T , int R>
T* skelgis::DMatrix_impl< T, R, false >::getUpLeftBorderToSend ( ) [inline, protected]

Get the up left border to send to neighbor processors.

Returns:
list of values

Definition at line 2284 of file dmatrix_impl.hpp.

template<class T , int R>
T* skelgis::DMatrix_impl< T, R, false >::getUpRightBorderToSend ( ) [inline, protected]

Get the up right border to send to neighbor processors.

Returns:
list of values

Definition at line 2320 of file dmatrix_impl.hpp.

template<class T , int R>
void skelgis::DMatrix_impl< T, R, false >::indexesIt ( unsigned int  rank,
int &  col,
int &  li 
) [inline, protected]

Get the indexes associated to a precise rank.

Parameters:
rankis the rank at which the indexes values are wanted
colis the column return value
liis the line return value

Definition at line 2811 of file dmatrix_impl.hpp.

template<class T , int R>
T skelgis::DMatrix_impl< T, R, false >::indown ( unsigned int  rank,
unsigned int  width 
) [inline, protected]

Get the nearest down neighbor value inside the domain to a precise rank.

This work for every size of R and will always give the nearest down inside-domain value.

Parameters:
rankis the rank at which the neighbor value is wanted
Returns:
the neighbor value

Definition at line 2797 of file dmatrix_impl.hpp.

template<class T , int R>
void skelgis::DMatrix_impl< T, R, false >::initValues ( value) [inline, protected]

Values initialization of the elements of the DMatrix_impl.

Parameters:
valueis the value to set to the elements

Definition at line 1899 of file dmatrix_impl.hpp.

template<class T , int R>
T skelgis::DMatrix_impl< T, R, false >::inleft ( unsigned int  rank) [inline, protected]

Get the nearest left neighbor value inside the domain to a precise rank.

This work for every size of R and will always give the nearest left inside-domain value.

Parameters:
rankis the rank at which the neighbor value is wanted
Returns:
the neighbor value

Definition at line 2769 of file dmatrix_impl.hpp.

template<class T , int R>
T skelgis::DMatrix_impl< T, R, false >::inright ( unsigned int  rank) [inline, protected]

Get the nearest right neighbor value inside the domain to a precise rank.

This work for every size of R and will always give the nearest right inside-domain value.

Parameters:
rankis the rank at which the neighbor value is wanted
Returns:
the neighbor value

Definition at line 2755 of file dmatrix_impl.hpp.

template<class T , int R>
T skelgis::DMatrix_impl< T, R, false >::inup ( unsigned int  rank,
unsigned int  width 
) [inline, protected]

Get the nearest up neighbor value inside the domain to a precise rank.

This work for every size of R and will always give the nearest up inside-domain value.

Parameters:
rankis the rank at which the neighbor value is wanted
Returns:
the neighbor value

Definition at line 2783 of file dmatrix_impl.hpp.

template<class T , int R>
T skelgis::DMatrix_impl< T, R, false >::left ( unsigned int  rank) [inline, protected]

Get the nearest neighbor left value for the element to a precise rank.

Parameters:
rankis the rank at which the neighbor value is wanted
Returns:
the neighbor value

Definition at line 2522 of file dmatrix_impl.hpp.

template<class T , int R>
T skelgis::DMatrix_impl< T, R, false >::leftDown ( unsigned int  rank,
unsigned int  width 
) [inline, protected]

Get the nearest neighbor left down value for the element to a precise rank.

Parameters:
rankis the rank at which the neighbor value is wanted
Returns:
the neighbor value

Definition at line 2573 of file dmatrix_impl.hpp.

template<class T , int R>
T skelgis::DMatrix_impl< T, R, false >::leftUp ( unsigned int  rank,
unsigned int  width 
) [inline, protected]

Get the nearest neighbor left up value for the element to a precise rank.

Parameters:
rankis the rank at which the neighbor value is wanted
Returns:
the neighbor value

Definition at line 2599 of file dmatrix_impl.hpp.

template<class T , int R>
void skelgis::DMatrix_impl< T, R, false >::read ( const char *  binFile) [inline, protected]

Read the zone of the binary file concerned for the current MPI process.

Parameters:
binFileis binary file to read

Definition at line 1963 of file dmatrix_impl.hpp.

template<class T , int R>
T skelgis::DMatrix_impl< T, R, false >::right ( unsigned int  rank) [inline, protected]

Get the nearest neighbor right value for the element to a precise rank.

Parameters:
rankis the rank at which the neighbor value is wanted
Returns:
the neighbor value

Definition at line 2509 of file dmatrix_impl.hpp.

template<class T , int R>
T skelgis::DMatrix_impl< T, R, false >::rightDown ( unsigned int  rank,
unsigned int  width 
) [inline, protected]

Get the nearest neighbor right down value for the element to a precise rank.

Parameters:
rankis the rank at which the neighbor value is wanted
Returns:
the neighbor value

Definition at line 2560 of file dmatrix_impl.hpp.

template<class T , int R>
T skelgis::DMatrix_impl< T, R, false >::rightUp ( unsigned int  rank,
unsigned int  width 
) [inline, protected]

Get the nearest neighbor right up value for the element to a precise rank.

Parameters:
rankis the rank at which the neighbor value is wanted
Returns:
the neighbor value

Definition at line 2586 of file dmatrix_impl.hpp.

template<class T , int R>
void skelgis::DMatrix_impl< T, R, false >::setDownBorder ( T *  values) [inline, protected]

Set the down border ghost cells with neighbor values from processors.

Parameters:
valuesis the table values to fill ghost cells with

Definition at line 2197 of file dmatrix_impl.hpp.

template<class T , int R>
void skelgis::DMatrix_impl< T, R, false >::setDownLeftBorder ( T *  values) [inline, protected]

Set the down left border ghost cells with neighbor values from processors.

Parameters:
valuesis the table values to fill ghost cells with

Definition at line 2269 of file dmatrix_impl.hpp.

template<class T , int R>
void skelgis::DMatrix_impl< T, R, false >::setDownPhysicalBorder ( val) [inline]

to set all the values on the down of physical border of the matrix

Parameters:
valis the value to set

Definition at line 2968 of file dmatrix_impl.hpp.

template<class T , int R>
void skelgis::DMatrix_impl< T, R, false >::setDownRightBorder ( T *  values) [inline, protected]

Set the down right border ghost cells with neighbor values from processors.

Parameters:
valuesis the table values to fill ghost cells with

Definition at line 2233 of file dmatrix_impl.hpp.

template<class T , int R>
void skelgis::DMatrix_impl< T, R, false >::setGlobalMiddleValue ( val) [inline]

Set value in the global middle.

Parameters:
valis the value to affect

Definition at line 2877 of file dmatrix_impl.hpp.

template<class T , int R>
void skelgis::DMatrix_impl< T, R, false >::setLeftBorder ( T *  values) [inline, protected]

Set the left border ghost cells with neighbor values from processors.

Parameters:
valuesis the table values to fill ghost cells with

Definition at line 2125 of file dmatrix_impl.hpp.

template<class T , int R>
void skelgis::DMatrix_impl< T, R, false >::setLeftPhysicalBorder ( val) [inline]

to set all the values on the left of physical border of the matrix

Parameters:
valis the value to set

Definition at line 2942 of file dmatrix_impl.hpp.

template<class T , int R>
void skelgis::DMatrix_impl< T, R, false >::setPhysicalBorder ( val) [inline]

to set all the values of the physical border of the matrix

Parameters:
valis the value to set

Definition at line 2904 of file dmatrix_impl.hpp.

template<class T , int R>
void skelgis::DMatrix_impl< T, R, false >::setRightBorder ( T *  values) [inline, protected]

Set the right border ghost cells with neighbor values from processors.

Parameters:
valuesis the table values to fill ghost cells with

Definition at line 2089 of file dmatrix_impl.hpp.

template<class T , int R>
void skelgis::DMatrix_impl< T, R, false >::setRightPhysicalBorder ( val) [inline]

to set all the values on the right of physical border of the matrix

Parameters:
valis the value to set

Definition at line 2929 of file dmatrix_impl.hpp.

template<class T , int R>
void skelgis::DMatrix_impl< T, R, false >::setUpBorder ( T *  values) [inline, protected]

Set the up border ghost cells with neighbor values from processors.

Parameters:
valuesis the table values to fill ghost cells with

Definition at line 2161 of file dmatrix_impl.hpp.

template<class T , int R>
void skelgis::DMatrix_impl< T, R, false >::setUpLeftBorder ( T *  values) [inline, protected]

Set the up left border ghost cells with neighbor values from processors.

Parameters:
valuesis the table values to fill ghost cells with

Definition at line 2305 of file dmatrix_impl.hpp.

template<class T , int R>
void skelgis::DMatrix_impl< T, R, false >::setUpPhysicalBorder ( val) [inline]

to set all the values on the up of physical border of the matrix

Parameters:
valis the value to set

Definition at line 2955 of file dmatrix_impl.hpp.

template<class T , int R>
void skelgis::DMatrix_impl< T, R, false >::setUpRightBorder ( T *  values) [inline, protected]

Set the up right border ghost cells with neighbor values from processors.

Parameters:
valuesis the table values to fill ghost cells with

Definition at line 2341 of file dmatrix_impl.hpp.

template<class T , int R>
T skelgis::DMatrix_impl< T, R, false >::up ( unsigned int  rank,
unsigned int  width 
) [inline, protected]

Get the nearest neighbor up value for the element to a precise rank.

Parameters:
rankis the rank at which the neighbor value is wanted
Returns:
the neighbor value

Definition at line 2535 of file dmatrix_impl.hpp.

template<class T , int R>
void skelgis::DMatrix_impl< T, R, false >::write ( char *  binFile) [inline]

Write the zone file concerned for the current MPI process.

write the MPI prcess zone, and spread the data in the subMatrices OpenMP only one submatrice if OpenMP is disabled

Parameters:
binFileis binary file to write in

Definition at line 3107 of file dmatrix_impl.hpp.


Member Data Documentation

template<class T , int R>
unsigned int skelgis::DMatrix_impl< T, R, false >::beginPhBDown [protected]

begining indexes for the physical borders iterators

Definition at line 1811 of file dmatrix_impl.hpp.

template<class T , int R>
HEADER skelgis::DMatrix_impl< T, R, false >::border_head

Header defining the current local matrix with overlap R

Definition at line 1807 of file dmatrix_impl.hpp.

template<class T , int R>
unsigned int skelgis::DMatrix_impl< T, R, false >::endPhBDown [protected]

ending indexes for the physical borders iterators

Definition at line 1812 of file dmatrix_impl.hpp.

template<class T , int R>
int skelgis::DMatrix_impl< T, R, false >::mpi_ranks[8] [protected]

table of size 8 for the neighbor processes to make MPI exchanges

Definition at line 1810 of file dmatrix_impl.hpp.


The documentation for this struct was generated from the following file:
 All Classes Files Functions Variables Defines