14#include "arcane/utils/ITraceMng.h"
15#include "arcane/utils/FatalErrorException.h"
17#include "arcane/Item.h"
18#include "arcane/ItemGroupComputeFunctor.h"
19#include "arcane/ItemGroupImpl.h"
20#include "arcane/ItemGroup.h"
21#include "arcane/IMesh.h"
22#include "arcane/IItemFamily.h"
23#include "arcane/Properties.h"
51 trace->
debug() <<
"OwnItemGroupComputeFunctor::execute()"
52 <<
" this=" << m_group
53 <<
" parent_name=" << parent.
name()
54 <<
" name=" << m_group->
name()
55 <<
" parent_count=" << parent.
size()
56 <<
" mysize=" << m_group->
size();
79 trace->
debug() <<
"GhostItemGroupComputeFunctor::execute()"
80 <<
" this=" << m_group
81 <<
" parent_name=" << parent.
name()
82 <<
" name=" << m_group->
name()
83 <<
" parent_count=" << parent.
size()
84 <<
" mysize=" << m_group->
size();
98 trace->
fatal() <<
"InterfaceGroupComputeFunctor::executeFunctor()"
99 <<
" Incoherent family expected=" <<
IK_Face <<
" current=" << family->
itemKind();
122 trace->
debug() <<
"InterfaceItemGroupComputeFunctor::execute()"
123 <<
" this=" << m_group
124 <<
" parent_name=" << parent.
name()
125 <<
" name=" << m_group->
name()
126 <<
" parent_count=" << parent.
size()
127 <<
" mysize=" << m_group->
size();
137template<
typename ItemType>
void
141 IMesh* mesh = m_group->mesh();
142 ITraceMng* trace = m_group->mesh()->traceMng();
148 ARCANE_FATAL(
"Incoherent family wanted={0} current={1} v={2}",
152 m_group->beginTransaction();
167 bool do_sort = mesh->
properties()->getBoolWithDefault(
"sort-subitemitem-group",
false);
170 m_group->endTransaction();
172 trace->
debug() <<
"ItemItemGroupComputeFunctor::execute()"
173 <<
" this=" << m_group
174 <<
" parent_name=" << parent.
name()
175 <<
" name=" << m_group->name()
176 <<
" parent_count=" << parent.
size()
177 <<
" mysize=" << m_group->size()
184void InnerFaceItemGroupComputeFunctor::
187 ITraceMng* trace = m_group->mesh()->traceMng();
191 m_group->beginTransaction();
218 m_group->endTransaction();
220 trace->
debug() <<
"InnerFaceItemGroupComputeFunctor::execute()"
221 <<
" this=" << m_group
222 <<
" parent_name=" << parent.
name()
223 <<
" name=" << m_group->name()
224 <<
" parent_count=" << parent.
size()
225 <<
" mysize=" << m_group->size();
231void OuterFaceItemGroupComputeFunctor::
234 ITraceMng* trace = m_group->mesh()->traceMng();
238 m_group->beginTransaction();
265 m_group->endTransaction();
267 trace->
debug() <<
"OuterFaceItemGroupComputeFunctor::execute()"
268 <<
" this=" << m_group
269 <<
" parent_name=" << parent.
name()
270 <<
" name=" << m_group->name()
271 <<
" parent_count=" << parent.
size()
272 <<
" mysize=" << m_group->size();
278void ActiveCellGroupComputeFunctor::
281 ITraceMng* trace = m_group->mesh()->traceMng();
286 trace->
fatal() <<
"AllActiveCellGroupComputeFunctor::executeFunctor()"
287 <<
" Incoherent family expected=" <<
IK_Cell <<
" current=" << family->
itemKind();
290 m_group->beginTransaction();
298 m_group->endTransaction();
300 trace->
debug() <<
"AllActiveCellGroupComputeFunctor::execute()"
301 <<
" this=" << m_group
302 <<
" parent_name=" << parent.
name()
303 <<
" name=" << m_group->name()
304 <<
" parent_count=" << parent.
size()
305 <<
" mysize=" << m_group->size();
311void OwnActiveCellGroupComputeFunctor::
314 ITraceMng* trace = m_group->mesh()->traceMng();
319 trace->
fatal() <<
"OwnActiveCellGroupComputeFunctor::executeFunctor()"
320 <<
" Incoherent family expected=" <<
IK_Cell <<
" current=" << family->
itemKind();
323 m_group->beginTransaction();
332 m_group->endTransaction();
334 trace->
debug() <<
"OwnActiveCellGroupComputeFunctor::execute()"
335 <<
" this=" << m_group
336 <<
" parent_name=" << parent.
name()
337 <<
" name=" << m_group->name()
338 <<
" parent_count=" << parent.
size()
339 <<
" mysize=" << m_group->size();
345void LevelCellGroupComputeFunctor::
348 ITraceMng* trace = m_group->mesh()->traceMng();
353 trace->
fatal() <<
"LevelCellGroupComputeFunctor::executeFunctor()"
354 <<
" Incoherent family expected=" <<
IK_Cell <<
" current=" << family->
itemKind();
357 m_group->beginTransaction();
362 if(item.
level() == m_level)
366 m_group->endTransaction();
368 trace->
debug() <<
"LevelCellGroupComputeFunctor::execute()"
369 <<
" this=" << m_group
370 <<
" parent_name=" << parent.
name()
371 <<
" name=" << m_group->name()
372 <<
" parent_count=" << parent.
size()
373 <<
" mysize=" << m_group->size();
379void OwnLevelCellGroupComputeFunctor::
382 ITraceMng* trace = m_group->mesh()->traceMng();
386 m_group->beginTransaction();
389 trace->
fatal() <<
"LevelCellGroupComputeFunctor::executeFunctor()"
390 <<
" Incoherent family expected=" <<
IK_Cell <<
" current=" << family->
itemKind();
394 if (item.
isOwn() && (item.
level() == m_level))
398 m_group->endTransaction();
400 trace->
debug() <<
"OwnLevelItemGroupComputeFunctor::execute()"
401 <<
" this=" << m_group
402 <<
" parent_name=" << parent.
name()
403 <<
" name=" << m_group->name()
404 <<
" parent_count=" << parent.
size()
405 <<
" mysize=" << m_group->size();
411void ActiveFaceItemGroupComputeFunctor::
414 ITraceMng* trace = m_group->mesh()->traceMng();
418 m_group->beginTransaction();
459 <<
"\n NUNMBER OF BOUNDARY FACES= " <<
counter_0
460 <<
"\n NUMBER OF ACTIVE BOUNDARY FACES= " <<
counter_1
461 <<
"\n NUMBER OF ACTIVE INTERIOR FACES= " <<
counter_2 <<
"\n";
463 m_group->endTransaction();
465 trace->
debug() <<
"ActiveFaceItemGroupComputeFunctor::execute()"
466 <<
" this=" << m_group
467 <<
" parent_name=" << parent.
name()
468 <<
" name=" << m_group->name()
469 <<
" parent_count=" << parent.
size()
470 <<
" mysize=" << m_group->size();
476void OwnActiveFaceItemGroupComputeFunctor::
479 ITraceMng* trace = m_group->mesh()->traceMng();
483 m_group->beginTransaction();
509 else if (face.
isOwn() &&
517 m_group->endTransaction();
519 trace->
debug() <<
"OwnActiveFaceItemGroupComputeFunctor::execute()"
520 <<
" this=" << m_group
521 <<
" parent_name=" << parent.
name()
522 <<
" name=" << m_group->name()
523 <<
" parent_count=" << parent.
size()
524 <<
" mysize=" << m_group->size();
530void InnerActiveFaceItemGroupComputeFunctor::
533 ITraceMng* trace = m_group->mesh()->traceMng();
537 m_group->beginTransaction();
570 m_group->endTransaction();
572 trace->
debug() <<
"InnerActiveFaceItemGroupComputeFunctor::execute()"
573 <<
" this=" << m_group
574 <<
" parent_name=" << parent.
name()
575 <<
" name=" << m_group->name()
576 <<
" parent_count=" << parent.
size()
577 <<
" mysize=" << m_group->size();
583void OuterActiveFaceItemGroupComputeFunctor::
586 ITraceMng* trace = m_group->mesh()->traceMng();
590 m_group->beginTransaction();
617 m_group->endTransaction();
619 trace->
debug() <<
"OuterActiveFaceItemGroupComputeFunctor::execute()"
620 <<
" this=" << m_group
621 <<
" parent_name=" << parent.
name()
622 <<
" name=" << m_group->name()
623 <<
" parent_count=" << parent.
size()
624 <<
" mysize=" << m_group->size();
#define ARCANE_FATAL(...)
Macro envoyant une exception FatalErrorException.
Cell frontCell() const
Maille devant la face (maille nulle si aucune)
bool isSubDomainBoundary() const
Indique si la face est au bord du sous-domaine (i.e nbCell()==1)
Cell boundaryCell() const
Maille associée à cette face frontière (maille nulle si aucune)
Cell backCell() const
Maille derrière la face (maille nulle si aucune)
void executeFunctor() override
Exécute la méthode associé
Interface d'une famille d'entités.
virtual ItemGroup allItems() const =0
Groupe de toutes les entités.
virtual Int32 maxLocalId() const =0
virtual eItemKind itemKind() const =0
Genre des entités.
virtual ITraceMng * traceMng()=0
Gestionnaire de message associé
virtual Properties * properties()=0
Propriétés associées à ce maillage.
void executeFunctor() override
Exécute la méthode associé
Classe de base pour les entités du maillage.
void setItems(Int32ConstArrayView items_local_id)
Positionne les entités du groupe à items_local_id.
void endTransaction()
Termine une transaction.
ItemGroupImpl * parent() const
Groupe parent (0 si aucun)
IMesh * mesh() const
Maillage auquel appartient le groupe (0 pour le groupe nul).
Integer size() const
Nombre d'entités du groupe.
IItemFamily * itemFamily() const
Familly à laquelle appartient le groupe (ou 0 si aucune)
void beginTransaction()
Débute une transaction.
const String & name() const
Nom du groupe.
Groupe d'entités de maillage.
const String & name() const
Nom du groupe.
Integer size() const
Nombre d'éléments du groupe.
IItemFamily * itemFamily() const
Famille d'entité à laquelle appartient ce groupe (0 pour le group nul)
bool isAllItems() const
Indique si le groupe est celui de toutes les entités.
void executeFunctor() override
Fonctor pour calculer un groupe contenant les entités connectées aux entités du groupe parent.
Classe de base d'un élément de maillage.
constexpr Int32 localId() const
Identifiant local de l'entité dans le sous-domaine du processeur.
bool isOwn() const
true si l'entité est appartient au sous-domaine
void executeFunctor() override
Calcul des entités propres du groupe.
Interface du gestionnaire de traces.
virtual TraceMessageDbg debug(Trace::eDebugLevel=Trace::Medium)=0
Flot pour un message de debug.
virtual TraceMessage fatal()=0
Flot pour un message d'erreur fatale.
Référence à une instance.
Vecteur 1D de données avec sémantique par valeur (style STL).
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
eItemKind
Genre d'entité de maillage.
@ IK_Cell
Entité de maillage de genre maille.
@ IK_Face
Entité de maillage de genre face.
Int32 Integer
Type représentant un entier.
std::int32_t Int32
Type entier signé sur 32 bits.