From 8281e6111963fb46fca2ca8fb3287a085f06e84a Mon Sep 17 00:00:00 2001 From: Jian HUANG Date: Thu, 28 May 2026 16:19:39 -0500 Subject: [PATCH 1/7] enable smoke tests with MPI runs --- .../ALM_inclinedFault_ISG_DruckerPrager_smoke.xml | 7 ++++++- .../ALM_inclinedFault_ISG_smoke.xml | 7 ++++++- .../AugmentedLagrangianMultipliers.ats | 4 ++-- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/inputFiles/poromechanicsFractures/Contact/AugmentedLagrangianMultipliers/ALM_inclinedFault_ISG_DruckerPrager_smoke.xml b/inputFiles/poromechanicsFractures/Contact/AugmentedLagrangianMultipliers/ALM_inclinedFault_ISG_DruckerPrager_smoke.xml index b3ca9b80281..38a27f41b27 100755 --- a/inputFiles/poromechanicsFractures/Contact/AugmentedLagrangianMultipliers/ALM_inclinedFault_ISG_DruckerPrager_smoke.xml +++ b/inputFiles/poromechanicsFractures/Contact/AugmentedLagrangianMultipliers/ALM_inclinedFault_ISG_DruckerPrager_smoke.xml @@ -159,7 +159,12 @@ krylovTol="1.0e-8" logLevel="1"/> - + diff --git a/inputFiles/poromechanicsFractures/Contact/AugmentedLagrangianMultipliers/ALM_inclinedFault_ISG_smoke.xml b/inputFiles/poromechanicsFractures/Contact/AugmentedLagrangianMultipliers/ALM_inclinedFault_ISG_smoke.xml index 85382db0112..c0d606e5849 100755 --- a/inputFiles/poromechanicsFractures/Contact/AugmentedLagrangianMultipliers/ALM_inclinedFault_ISG_smoke.xml +++ b/inputFiles/poromechanicsFractures/Contact/AugmentedLagrangianMultipliers/ALM_inclinedFault_ISG_smoke.xml @@ -155,7 +155,12 @@ krylovTol="1.0e-8" logLevel="1"/> - + diff --git a/inputFiles/poromechanicsFractures/Contact/AugmentedLagrangianMultipliers/AugmentedLagrangianMultipliers.ats b/inputFiles/poromechanicsFractures/Contact/AugmentedLagrangianMultipliers/AugmentedLagrangianMultipliers.ats index 754e1c0f60a..ae88ea54ea8 100644 --- a/inputFiles/poromechanicsFractures/Contact/AugmentedLagrangianMultipliers/AugmentedLagrangianMultipliers.ats +++ b/inputFiles/poromechanicsFractures/Contact/AugmentedLagrangianMultipliers/AugmentedLagrangianMultipliers.ats @@ -36,7 +36,7 @@ decks = [ TestDeck( name="ALM_inclinedFault_ISG_smoke", description='PoroElastic ALM inclined fault with internal surface generator (elastic)', - partitions=((1, 1, 1),), + partitions=((1, 1, 1), (2, 2, 1)), restart_step=0, check_step=1, restartcheck_params=RestartcheckParameters(**restartcheck_params)), @@ -50,7 +50,7 @@ decks = [ TestDeck( name="ALM_inclinedFault_ISG_DruckerPrager_smoke", description='PoroElastic ALM inclined fault with internal surface generator (DruckerPrager plastic)', - partitions=((1, 1, 1),), + partitions=((1, 1, 1), (2, 2, 1)), restart_step=0, check_step=1, restartcheck_params=RestartcheckParameters(**restartcheck_params)), From 96fbdbe90f1a5cdc565c4dbf338a1a11d28a602e Mon Sep 17 00:00:00 2001 From: Jian HUANG Date: Thu, 28 May 2026 18:23:14 -0500 Subject: [PATCH 2/7] update rebaseline tag --- .integrated_tests.yaml | 2 +- BASELINE_NOTES.md | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/.integrated_tests.yaml b/.integrated_tests.yaml index e1ea844bc05..caad2dbf81f 100644 --- a/.integrated_tests.yaml +++ b/.integrated_tests.yaml @@ -1,6 +1,6 @@ baselines: bucket: geosx - baseline: integratedTests/baseline_integratedTests-pr4062-16784-6d8782e + baseline: integratedTests/baseline_integratedTests-pr4068-16802-8281e61 allow_fail: all: '' diff --git a/BASELINE_NOTES.md b/BASELINE_NOTES.md index 2e69f9d42db..2f5f6b94e66 100644 --- a/BASELINE_NOTES.md +++ b/BASELINE_NOTES.md @@ -5,28 +5,40 @@ This file is designed to track changes to the integrated test baselines. Any developer who updates the baseline ID in the .integrated_tests.yaml file is expected to create an entry in this file with the pull request number, date, and their justification for rebaselining. These notes should be in reverse-chronological order, and use the following time format: (YYYY-MM-DD). +PR #4068 (2026-05-28) +===================== +Add MPI runs for smoke tests with surfaceGenerator + PR #4062 (2026-05-26) +===================== Add Porous Solid other than PorousElasticity for ALM solver PR #4057 (2026-05-21) +===================== Remove dependency on PVT package PR #3814 (2026-05-20) +===================== Fix RLF coloring PR #4008 (2026-05-18) +===================== Fix Fracture/3D cell co-location in parallel mesh redistribution PR #4055 (2026-05-18) +===================== Trim some fluid model tests PR #4041 (2026-05-16) +===================== Fix wellbore nonlinear thermal diffusion PR #3977 (2026-05-15) +===================== Change face normal, centers and area for local Newell's formula PR #3999 (2026-05-14) +===================== Fault Perm Update for Contact solvers PR #4029 (2026-05-06) From cf7f1afd7a03271762dd24540ceed77a4353020f Mon Sep 17 00:00:00 2001 From: DENEL Bertrand Date: Fri, 29 May 2026 09:43:01 -0500 Subject: [PATCH 3/7] test ordering --- .../surfaceGeneration/SurfaceGenerator.cpp | 14 +++++------ .../surfaceGeneration/SurfaceGenerator.hpp | 25 +++++++++++++++++++ 2 files changed, 32 insertions(+), 7 deletions(-) diff --git a/src/coreComponents/physicsSolvers/surfaceGeneration/SurfaceGenerator.cpp b/src/coreComponents/physicsSolvers/surfaceGeneration/SurfaceGenerator.cpp index 229d409edea..2450ae28a6b 100644 --- a/src/coreComponents/physicsSolvers/surfaceGeneration/SurfaceGenerator.cpp +++ b/src/coreComponents/physicsSolvers/surfaceGeneration/SurfaceGenerator.cpp @@ -993,7 +993,7 @@ bool SurfaceGenerator::processNode( const localIndex nodeID, std::set< localIndex > facialRupturePath; map< localIndex, int > edgeLocations; map< localIndex, int > faceLocations; - map< std::pair< CellElementSubRegion const *, localIndex >, int > elemLocations; + ElemLocMapType elemLocations; fracturePlaneFlag = findFracturePlanes( nodeID, nodeManager, @@ -1045,7 +1045,7 @@ bool SurfaceGenerator::findFracturePlanes( localIndex const nodeID, std::set< localIndex > & separationPathFaces, map< localIndex, int > & edgeLocations, map< localIndex, int > & faceLocations, - map< std::pair< CellElementSubRegion const *, localIndex >, int > & elemLocations ) + ElemLocMapType & elemLocations ) { GEOS_MARK_FUNCTION; @@ -1585,7 +1585,7 @@ bool SurfaceGenerator::assignLocationsBFS( std::set< localIndex > const & separa map< localIndex, std::pair< localIndex, localIndex > > const & localFacesToEdges, map< localIndex, int > & edgeLocations, map< localIndex, int > & faceLocations, - map< std::pair< CellElementSubRegion const *, localIndex >, int > & elemLocations ) + ElemLocMapType & elemLocations ) { GEOS_MARK_FUNCTION; @@ -1835,7 +1835,7 @@ void SurfaceGenerator::performFracture( const localIndex nodeID, const std::set< localIndex > & separationPathFaces, const map< localIndex, int > & edgeLocations, const map< localIndex, int > & faceLocations, - const map< std::pair< CellElementSubRegion const *, localIndex >, int > & elemLocations ) + const ElemLocMapType & elemLocations ) { GEOS_MARK_FUNCTION; @@ -2151,7 +2151,7 @@ void SurfaceGenerator::performFracture( const localIndex nodeID, array1d< localIndex > const & childFaceIndex = faceManager.getField< fields::childIndex >(); // 1) loop over all elements attached to the nodeID - for( map< std::pair< CellElementSubRegion const *, localIndex >, int >::const_iterator iter_elem = elemLocations.begin(); iter_elem != elemLocations.end(); ++iter_elem ) + for( ElemLocMapType::const_iterator iter_elem = elemLocations.begin(); iter_elem != elemLocations.end(); ++iter_elem ) { const int & location = iter_elem->second; @@ -2515,7 +2515,7 @@ void SurfaceGenerator::mapConsistencyCheck( localIndex const GEOS_UNUSED_PARAM( EdgeManager const & edgeManager, FaceManager const & faceManager, ElementRegionManager const & elementManager, - map< std::pair< CellElementSubRegion const *, localIndex >, int > const & elemLocations ) + ElemLocMapType const & elemLocations ) { GEOS_MARK_FUNCTION; @@ -2544,7 +2544,7 @@ void SurfaceGenerator::mapConsistencyCheck( localIndex const GEOS_UNUSED_PARAM( { std::cout << "CONSISTENCY CHECKING OF THE MAPS" << std::endl; - for( map< std::pair< CellElementSubRegion const *, localIndex >, int >::const_iterator iter_elem = elemLocations.cbegin(); iter_elem != elemLocations.cend(); ++iter_elem ) + for( ElemLocMapType::const_iterator iter_elem = elemLocations.cbegin(); iter_elem != elemLocations.cend(); ++iter_elem ) { const std::pair< CellElementSubRegion const *, localIndex > & elem = iter_elem->first; diff --git a/src/coreComponents/physicsSolvers/surfaceGeneration/SurfaceGenerator.hpp b/src/coreComponents/physicsSolvers/surfaceGeneration/SurfaceGenerator.hpp index e0b655b4be4..6272c9bb263 100644 --- a/src/coreComponents/physicsSolvers/surfaceGeneration/SurfaceGenerator.hpp +++ b/src/coreComponents/physicsSolvers/surfaceGeneration/SurfaceGenerator.hpp @@ -22,6 +22,7 @@ #include "mesh/mpiCommunications/NeighborCommunicator.hpp" #include "physicsSolvers/PhysicsSolverBase.hpp" #include "mesh/DomainPartition.hpp" +#include "mesh/CellElementSubRegion.hpp" #include "ParallelTopologyChange.hpp" namespace geos @@ -34,6 +35,30 @@ class FaceManager; class ElementRegionManager; class ElementRegionBase; +/** + * @brief Comparator for (CellElementSubRegion const *, localIndex) pairs that + * provides deterministic ordering based on region/subregion indices + */ +struct ElemLocComparator +{ + bool operator()( std::pair< CellElementSubRegion const *, localIndex > const & a, + std::pair< CellElementSubRegion const *, localIndex > const & b ) const + { + if( a.first != b.first ) + { + localIndex const regionA = a.first->getParent().getParent().getIndexInParent(); + localIndex const regionB = b.first->getParent().getParent().getIndexInParent(); + if( regionA != regionB ) + return regionA < regionB; + return a.first->getIndexInParent() < b.first->getIndexInParent(); + } + return a.second < b.second; + } +}; + +/// Type alias for the element location map with deterministic ordering. +using ElemLocMapType = stdMap< std::pair< CellElementSubRegion const *, localIndex >, int, ElemLocComparator >; + /** * @class SurfaceGenerator * From 5bdf4aa11dc541d2b932c1aaef475ec7d648ccf1 Mon Sep 17 00:00:00 2001 From: DENEL Bertrand Date: Fri, 29 May 2026 11:37:26 -0500 Subject: [PATCH 4/7] test ordering --- .../physicsSolvers/surfaceGeneration/SurfaceGenerator.hpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/coreComponents/physicsSolvers/surfaceGeneration/SurfaceGenerator.hpp b/src/coreComponents/physicsSolvers/surfaceGeneration/SurfaceGenerator.hpp index 6272c9bb263..f221e4aa840 100644 --- a/src/coreComponents/physicsSolvers/surfaceGeneration/SurfaceGenerator.hpp +++ b/src/coreComponents/physicsSolvers/surfaceGeneration/SurfaceGenerator.hpp @@ -392,7 +392,7 @@ class SurfaceGenerator : public PhysicsSolverBase std::set< localIndex > & separationPathFaces, map< localIndex, int > & edgeLocations, map< localIndex, int > & faceLocations, - map< std::pair< CellElementSubRegion const *, localIndex >, int > & elemLocations ); + ElemLocMapType & elemLocations ); /** @@ -422,14 +422,14 @@ class SurfaceGenerator : public PhysicsSolverBase std::set< localIndex > const & separationPathFaces, map< localIndex, int > const & edgeLocations, map< localIndex, int > const & faceLocations, - map< std::pair< CellElementSubRegion const *, localIndex >, int > const & elemLocations ); + ElemLocMapType const & elemLocations ); void mapConsistencyCheck( localIndex const nodeID, NodeManager const & nodeManager, EdgeManager const & edgeManager, FaceManager const & faceManager, ElementRegionManager const & elementManager, - map< std::pair< CellElementSubRegion const *, localIndex >, int > const & elemLocations ); + ElemLocMapType const & elemLocations ); /** * @brief Assign fracture-plane sides to all elements, faces, and edges @@ -469,7 +469,7 @@ class SurfaceGenerator : public PhysicsSolverBase map< localIndex, std::pair< localIndex, localIndex > > const & localFacesToEdges, map< localIndex, int > & edgeLocations, map< localIndex, int > & faceLocations, - map< std::pair< CellElementSubRegion const *, localIndex >, int > & elemLocations ); + ElemLocMapType & elemLocations ); /** * From c74157c57b1ed33a6b2ca1f0443dc3b970498ec0 Mon Sep 17 00:00:00 2001 From: DENEL Bertrand Date: Fri, 29 May 2026 12:25:09 -0500 Subject: [PATCH 5/7] map --- .../physicsSolvers/surfaceGeneration/SurfaceGenerator.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreComponents/physicsSolvers/surfaceGeneration/SurfaceGenerator.cpp b/src/coreComponents/physicsSolvers/surfaceGeneration/SurfaceGenerator.cpp index 2450ae28a6b..ef2b09b7e6a 100644 --- a/src/coreComponents/physicsSolvers/surfaceGeneration/SurfaceGenerator.cpp +++ b/src/coreComponents/physicsSolvers/surfaceGeneration/SurfaceGenerator.cpp @@ -1492,7 +1492,7 @@ bool SurfaceGenerator::findFracturePlanes( localIndex const nodeID, for( auto k = nodeToElementMaps.cbegin(); k != nodeToElementMaps.cend(); ++k ) { - elemLocations[*k] = INT_MIN; + elemLocations.get_inserted( *k ) = INT_MIN; } From 4a69c0767fde0d28d7618921bb5d0aa881cace93 Mon Sep 17 00:00:00 2001 From: DENEL Bertrand Date: Fri, 29 May 2026 15:08:34 -0500 Subject: [PATCH 6/7] rebaseline test --- .integrated_tests.yaml | 2 +- BASELINE_NOTES.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.integrated_tests.yaml b/.integrated_tests.yaml index caad2dbf81f..33f78393820 100644 --- a/.integrated_tests.yaml +++ b/.integrated_tests.yaml @@ -1,6 +1,6 @@ baselines: bucket: geosx - baseline: integratedTests/baseline_integratedTests-pr4068-16802-8281e61 + baseline: integratedTests/baseline_integratedTests-pr4068-16828-c74157c allow_fail: all: '' diff --git a/BASELINE_NOTES.md b/BASELINE_NOTES.md index 2f5f6b94e66..c52ced0e372 100644 --- a/BASELINE_NOTES.md +++ b/BASELINE_NOTES.md @@ -5,7 +5,7 @@ This file is designed to track changes to the integrated test baselines. Any developer who updates the baseline ID in the .integrated_tests.yaml file is expected to create an entry in this file with the pull request number, date, and their justification for rebaselining. These notes should be in reverse-chronological order, and use the following time format: (YYYY-MM-DD). -PR #4068 (2026-05-28) +PR #4068 (2026-05-28) ===================== Add MPI runs for smoke tests with surfaceGenerator From e0970da4bb45f76798ab6262ebbdd758a343df47 Mon Sep 17 00:00:00 2001 From: Jian Huang <53012159+jhuang2601@users.noreply.github.com> Date: Wed, 3 Jun 2026 10:07:04 -0500 Subject: [PATCH 7/7] Update src/coreComponents/physicsSolvers/surfaceGeneration/SurfaceGenerator.hpp Co-authored-by: Jacques Franc <49998870+jafranc@users.noreply.github.com> --- .../physicsSolvers/surfaceGeneration/SurfaceGenerator.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreComponents/physicsSolvers/surfaceGeneration/SurfaceGenerator.hpp b/src/coreComponents/physicsSolvers/surfaceGeneration/SurfaceGenerator.hpp index f221e4aa840..5ddb0cd2773 100644 --- a/src/coreComponents/physicsSolvers/surfaceGeneration/SurfaceGenerator.hpp +++ b/src/coreComponents/physicsSolvers/surfaceGeneration/SurfaceGenerator.hpp @@ -37,7 +37,7 @@ class ElementRegionBase; /** * @brief Comparator for (CellElementSubRegion const *, localIndex) pairs that - * provides deterministic ordering based on region/subregion indices + * provides deterministic ordering based on localIndex/region/subregion indices in that precedence */ struct ElemLocComparator {