IBAMR  IBAMR version 0.20.
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 coordinates that are zero up to rounding errors are set to zero.
  4. 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: