#include <source/mesh/clustering/BergerRigoutsos.h>
Inheritance diagram for SAMRAI::mesh::BergerRigoutsos< DIM >:
Public Member Functions | |
virtual | ~BergerRigoutsos () |
BergerRigoutsos () | |
void | findBoxesContainingTags (hier::BoxList< DIM > &boxes, const tbox::Pointer< hier::PatchLevel< DIM > > level, const int 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 |
Static Public Member Functions | |
static void | setClusteringOption (const std::string &method=std::string()) |
The box generation algorithm is described in Berger and Rigoutsos, tbox::IEEE Trans. on Sys, Man, and Cyber (21)5:1278-1286.
NOTE: Algorithmic variations which may affect performance are available by calling the the static method BergerRigoutsos<DIM>::setClusteringOption(), which sets the option for all instances of the class.
SAMRAI::mesh::BergerRigoutsos< DIM >::~BergerRigoutsos | ( | ) | [virtual] |
Virtual destructor.
SAMRAI::mesh::BergerRigoutsos< DIM >::BergerRigoutsos | ( | ) |
The constructor queries the tbox::InputManager to determine which of the various findBoxesContainingTags algorithms should be used.
void SAMRAI::mesh::BergerRigoutsos< DIM >::setClusteringOption | ( | const std::string & | method = std::string() |
) | [static] |
Static function to set tag reduction option for clustering algorithm.
method | string identifying box intersection method. Valid choices are: "ORIGINAL" (default case for single processor), "ORIG_FAST_REDUCE", "COMMUNICATOR", and "BINARY_TREE" (default case for multiple processors). The default empty string argument resets the method to the default case. |
If an invalid non-empty string is passed, an unrecoverable error will result.
void SAMRAI::mesh::BergerRigoutsos< DIM >::findBoxesContainingTags | ( | hier::BoxList< DIM > & | boxes, | |
const tbox::Pointer< hier::PatchLevel< DIM > > | level, | |||
const int | 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] |
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
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.
Implements SAMRAI::mesh::BoxGeneratorStrategy< DIM >.