Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::SimpleGridMeshPartitioner

Partitionneur de maillage sur une grille. Plus de détails...

+ Graphe d'héritage de Arcane::SimpleGridMeshPartitioner:
+ Graphe de collaboration de Arcane::SimpleGridMeshPartitioner:

Classes

class  GhostCellsBuilder
 Informations sur les mailles fantômes supplémentaires. Plus de détails...
 
class  GridInfo
 

Fonctions membres publiques

 SimpleGridMeshPartitioner (const ServiceBuildInfo &sbi)
 
void build () override
 Construction de niveau build du service.
 
IPrimaryMeshprimaryMesh () override
 Maillage associé
 
void partitionMesh (bool initial_partition) override
 
void notifyEndPartition () override
 Notification lors de la fin d'un repartionnement (après échange des entités)
 
void setBoundingBox (Real3 min_val, Real3 max_val) override
 Positionne la bounding box de notre sous-domaine.
 
void setPartIndex (Int32 i, Int32 j, Int32 k) override
 Indice (i,j,k) de la partie.
 
void applyMeshPartitioning (IMesh *mesh) override
 Applique le repartitionnement sur le maillage mesh.
 
- Fonctions membres publiques hérités de Arcane::BasicService
 ~BasicService () override
 Libère les ressources.
 
virtual ISubDomainsubDomain ()
 
- Fonctions membres publiques hérités de Arcane::AbstractService
virtual ~AbstractService ()
 Destructeur.
 
virtual IServiceInfoserviceInfo () const
 Accès aux informations du service.
 
virtual IBaseserviceParent () const
 Accès à l'interface de base des principaux objets Arcane.
 
virtual IServiceserviceInterface ()
 Retourne l'interface bas niveau IService du service.
 
- Fonctions membres publiques hérités de Arccore::TraceAccessor
 TraceAccessor (ITraceMng *m)
 Construit un accesseur via le gestionnaire de trace m.
 
 TraceAccessor (const TraceAccessor &rhs)
 Constructeur par recopie.
 
TraceAccessoroperator= (const TraceAccessor &rhs)
 Opérateur de recopie.
 
virtual ~TraceAccessor ()
 Libère les ressources.
 
ITraceMngtraceMng () const
 Gestionnaire de trace.
 
TraceMessage info () const
 Flot pour un message d'information.
 
TraceMessage pinfo () const
 Flot pour un message d'information en parallèle.
 
TraceMessage info (char category) const
 Flot pour un message d'information d'une catégorie donnée.
 
TraceMessage pinfo (char category) const
 Flot pour un message d'information parallèle d'une catégorie donnée.
 
TraceMessage info (bool v) const
 Flot pour un message d'information.
 
TraceMessage warning () const
 Flot pour un message d'avertissement.
 
TraceMessage pwarning () const
 
TraceMessage error () const
 Flot pour un message d'erreur.
 
TraceMessage perror () const
 
TraceMessage log () const
 Flot pour un message de log.
 
TraceMessage plog () const
 Flot pour un message de log.
 
TraceMessage logdate () const
 Flot pour un message de log précédé de la date.
 
TraceMessage fatal () const
 Flot pour un message d'erreur fatale.
 
TraceMessage pfatal () const
 Flot pour un message d'erreur fatale en parallèle.
 
TraceMessageDbg debug (Trace::eDebugLevel=Trace::Medium) const
 Flot pour un message de debug.
 
Trace::eDebugLevel configDbgLevel () const
 Niveau debug du fichier de configuration.
 
TraceMessage info (Int32 verbose_level) const
 Flot pour un message d'information d'un niveau donné
 
TraceMessage linfo () const
 Flot pour un message d'information avec le niveau d'information local à cette instance.
 
TraceMessage linfo (Int32 relative_level) const
 Flot pour un message d'information avec le niveau d'information local à cette instance.
 
void fatalMessage (const StandaloneTraceMessage &o) const
 
- Fonctions membres publiques hérités de Arcane::IService
virtual ~IService ()
 Libère les ressources.
 
- Fonctions membres publiques hérités de Arcane::MeshAccessor
 MeshAccessor (ISubDomain *sd)
 
 MeshAccessor (IMesh *mesh)
 
 MeshAccessor (const MeshHandle &mesh_handle)
 
Integer nbCell () const
 Retourne le nombre de mailles du maillage.
 
Integer nbFace () const
 Retourne le nombre de faces du maillage.
 
Integer nbEdge () const
 Retourne le nombre d'arêtes du maillage.
 
Integer nbNode () const
 Retourne le nombre de noeuds du maillage.
 
VariableNodeReal3nodesCoordinates () const
 Retourne les coordonnées des noeuds du maillage.
 
NodeGroup allNodes () const
 Retourne le groupe contenant tous les noeuds.
 
EdgeGroup allEdges () const
 Retourne le groupe contenant toutes les arêtes.
 
FaceGroup allFaces () const
 Retourne le groupe contenant toutes les faces.
 
CellGroup allCells () const
 Retourne le groupe contenant toutes les mailles.
 
FaceGroup outerFaces () const
 Retourne le groupe contenant toutes les faces de le frontière.
 
NodeGroup ownNodes () const
 Retourne le groupe contenant tous les noeuds propres à ce domaine.
 
CellGroup ownCells () const
 Retourne le groupe contenant toutes les mailles propres à ce domaine.
 
FaceGroup ownFaces () const
 Groupe contenant toutes les faces propres à ce domaine.
 
EdgeGroup ownEdges () const
 Groupe contenant toutes les arêtes propres à ce domaine.
 
IMeshmesh () const
 
const MeshHandlemeshHandle () const
 
- Fonctions membres publiques hérités de Arcane::CommonVariables
 CommonVariables (IModule *c)
 Construit les références des variables communes pour le module c.
 
 CommonVariables (IVariableMng *variable_mng)
 Construit les références des variables communes pour le gestionnaire variable_mng.
 
 CommonVariables (ISubDomain *sd)
 Construit les références des variables communes pour le sous-domaine sd.
 
virtual ~CommonVariables ()
 Libère les ressources.
 
Int32 globalIteration () const
 Numéro de l'itération courante.
 
Real globalTime () const
 Temps courant.
 
Real globalOldTime () const
 Temps courant précédent.
 
Real globalFinalTime () const
 Temps final de la simulation.
 
Real globalDeltaT () const
 Delta T courant.
 
Real globalCPUTime () const
 Temps CPU utilisé (en seconde)
 
Real globalOldCPUTime () const
 Temps CPU utilisé précédent (en seconde)
 
Real globalElapsedTime () const
 Temps horloge (elapsed) utilisé (en seconde)
 
Real globalOldElapsedTime () const
 Temps horloge (elapsed) utilisé précédent (en seconde)
 
- Fonctions membres publiques hérités de Arcane::IMeshPartitionerBase
virtual ~IMeshPartitionerBase ()=default
 Libère les ressources.
 

Fonctions membres privées

Int32 _findPart (RealConstArrayView coords, Real center)
 Retourne l'indice dans coords de la valeur immédiatement inférieure à position.
 
void _addGhostCell (Int32 rank, Cell cell)
 
void _buildGridInfo ()
 
void _computeSpecificGhostLayer ()
 
void _addCellToIntersectedParts (Cell cell, std::array< Int32, 3 > min_part, std::array< Int32, 3 > nb_part)
 

Attributs privés

Real3 m_min_box
 
Real3 m_max_box
 
std::array< Int32, 3 > m_ijk_part
 
bool m_is_bounding_box_set = false
 
bool m_is_ijk_set = false
 
bool m_is_verbose = false
 
GhostCellsBuilderm_ghost_cells_builder = nullptr
 
ScopedPtrT< GridInfom_grid_info
 

Membres hérités additionnels

- Attributs publics hérités de Arcane::CommonVariables
VariableScalarInt32 m_global_iteration
 Itération courante.
 
VariableScalarReal m_global_time
 Temps actuel.
 
VariableScalarReal m_global_deltat
 Delta T global.
 
VariableScalarReal m_global_old_time
 Temps précédent le temps actuel.
 
VariableScalarReal m_global_old_deltat
 Delta T au temps précédent le temps global.
 
VariableScalarReal m_global_final_time
 Temps final du cas.
 
VariableScalarReal m_global_old_cpu_time
 Temps précédent CPU utilisé (en seconde)
 
VariableScalarReal m_global_cpu_time
 Temps CPU utilisé (en seconde)
 
VariableScalarReal m_global_old_elapsed_time
 Temps précédent horloge utilisé (en seconde)
 
VariableScalarReal m_global_elapsed_time
 Temps horloge utilisé (en seconde)
 
- Fonctions membres protégées hérités de Arcane::BasicService
 BasicService (const ServiceBuildInfo &)
 
- Fonctions membres protégées hérités de Arcane::AbstractService
 AbstractService (const ServiceBuildInfo &)
 Constructeur à partir d'un ServiceBuildInfo.
 
- Fonctions membres protégées hérités de Arccore::TraceAccessor
void _setLocalVerboseLevel (Int32 v)
 
Int32 _localVerboseLevel () const
 
- Fonctions membres protégées hérités de Arcane::IService
 IService ()
 Constructeur.
 

Description détaillée

Partitionneur de maillage sur une grille.

Définition à la ligne 45 du fichier SimpleGridMeshPartitioner.cc.

Documentation des constructeurs et destructeur

◆ SimpleGridMeshPartitioner()

Arcane::SimpleGridMeshPartitioner::SimpleGridMeshPartitioner ( const ServiceBuildInfo sbi)
explicit

Définition à la ligne 159 du fichier SimpleGridMeshPartitioner.cc.

Documentation des fonctions membres

◆ _addCellToIntersectedParts()

void Arcane::SimpleGridMeshPartitioner::_addCellToIntersectedParts ( Cell  cell,
std::array< Int32, 3 >  min_part,
std::array< Int32, 3 >  nb_part 
)
private

Parcours toutes les parties qui intersectent la maille cell et envoie cette maille en tant que fantôme.

Définition à la ligne 350 du fichier SimpleGridMeshPartitioner.cc.

Références Arcane::Item::owner().

◆ _addGhostCell()

void Arcane::SimpleGridMeshPartitioner::_addGhostCell ( Int32  rank,
Cell  cell 
)
private

Définition à la ligne 203 du fichier SimpleGridMeshPartitioner.cc.

◆ _buildGridInfo()

void Arcane::SimpleGridMeshPartitioner::_buildGridInfo ( )
private

Définition à la ligne 212 du fichier SimpleGridMeshPartitioner.cc.

◆ _computeSpecificGhostLayer()

void Arcane::SimpleGridMeshPartitioner::_computeSpecificGhostLayer ( )
private

Définition à la ligne 373 du fichier SimpleGridMeshPartitioner.cc.

◆ _findPart()

Int32 Arcane::SimpleGridMeshPartitioner::_findPart ( RealConstArrayView  coords,
Real  position 
)
private

Retourne l'indice dans coords de la valeur immédiatement inférieure à position.

Le tableau coords doit être trié par ordre croissant. // TODO: utiliser une dichotomie.

Définition à la ligne 176 du fichier SimpleGridMeshPartitioner.cc.

Références Arccore::TraceAccessor::info(), Arcane::math::isNearlyEqual(), et Arccore::ConstArrayView< T >::size().

Référencé par partitionMesh().

◆ applyMeshPartitioning()

void Arcane::SimpleGridMeshPartitioner::applyMeshPartitioning ( IMesh mesh)
overridevirtual

Applique le repartitionnement sur le maillage mesh.

Les méthodes setPartIndex() et setBoundingBox() doivent avoir été appelées auparavant. Cette méthode ne peut être appelée qu'une seule fois par instance.

Le partitionement utilise un algorithme spécique de calcul des mailles fantômes pour garantir que chaque maille de mesh qui intersecte la partie spécifiée dans setBoundingBox() sera dans ce sous-domaine, éventuellement en tant que maille fantôme.

Implémente Arcane::IGridMeshPartitioner.

Définition à la ligne 454 du fichier SimpleGridMeshPartitioner.cc.

Références ARCANE_FATAL, Arcane::IMesh::modifier(), et Arcane::IMesh::utilities().

◆ build()

void Arcane::SimpleGridMeshPartitioner::build ( void  )
inlineoverridevirtual

Construction de niveau build du service.

L'appel à build est effectué au moment de sa construction, usuellement au niveau de sa lecture dans les options en phase1.

Réimplémentée à partir de Arcane::AbstractService.

Définition à la ligne 112 du fichier SimpleGridMeshPartitioner.cc.

◆ notifyEndPartition()

void Arcane::SimpleGridMeshPartitioner::notifyEndPartition ( )
inlineoverridevirtual

Notification lors de la fin d'un repartionnement (après échange des entités)

Implémente Arcane::IMeshPartitionerBase.

Définition à la ligne 115 du fichier SimpleGridMeshPartitioner.cc.

◆ partitionMesh()

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

Repartitionne le maillage mesh

Cette méthode change les propriétaires des entités et remplit la variable IItemFamily::itemsNewOwner() de chaque famille d'entité du maillage mesh avec le numéro du nouveau sous-domaine propriétaire.

Note
Cette méthode est réservée aux développeurs Arcane. Si un module souhaite effectuer un repartitionnement, il faut appeler la méthode IMeshUtilities::partitionAndExchangeMeshWithReplication() qui gère à la fois le partitionnement et l'échange des informations et supporte la réplication de domaine.

Implémente Arcane::IMeshPartitionerBase.

Définition à la ligne 288 du fichier SimpleGridMeshPartitioner.cc.

Références _findPart(), Arcane::IMeshBase::allCells(), ARCANE_FATAL, Arcane::IParallelMng::commSize(), ENUMERATE_, Arcane::IK_Cell, Arccore::TraceAccessor::info(), Arcane::IPrimaryMesh::itemsNewOwner(), Arcane::ItemWithNodes::nbNode(), Arcane::ItemWithNodes::node(), Arcane::IPrimaryMesh::nodesCoordinates(), Arcane::IMesh::parallelMng(), Arcane::IMesh::partitionConstraintMng(), Arcane::IMesh::toPrimaryMesh(), Arcane::Item::uniqueId(), et Arcane::IMesh::utilities().

◆ primaryMesh()

IPrimaryMesh * Arcane::SimpleGridMeshPartitioner::primaryMesh ( )
inlineoverridevirtual

Maillage associé

Implémente Arcane::IMeshPartitionerBase.

Définition à la ligne 113 du fichier SimpleGridMeshPartitioner.cc.

Références Arcane::IMesh::toPrimaryMesh().

◆ setBoundingBox()

void Arcane::SimpleGridMeshPartitioner::setBoundingBox ( Real3  min_val,
Real3  max_val 
)
inlineoverridevirtual

Positionne la bounding box de notre sous-domaine.

Pour que l'algorithme fonctionne, il ne faut pas de recouvrement entre les bounding box des sous-domaines.

Implémente Arcane::IGridMeshPartitioner.

Définition à la ligne 119 du fichier SimpleGridMeshPartitioner.cc.

◆ setPartIndex()

void Arcane::SimpleGridMeshPartitioner::setPartIndex ( Int32  i,
Int32  j,
Int32  k 
)
inlineoverridevirtual

Indice (i,j,k) de la partie.

Les indices commencent à zéro. En 1D ou 2D, la valeur de k vaut (-1). En 1D, la valeur de j vaut (-1)

Implémente Arcane::IGridMeshPartitioner.

Définition à la ligne 126 du fichier SimpleGridMeshPartitioner.cc.

Documentation des données membres

◆ m_ghost_cells_builder

GhostCellsBuilder* Arcane::SimpleGridMeshPartitioner::m_ghost_cells_builder = nullptr
private

Définition à la ligne 144 du fichier SimpleGridMeshPartitioner.cc.

◆ m_grid_info

ScopedPtrT<GridInfo> Arcane::SimpleGridMeshPartitioner::m_grid_info
private

Définition à la ligne 145 du fichier SimpleGridMeshPartitioner.cc.

◆ m_ijk_part

std::array<Int32, 3> Arcane::SimpleGridMeshPartitioner::m_ijk_part
private

Définition à la ligne 140 du fichier SimpleGridMeshPartitioner.cc.

◆ m_is_bounding_box_set

bool Arcane::SimpleGridMeshPartitioner::m_is_bounding_box_set = false
private

Définition à la ligne 141 du fichier SimpleGridMeshPartitioner.cc.

◆ m_is_ijk_set

bool Arcane::SimpleGridMeshPartitioner::m_is_ijk_set = false
private

Définition à la ligne 142 du fichier SimpleGridMeshPartitioner.cc.

◆ m_is_verbose

bool Arcane::SimpleGridMeshPartitioner::m_is_verbose = false
private

Définition à la ligne 143 du fichier SimpleGridMeshPartitioner.cc.

◆ m_max_box

Real3 Arcane::SimpleGridMeshPartitioner::m_max_box
private

Définition à la ligne 139 du fichier SimpleGridMeshPartitioner.cc.

◆ m_min_box

Real3 Arcane::SimpleGridMeshPartitioner::m_min_box
private

Définition à la ligne 138 du fichier SimpleGridMeshPartitioner.cc.


La documentation de cette classe a été générée à partir du fichier suivant :