3232#include " arcane/core/IGhostLayerMng.h"
3333#include " arcane/core/MeshPartInfo.h"
3434#include " arcane/core/IMeshSubdivider.h"
35+ #include " arcane/core/IMeshUniqueIdMng.h"
3536#include " arcane/core/internal/StringVariableReplace.h"
3637
3738#include " arcane/impl/ArcaneCaseMeshService_axl.h"
@@ -79,6 +80,7 @@ class ArcaneCaseMeshService
7980 void _doInitialPartition2 (const String& name);
8081 void _setGhostLayerInfos ();
8182 void _checkMeshCreationAndAllocation (bool is_check_allocated);
83+ void _setUniqueIdNumberingVersion ();
8284};
8385
8486/* ---------------------------------------------------------------------------*/
@@ -163,9 +165,9 @@ allocateMeshItems()
163165 ARCANE_CHECK_POINTER (m_mesh_builder);
164166
165167 _setGhostLayerInfos ();
168+ _setUniqueIdNumberingVersion ();
166169
167170 m_mesh_builder->allocateMeshItems (m_mesh);
168-
169171}
170172
171173/* ---------------------------------------------------------------------------*/
@@ -381,13 +383,13 @@ _setGhostLayerInfos()
381383 // TODO Cela est fait pour rester compatible avec le mode historique mais
382384 // il faudrait pouvoir gérer cela autrement (via un service par exemple)
383385 Integer nb_ghost_layer = options ()->nbGhostLayer ();
384- if (nb_ghost_layer>= 0 ) {
386+ if (nb_ghost_layer >= 0 ) {
385387 info () << " Set number of ghost layers to '" << nb_ghost_layer << " ' from caseoption" ;
386388 gm->setNbGhostLayer (nb_ghost_layer);
387389 }
388390
389391 Integer builder_version = options ()->ghostLayerBuilderVersion ();
390- if (builder_version>= 0 ) {
392+ if (builder_version >= 0 ) {
391393 info () << " Set ghostlayer builder version to '" << builder_version << " ' from caseoption" ;
392394 gm->setBuilderVersion (builder_version);
393395 }
@@ -396,6 +398,23 @@ _setGhostLayerInfos()
396398/* ---------------------------------------------------------------------------*/
397399/* ---------------------------------------------------------------------------*/
398400
401+ void ArcaneCaseMeshService::
402+ _setUniqueIdNumberingVersion ()
403+ {
404+ // NOTE: actuellement (12/2024) l'implémentation 'PolyedralMesh' lève une
405+ // exception si on appelle meshUniqueIdMng(). On ne le fait que si
406+ // l'option est présente.
407+ if (options ()->faceNumberingVersion .isPresent ()) {
408+ Int32 v = options ()->faceNumberingVersion .value ();
409+ info () << " Set face uniqueId numbering version to '" << v << " ' from caseoption" ;
410+ IMeshUniqueIdMng* mum = m_mesh->meshUniqueIdMng ();
411+ mum->setFaceBuilderVersion (v);
412+ }
413+ }
414+
415+ /* ---------------------------------------------------------------------------*/
416+ /* ---------------------------------------------------------------------------*/
417+
399418ARCANE_REGISTER_SERVICE_ARCANECASEMESHSERVICE (ArcaneCaseMeshService,
400419 ArcaneCaseMeshService);
401420
0 commit comments