Skip to content

Commit f6c0a82

Browse files
[arcane,mesh] Corrige erreur dans 'CellFamily::_addChildCellToCell()' lorsque la maille ajoutée n'est pas la dernière.
Avant cette modification la méthode ne fonctionnait que si la maille enfant ajoutée était la dernière. Avec l'équilibrage de charge ce ne sera pas forcément le cas.
1 parent 86c3ee0 commit f6c0a82

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

arcane/src/arcane/mesh/CellFamily.cc

+8-5
Original file line numberDiff line numberDiff line change
@@ -491,15 +491,18 @@ _addChildCellToCell2(Cell iparent_cell,Cell child_cell)
491491
/*---------------------------------------------------------------------------*/
492492

493493
void CellFamily::
494-
_addChildCellToCell(Cell iparent_cell,Integer rank,Cell child_cell)
494+
_addChildCellToCell(Cell iparent_cell,Integer position,Cell child_cell)
495495
{
496496
Cell parent_cell(iparent_cell);
497-
// NOTE GG: Cette méthode ne semble fonctionner que si \a rank
498-
// correspond parent_cell->nbHChildren().
497+
// NOTE GG: L'ancienne méthode ci-dessous en commentaire ne semble
498+
// fonctionner que si \a position correspond parent_cell->nbHChildren().
499499
// Et dans ce cas il n'est pas nécessaire de faire 2 appels.
500-
m_hchild_connectivity->addConnectedItem(parent_cell,ItemLocalId(NULL_ITEM_LOCAL_ID));
500+
// m_hchild_connectivity->addConnectedItem(parent_cell,ItemLocalId(NULL_ITEM_LOCAL_ID));
501+
Int32 nb_connected = m_hchild_connectivity->trueCustomConnectivity()->nbConnectedItem(parent_cell);
502+
for( Int32 i=nb_connected; i<(position+1); ++i )
503+
m_hchild_connectivity->addConnectedItem(parent_cell,ItemLocalId(NULL_ITEM_LOCAL_ID));
501504
auto x = _topologyModifier();
502-
x->replaceHChild(ItemLocalId(iparent_cell),rank,child_cell);
505+
x->replaceHChild(ItemLocalId(iparent_cell),position,child_cell);
503506
parent_cell.mutableItemBase().addFlags(ItemFlags::II_Inactive);
504507
}
505508

0 commit comments

Comments
 (0)