IBAMR
An adaptive and distributed-memory parallel implementation of the immersed boundary (IB) method
Public Member Functions | List of all members
IBTK::MergingLoadBalancer Class Reference

Class MergingLoadBalancer merges the boxes generated by a load balancer in a final step to decrease the total number of boxes. In essence, it postprocesses the list of boxes generated by its parent class to try and coalesce the set of boxes on each process. More...

#include </home/runner/work/IBAMR/IBAMR/ibtk/include/ibtk/MergingLoadBalancer.h>

Inheritance diagram for IBTK::MergingLoadBalancer:
Inheritance graph
[legend]

Public Member Functions

virtual void loadBalanceBoxes (SAMRAI::hier::BoxArray< NDIM > &out_boxes, SAMRAI::hier::ProcessorMapping &mapping, const SAMRAI::hier::BoxList< NDIM > &in_boxes, const SAMRAI::tbox::Pointer< SAMRAI::hier::PatchHierarchy< NDIM > > hierarchy, int level_number, const SAMRAI::hier::BoxArray< NDIM > &physical_domain, const SAMRAI::hier::IntVector< NDIM > &ratio_to_hierarchy_level_zero, const SAMRAI::hier::IntVector< NDIM > &min_size, const SAMRAI::hier::IntVector< NDIM > &max_size, const SAMRAI::hier::IntVector< NDIM > &cut_factor, const SAMRAI::hier::IntVector< NDIM > &bad_interval) const override
 
- Public Member Functions inherited from SAMRAI::mesh::LoadBalancer< NDIM >
 LoadBalancer (const std::string &name, tbox::Pointer< tbox::Database > input_db=(tbox::Database *) NULL)
 
 LoadBalancer (tbox::Pointer< tbox::Database > input_db=(tbox::Database *) NULL)
 
void setMaxWorkloadFactor (double factor, int level_number=-1)
 
void setWorkloadTolerance (double tolerance, int level_number=-1)
 
void setWorkloadPatchDataIndex (int data_id, int level_number=-1)
 
void setUniformWorkload (int level_number=-1)
 
void setBinPackMethod (const std::string &method, int level_number=-1)
 
void setIgnoreLevelDomainIsSingleBox (bool flag)
 
bool getLoadBalanceDependsOnPatchData (int level_number) const
 
void loadBalanceBoxes (hier::BoxArray< NDIM > &out_boxes, hier::ProcessorMapping &mapping, const hier::BoxList< NDIM > &in_boxes, const tbox::Pointer< hier::PatchHierarchy< NDIM > > hierarchy, int level_number, const hier::BoxArray< NDIM > &physical_domain, const hier::IntVector< NDIM > &ratio_to_hierarchy_level_zero, const hier::IntVector< NDIM > &min_size, const hier::IntVector< NDIM > &max_size, const hier::IntVector< NDIM > &cut_factor, const hier::IntVector< NDIM > &bad_interval) const
 
virtual void printClassData (std::ostream &os) const
 
- Public Member Functions inherited from SAMRAI::mesh::LoadBalanceStrategy< DIM >
virtual void loadBalanceBoxes (hier::BoxArray< DIM > &out_boxes, hier::ProcessorMapping &mapping, const hier::BoxList< DIM > &in_boxes, const tbox::Pointer< hier::PatchHierarchy< DIM > > hierarchy, const int level_number, const hier::BoxArray< DIM > &physical_domain, const hier::IntVector< DIM > &ratio_to_hierarchy_level_zero, const hier::IntVector< DIM > &min_size, const hier::IntVector< DIM > &max_size, const hier::IntVector< DIM > &cut_factor, const hier::IntVector< DIM > &bad_interval) const=0
 

Detailed Description

Class MergingLoadBalancer merges the boxes generated by a load balancer in a final step to decrease the total number of boxes. In essence, it postprocesses the list of boxes generated by its parent class to try and coalesce the set of boxes on each process.

Note
During regridding, the boxes generated by this class are subsequently read by GriddingAlgorithm, which will enforce minimum and maximum size constraints; i.e., to take full advantage of this class one must set up the GriddingAlgorithm objects to have very large maximum box sizes.

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