Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::ZoltanMeshPartitioner Class Reference

Mesh partitioner using the Zoltan library. More...

Inheritance diagram for Arcane::ZoltanMeshPartitioner:
Collaboration diagram for Arcane::ZoltanMeshPartitioner:

Public Member Functions

 ZoltanMeshPartitioner (const ServiceBuildInfo &sbi)
virtual void build ()
 Build-level construction of the service.
virtual void partitionMesh (bool initial_partition)
virtual void partitionMesh (bool initial_partition, Int32 nb_part)
virtual void notifyEndPartition ()
 Notification when a re-partitioning finishes (after entity exchange).
Public Member Functions inherited from Arcane::ArcaneZoltanMeshPartitionerObject
 ArcaneZoltanMeshPartitionerObject (const Arcane::ServiceBuildInfo &sbi)
 Constructeur.
virtual ~ArcaneZoltanMeshPartitionerObject ()
 Destructeur.
CaseOptionsZoltanMeshPartitioneroptions () const
 Options du jeu de données du service.
Public Member Functions inherited from Arcane::MeshPartitionerBase
 MeshPartitionerBase (const ServiceBuildInfo &sbi)
ISubDomainsubDomain () const
IMeshmesh () const override
 Mesh associated with the partitioner.
void setMaximumComputationTime (Real v) override
 Sets the proportion of computation time.
Real maximumComputationTime () const override
void setImbalance (Real v) override
 Sets the computation time imbalance.
Real imbalance () const override
 Computation time imbalance.
void setMaxImbalance (Real v) override
 Sets the maximum allowed imbalance.
Real maxImbalance () const override
 Maximum allowed imbalance.
void setComputationTimes (RealConstArrayView v) override
 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).
RealConstArrayView computationTimes () const override
void setCellsWeight (ArrayView< float > weights, Integer nb_weight) override
 Allows defining the weights of objects to be partitioned: ILoadBalanceMng must now be used.
ArrayView< float > cellsWeight () const override
Integer nbCellWeight () const
void setILoadBalanceMng (ILoadBalanceMng *mng) override
 Changes the ILoadBalanceMng to use.
ILoadBalanceMngloadBalanceMng () const override
virtual void changeOwnersFromCells ()
 Positions the new owners of nodes, edges and faces based on the cells.
virtual void initConstraints (bool uidref=true)
virtual void freeConstraints ()
virtual Int32 nbOwnCellsWithConstraints () const
virtual Real getNeighbourCellsUidWithConstraints (Cell cell, Int64Array &neighbourcells, Array< float > *commWeights=NULL, bool noCellContrib=false)
virtual Integer nbNeighbourCellsWithConstraints (Cell cell)
virtual void getNeighbourNodesUidWithConstraints (Cell cell, Int64UniqueArray neighbournodes)
virtual Int32 localIdWithConstraints (Cell cell)
virtual Int32 localIdWithConstraints (Int32 cell_lid)
virtual void invertArrayLid2LidCompacted ()
virtual SharedArray< float > cellsWeightsWithConstraints (Int32 max_nb_weight=0, bool ask_lb_cells=false)
virtual SharedArray< float > cellsSizeWithConstraints ()
virtual bool cellUsedWithConstraints (Cell cell)
virtual bool cellUsedWithWeakConstraints (std::pair< Int64, Int64 > &paired_item)
virtual void changeCellOwner (Item cell, VariableItemInt32 &cells_new_owner, Int32 new_owner)
virtual bool haveConstraints ()
virtual bool haveWeakConstraints ()
Public Member Functions inherited from Arcane::AbstractService
 ~AbstractService () override
 Destructor.
IServiceInfoserviceInfo () const override
 Access to service information. See IServiceInfo for details.
IBaseserviceParent () const override
 Access to the base interface of main Arcane objects.
IServiceserviceInterface () override
 Returns the low-level IService interface of the service.
Public Member Functions inherited from Arcane::TraceAccessor
 TraceAccessor (ITraceMng *m)
 Constructs an accessor via the trace manager m.
 TraceAccessor (const TraceAccessor &rhs)
 Copy constructor.
TraceAccessoroperator= (const TraceAccessor &rhs)
 Copy assignment operator.
virtual ~TraceAccessor ()
 Frees resources.
ITraceMngtraceMng () const
 Trace manager.
TraceMessage info () const
 Flow for an information message.
TraceMessage pinfo () const
 Flow for a parallel information message.
TraceMessage info (char category) const
 Flow for an information message of a given category.
TraceMessage pinfo (char category) const
 Flow for a parallel information message of a given category.
TraceMessage info (bool v) const
 Flow for an information message.
TraceMessage warning () const
 Flow for a warning message.
TraceMessage pwarning () const
TraceMessage error () const
 Flow for an error message.
TraceMessage perror () const
TraceMessage log () const
 Flow for a log message.
TraceMessage plog () const
 Flow for a log message.
TraceMessage logdate () const
 Flow for a log message preceded by the date.
TraceMessage fatal () const
 Flow for a fatal error message.
TraceMessage pfatal () const
 Flow for a parallel fatal error message.
TraceMessageDbg debug (Trace::eDebugLevel=Trace::Medium) const
 Flow for a debug message.
Trace::eDebugLevel configDbgLevel () const
 Debug level of the configuration file.
TraceMessage info (Int32 verbose_level) const
 Flow for an information message of a given level.
TraceMessage linfo () const
 Flow for an information message with the local information level of this instance.
TraceMessage linfo (Int32 relative_level) const
 Flow for an information message with the local information level of this instance.
void fatalMessage (const StandaloneTraceMessage &o) const
Public Member Functions inherited from Arcane::IService
virtual ~IService ()
 Releases resources.
Public Member Functions inherited from Arcane::IMeshPartitioner
virtual IPrimaryMeshprimaryMesh () override
 Associated mesh.
Public Member Functions inherited from Arcane::IMeshPartitionerBase
virtual ~IMeshPartitionerBase ()=default
 Releases resources.

Additional Inherited Members

Public Types inherited from Arcane::MeshPartitionerBase
enum  eMarkCellWithConstraint {
  eCellClassical , eCellReference , eCellGrouped , eCellGhost ,
  eCellInAConstraint
}
Static Public Member Functions inherited from Arcane::ArcaneZoltanMeshPartitionerObject
template<typename ServiceClassType>
static void fillServiceInfo (Arcane::ServiceInfo *si)
Protected Member Functions inherited from Arcane::MeshPartitionerBase
virtual void dumpObject (String filename="toto")
 Dumps the partitioning information to disk.
virtual void * getCommunicator () const
virtual Parallel::Communicator communicator () const
virtual bool cellComm ()
virtual void _initArrayCellsWithConstraints ()
virtual void _initFilterLidCells ()
virtual void _initUidRef ()
virtual void _initUidRef (VariableCellInteger &cell_renum_uid)
virtual void _initLid2LidCompacted ()
virtual void _initNbCellsWithConstraints ()
virtual void _clearCellWgt ()
bool _isNonManifoldMesh () const
Int32 _meshDimension () const
Protected Member Functions inherited from Arcane::AbstractService
 AbstractService (const ServiceBuildInfo &)
 Constructor from a ServiceBuildInfo.
Protected Member Functions inherited from Arcane::TraceAccessor
void _setLocalVerboseLevel (Int32 v)
Int32 _localVerboseLevel () const
Protected Member Functions inherited from Arcane::IService
 IService ()
 Constructor.
Protected Attributes inherited from Arcane::MeshPartitionerBase
IItemFamilym_cell_family = nullptr

Detailed Description

Mesh partitioner using the Zoltan library.

Definition at line 516 of file ZoltanMeshPartitioner.cc.

Constructor & Destructor Documentation

◆ ZoltanMeshPartitioner()

Arcane::ZoltanMeshPartitioner::ZoltanMeshPartitioner ( const ServiceBuildInfo & sbi)
explicit

Definition at line 540 of file ZoltanMeshPartitioner.cc.

Member Function Documentation

◆ build()

virtual void Arcane::ZoltanMeshPartitioner::build ( void )
inlinevirtual

Build-level construction of the service.

This method is called right after the constructor.

Reimplemented from Arcane::AbstractService.

Definition at line 525 of file ZoltanMeshPartitioner.cc.

◆ notifyEndPartition()

void Arcane::ZoltanMeshPartitioner::notifyEndPartition ( )
virtual

Notification when a re-partitioning finishes (after entity exchange).

Reimplemented from Arcane::MeshPartitionerBase.

Definition at line 869 of file ZoltanMeshPartitioner.cc.

◆ partitionMesh() [1/2]

void Arcane::ZoltanMeshPartitioner::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.

Reimplemented from Arcane::IMeshPartitioner.

Definition at line 549 of file ZoltanMeshPartitioner.cc.

References partitionMesh().

Referenced by partitionMesh().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ partitionMesh() [2/2]

void Arcane::ZoltanMeshPartitioner::partitionMesh ( bool initial_partition,
Int32 nb_part )
virtual

Implements Arcane::IMeshPartitioner.

Definition at line 559 of file ZoltanMeshPartitioner.cc.


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