Partitionneur de maillage sur une grille. Plus de détails...
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. | |
IPrimaryMesh * | primaryMesh () 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 ISubDomain * | subDomain () |
Fonctions membres publiques hérités de Arcane::AbstractService | |
virtual | ~AbstractService () |
Destructeur. | |
virtual IServiceInfo * | serviceInfo () const |
Accès aux informations du service. | |
virtual IBase * | serviceParent () const |
Accès à l'interface de base des principaux objets Arcane. | |
virtual IService * | serviceInterface () |
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. | |
TraceAccessor & | operator= (const TraceAccessor &rhs) |
Opérateur de recopie. | |
virtual | ~TraceAccessor () |
Libère les ressources. | |
ITraceMng * | traceMng () 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. | |
VariableNodeReal3 & | nodesCoordinates () 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. | |
IMesh * | mesh () const |
const MeshHandle & | meshHandle () 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 |
GhostCellsBuilder * | m_ghost_cells_builder = nullptr |
ScopedPtrT< GridInfo > | m_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. | |
Partitionneur de maillage sur une grille.
Définition à la ligne 45 du fichier SimpleGridMeshPartitioner.cc.
|
explicit |
Définition à la ligne 159 du fichier SimpleGridMeshPartitioner.cc.
|
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().
Définition à la ligne 203 du fichier SimpleGridMeshPartitioner.cc.
|
private |
Définition à la ligne 212 du fichier SimpleGridMeshPartitioner.cc.
|
private |
Définition à la ligne 373 du fichier SimpleGridMeshPartitioner.cc.
|
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().
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().
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.
|
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.
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.
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().
|
inlineoverridevirtual |
Maillage associé
Implémente Arcane::IMeshPartitionerBase.
Définition à la ligne 113 du fichier SimpleGridMeshPartitioner.cc.
Références Arcane::IMesh::toPrimaryMesh().
|
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.
|
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.
|
private |
Définition à la ligne 144 du fichier SimpleGridMeshPartitioner.cc.
|
private |
Définition à la ligne 145 du fichier SimpleGridMeshPartitioner.cc.
|
private |
Définition à la ligne 140 du fichier SimpleGridMeshPartitioner.cc.
Définition à la ligne 141 du fichier SimpleGridMeshPartitioner.cc.
Définition à la ligne 142 du fichier SimpleGridMeshPartitioner.cc.
Définition à la ligne 143 du fichier SimpleGridMeshPartitioner.cc.
|
private |
Définition à la ligne 139 du fichier SimpleGridMeshPartitioner.cc.
|
private |
Définition à la ligne 138 du fichier SimpleGridMeshPartitioner.cc.