#include <let3d_mpi.hpp>
Inheritance diagram for Let3d_MPI:

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 () |
| Node & | node (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 |
Classes | |
| 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... | |
1.4.5