#include <source/mesh/clustering/AsyncBergerRigoutsos.h>
Inheritance diagram for SAMRAI::mesh::AsyncBergerRigoutsos< DIM >:
Public Member Functions | |
AsyncBergerRigoutsos (tbox::Pointer< tbox::Database > database) | |
Constructor. | |
~AsyncBergerRigoutsos (void) | |
Destructor. | |
void | findBoxesContainingTags (hier::BoxList< DIM > &boxes, const tbox::Pointer< hier::PatchLevel< DIM > > level, const int tag_data_index, const int tag_val, const hier::Box< DIM > &bound_box, const hier::IntVector< DIM > &min_box, const double efficiency_tol, const double combine_tol) const |
Implement the mesh::BoxGeneratorStrategy<DIM> interface method of the same name. |
This class uses the mesh::AsyncBergerRigoutsosNode class to carry out the Berger-Rigoutsos algorithm in parallel. It handles aspects not related that algorithm. It:
User inputs (default):
Debugging inputs (default):
SAMRAI::mesh::AsyncBergerRigoutsos< DIM >::AsyncBergerRigoutsos | ( | tbox::Pointer< tbox::Database > | database | ) |
Constructor.
SAMRAI::mesh::AsyncBergerRigoutsos< DIM >::~AsyncBergerRigoutsos | ( | void | ) |
Destructor.
Deallocate internal data.
void SAMRAI::mesh::AsyncBergerRigoutsos< DIM >::findBoxesContainingTags | ( | hier::BoxList< DIM > & | boxes, | |
const tbox::Pointer< hier::PatchLevel< DIM > > | level, | |||
const int | tag_data_index, | |||
const int | tag_val, | |||
const hier::Box< DIM > & | bound_box, | |||
const hier::IntVector< DIM > & | min_box, | |||
const double | efficiency_tol, | |||
const double | combine_tol | |||
) | const [virtual] |
Implement the mesh::BoxGeneratorStrategy<DIM> interface method of the same name.
Create a list of boxes that covers all integer tags on the patch level that match the specified tag value. Each box will be at least as large as the given minimum size and the tolerances will be met.
The efficiency tolerance is a threshold value for the percentage of tagged cells in each box. If this percentage is below the tolerance, the box will continue to be split into smaller boxes.
The combine tolerance is a threshold value for the sum of the volumes of two boxes into which a box may be potentially split. If ratio of that sum and the volume of the original box, the box will not be split.
This function is actually a switch for selecting one of several variations of the computational implementation of the algorithm. See the discussion above for a desription of the different options. All implementations should generate identical results, but the performance may vary on different systems. By default, the ORIGINAL algorithm is used when running on a single processor, and BINARY_TREE is used when running on multiple processors. The user may reset these options through input. See the discussion above for more information.
Implements SAMRAI::mesh::BoxGeneratorStrategy< DIM >.