14#include "arcane/utils/String.h"
16#include "arcane/ItemPrinter.h"
17#include "arcane/ItemInternalEnumerator.h"
18#include "arcane/IItemFamily.h"
19#include "arcane/IMesh.h"
20#include "arcane/MeshPartInfo.h"
59print(std::ostream& o)
const
62 if (m_has_item_kind) {
83print(std::ostream& ostr)
const
86 ostr <<
"(null Item)";
98 if (m_item.nbNode() != 0)
102 if (m_item.nbEdge() != 0)
105 if (m_item.nbFace() != 0)
109 if (m_item.nbCell() != 0)
117void NeighborItemPrinter::
118_printSubItems(std::ostream& ostr,
Integer level,
Integer levelmax,
122 for (
Item sub_item : sub_items) {
123 indent(ostr, levelmax - level) <<
"\t" << name;
124 print(ostr, sub_item, level - 1, levelmax);
135 impl::ItemBase item = xitem.itemBase();
137 ostr <<
"(null Item)";
150 if (item.nbNode() != 0)
151 _printSubItems(ostr, level, levelmax, item.nodeList(),
"node");
152 if (item.nbEdge() != 0)
153 _printSubItems(ostr, level, levelmax, item.edgeList(),
"edge");
154 if (item.nbFace() != 0)
155 _printSubItems(ostr, level, levelmax, item.faceList(),
"face");
157 if (item.nbCell() != 0)
158 _printSubItems(ostr, level, levelmax, item.cellList(),
"cell");
163std::ostream& NeighborItemPrinter::
164indent(std::ostream& ostr,
Integer level)
166 for (
Integer l = 0; l < level; ++l)
182 <<
",owner=" << item.
owner()
196 o << ((position++) ?
"|" :
"") <<
"Boundary";
198 o << ((position++) ?
"|" :
"") <<
"HasFrontCell";
200 o << ((position++) ?
"|" :
"") <<
"HasBackCell";
202 o << ((position++) ?
"|" :
"") <<
"FrontCellIsFirst";
204 o << ((position++) ?
"|" :
"") <<
"BackCellIsFirst";
206 o << ((position++) ?
"|" :
"") <<
"Own";
208 o << ((position++) ?
"|" :
"") <<
"Added";
210 o << ((position++) ?
"|" :
"") <<
"Suppressed";
212 o << ((position++) ?
"|" :
"") <<
"Shared";
214 o << ((position++) ?
"|" :
"") <<
"SubDomainBoundary";
218 o << ((position++) ?
"|" :
"") <<
"JustAdded";
220 o << ((position++) ?
"|" :
"") <<
"NeedRemove";
222 o << ((position++) ?
"|" :
"") <<
"SlaveFace";
224 o << ((position++) ?
"|" :
"") <<
"MasterFace";
226 o << ((position++) ?
"|" :
"") <<
"Detached";
228 o << ((position++) ?
"|" :
"") <<
"HasTrace";
230 o << ((position++) ?
"|" :
"") <<
"Coarsen";
232 o << ((position++) ?
"|" :
"") <<
"DoNothing";
234 o << ((position++) ?
"|" :
"") <<
"Refine";
236 o << ((position++) ?
"|" :
"") <<
"JustRefined";
238 o << ((position++) ?
"|" :
"") <<
"JustCoarsened";
240 o << ((position++) ?
"|" :
"") <<
"Inactive";
242 o << ((position++) ?
"|" :
"") <<
"CoarsenInactive";
244 o << ((position++) ?
"|" :
"") <<
"UserMark1";
246 o << ((position++) ?
"|" :
"") <<
"UserMark2";
258 ItemBase parent = item.parentBase(0);
259 o <<
",parent uid/lid="
274 const char* str =
", error=";
277 if (item.
isOwn() != (mesh_rank == item.
owner()))
278 o << ((nerror++ == 0) ? str :
"|") <<
"WRONG ISOWN";
281 ItemBase parent = item.parentBase(0);
283 o << ((nerror++ == 0) ? str :
"|") <<
"PARENT UID MISMATCH";
285 o << ((nerror++ == 0) ? str :
"|") <<
"SUPPRESSED PARENT";
287 o << ((nerror++ == 0) ? str :
"|") <<
"PARENT OWNER MISMATCH";
297 ostr <<
" " << name <<
" count=" << enumerator.
size();
299 for (
Item item : enumerator) {
300 if (item.localId() != NULL_ITEM_ID) {
302 ostr <<
" " << item.uniqueId();
310 for (
Item item : enumerator) {
311 if (item.localId() != NULL_ITEM_ID) {
313 ostr <<
" " << item.localId();
void print(std::ostream &o) const
Ecriture sur flux de l'Item courant et de ses sous-items.
virtual IMesh * mesh() const =0
Maillage associé
virtual const MeshPartInfo & meshPartInfo() const =0
Informations sur les parties du maillage.
Classe de base pour les entités du maillage.
bool isSuppressed() const
Vrai si l'entité est supprimée.
ItemUniqueId uniqueId() const
Numéro unique de l'entité
eItemKind kind() const
Genre de l'entité
IItemFamily * family() const
Famille dont est issue l'entité
Int32 owner() const
Numéro du sous-domaine propriétaire de l'entité
ItemTypeInfo * typeInfo() const
Type de l'entité.
bool isOwn() const
Vrai si l'entité appartient au sous-domaine.
Integer nbParent() const
Nombre de parent pour les sous-maillages.
Int32 localId() const
Numéro local (au sous-domaine) de l'entité
@ II_FrontCellIsFirst
La première maille de l'entité est la maille devant.
@ II_NeedRemove
L'entité doit être supprimé
@ II_MasterFace
L'entité est une face maître d'une interface.
@ II_Inactive
L'entité est inactive //COARSEN_INACTIVE,.
@ II_Refine
L'entité est marquée pour raffinement.
@ II_JustAdded
L'entité vient d'être ajoutée.
@ II_Shared
L'entité est partagée par un autre sous-domaine.
@ II_HasBackCell
L'entité a une maille derrière.
@ II_SubDomainBoundary
L'entité est à la frontière de deux sous-domaines.
@ II_JustRefined
L'entité vient d'être raffinée.
@ II_Own
L'entité est une entité propre au sous-domaine.
@ II_Suppressed
L'entité vient d'être supprimée.
@ II_Detached
L'entité est détachée du maillage.
@ II_Boundary
L'entité est sur la frontière.
@ II_HasTrace
L'entité est marquée pour trace (pour débug)
@ II_Added
L'entité vient d'être ajoutée.
@ II_SlaveFace
L'entité est une face esclave d'une interface.
@ II_CoarsenInactive
L'entité est inactive et a des enfants tagués pour déraffinement.
@ II_UserMark2
Marque utilisateur old_value 1<<25.
@ II_HasFrontCell
L'entité a une maille devant.
@ II_DoNothing
L'entité est bloquée.
@ II_BackCellIsFirst
La première maille de l'entité est la maille derrière.
@ II_Coarsen
L'entité est marquée pour déraffinement.
@ II_JustCoarsened
L'entité vient d'être déraffiné
@ II_UserMark1
Marque utilisateur old_value 1<<24.
void print(std::ostream &o) const
Ecriture sur flux de l'Item courant.
String typeName() const
Nom du type.
Vue sur un vecteur d'entités.
Int32 size() const
Nombre d'éléments du vecteur.
Classe de base d'un élément de maillage.
void print(std::ostream &o) const
Ecriture sur flux de l'Item courant et de ses sous-items.
Chaîne de caractères unicode.
static String plural(const Integer n, const String &str, const bool with_number=true)
Forme standard du pluriel par ajout d'un 's'.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Int32 Integer
Type représentant un entier.
eItemKind
Genre d'entité de maillage.
@ IK_Node
Entité de maillage de genre noeud.
@ IK_Cell
Entité de maillage de genre maille.
@ IK_Edge
Entité de maillage de genre arête.
const char * itemKindName(eItemKind kind)
Nom du genre d'entité.
std::int32_t Int32
Type entier signé sur 32 bits.
static void _printParents(std::ostream &o, ItemBase item)
Ecrit les infos sur les parents.
static void _printBasics(std::ostream &o, ItemBase item)
Ecrit les informations basiques de l'item.
static void _printFlags(std::ostream &o, Integer flags)
Ecrit les flags de l'item de manière explicite.
static void _printErrors(std::ostream &o, ItemBase item)
Ecrit les infos sur les parents.
static void _printItemSubItems(std::ostream &ostr, String name, const ItemVectorView &enumerator)
Ecrit les informations d'une énumération d'items.