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

Interface of a mesh partitioner. More...

#include <arcane/core/IMeshPartitioner.h>

Public Member Functions

virtual void build ()=0
virtual void partitionMesh (bool initial_partition, Int32 nb_part)=0
virtual IMeshmesh () const =0
 Mesh associated with the partitioner.
virtual IPrimaryMeshprimaryMesh () override
 Associated mesh.
virtual void partitionMesh (bool initial_partition)=0
compact

{

Proportion of computation time of this subdomain compared to that of the subdomain that has the highest computation time.

virtual ARCANE_DEPRECATED_116 void setMaximumComputationTime (Real v)=0
 Sets the proportion of computation time.
virtual ARCANE_DEPRECATED_116 Real maximumComputationTime () const =0
virtual ARCANE_DEPRECATED_116 void setComputationTimes (RealConstArrayView v)=0
 Computation time of this subdomain. The first element indicates the computation time of the subdomain corresponding to calculations whose cost is proportional to the cells. The following must be associated with a variable (to be done).
virtual ARCANE_DEPRECATED_116 RealConstArrayView computationTimes () const =0
imbalance

Computation time imbalance. It is calculated as follows imbalance = (max_computation_time - min_computation_time) / min_computation_time;

virtual void setImbalance (Real v)=0
 Sets the computation time imbalance.
virtual Real imbalance () const =0
 Computation time imbalance.
virtual void setMaxImbalance (Real v)=0
 Sets the maximum allowed imbalance.
virtual Real maxImbalance () const =0
 Maximum allowed imbalance.
virtual ARCANE_DEPRECATED_116 void setCellsWeight (ArrayView< float > weights, Integer nb_weight)=0
 Allows defining the weights of objects to be partitioned: ILoadBalanceMng must now be used.
virtual ARCANE_DEPRECATED_116 ArrayView< float > cellsWeight () const =0
virtual void setILoadBalanceMng (ILoadBalanceMng *mng)=0
 Changes the ILoadBalanceMng to use.
virtual ILoadBalanceMngloadBalanceMng () const =0
Public Member Functions inherited from Arcane::IMeshPartitionerBase
virtual ~IMeshPartitionerBase ()=default
 Releases resources.
virtual void notifyEndPartition ()=0
 Notification when a re-partitioning finishes (after entity exchange).

Detailed Description

Interface of a mesh partitioner.

The partitioner reassigns entity owners. It does not directly perform entity exchange. The partitioner can use certain information such as timeRatio() or imbalance() to calculate an efficient partitioning.

Definition at line 36 of file IMeshPartitioner.h.

Member Function Documentation

◆ partitionMesh()

virtual void Arcane::IMeshPartitionerBase::partitionMesh ( bool initial_partition)
virtual

Re-partitions the mesh mesh

This method changes the owners of the entities and fills the IItemFamily::itemsNewOwner() variable of each entity family of the mesh mesh with the number of the new owning subdomain.

Note
This method is reserved for Arcane developers. If a module wishes to perform a re-partitioning, it must call the method IMeshUtilities::partitionAndExchangeMeshWithReplication() which handles both the partitioning and the exchange of information and supports domain replication.

Implements Arcane::IMeshPartitionerBase.

◆ primaryMesh()

IPrimaryMesh * Arcane::IMeshPartitioner::primaryMesh ( )
overridevirtual

Associated mesh.

Implements Arcane::IMeshPartitionerBase.

Definition at line 213 of file InterfaceImpl.cc.

References ARCANE_CHECK_POINTER, mesh(), and Arcane::IMesh::toPrimaryMesh().

Referenced by mesh().

◆ setMaximumComputationTime()

virtual ARCANE_DEPRECATED_116 void Arcane::IMeshPartitioner::setMaximumComputationTime ( Real v)
pure virtual

Sets the proportion of computation time.

Proportion of computation time Computation time of the most heavily loaded subdomain

References setMaximumComputationTime().

Referenced by setMaximumComputationTime().


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