IBAMR  IBAMR version 0.19.
Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | List of all members
SAMRAI::mesh::AsyncBergerRigoutsos< DIM > Class Template Reference

Asynchronous Berger-Rigoutsos implementation. This class is derived from the abstract base class mesh::BoxGeneratorStrategy<DIM>. Thus, it serves as a concrete implementation of the box generator Strategy pattern interface. More...

#include <AsyncBergerRigoutsos.h>

Inheritance diagram for SAMRAI::mesh::AsyncBergerRigoutsos< DIM >:
Inheritance graph
[legend]

Public Member Functions

 AsyncBergerRigoutsos (tbox::Pointer< tbox::Database > database)
 Constructor. More...
 
 ~AsyncBergerRigoutsos (void)
 Destructor. More...
 
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. More...
 

Private Member Functions

void assertNoMessageForPrivateCommunicator () const
 

Static Private Member Functions

static void freeTimers ()
 

Private Attributes

tbox::SAMRAI_MPI::comm d_mpi_communicator
 Communicator, which may be privately created. More...
 
bool d_log_node_history
 Whether to log execution node allocation and deallocation. More...
 
bool d_log_cluster_summary
 Whether to log cluster summary. More...
 
std::string d_owner_mode
 How to select the owner of a node. More...
 
bool d_use_level_boxes
 Whether to take advantage of level boxes data. More...
 
std::string d_algo_advance_mode
 Asynchronous mode for advancing algorithm. More...
 
hier::IntVector< DIM > d_max_gcw
 Max ghost cell width for overlap computation. More...
 

Static Private Attributes

static tbox::Pointer< tbox::Timert_run_abr
 
static tbox::Pointer< tbox::Timert_globalize_boxes
 

Detailed Description

template<int DIM>
class SAMRAI::mesh::AsyncBergerRigoutsos< DIM >

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):

Constructor & Destructor Documentation

◆ AsyncBergerRigoutsos()

◆ ~AsyncBergerRigoutsos()

template<int DIM>
SAMRAI::mesh::AsyncBergerRigoutsos< DIM >::~AsyncBergerRigoutsos ( void  )

Deallocate internal data.

Member Function Documentation

◆ findBoxesContainingTags()

template<int DIM>
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

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 >.

◆ assertNoMessageForPrivateCommunicator()

template<int DIM>
void SAMRAI::mesh::AsyncBergerRigoutsos< DIM >::assertNoMessageForPrivateCommunicator ( ) const
private

◆ freeTimers()

template<int DIM>
static void SAMRAI::mesh::AsyncBergerRigoutsos< DIM >::freeTimers ( )
staticprivate

Free static timers.

To be called by shutdown registry to make sure memory for timers does not leak.

Member Data Documentation

◆ d_mpi_communicator

template<int DIM>
tbox::SAMRAI_MPI::comm SAMRAI::mesh::AsyncBergerRigoutsos< DIM >::d_mpi_communicator
private

◆ d_log_node_history

template<int DIM>
bool SAMRAI::mesh::AsyncBergerRigoutsos< DIM >::d_log_node_history
private

◆ d_log_cluster_summary

template<int DIM>
bool SAMRAI::mesh::AsyncBergerRigoutsos< DIM >::d_log_cluster_summary
private

◆ d_owner_mode

template<int DIM>
std::string SAMRAI::mesh::AsyncBergerRigoutsos< DIM >::d_owner_mode
private

◆ d_use_level_boxes

template<int DIM>
bool SAMRAI::mesh::AsyncBergerRigoutsos< DIM >::d_use_level_boxes
private

◆ d_algo_advance_mode

template<int DIM>
std::string SAMRAI::mesh::AsyncBergerRigoutsos< DIM >::d_algo_advance_mode
private

◆ d_max_gcw

template<int DIM>
hier::IntVector<DIM> SAMRAI::mesh::AsyncBergerRigoutsos< DIM >::d_max_gcw
private

◆ t_run_abr

template<int DIM>
tbox::Pointer<tbox::Timer> SAMRAI::mesh::AsyncBergerRigoutsos< DIM >::t_run_abr
staticprivate

◆ t_globalize_boxes

template<int DIM>
tbox::Pointer<tbox::Timer> SAMRAI::mesh::AsyncBergerRigoutsos< DIM >::t_globalize_boxes
staticprivate

The documentation for this class was generated from the following file: