IBAMR  IBAMR version 0.19.
Public Member Functions | Protected Member Functions | List of all members
IBTK::StableCentroidPartitioner Class Reference

A libMesh partitioner that partitions a mesh based on the x coordinate of each centroid in a numerically stable way. More...

#include <ibtk/StableCentroidPartitioner.h>

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

Public Member Functions

 StableCentroidPartitioner ()=default
 Constructor. More...
 
virtual std::unique_ptr< libMesh::Partitioner > clone () const override
 

Protected Member Functions

virtual void _do_partition (libMesh::MeshBase &mesh, const unsigned int n) override
 The function used to actually do the partitioning. More...
 

Detailed Description

This partitioner is intended only for internal use in IBAMR (e.g., to generate platform-independent partitionings of meshes). It differs from libMesh::CentroidPartitioner in a few significant ways:

  1. Centroids are sorted lexically instead of by a specified coordinate.
  2. To improve stability the least significant bits are cleared by casting the coordinates to and from single precision.
  3. To improve stability a stable sorting algorithm is used.

Constructor & Destructor Documentation

◆ StableCentroidPartitioner()

IBTK::StableCentroidPartitioner::StableCentroidPartitioner ( )
default

Member Function Documentation

◆ clone()

virtual std::unique_ptr<libMesh::Partitioner> IBTK::StableCentroidPartitioner::clone ( ) const
overridevirtual

◆ _do_partition()

virtual void IBTK::StableCentroidPartitioner::_do_partition ( libMesh::MeshBase &  mesh,
const unsigned int  n 
)
overrideprotectedvirtual

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