Let3d_MPI Class Reference

#include <let3d_mpi.hpp>

Inheritance diagram for Let3d_MPI:

ComObject_MPI List of all members.

Detailed Description

LET = Local Essential Tree. See detailed description for more information.

The LET is a global tree subset that a processor needs to evaluate the interaction on particles which belong to itself (owns). That is, it is a unique identifier: a set of points and its bounding box. To this extent, for a box/node B, the information from B's lists are needed. Specifically, the U, V, W and X lists are used for computation. More information is in the descriptiptions of _Unodes, etc. and the papers. For a processor P, P's LET contains the boxes which P "owns" and boxes in the U,V,W and X lists of these boxes. For a box, B, owned by P, P is a contributor of B. If B is in the U,V,W or X lists of a box P owns, P is a user of B. For more information, see "A New Parallel Kernel-Independent Fast Multipole Method" by Ying, Biros, Zorin and Langston.

Definition at line 51 of file let3d_mpi.hpp.

Public Member Functions

 Let3d_MPI (const string &p)
 ~Let3d_MPI ()
Vec & srcPos ()
Vec & trgPos ()
Point3 & ctr ()
int & rootLevel ()
double radius ()
int & ptsMax ()
int & maxLevel ()
int setup ()
int print ()
int srcData ()
int trgData ()
int calGlbNodeLists (int gNodeIdx)
int dwnOrderCollect (vector< int > &)
int upwOrderCollect (vector< int > &)
vector< Node > & nodeVec ()
Nodenode (int gNodeIdx)
bool root (int gNodeIdx)
bool terminal (int gNodeIdx)
int parent (int gNodeIdx)
int child (int gNodeIdx, const Index3 &Idx)
Index3 path2Node (int gNodeIdx)
int depth (int gNodeIdx)
Point3 center (int gNodeIdx)
double radius (int gNodeIdx)
int & glbGlbSrcNodeCnt ()
int & glbGlbSrcExaCnt ()
int & lclGlbSrcNodeCnt ()
int & lclGlbSrcExaCnt ()
int & ctbSrcNodeCnt ()
int & ctbSrcExaCnt ()
vector< int > & ctb2GlbSrcNodeMap ()
vector< int > & ctb2GlbSrcExaMap ()
int & evaTrgNodeCnt ()
int & evaTrgExaCnt ()
int & usrSrcNodeCnt ()
int & usrSrcExaCnt ()
vector< int > & usr2GlbSrcNodeMap ()
vector< int > & usr2GlbSrcExaMap ()
int findGlbNode (int depth, const Index3 &path2Node)
bool adjacent (int me, int you)
int dim () const
int procLclNum (Vec pos)
int procGlbNum (Vec pos)
void procLclRan (Vec pos, int &beg, int &end)

Protected Attributes

Vec _srcPos
Vec _trgPos
Point3 _ctr
int _rootLevel
int _ptsMax
int _maxLevel
vector< Node_nodeVec
int _glbGlbSrcNodeCnt
int _glbGlbSrcExaCnt
int _lclGlbSrcNodeCnt
int _lclGlbSrcExaCnt
int _ctbSrcNodeCnt
int _ctbSrcExaCnt
vector< int > _ctb2GlbSrcNodeMap
vector< int > _ctb2GlbSrcExaMap
int _evaTrgNodeCnt
int _evaTrgExaCnt
int _usrSrcNodeCnt
int _usrSrcExaCnt
vector< int > _usr2GlbSrcNodeMap
vector< int > _usr2GlbSrcExaMap


class  Node
 The Node class stores information for a node or box in the octree. See for more detailed information. More...
class  NodeExt
 NodeExt stores information for a node such U, v, w, and X-lists as well as indices for contributor, evaluator and user nodes. More...

The documentation for this class was generated from the following files:
Generated on Sun Dec 4 21:12:41 2005 for fmm3d_mpi by  doxygen 1.4.5