From 659b1028ed7f9d50104db569bf35ba0c8f20c29d Mon Sep 17 00:00:00 2001 From: Gilles Grospellier Date: Sun, 12 Oct 2025 15:44:08 +0200 Subject: [PATCH] =?UTF-8?q?[arcane,core]=20D=C3=A9place=20les=20m=C3=A9tho?= =?UTF-8?q?des=20de=20calcul=20des=20propri=C3=A9taires=20des=20entit?= =?UTF-8?q?=C3=A9s=20de=20'IMeshUtilities'=20vers=20'MeshUtils'.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- arcane/src/arcane/core/IMeshUtilities.h | 3 ++ arcane/src/arcane/core/MeshUtils.cc | 31 ++++++++++++++++++++ arcane/src/arcane/core/MeshUtils.h | 39 +++++++++++++++++++++++++ arcane/src/arcane/tests/MeshUnitTest.cc | 6 ++-- 4 files changed, 76 insertions(+), 3 deletions(-) diff --git a/arcane/src/arcane/core/IMeshUtilities.h b/arcane/src/arcane/core/IMeshUtilities.h index bdcb40f260..63c8d8675a 100644 --- a/arcane/src/arcane/core/IMeshUtilities.h +++ b/arcane/src/arcane/core/IMeshUtilities.h @@ -162,6 +162,7 @@ class ARCANE_CORE_EXPORT IMeshUtilities * * Cette opération est collective. */ + ARCANE_DEPRECATED_REASON("Y2025: Use MeshUtils::computeAndSetOwnerForNodes() instead") virtual void computeAndSetOwnersForNodes() =0; /*! @@ -172,6 +173,7 @@ class ARCANE_CORE_EXPORT IMeshUtilities * * Cette opération est collective. */ + ARCANE_DEPRECATED_REASON("Y2025: Use MeshUtils::computeAndSetOwnerForEdges() instead") virtual void computeAndSetOwnersForEdges() = 0; /*! @@ -182,6 +184,7 @@ class ARCANE_CORE_EXPORT IMeshUtilities * * Cette opération est collective. */ + ARCANE_DEPRECATED_REASON("Y2025: Use MeshUtils::computeAndSetOwnerForFaces() instead") virtual void computeAndSetOwnersForFaces() =0; /*! diff --git a/arcane/src/arcane/core/MeshUtils.cc b/arcane/src/arcane/core/MeshUtils.cc index db89e1f9dc..65db290714 100644 --- a/arcane/src/arcane/core/MeshUtils.cc +++ b/arcane/src/arcane/core/MeshUtils.cc @@ -45,6 +45,7 @@ #include "arcane/core/ITiedInterface.h" #include "arcane/core/SharedVariable.h" #include "arcane/core/MeshVisitor.h" +#include "arcane/core/IMeshUtilities.h" #include "arcane/core/IVariableSynchronizer.h" #include "arcane/core/UnstructuredMeshConnectivity.h" #include "arcane/core/datatype/DataAllocationInfo.h" @@ -1952,6 +1953,36 @@ generateHashUniqueId(SmallSpan nodes_unique_id) /*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/ +void MeshUtils:: +computeAndSetOwnerForNodes(IMesh* mesh) +{ + ARCANE_CHECK_POINTER(mesh); + mesh->utilities()->computeAndSetOwnersForNodes(); +} + +/*---------------------------------------------------------------------------*/ +/*---------------------------------------------------------------------------*/ + +void MeshUtils:: +computeAndSetOwnerForEdges(IMesh* mesh) +{ + ARCANE_CHECK_POINTER(mesh); + mesh->utilities()->computeAndSetOwnersForEdges(); +} + +/*---------------------------------------------------------------------------*/ +/*---------------------------------------------------------------------------*/ + +void MeshUtils:: +computeAndSetOwnerForFaces(IMesh* mesh) +{ + ARCANE_CHECK_POINTER(mesh); + mesh->utilities()->computeAndSetOwnersForFaces(); +} + +/*---------------------------------------------------------------------------*/ +/*---------------------------------------------------------------------------*/ + } // End namespace Arcane /*---------------------------------------------------------------------------*/ diff --git a/arcane/src/arcane/core/MeshUtils.h b/arcane/src/arcane/core/MeshUtils.h index f0b503f0ba..c32e54cd12 100644 --- a/arcane/src/arcane/core/MeshUtils.h +++ b/arcane/src/arcane/core/MeshUtils.h @@ -459,6 +459,45 @@ computeNodeNodeViaEdgeConnectivity(IMesh* mesh, const String& connectivity_name) extern "C++" ARCANE_CORE_EXPORT Ref computeBoundaryNodeNodeViaEdgeConnectivity(IMesh* mesh, const String& connectivity_name); +/*---------------------------------------------------------------------------*/ +/*---------------------------------------------------------------------------*/ +/*! + * \brief Détermine les propriétaires des noeuds. + * + * La détermination se fait en fonction des propriétaires des mailles. + * Il ne doit pas y avoir de couches de mailles fantômes. + * + * Cette opération est collective. + */ +extern "C++" ARCANE_CORE_EXPORT void +computeAndSetOwnerForNodes(IMesh* mesh); + +/*---------------------------------------------------------------------------*/ +/*---------------------------------------------------------------------------*/ +/*! + * \brief Détermine les propriétaires des arêtes. + * + * La détermination se fait en fonction des propriétaires des mailles. + * Il ne doit pas y avoir de couches de mailles fantômes. + * + * Cette opération est collective. + */ +extern "C++" ARCANE_CORE_EXPORT void +computeAndSetOwnerForEdges(IMesh* mesh); + +/*---------------------------------------------------------------------------*/ +/*---------------------------------------------------------------------------*/ +/*! + * \brief Détermine les propriétaires des faces. + * + * La détermination se fait en fonction des propriétaires des mailles. + * Il ne doit pas y avoir de couches de mailles fantômes. + * + * Cette opération est collective. + */ +extern "C++" ARCANE_CORE_EXPORT void +computeAndSetOwnerForFaces(IMesh* mesh); + /*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/ diff --git a/arcane/src/arcane/tests/MeshUnitTest.cc b/arcane/src/arcane/tests/MeshUnitTest.cc index 9bb87055c4..761c880498 100644 --- a/arcane/src/arcane/tests/MeshUnitTest.cc +++ b/arcane/src/arcane/tests/MeshUnitTest.cc @@ -1806,9 +1806,9 @@ _testComputeOwnersDirect() info() << "Test: _testComputeOwnersDirect()"; mesh()->modifier()->setDynamic(true); mesh()->modifier()->updateGhostLayers(); - mesh()->utilities()->computeAndSetOwnersForNodes(); - mesh()->utilities()->computeAndSetOwnersForEdges(); - mesh()->utilities()->computeAndSetOwnersForFaces(); + MeshUtils::computeAndSetOwnerForNodes(mesh()); + MeshUtils::computeAndSetOwnerForEdges(mesh()); + MeshUtils::computeAndSetOwnerForFaces(mesh()); } /*---------------------------------------------------------------------------*/