Closed sslattery closed 10 years ago
Splitting the search up into three smaller implementations:
CoarseGlobalSearch
: This search will take in a set of range entities on a given process, search through the bounding boxes of the domain entities on each process, and send the range centroid coordinates to their destinations in the domain entity decomposition.
CoarseLocalSearch
: This search will take the local set of domain entity centroids and construct a static (kD-Tree). The search returns a list of entities in the leaf of the tree where the input range centroid was found. Parameters for this tree are leaf size for construction and kNN for the search.
FineLocalSearch
: This search will take a range centroid and a domain entity found in the CoarseLocalSearch
and drive the infrastructure defined in EntityLocalMap
to map the range centroid to the space of the domain entity. If there is a mapping, the parametric coordinates will be returned.
A high level ParallelSearch
object will combine these individual pieces to produce the desired output. Parameters for this class include whether or not one would like to have multiple possible domain entities returned for a given range centroid or if the first domain entity containing a range centroid is satisfactory.
FineLocalSearch
and CoarseLocalSearch
have been completed and currently working on CoarseGlobalSearch
. For now, this search will only redistribute the range points into the parallel decomposition of the domain. If we want to use rendezvous for this piece, we will need to redistribute the full description of the domain entities. We don't have this in the API now so we just move the points.
Finished CoarseGlobalSearch
with some 3D tests. Need the following additional tests:
1) All-to-all communication pattern 2) Many-to-many communication pattern 3) Some procs have no domain entities 3) Some procs have no range entities
Finished extra CoarseGlobalSearch
including an extra test where points were distributed to multiple processes. Next is a basic implement ion of the ParallelSearch
interface that constructs the parallel CrsGraph
as well as MultiVector
objects containing the parametric coordinates of the mappings.
The basic implementation of ParallelSearch
is complete with a wide variety of test configurations spanning the same parallel configurations as the CoarseGlobalSearch
tests. We should use these same configurations for the interpolation operators.
Implement and unit test the ParallelSearch class under the defined interface.
Tests: