Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::IGridMeshPartitioner Class Referenceabstract

Interface of a mesh partitioner on a grid. More...

#include <arcane/core/IGridMeshPartitioner.h>

Inheritance diagram for Arcane::IGridMeshPartitioner:
Collaboration diagram for Arcane::IGridMeshPartitioner:

Public Member Functions

virtual void setBoundingBox (Real3 min_val, Real3 max_val)=0
 Positions the bounding box of our subdomain.
virtual void setPartIndex (Int32 i, Int32 j, Int32 k)=0
 Index (i,j,k) of the part.
virtual void applyMeshPartitioning (IMesh *mesh)=0
 Applies the repartitioning to the mesh mesh.
Public Member Functions inherited from Arcane::IMeshPartitionerBase
virtual ~IMeshPartitionerBase ()=default
 Releases resources.
virtual void partitionMesh (bool initial_partition)=0
virtual IPrimaryMeshprimaryMesh ()=0
 Associated mesh.
virtual void notifyEndPartition ()=0
 Notification when a re-partitioning finishes (after entity exchange).

Detailed Description

Interface of a mesh partitioner on a grid.

This partitioner redistributes the mesh in a 2D or 3D grid.

The grid is composed of a set of parts, each part being defined by its bounding box (the coordinates of the two points at the ends of the grid) and an index (i,j,k). The dimensions of each part can be different but they must be consistent: all parts with the same index i must have the same bounding box x coordinate.


| 0,2 | 1,2 |2,2| 3,2 |

| 0,1 | 1,1 |2,1| 3,1 |

| 0,0 | 1,0 |2,0| 3,0 |

Instances of this class are single-use and must only be used for a single partitioning. The user must call setBoundingBox() and setPartIndex() and then perform the partitioning by calling applyMeshPartitioning().

Definition at line 53 of file IGridMeshPartitioner.h.

Member Function Documentation

◆ applyMeshPartitioning()

virtual void Arcane::IGridMeshPartitioner::applyMeshPartitioning ( IMesh * mesh)
pure virtual

Applies the repartitioning to the mesh mesh.

The setPartIndex() and setBoundingBox() methods must have been called previously. This method can only be called once per instance.

The partitioning uses a specific algorithm for calculating ghost cells to ensure that every cell in mesh that intersects the part specified in setBoundingBox() will be in this subdomain, possibly as a ghost cell.

Implemented in Arcane::SimpleGridMeshPartitioner.

◆ setBoundingBox()

virtual void Arcane::IGridMeshPartitioner::setBoundingBox ( Real3 min_val,
Real3 max_val )
pure virtual

Positions the bounding box of our subdomain.

For the algorithm to work, there must be no overlap between the bounding boxes of the subdomains.

Implemented in Arcane::SimpleGridMeshPartitioner.

◆ setPartIndex()

virtual void Arcane::IGridMeshPartitioner::setPartIndex ( Int32 i,
Int32 j,
Int32 k )
pure virtual

Index (i,j,k) of the part.

The indices start at zero. In 1D or 2D, the value of k is (-1). In 1D, the value of j is (-1)

Implemented in Arcane::SimpleGridMeshPartitioner.


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