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"
44 static void _printBasics(std::ostream& o,
ItemBase item);
46 static void _printFlags(std::ostream& o, Integer flags);
48 static void _printParents(std::ostream& o,
ItemBase item);
50 static void _printErrors(std::ostream& o,
ItemBase item);
52 static void _printItemSubItems(std::ostream& ostr,
String name,
const ItemVectorView& enumerator);
59print(std::ostream& o)
const
62 if (m_has_item_kind) {
83print(std::ostream& ostr)
const
86 ostr <<
"(null Item)";
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);
133print(std::ostream& ostr, Item xitem, Integer level, Integer 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()
193 Integer position = 0;
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.
Integer nbEdge() const
Nombre d'arêtes de l'entité ou nombre d'arêtes connectés à l'entités (pour les noeuds)
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é
Integer nbCell() const
Nombre de mailles connectées à l'entité (pour les noeuds, arêtes et faces)
IItemFamily * family() const
Famille dont est issue l'entité
Int32 owner() const
Numéro du sous-domaine propriétaire de l'entité
Int32 flags() const
Flags de l'entité
Integer nbFace() const
Nombre de faces de l'entité ou nombre de faces connectés à l'entités (pour les noeuds et arêtes)
impl::ItemIndexedListView< DynExtent > nodeList() const
Méthodes utilisant les nouvelles connectivités pour accéder aux informations de connectivité....
ItemTypeInfo * typeInfo() const
Type de l'entité.
bool isOwn() const
Vrai si l'entité appartient au sous-domaine.
Integer nbNode() const
Nombre de noeuds de l'entité
Integer nbParent() const
Nombre de parent pour les sous-maillages.
bool null() const
Vrai si l'entité est l'entité nulle.
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.
Classe utilitaire pour imprimer les infos sur une entité.
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 -*-
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é.
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.