14#include "arcane/core/ItemInternal.h"
16#include "arcane/utils/NotImplementedException.h"
17#include "arcane/utils/FatalErrorException.h"
18#include "arcane/utils/Iostream.h"
19#include "arcane/utils/TraceInfo.h"
20#include "arcane/utils/CheckedConvert.h"
22#include "arcane/core/IItemFamily.h"
23#include "arcane/core/IItemFamilyTopologyModifier.h"
24#include "arcane/core/ItemPrinter.h"
35ItemInternalConnectivityList ItemInternalConnectivityList::nullInstance;
40void impl::MutableItemBase::
41_checkUniqueId(Int64 new_uid)
const
44 ARCANE_FATAL(
"Bad unique id - new_uid={0} local_id={1} current={2}",
45 new_uid,m_local_id,
uniqueId().asInt64());
56 _checkUniqueId(m_shared_info->m_unique_ids[m_local_id]);
58 m_shared_info->m_unique_ids[m_local_id] = NULL_ITEM_UNIQUE_ID;
67 if (m_unique_id>2147483647)
68 ARCANE_FATAL(
"Unique id is too big to be converted to a Int32");
69 return (Int32)(m_unique_id);
101 top_it = top_it->_internalHParent(0);
102 ARCANE_ASSERT((!top_it->
null()),(
"topHParent Problem!"));
103 ARCANE_ASSERT((top_it->
level() == 0),(
"topHParent Problem"));
111topHParentBase()
const
115 top_it = top_it.hParentBase(0);
116 ARCANE_ASSERT((!top_it.
null()),(
"topHParent Problem!"));
117 ARCANE_ASSERT((top_it.
level() == 0),(
"topHParent Problem"));
127 ItemInternal* top_it =
this;
128 while (top_it->nbHParent())
129 top_it = top_it->_internalHParent(0);
130 ARCANE_ASSERT((!top_it->null()),(
"topHParent Problem!"));
131 ARCANE_ASSERT((top_it->level() == 0),(
"topHParent Problem"));
141 ARCANE_ASSERT((this->
hasHChildren()), (
"item has non-child!"));
143 if (this->hChildId(c) == local_id)
154 ARCANE_ASSERT((this->
hasHChildren()), (
"item has non-child!"));
156 if (this->_internalHChild(c) == iitem)
165_internalActiveCells2(
Int32Array& local_ids)
const
167 const Integer nbcell = this->
nbCell();
168 for(Integer icell = 0 ; icell < nbcell ; ++icell) {
169 ItemBase cell = this->cellBase(icell);
171 const Int32 local_id = cell.
localId();
172 local_ids.
add(local_id);
175 return ItemInternalVectorView(m_shared_info->m_items->m_cell_shared_info,local_ids,0);
181void impl::MutableItemBase::
182_setFaceInfos(Int32 mod_flags)
184 Int32 face_flags =
flags();
185 face_flags &= ~II_InterfaceFlags;
186 face_flags |= mod_flags;
202void impl::MutableItemBase::
203_setFaceBackAndFrontCells(Int32 back_cell_lid,Int32 front_cell_lid)
205 if (front_cell_lid==NULL_ITEM_LOCAL_ID){
208 _setFaceInfos(mod_flags);
210 else if (back_cell_lid==NULL_ITEM_LOCAL_ID){
235bool ItemInternalVectorView::
240 if (!m_local_ids.
empty()){
241 auto* items_data = _items().
data();
#define ARCANE_FATAL(...)
Macro envoyant une exception FatalErrorException.
Classe de base pour les entités du maillage.
ItemUniqueId uniqueId() const
Numéro unique de l'entité
Integer nbCell() const
Nombre de mailles connectées à l'entité (pour les noeuds, arêtes et faces)
Int32 flags() const
Flags de l'entité
Int32 nbHParent() const
Nombre de parents pour l'AMR.
bool hasHChildren() const
Int32 whichChildAmI(Int32 local_id) const
Int32 nbHChildren() const
Nombre d'enfants pour l'AMR.
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_HasBackCell
L'entité a une maille derrière.
@ II_Boundary
L'entité est sur la frontière.
@ II_HasFrontCell
L'entité a une maille devant.
@ II_BackCellIsFirst
La première maille de l'entité est la maille derrière.
Int32 whichChildAmI(const ItemInternal *iitem) const
const ItemInternal * topHParent() const
AMR.
Type d'une entité (Item).
static ItemTypeId fromInteger(Int64 v)
Créé une instance à partir d'un entier.
Identifiant unique d'une entité.
void setFlags(Int32 f)
Positionne les flags de l'entité
void unsetUniqueId()
Annule l'uniqueId a la valeur NULL_ITEM_UNIQUE_ID.
Classe de base des vecteurs 1D de données.
void add(ConstReferenceType val)
Ajoute l'élément val à la fin du tableau.
constexpr bool empty() const noexcept
true si le tableau est vide (size()==0)
constexpr const_pointer data() const noexcept
Pointeur sur la mémoire allouée.
Int16 toInt16(Int64 v)
Converti un Int64 en un Int16.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
std::ostream & operator<<(std::ostream &ostr, eItemKind item_kind)
Opérateur de sortie sur un flot.