Arcane  4.1.12.0
User documentation
Loading...
Searching...
No Matches
Arcane::IMeshPartitionConstraintMng Class Referenceabstract

Interface of a mesh partitioning constraint manager. More...

#include <arcane/core/IMeshPartitionConstraintMng.h>

Public Member Functions

virtual ~IMeshPartitionConstraintMng ()=default
 Releases resources.
virtual void addConstraint (IMeshPartitionConstraint *constraint)=0
 Adds a constraint.
virtual void removeConstraint (IMeshPartitionConstraint *constraint)=0
 Removes a constraint.
virtual void computeAndApplyConstraints ()=0
 Computes and applies constraints.
virtual void computeConstraintList (Int64MultiArray2 &tied_uids)=0
 Computes constraints and returns a list of linked entities.
virtual void addWeakConstraint (IMeshPartitionConstraint *constraint)=0
 Adds a weak constraint.
virtual void removeWeakConstraint (IMeshPartitionConstraint *constraint)=0
 Removes a constraint.
virtual void computeAndApplyWeakConstraints ()=0
 Computes and applies constraints.
virtual void computeWeakConstraintList (Int64MultiArray2 &tied_uids)=0
 Computes constraints and returns a list of linked entities.

Detailed Description

Interface of a mesh partitioning constraint manager.

Definition at line 31 of file IMeshPartitionConstraintMng.h.

Member Function Documentation

◆ computeAndApplyConstraints()

virtual void Arcane::IMeshPartitionConstraintMng::computeAndApplyConstraints ( )
pure virtual

Computes and applies constraints.

It computes constraints on the mesh by applying the IMeshPartitionConstraint::addLinkedCell() method for each constraint and applies them by modifying the IItemFamily::itemsNewOwner() variable of the cells. All cells that must be linked in it are then placed in the same partition.

This operation does not guarantee that the resulting partitions are balanced in terms of load. For this, a re-partitioning service (IMeshPartitioner) must be used that takes these constraints into account.

This operation is collective.

◆ computeAndApplyWeakConstraints()

virtual void Arcane::IMeshPartitionConstraintMng::computeAndApplyWeakConstraints ( )
pure virtual

Computes and applies constraints.

It computes constraints on the mesh by applying the IMeshPartitionConstraint::addLinkedCell() method for each constraint and applies them by modifying the IItemFamily::itemsNewOwner() variable of the cells. All cells that must be linked in it are then placed in the same partition.

This operation does not guarantee that the resulting partitions are balanced in terms of load. For this, a re-partitioning service (IMeshPartitioner) must be used that takes these constraints into account.

This operation is collective.

◆ computeConstraintList()

virtual void Arcane::IMeshPartitionConstraintMng::computeConstraintList ( Int64MultiArray2 & tied_uids)
pure virtual

Computes constraints and returns a list of linked entities.

It computes constraints like computeAndApplyConstraints() but does not modify the owner. Instead, it returns a list containing lists of the uniqueId() of the entities that must be linked.

This operation is collective.

◆ computeWeakConstraintList()

virtual void Arcane::IMeshPartitionConstraintMng::computeWeakConstraintList ( Int64MultiArray2 & tied_uids)
pure virtual

Computes constraints and returns a list of linked entities.

It computes constraints like computeAndApplyConstraints() but does not modify the owner. Instead, it returns a list containing lists of the uniqueId() of the entities that must be linked.

This operation is collective.

◆ removeConstraint()

virtual void Arcane::IMeshPartitionConstraintMng::removeConstraint ( IMeshPartitionConstraint * constraint)
pure virtual

Removes a constraint.

The caller becomes the owner of constraint and must manage its destruction.

◆ removeWeakConstraint()

virtual void Arcane::IMeshPartitionConstraintMng::removeWeakConstraint ( IMeshPartitionConstraint * constraint)
pure virtual

Removes a constraint.

The caller becomes the owner of constraint and must manage its destruction.


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