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

Mesh repartitioning test class. More...

Inheritance diagram for Arcane::MeshPartitionerTester:
Collaboration diagram for Arcane::MeshPartitionerTester:

Public Member Functions

 MeshPartitionerTester (const ServiceBuildInfo &sbi)
IMeshmesh () const override
 Mesh associated with the partitioner.
void build () override
 Build-level construction of the service.
void partitionMesh (bool initial_partition) override
void partitionMesh (bool initial_partition, Int32 nb_part) override
void notifyEndPartition () override
 Notification when a re-partitioning finishes (after entity exchange).
void setMaximumComputationTime (Real v) override
 Sets the proportion of computation time.
Real maximumComputationTime () const override
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 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.
ArrayView< float > cellsWeight () 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.
void setILoadBalanceMng (ILoadBalanceMng *) override
 Changes the ILoadBalanceMng to use.
ILoadBalanceMngloadBalanceMng () const override
Public Member Functions inherited from Arcane::ArcaneMeshPartitionerTesterServiceObject
 ArcaneMeshPartitionerTesterServiceObject (const Arcane::ServiceBuildInfo &sbi)
 Constructeur.
virtual ~ArcaneMeshPartitionerTesterServiceObject ()
 Destructeur.
CaseOptionsMeshPartitionerTesterServiceoptions () const
 Options du jeu de données du service.
Public Member Functions inherited from Arcane::BasicService
 ~BasicService () override
 Releases resources.
virtual ISubDomainsubDomain ()
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::MeshAccessor
 MeshAccessor (ISubDomain *sd)
 MeshAccessor (IMesh *mesh)
 MeshAccessor (const MeshHandle &mesh_handle)
Integer nbCell () const
 Returns the number of cells in the mesh.
Integer nbFace () const
 Returns the number of faces in the mesh.
Integer nbEdge () const
 Returns the number of edges in the mesh.
Integer nbNode () const
 Returns the number of nodes in the mesh.
VariableNodeReal3nodesCoordinates () const
 Returns the coordinates of the mesh nodes.
NodeGroup allNodes () const
 Returns the group containing all nodes.
EdgeGroup allEdges () const
 Returns the group containing all edges.
FaceGroup allFaces () const
 Returns the group containing all faces.
CellGroup allCells () const
 Returns the group containing all cells.
FaceGroup outerFaces () const
 Returns the group containing all boundary faces.
NodeGroup ownNodes () const
 Returns the group containing all nodes specific to this domain.
CellGroup ownCells () const
 Returns the group containing all cells specific to this domain.
FaceGroup ownFaces () const
 Group containing all faces specific to this domain.
EdgeGroup ownEdges () const
 Group containing all edges specific to this domain.
IMeshmesh () const
const MeshHandlemeshHandle () const
Public Member Functions inherited from Arcane::CommonVariables
 CommonVariables (IModule *c)
 Constructs the references of the common variables for the module c.
 CommonVariables (IVariableMng *variable_mng)
 Constructs the references of the common variables for the manager variable_mng.
 CommonVariables (ISubDomain *sd)
 Constructs the references of the common variables for the subdomain sd.
virtual ~CommonVariables ()
 Releases resources.
Int32 globalIteration () const
 Current iteration number.
Real globalTime () const
 Current time.
Real globalOldTime () const
 Previous current time.
Real globalFinalTime () const
 Final time of the simulation.
Real globalDeltaT () const
 Current Delta T.
Real globalCPUTime () const
 CPU time used (in seconds).
Real globalOldCPUTime () const
 Previous CPU time used (in seconds).
Real globalElapsedTime () const
 Clock time (elapsed) used (in seconds).
Real globalOldElapsedTime () const
 Previous clock time (elapsed) used (in seconds).
Public Member Functions inherited from Arcane::IMeshPartitioner
virtual IPrimaryMeshprimaryMesh () override
 Associated mesh.
Public Member Functions inherited from Arcane::IMeshPartitionerBase
virtual ~IMeshPartitionerBase ()=default
 Releases resources.

Private Attributes

Real m_imbalance
Real m_max_imbalance
Real m_max_computation_time
Integer m_nb_weight
ArrayView< float > m_cells_weight
RealUniqueArray m_computation_times

Additional Inherited Members

Static Public Member Functions inherited from Arcane::ArcaneMeshPartitionerTesterServiceObject
template<typename ServiceClassType>
static void fillServiceInfo (Arcane::ServiceInfo *si)
Public Attributes inherited from Arcane::CommonVariables
VariableScalarInt32 m_global_iteration
 Current iteration.
VariableScalarReal m_global_time
 Current time.
VariableScalarReal m_global_deltat
 Global Delta T.
VariableScalarReal m_global_old_time
 Time previous to the current time.
VariableScalarReal m_global_old_deltat
 Delta T at the time previous to the global time.
VariableScalarReal m_global_final_time
 Final time of the case.
VariableScalarReal m_global_old_cpu_time
 Previous CPU time used (in seconds).
VariableScalarReal m_global_cpu_time
 CPU time used (in seconds).
VariableScalarReal m_global_old_elapsed_time
 Previous clock time used (in seconds).
VariableScalarReal m_global_elapsed_time
 Clock time used (in seconds).
Protected Member Functions inherited from Arcane::BasicService
 BasicService (const ServiceBuildInfo &)
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.

Detailed Description

Mesh repartitioning test class.

This class is used only to test mesh repartitioning. It simply changes the owner of the cells based on the numbering and without taking into account potential imbalances during computation time.

Definition at line 54 of file MeshPartitionerTesterService.cc.

Constructor & Destructor Documentation

◆ MeshPartitionerTester()

Arcane::MeshPartitionerTester::MeshPartitionerTester ( const ServiceBuildInfo & sbi)

Definition at line 120 of file MeshPartitionerTesterService.cc.

Member Function Documentation

◆ build()

void Arcane::MeshPartitionerTester::build ( void )
inlineoverridevirtual

Build-level construction of the service.

This method is called right after the constructor.

Reimplemented from Arcane::AbstractService.

Definition at line 67 of file MeshPartitionerTesterService.cc.

◆ cellsWeight()

ArrayView< float > Arcane::MeshPartitionerTester::cellsWeight ( ) const
inlineoverridevirtual

Implements Arcane::IMeshPartitioner.

Definition at line 89 of file MeshPartitionerTesterService.cc.

◆ computationTimes()

RealConstArrayView Arcane::MeshPartitionerTester::computationTimes ( ) const
inlineoverridevirtual

Implements Arcane::IMeshPartitioner.

Definition at line 83 of file MeshPartitionerTesterService.cc.

◆ imbalance()

Real Arcane::MeshPartitionerTester::imbalance ( ) const
inlineoverridevirtual

Computation time imbalance.

Implements Arcane::IMeshPartitioner.

Definition at line 85 of file MeshPartitionerTesterService.cc.

◆ loadBalanceMng()

ILoadBalanceMng * Arcane::MeshPartitionerTester::loadBalanceMng ( ) const
inlineoverridevirtual

Implements Arcane::IMeshPartitioner.

Definition at line 102 of file MeshPartitionerTesterService.cc.

◆ maxImbalance()

Real Arcane::MeshPartitionerTester::maxImbalance ( ) const
inlineoverridevirtual

Maximum allowed imbalance.

Implements Arcane::IMeshPartitioner.

Definition at line 87 of file MeshPartitionerTesterService.cc.

◆ maximumComputationTime()

Real Arcane::MeshPartitionerTester::maximumComputationTime ( ) const
inlineoverridevirtual

Implements Arcane::IMeshPartitioner.

Definition at line 81 of file MeshPartitionerTesterService.cc.

◆ mesh()

IMesh * Arcane::MeshPartitionerTester::mesh ( ) const
inlineoverridevirtual

Mesh associated with the partitioner.

Implements Arcane::IMeshPartitioner.

Definition at line 65 of file MeshPartitionerTesterService.cc.

Referenced by partitionMesh().

Here is the caller graph for this function:

◆ notifyEndPartition()

void Arcane::MeshPartitionerTester::notifyEndPartition ( )
inlineoverridevirtual

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

Implements Arcane::IMeshPartitionerBase.

Definition at line 76 of file MeshPartitionerTesterService.cc.

◆ partitionMesh() [1/2]

void Arcane::MeshPartitionerTester::partitionMesh ( bool initial_partition)
overridevirtual

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 133 of file MeshPartitionerTesterService.cc.

References Arcane::ISubDomain::commonVariables(), Arcane::IParallelMng::commRank(), Arcane::IParallelMng::commSize(), ENUMERATE_CELL, Arcane::CommonVariables::globalIteration(), Arcane::IK_Cell, Arcane::TraceAccessor::info(), mesh(), Arcane::ArcaneMeshPartitionerTesterServiceObject::options(), Arcane::Item::owner(), Arcane::ISubDomain::parallelMng(), Arcane::IMesh::toPrimaryMesh(), and Arcane::TraceAccessor::warning().

Here is the call graph for this function:

◆ partitionMesh() [2/2]

void Arcane::MeshPartitionerTester::partitionMesh ( bool initial_partition,
Int32 nb_part )
inlineoverridevirtual

Implements Arcane::IMeshPartitioner.

Definition at line 69 of file MeshPartitionerTesterService.cc.

◆ setCellsWeight()

void Arcane::MeshPartitionerTester::setCellsWeight ( ArrayView< float > weights,
Integer nb_weight )
inlineoverridevirtual

Allows defining the weights of objects to be partitioned: ILoadBalanceMng must now be used.

Implements Arcane::IMeshPartitioner.

Definition at line 91 of file MeshPartitionerTesterService.cc.

◆ setComputationTimes()

void Arcane::MeshPartitionerTester::setComputationTimes ( RealConstArrayView v)
inlineoverridevirtual

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).

Implements Arcane::IMeshPartitioner.

Definition at line 82 of file MeshPartitionerTesterService.cc.

◆ setILoadBalanceMng()

void Arcane::MeshPartitionerTester::setILoadBalanceMng ( ILoadBalanceMng * mng)
inlineoverridevirtual

Changes the ILoadBalanceMng to use.

Implements Arcane::IMeshPartitioner.

Definition at line 97 of file MeshPartitionerTesterService.cc.

◆ setImbalance()

void Arcane::MeshPartitionerTester::setImbalance ( Real v)
inlineoverridevirtual

Sets the computation time imbalance.

Implements Arcane::IMeshPartitioner.

Definition at line 84 of file MeshPartitionerTesterService.cc.

◆ setMaxImbalance()

void Arcane::MeshPartitionerTester::setMaxImbalance ( Real v)
inlineoverridevirtual

Sets the maximum allowed imbalance.

Implements Arcane::IMeshPartitioner.

Definition at line 86 of file MeshPartitionerTesterService.cc.

◆ setMaximumComputationTime()

void Arcane::MeshPartitionerTester::setMaximumComputationTime ( Real v)
inlineoverridevirtual

Sets the proportion of computation time.

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

Implements Arcane::IMeshPartitioner.

Definition at line 80 of file MeshPartitionerTesterService.cc.

Member Data Documentation

◆ m_cells_weight

ArrayView<float> Arcane::MeshPartitionerTester::m_cells_weight
private

Definition at line 113 of file MeshPartitionerTesterService.cc.

◆ m_computation_times

RealUniqueArray Arcane::MeshPartitionerTester::m_computation_times
private

Definition at line 114 of file MeshPartitionerTesterService.cc.

◆ m_imbalance

Real Arcane::MeshPartitionerTester::m_imbalance
private

Definition at line 109 of file MeshPartitionerTesterService.cc.

◆ m_max_computation_time

Real Arcane::MeshPartitionerTester::m_max_computation_time
private

Definition at line 111 of file MeshPartitionerTesterService.cc.

◆ m_max_imbalance

Real Arcane::MeshPartitionerTester::m_max_imbalance
private

Definition at line 110 of file MeshPartitionerTesterService.cc.

◆ m_nb_weight

Integer Arcane::MeshPartitionerTester::m_nb_weight
private

Definition at line 112 of file MeshPartitionerTesterService.cc.


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