From 315793311d02b59ca9e63370ba5e523aee60e4bc Mon Sep 17 00:00:00 2001 From: "Victor A. P. Magri" Date: Tue, 23 Sep 2025 22:03:09 -0700 Subject: [PATCH 01/30] First batch of fixes --- src/coreComponents/common/LifoStorageCommon.hpp | 2 +- src/coreComponents/common/TypeDispatch.hpp | 2 +- src/coreComponents/dataRepository/ObjectCatalog.hpp | 2 +- src/coreComponents/mesh/FaceElementSubRegion.cpp | 10 +++++----- src/coreComponents/mesh/PerforationData.cpp | 2 +- .../mesh/generators/ParMETISInterface.hpp | 5 ----- .../mesh/generators/WellGeneratorBase.cpp | 2 +- .../mesh/mpiCommunications/SpatialPartition.cpp | 2 +- 8 files changed, 11 insertions(+), 16 deletions(-) diff --git a/src/coreComponents/common/LifoStorageCommon.hpp b/src/coreComponents/common/LifoStorageCommon.hpp index 3183cde65b8..7d18978aa70 100644 --- a/src/coreComponents/common/LifoStorageCommon.hpp +++ b/src/coreComponents/common/LifoStorageCommon.hpp @@ -164,7 +164,7 @@ class LifoStorageCommon GEOS_ERROR( "To use LifoStorage, both _SC_AVPHYS_PAGES and _SC_PAGESIZE must be defined." ); #endif int numberOfBuffersToStoreOnHost = std::max( 1, std::min( ( int )( 0.01 * percent * free / bufferSize ), maxNumberOfBuffers - numberOfBuffersToStoreOnDevice ) ); - double freeGB = ( ( double ) free ) / ( 1024.0 * 1024.0 * 1024.0 ) / MpiWrapper::nodeCommSize(); + GEOS_MAYBE_UNUSED double freeGB = ( ( double ) free ) / ( 1024.0 * 1024.0 * 1024.0 ) / MpiWrapper::nodeCommSize(); LIFO_LOG_RANK( " LIFO : available memory on host " << freeGB << " GB" ); return numberOfBuffersToStoreOnHost; } diff --git a/src/coreComponents/common/TypeDispatch.hpp b/src/coreComponents/common/TypeDispatch.hpp index b38b5858066..70a207b45fc 100644 --- a/src/coreComponents/common/TypeDispatch.hpp +++ b/src/coreComponents/common/TypeDispatch.hpp @@ -376,7 +376,7 @@ bool dispatch( LIST const combinations, if( !success ) { auto typePrinter = []( auto t ){ return LvArray::system::demangle( typeid( typename decltype(t)::type ).name() ); }; - auto typeListPrinter = [typePrinter]( auto tlist ){ return internal::listToString( typename decltype( tlist )::type{}, "\n ", "", typePrinter ); }; + GEOS_MAYBE_UNUSED auto typeListPrinter = [typePrinter]( auto tlist ){ return internal::listToString( typename decltype( tlist )::type{}, "\n ", "", typePrinter ); }; GEOS_ERROR( "Types were not dispatched to the lambda of type\n" << LvArray::system::demangleType< LAMBDA >() << "\n" diff --git a/src/coreComponents/dataRepository/ObjectCatalog.hpp b/src/coreComponents/dataRepository/ObjectCatalog.hpp index 2fd0762c97b..862cd91b704 100644 --- a/src/coreComponents/dataRepository/ObjectCatalog.hpp +++ b/src/coreComponents/dataRepository/ObjectCatalog.hpp @@ -181,7 +181,7 @@ class CatalogInterface */ //START_SPHINX_2 static std::unique_ptr< BASETYPE > factory( std::string const & objectTypeName, - DataContext const & context, + GEOS_MAYBE_UNUSED DataContext const & context, ARGS... args ) { // We stop the simulation if the type to create is not found diff --git a/src/coreComponents/mesh/FaceElementSubRegion.cpp b/src/coreComponents/mesh/FaceElementSubRegion.cpp index b7ee007a270..bade2797db7 100644 --- a/src/coreComponents/mesh/FaceElementSubRegion.cpp +++ b/src/coreComponents/mesh/FaceElementSubRegion.cpp @@ -449,10 +449,11 @@ localIndex FaceElementSubRegion::unpackToFaceRelation( buffer_unit_type const * * @param[in] elem2dToElems3d A mapping. * @param[in,out] elem2dToFaces This mapping will be corrected if needed to match @p elem2dToElems3d. */ -void fixNeighborMappingsInconsistency( string const & fractureName, +void fixNeighborMappingsInconsistency( GEOS_MAYBE_UNUSED string const & fractureName, FixedToManyElementRelation const & elem2dToElems3d, FaceElementSubRegion::FaceMapType & elem2dToFaces ) { + GEOS_MAYBE_UNUSED static constexpr std::string_view mappingInconsistency= "Mapping neighbor inconsistency detected for fracture {}."; { localIndex const num2dElems = elem2dToFaces.size( 0 ); for( int e2d = 0; e2d < num2dElems; ++e2d ) @@ -486,9 +487,9 @@ void fixNeighborMappingsInconsistency( string const & fractureName, { std::swap( elem2dToFaces[e2d][0], elem2dToFaces[e2d][1] ); } - else if( !matchStraight ) + else { - GEOS_ERROR( "Mapping neighbor inconsistency detected for fracture " << fractureName ); + GEOS_ERROR_IF( !matchStraight, GEOS_FMT( mappingInconsistency, fractureName ) ); } } } @@ -608,8 +609,7 @@ buildCollocatedEdgeBuckets( std::map< globalIndex, globalIndex > const & referen std::map< std::pair< globalIndex, globalIndex >, std::set< localIndex > > collocatedEdgeBuckets; for( auto const & p: edgesIds ) { - static constexpr auto nodeNotFound = "Internal error when trying to access the reference collocated node for global node {}."; - GEOS_UNUSED_VAR( nodeNotFound ); // Not used in GPU builds. + GEOS_MAYBE_UNUSED static constexpr auto nodeNotFound = "Internal error when trying to access the reference collocated node for global node {}."; std::pair< globalIndex, globalIndex > const & nodes = p.first; localIndex const & edge = p.second; diff --git a/src/coreComponents/mesh/PerforationData.cpp b/src/coreComponents/mesh/PerforationData.cpp index 69d738abb95..f7d7cd2325b 100644 --- a/src/coreComponents/mesh/PerforationData.cpp +++ b/src/coreComponents/mesh/PerforationData.cpp @@ -143,7 +143,7 @@ void PerforationData::computeWellTransmissibility( MeshLevel const & mesh, if( close_perf ) { m_localPerfStatus[iperf] = PerforationStatus::CLOSED; - WellElementRegion const & wellRegion = dynamicCast< WellElementRegion const & >( wellElemSubRegion.getParent().getParent() ); + GEOS_MAYBE_UNUSED WellElementRegion const & wellRegion = dynamicCast< WellElementRegion const & >( wellElemSubRegion.getParent().getParent() ); GEOS_LOG_RANK( "\n \nWarning! Perforation " << wellRegion.getWellGeneratorName() << " is defined with a zero transmissibility.\n" << "The simulation is going to proceed with this zero transmissibility,\n" << diff --git a/src/coreComponents/mesh/generators/ParMETISInterface.hpp b/src/coreComponents/mesh/generators/ParMETISInterface.hpp index fa1bb2c8545..8e948f762e1 100644 --- a/src/coreComponents/mesh/generators/ParMETISInterface.hpp +++ b/src/coreComponents/mesh/generators/ParMETISInterface.hpp @@ -26,13 +26,8 @@ namespace geos { -#if defined(GEOS_USE_HIP) // still need int32 hypre for the current hip-capable build -/// Typedef to allow us to specify required parmetis integer type. -using pmet_idx_t = int32_t; -#else /// Typedef to allow us to specify required parmetis integer type. using pmet_idx_t = int64_t; -#endif namespace parmetis { diff --git a/src/coreComponents/mesh/generators/WellGeneratorBase.cpp b/src/coreComponents/mesh/generators/WellGeneratorBase.cpp index c92967ed8dc..47926e0da5b 100644 --- a/src/coreComponents/mesh/generators/WellGeneratorBase.cpp +++ b/src/coreComponents/mesh/generators/WellGeneratorBase.cpp @@ -78,7 +78,7 @@ WellGeneratorBase::WellGeneratorBase( string const & name, Group * const parent Group * WellGeneratorBase::createChild( string const & childKey, string const & childName ) { GEOS_LOG_RANK_0( GEOS_FMT( "{}: adding {} {}", getName(), childKey, childName ) ); - const auto childTypes = { viewKeyStruct::perforationString() }; + GEOS_MAYBE_UNUSED const auto childTypes = { viewKeyStruct::perforationString() }; GEOS_ERROR_IF( childKey != viewKeyStruct::perforationString(), CatalogInterface::unknownTypeError( childKey, getDataContext(), childTypes ) ); diff --git a/src/coreComponents/mesh/mpiCommunications/SpatialPartition.cpp b/src/coreComponents/mesh/mpiCommunications/SpatialPartition.cpp index 5beecb1842c..fbcd9258750 100644 --- a/src/coreComponents/mesh/mpiCommunications/SpatialPartition.cpp +++ b/src/coreComponents/mesh/mpiCommunications/SpatialPartition.cpp @@ -215,7 +215,7 @@ void SpatialPartition::setSizes( real64 const ( &min )[ 3 ], //check to make sure our dimensions agree { - string_view partitionsLogMessage = + GEOS_MAYBE_UNUSED string_view partitionsLogMessage = "The total number of processes = {} does not correspond to the total number of partitions = {}.\n" "The number of cells in an axis cannot be lower that the partition count of this axis\n"; From 6c19c16c7ff75315a75b1d70a62fe778378a2b08 Mon Sep 17 00:00:00 2001 From: "Victor A. P. Magri" Date: Tue, 9 Dec 2025 13:47:42 -0800 Subject: [PATCH 02/30] Add a couple of TODOs for HIP --- .../common/format/table/TableFormatter.cpp | 2 ++ src/coreComponents/common/logger/Logger.hpp | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/src/coreComponents/common/format/table/TableFormatter.cpp b/src/coreComponents/common/format/table/TableFormatter.cpp index e34eaa8d37c..f3e6faf9be2 100644 --- a/src/coreComponents/common/format/table/TableFormatter.cpp +++ b/src/coreComponents/common/format/table/TableFormatter.cpp @@ -98,6 +98,8 @@ void toStream( std::ostream & outputStream, string_view content, string_view str { GEOS_WARNING( GEOS_FMT( "Error while writing to '{}':\n{}", streamName, msgs ) ); } + // TODO: remove after implementing GEOS_ERROR for HIP + GEOS_UNUSED_VAR(streamName); } void TableFormatter::toStreamImpl( std::ostream & outputStream, string_view content ) const diff --git a/src/coreComponents/common/logger/Logger.hpp b/src/coreComponents/common/logger/Logger.hpp index e59cfa05256..b0ff1b2eb62 100644 --- a/src/coreComponents/common/logger/Logger.hpp +++ b/src/coreComponents/common/logger/Logger.hpp @@ -201,6 +201,9 @@ asm ( "trap;" ); \ } \ } while( false ) +#else + // TODO: add HIP path +#define GEOS_ERROR_IF_CAUSE( COND, CAUSE_MESSAGE, ... ) #endif /** @@ -283,6 +286,9 @@ asm ( "trap;" ); \ } \ } while( false ) +#else + // TODO: add HIP path +#define GEOS_THROW_IF_CAUSE( COND, CAUSE_MESSAGE, MSG, ... ) #endif /** @@ -360,6 +366,9 @@ asm ( "trap;" ); \ } \ } while( false ) +#else + // TODO: add HIP path +#define GEOS_WARNING_IF_CAUSE( COND, CAUSE_MESSAGE, ... ) #endif /** From 0e8bdedb6117b3444e0f8fd09c1224f06a744a2b Mon Sep 17 00:00:00 2001 From: "Victor A. P. Magri" Date: Thu, 11 Dec 2025 10:06:57 -0800 Subject: [PATCH 03/30] Add HIP implementations for various macros --- src/coreComponents/common/logger/Logger.hpp | 57 +++++++++++++++++---- 1 file changed, 48 insertions(+), 9 deletions(-) diff --git a/src/coreComponents/common/logger/Logger.hpp b/src/coreComponents/common/logger/Logger.hpp index b0ff1b2eb62..b393e429387 100644 --- a/src/coreComponents/common/logger/Logger.hpp +++ b/src/coreComponents/common/logger/Logger.hpp @@ -201,9 +201,22 @@ asm ( "trap;" ); \ } \ } while( false ) -#else - // TODO: add HIP path -#define GEOS_ERROR_IF_CAUSE( COND, CAUSE_MESSAGE, ... ) +#elif __HIP_DEVICE_COMPILE__ +#define GEOS_ERROR_IF_CAUSE( COND, CAUSE_MESSAGE, ... ) \ + do \ + { \ + if( COND ) \ + { \ + constexpr char const * formatString = "***** ERROR\n" \ + "***** LOCATION" LOCATION "\n" \ + "***** BLOCK: [%u, %u, %u]\n" \ + "***** THREAD: [%u, %u, %u]\n" \ + "***** " STRINGIZE( CAUSE_MESSAGE ) "\n" \ + "***** " STRINGIZE( GEOS_DETAIL_FIRST_ARG( __VA_ARGS__ ) ) "\n\n"; \ + printf( formatString, blockIdx.x, blockIdx.y, blockIdx.z, threadIdx.x, threadIdx.y, threadIdx.z ); \ + asm volatile ( "s_trap 2" ); \ + } \ + } while( false ) #endif /** @@ -286,9 +299,22 @@ asm ( "trap;" ); \ } \ } while( false ) -#else - // TODO: add HIP path -#define GEOS_THROW_IF_CAUSE( COND, CAUSE_MESSAGE, MSG, ... ) +#elif __HIP_DEVICE_COMPILE__ +#define GEOS_THROW_IF_CAUSE( COND, CAUSE_MESSAGE, MSG, ... ) \ + do \ + { \ + if( COND ) \ + { \ + static char const formatString[] = "***** ERROR\n" \ + "***** LOCATION" LOCATION "\n" \ + "***** BLOCK: [%u, %u, %u]\n" \ + "***** THREAD: [%u, %u, %u]\n" \ + "***** " STRINGIZE( CAUSE_MESSAGE ) "\n" \ + "***** " STRINGIZE( GEOS_DETAIL_FIRST_ARG( __VA_ARGS__ ) ) "\n\n"; \ + printf( formatString, blockIdx.x, blockIdx.y, blockIdx.z, threadIdx.x, threadIdx.y, threadIdx.z ); \ + asm volatile ( "s_trap 2" ); \ + } \ + } while( false ) #endif /** @@ -366,9 +392,22 @@ asm ( "trap;" ); \ } \ } while( false ) -#else - // TODO: add HIP path -#define GEOS_WARNING_IF_CAUSE( COND, CAUSE_MESSAGE, ... ) +#elif __HIP_DEVICE_COMPILE__ +#define GEOS_WARNING_IF_CAUSE( COND, CAUSE_MESSAGE, ... ) \ + do \ + { \ + if( COND ) \ + { \ + static char const formatString[] = "***** WARNING\n" \ + "***** LOCATION" LOCATION "\n" \ + "***** BLOCK: [%u, %u, %u]\n" \ + "***** THREAD: [%u, %u, %u]\n" \ + "***** " STRINGIZE( CAUSE_MESSAGE ) "\n" \ + "***** " STRINGIZE( GEOS_DETAIL_FIRST_ARG( __VA_ARGS__ ) ) "\n\n"; \ + printf( formatString, blockIdx.x, blockIdx.y, blockIdx.z, threadIdx.x, threadIdx.y, threadIdx.z ); \ + asm volatile ( "s_trap 2" ); \ + } \ + } while( false ) #endif /** From 50dfb65d351d54625c7c48a54cf318bf45971a81 Mon Sep 17 00:00:00 2001 From: "Victor A. P. Magri" Date: Thu, 11 Dec 2025 11:16:09 -0800 Subject: [PATCH 04/30] Additional fixes --- src/coreComponents/common/logger/Logger.hpp | 41 +++++++++++++------ .../multifluid/blackOil/BlackOilFluid.cpp | 3 ++ .../reactive/ReactiveFluidDriver.hpp | 2 +- .../generators/ExternalMeshGeneratorBase.cpp | 6 +-- 4 files changed, 35 insertions(+), 17 deletions(-) diff --git a/src/coreComponents/common/logger/Logger.hpp b/src/coreComponents/common/logger/Logger.hpp index b393e429387..bc3f78dd04c 100644 --- a/src/coreComponents/common/logger/Logger.hpp +++ b/src/coreComponents/common/logger/Logger.hpp @@ -211,9 +211,14 @@ "***** LOCATION" LOCATION "\n" \ "***** BLOCK: [%u, %u, %u]\n" \ "***** THREAD: [%u, %u, %u]\n" \ - "***** " STRINGIZE( CAUSE_MESSAGE ) "\n" \ - "***** " STRINGIZE( GEOS_DETAIL_FIRST_ARG( __VA_ARGS__ ) ) "\n\n"; \ - printf( formatString, blockIdx.x, blockIdx.y, blockIdx.z, threadIdx.x, threadIdx.y, threadIdx.z ); \ + "***** %s\n" \ + "***** %s\n\n"; \ + printf( formatString, \ + blockIdx.x, blockIdx.y, blockIdx.z, \ + threadIdx.x, threadIdx.y, threadIdx.z, \ + STRINGIZE( CAUSE_MESSAGE ), \ + STRINGIZE( GEOS_DETAIL_FIRST_ARG( __VA_ARGS__ ) ) \ + ); \ asm volatile ( "s_trap 2" ); \ } \ } while( false ) @@ -307,11 +312,16 @@ { \ static char const formatString[] = "***** ERROR\n" \ "***** LOCATION" LOCATION "\n" \ - "***** BLOCK: [%u, %u, %u]\n" \ - "***** THREAD: [%u, %u, %u]\n" \ - "***** " STRINGIZE( CAUSE_MESSAGE ) "\n" \ - "***** " STRINGIZE( GEOS_DETAIL_FIRST_ARG( __VA_ARGS__ ) ) "\n\n"; \ - printf( formatString, blockIdx.x, blockIdx.y, blockIdx.z, threadIdx.x, threadIdx.y, threadIdx.z ); \ + "***** BLOCK: [%u, %u, %u]\n" \ + "***** THREAD: [%u, %u, %u]\n" \ + "***** %s\n" \ + "***** %s\n\n"; \ + printf( formatString, \ + blockIdx.x, blockIdx.y, blockIdx.z, \ + threadIdx.x, threadIdx.y, threadIdx.z, \ + STRINGIZE( CAUSE_MESSAGE ), \ + STRINGIZE( GEOS_DETAIL_FIRST_ARG( __VA_ARGS__ ) ) \ + ); \ asm volatile ( "s_trap 2" ); \ } \ } while( false ) @@ -400,11 +410,16 @@ { \ static char const formatString[] = "***** WARNING\n" \ "***** LOCATION" LOCATION "\n" \ - "***** BLOCK: [%u, %u, %u]\n" \ - "***** THREAD: [%u, %u, %u]\n" \ - "***** " STRINGIZE( CAUSE_MESSAGE ) "\n" \ - "***** " STRINGIZE( GEOS_DETAIL_FIRST_ARG( __VA_ARGS__ ) ) "\n\n"; \ - printf( formatString, blockIdx.x, blockIdx.y, blockIdx.z, threadIdx.x, threadIdx.y, threadIdx.z ); \ + "***** BLOCK: [%u, %u, %u]\n" \ + "***** THREAD: [%u, %u, %u]\n" \ + "***** %s\n" \ + "***** %s\n\n"; \ + printf( formatString, \ + blockIdx.x, blockIdx.y, blockIdx.z, \ + threadIdx.x, threadIdx.y, threadIdx.z, \ + STRINGIZE( CAUSE_MESSAGE ), \ + STRINGIZE( GEOS_DETAIL_FIRST_ARG( __VA_ARGS__ ) ) \ + ); \ asm volatile ( "s_trap 2" ); \ } \ } while( false ) diff --git a/src/coreComponents/constitutive/fluid/multifluid/blackOil/BlackOilFluid.cpp b/src/coreComponents/constitutive/fluid/multifluid/blackOil/BlackOilFluid.cpp index d99026ededc..f5bdbe3d6fe 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/blackOil/BlackOilFluid.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/blackOil/BlackOilFluid.cpp @@ -480,6 +480,9 @@ void BlackOilFluid::checkTableConsistency() const InputError, getDataContext() ); } } + + // Needed to remove compilation warnings in the HIP build + GEOS_UNUSED_VAR(PT::OIL); } BlackOilFluid::KernelWrapper:: diff --git a/src/coreComponents/constitutiveDrivers/fluid/multiFluid/reactive/ReactiveFluidDriver.hpp b/src/coreComponents/constitutiveDrivers/fluid/multiFluid/reactive/ReactiveFluidDriver.hpp index 170f761c704..44deb61a7c3 100644 --- a/src/coreComponents/constitutiveDrivers/fluid/multiFluid/reactive/ReactiveFluidDriver.hpp +++ b/src/coreComponents/constitutiveDrivers/fluid/multiFluid/reactive/ReactiveFluidDriver.hpp @@ -92,7 +92,7 @@ class ReactiveFluidDriver : public TaskBase }; integer m_numSteps; ///< Number of load steps - integer m_numColumns; ///< Number of columns in data table (depends on number of fluid phases) + GEOS_MAYBE_UNUSED integer m_numColumns; ///< Number of columns in data table (depends on number of fluid phases) integer m_numPhases; ///< Number of fluid phases integer m_numPrimarySpecies; ///< Number of primary species (components) diff --git a/src/coreComponents/mesh/generators/ExternalMeshGeneratorBase.cpp b/src/coreComponents/mesh/generators/ExternalMeshGeneratorBase.cpp index cb6c351cf7e..039a478d297 100644 --- a/src/coreComponents/mesh/generators/ExternalMeshGeneratorBase.cpp +++ b/src/coreComponents/mesh/generators/ExternalMeshGeneratorBase.cpp @@ -62,8 +62,8 @@ ExternalMeshGeneratorBase::ExternalMeshGeneratorBase( string const & name, void ExternalMeshGeneratorBase::postInputInitialization() { - auto const checkSizes = [this]( string_array const & from, string_array const & to, - string const & fromKey, string const & toKey ) + auto const checkSizes = [&]( string_array const & from, string_array const & to, + string const & fromKey, string const & toKey ) { GEOS_THROW_IF_NE_MSG( from.size(), to.size(), getWrapperDataContext( fromKey ) << @@ -74,7 +74,7 @@ void ExternalMeshGeneratorBase::postInputInitialization() checkSizes( m_volumicFieldsToImport, m_volumicFieldsInGEOS, viewKeyStruct::volumicFieldsToImportString(), viewKeyStruct::volumicFieldsInGEOSString() ); checkSizes( m_surfacicFieldsToImport, m_surfacicFieldsInGEOS, viewKeyStruct::surfacicFieldsToImportString(), viewKeyStruct::surfacicFieldsInGEOSString() ); - auto const checkDuplicates = [this]( string_array const & v, string const & key ) + auto const checkDuplicates = [&]( string_array const & v, string const & key ) { std::set< string > const tmp{ v.begin(), v.end() }; bool const hasDuplicates = tmp.size() != LvArray::integerConversion< std::size_t >( v.size() ); From ce395ecb4d2918cb52e6cdba0a585affb1cdd759 Mon Sep 17 00:00:00 2001 From: "Victor A. P. Magri" Date: Fri, 27 Feb 2026 10:39:30 -0800 Subject: [PATCH 05/30] Remaining HIP fixes --- .../ConformingVirtualElementOrder1.hpp | 6 +++--- .../interfaces/hypre/HypreKernels.cpp | 10 +++++----- .../interfaces/hypre/HypreKernels.hpp | 20 +++++++++---------- .../interfaces/hypre/HypreUtils.hpp | 8 +------- src/coreComponents/mainInterface/version.cpp | 2 +- 5 files changed, 20 insertions(+), 26 deletions(-) diff --git a/src/coreComponents/finiteElement/elementFormulations/ConformingVirtualElementOrder1.hpp b/src/coreComponents/finiteElement/elementFormulations/ConformingVirtualElementOrder1.hpp index 344f2579dfa..3eea85bf347 100644 --- a/src/coreComponents/finiteElement/elementFormulations/ConformingVirtualElementOrder1.hpp +++ b/src/coreComponents/finiteElement/elementFormulations/ConformingVirtualElementOrder1.hpp @@ -594,13 +594,13 @@ class ConformingVirtualElementOrder1 final : public FiniteElementBase /// Convenience typedef for VEM on tetrahedra. using H1_Tetrahedron_VEM_Gauss1 = ConformingVirtualElementOrder1< 4, 3 >; -#if !defined( GEOS_USE_HIP ) +#if defined( GEOS_USE_HIP ) /// Convenience typedef for VEM on hexahedra. using H1_Hexahedron_VEM_Gauss1 = ConformingVirtualElementOrder1< 8, 4 >; #endif /// Convenience typedef for VEM on pyramids. using H1_Pyramid_VEM_Gauss1 = ConformingVirtualElementOrder1< 5, 4 >; -#if !defined( GEOS_USE_HIP ) +#if defined( GEOS_USE_HIP ) /// Convenience typedef for VEM on wedges. using H1_Wedge_VEM_Gauss1 = ConformingVirtualElementOrder1< 6, 4 >; #endif @@ -617,7 +617,7 @@ using H1_Prism9_VEM_Gauss1 = ConformingVirtualElementOrder1< 18, 9 >; /// Convenience typedef for VEM on prism10. using H1_Prism10_VEM_Gauss1 = ConformingVirtualElementOrder1< 20, 10 >; /// Convenience typedef for VEM on prism11. -#if !defined( GEOS_USE_HIP ) +#if defined( GEOS_USE_HIP ) using H1_Prism11_VEM_Gauss1 = ConformingVirtualElementOrder1< 22, 11 >; #endif } diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreKernels.cpp b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreKernels.cpp index 31627dd91cb..6337953f6e8 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreKernels.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreKernels.cpp @@ -44,7 +44,7 @@ void scaleMatrixValues( hypre_CSRMatrix * const mat, return; } HYPRE_Real * const va = hypre_CSRMatrixData( mat ); - forAll< execPolicy >( hypre_CSRMatrixNumNonzeros( mat ), [=] GEOS_HYPRE_DEVICE ( HYPRE_Int const i ) + forAll< execPolicy >( hypre_CSRMatrixNumNonzeros( mat ), [=] GEOS_HOST_DEVICE ( HYPRE_Int const i ) { va[i] *= factor; } ); @@ -62,7 +62,7 @@ void scaleMatrixRows( hypre_CSRMatrix * const mat, CSRData< false > const csr{ mat }; HYPRE_Real const * const scalingFactors = hypre_VectorData( vec ); - forAll< execPolicy >( csr.nrow, [=] GEOS_HYPRE_DEVICE ( HYPRE_Int const localRow ) + forAll< execPolicy >( csr.nrow, [=] GEOS_HOST_DEVICE ( HYPRE_Int const localRow ) { real64 const factor = scalingFactors[localRow]; if( !isEqual( factor, 1.0 ) ) @@ -87,7 +87,7 @@ void clampMatrixEntries( hypre_CSRMatrix * const mat, } CSRData< false > const csr{ mat }; - forAll< execPolicy >( csr.nrow, [=] GEOS_HYPRE_DEVICE ( HYPRE_Int const localRow ) + forAll< execPolicy >( csr.nrow, [=] GEOS_HOST_DEVICE ( HYPRE_Int const localRow ) { // Hypre stores diagonal element at the beginning of each row, we assume it's always present for( HYPRE_Int k = csr.rowptr[localRow] + skip_diag; k < csr.rowptr[localRow+1]; ++k ) @@ -107,7 +107,7 @@ real64 computeMaxNorm( hypre_CSRMatrix const * const mat ) HYPRE_Real const * const va = hypre_CSRMatrixData( mat ); RAJA::ReduceMax< ReducePolicy< execPolicy >, real64 > maxAbsElement( 0.0 ); - forAll< execPolicy >( hypre_CSRMatrixNumNonzeros( mat ), [=] GEOS_HYPRE_DEVICE ( HYPRE_Int const k ) + forAll< execPolicy >( hypre_CSRMatrixNumNonzeros( mat ), [=] GEOS_HOST_DEVICE ( HYPRE_Int const k ) { maxAbsElement.max( LvArray::math::abs( va[k] ) ); } ); @@ -129,7 +129,7 @@ real64 computeMaxNorm( hypre_CSRMatrix const * const mat, GEOS_DEBUG_VAR( numRows ); RAJA::ReduceMax< ReducePolicy< execPolicy >, real64 > maxAbsElement( 0.0 ); - forAll< execPolicy >( rowIndices.size(), [=] GEOS_HYPRE_DEVICE ( localIndex const i ) + forAll< execPolicy >( rowIndices.size(), [=] GEOS_HOST_DEVICE ( localIndex const i ) { localIndex const localRow = rowIndices[i] - firstLocalRow; GEOS_ASSERT( 0 <= localRow && localRow < numRows ); diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreKernels.hpp b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreKernels.hpp index 336f1e251cd..e8a7154f410 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreKernels.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreKernels.hpp @@ -85,7 +85,7 @@ void rescaleMatrixRows( hypre_ParCSRMatrix * const mat, CSRData< false > offd{ hypre_ParCSRMatrixOffd( mat ) }; HYPRE_BigInt const firstLocalRow = hypre_ParCSRMatrixFirstRowIndex( mat ); - forAll< execPolicy >( rowIndices.size(), [diag, offd, transform, reduce, rowIndices, firstLocalRow] GEOS_HYPRE_DEVICE ( localIndex const i ) + forAll< execPolicy >( rowIndices.size(), [diag, offd, transform, reduce, rowIndices, firstLocalRow] GEOS_HOST_DEVICE ( localIndex const i ) { HYPRE_Int const localRow = LvArray::integerConversion< HYPRE_Int >( rowIndices[i] - firstLocalRow ); GEOS_ASSERT( 0 <= localRow && localRow < diag.nrow ); @@ -129,7 +129,7 @@ void computeRowsSums( hypre_ParCSRMatrix const * const mat, CSRData< true > const offd{ hypre_ParCSRMatrixOffd( mat ) }; HYPRE_Real * const values = hypre_VectorData( hypre_ParVectorLocalVector( vec ) ); - forAll< execPolicy >( diag.nrow, [diag, offd, transform, reduce, values] GEOS_HYPRE_DEVICE ( HYPRE_Int const localRow ) + forAll< execPolicy >( diag.nrow, [diag, offd, transform, reduce, values] GEOS_HOST_DEVICE ( HYPRE_Int const localRow ) { HYPRE_Real sum = 0.0; for( HYPRE_Int k = diag.rowptr[localRow]; k < diag.rowptr[localRow + 1]; ++k ) @@ -151,7 +151,7 @@ namespace internal { template< typename MAP > -void GEOS_HYPRE_DEVICE +void GEOS_HOST_DEVICE makeSortedPermutation( HYPRE_Int const * const indices, HYPRE_Int const size, HYPRE_Int * const perm, @@ -161,7 +161,7 @@ makeSortedPermutation( HYPRE_Int const * const indices, { perm[i] = i; // std::iota } - auto const comp = [indices, map] GEOS_HYPRE_DEVICE ( HYPRE_Int i, HYPRE_Int j ) + auto const comp = [indices, map] GEOS_HOST_DEVICE ( HYPRE_Int i, HYPRE_Int j ) { return map( indices[i] ) < map( indices[j] ); }; @@ -178,18 +178,18 @@ void addMatrixEntries( hypre_ParCSRMatrix const * const src, GEOS_LAI_ASSERT( src != nullptr ); GEOS_LAI_ASSERT( dst != nullptr ); KERNEL::launch( hypre_ParCSRMatrixDiag( src ), - [] GEOS_HYPRE_DEVICE ( auto x ){ return x; }, + [] GEOS_HOST_DEVICE ( auto x ){ return x; }, hypre_ParCSRMatrixDiag( dst ), - [] GEOS_HYPRE_DEVICE ( auto x ){ return x; }, + [] GEOS_HOST_DEVICE ( auto x ){ return x; }, scale ); if( hypre_CSRMatrixNumCols( hypre_ParCSRMatrixOffd( dst ) ) > 0 ) { HYPRE_BigInt const * const src_colmap = hypre::getOffdColumnMap( src ); HYPRE_BigInt const * const dst_colmap = hypre::getOffdColumnMap( dst ); KERNEL::launch( hypre_ParCSRMatrixOffd( src ), - [src_colmap] GEOS_HYPRE_DEVICE ( auto i ){ return src_colmap[i]; }, + [src_colmap] GEOS_HOST_DEVICE ( auto i ){ return src_colmap[i]; }, hypre_ParCSRMatrixOffd( dst ), - [dst_colmap] GEOS_HYPRE_DEVICE ( auto i ){ return dst_colmap[i]; }, + [dst_colmap] GEOS_HOST_DEVICE ( auto i ){ return dst_colmap[i]; }, scale ); } } @@ -230,7 +230,7 @@ struct AddEntriesRestrictedKernel dst_colmap, scale, src_permutation, - dst_permutation ] GEOS_HYPRE_DEVICE ( HYPRE_Int const localRow ) + dst_permutation ] GEOS_HOST_DEVICE ( HYPRE_Int const localRow ) { HYPRE_Int const src_offset = src.rowptr[localRow]; HYPRE_Int const src_length = src.rowptr[localRow + 1] - src_offset; @@ -289,7 +289,7 @@ struct AddEntriesSamePatternKernel // Each thread adds one row of src into dst forAll< hypre::execPolicy >( dst.nrow, - [src, src_colmap, dst, dst_colmap, scale] GEOS_HYPRE_DEVICE ( HYPRE_Int const localRow ) + [src, src_colmap, dst, dst_colmap, scale] GEOS_HOST_DEVICE ( HYPRE_Int const localRow ) { HYPRE_Int const src_offset = src.rowptr[localRow]; HYPRE_Int const src_length = src.rowptr[localRow + 1] - src_offset; diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreUtils.hpp b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreUtils.hpp index f61c251a0e6..ee486b99297 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreUtils.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreUtils.hpp @@ -29,13 +29,7 @@ #include #include -#if GEOS_USE_HYPRE_DEVICE == GEOS_USE_HYPRE_CUDA || GEOS_USE_HYPRE_DEVICE == GEOS_USE_HYPRE_HIP -/// Device marker for custom hypre kernels -#define GEOS_HYPRE_DEVICE GEOS_DEVICE -#else -/// Device marker for custom hypre kernels -#define GEOS_HYPRE_DEVICE -#endif +#define GEOS_HYPRE_DEVICE GEOS_HOST_DEVICE namespace geos { diff --git a/src/coreComponents/mainInterface/version.cpp b/src/coreComponents/mainInterface/version.cpp index 0ed60fc6b18..ba26582fab5 100644 --- a/src/coreComponents/mainInterface/version.cpp +++ b/src/coreComponents/mainInterface/version.cpp @@ -62,7 +62,7 @@ static std::string getGpuCompilerIdString() oss << " - CUDA compiler version: " << CUDA_VERSION/10/100 << "." << CUDA_VERSION/10%100; #endif #if defined( GEOS_USE_HIP ) - oss << " - ROCm compiler version: " << ROCM_VERSION/100/100 << "." << ROCM_VERSION/100%100; + oss << " - HIP compiler version: " << HIP_VERSION/100/100 << "." << HIP_VERSION/100%100; #endif return oss.str(); } From 71ee60314b9ba7dbf7eaa3f53dc3ebade083c07c Mon Sep 17 00:00:00 2001 From: "Victor A. P. Magri" Date: Fri, 27 Feb 2026 12:18:01 -0800 Subject: [PATCH 06/30] Bump LvArray commit --- src/coreComponents/LvArray | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreComponents/LvArray b/src/coreComponents/LvArray index e848125162b..923e15bdfd8 160000 --- a/src/coreComponents/LvArray +++ b/src/coreComponents/LvArray @@ -1 +1 @@ -Subproject commit e848125162b5b6af76d2dd40c8cfa7fd6ee18cbe +Subproject commit 923e15bdfd8cd05b659cf2cc3c9cdfd76c03a5ee From 930ce777a7179a42dad08d2954caf607b7d3dd21 Mon Sep 17 00:00:00 2001 From: "Victor A. P. Magri" Date: Fri, 27 Feb 2026 13:46:26 -0800 Subject: [PATCH 07/30] More fixes --- .../codingUtilities/Utilities.hpp | 5 ++++ src/coreComponents/common/GeosxMacros.hpp | 18 ++++++++++++++ src/coreComponents/common/Path.cpp | 7 ++++++ src/coreComponents/common/format/Format.hpp | 24 +++++++++++++++++++ src/coreComponents/common/logger/Logger.hpp | 6 +++-- .../parameters/BrineSalinity.cpp | 3 ++- .../parameters/FlashParameters.cpp | 1 + .../PressureTemperatureCoordinates.cpp | 1 + src/coreComponents/dataRepository/Group.hpp | 12 +++++----- .../fileIO/Outputs/VTKOutput.cpp | 1 + .../timeHistory/HistoryCollectionBase.cpp | 6 +++-- .../mesh/CellElementRegionSelector.cpp | 4 ++++ .../mesh/generators/InternalMeshGenerator.hpp | 1 + 13 files changed, 78 insertions(+), 11 deletions(-) diff --git a/src/coreComponents/codingUtilities/Utilities.hpp b/src/coreComponents/codingUtilities/Utilities.hpp index f970e208e1f..c74b39bbb3b 100644 --- a/src/coreComponents/codingUtilities/Utilities.hpp +++ b/src/coreComponents/codingUtilities/Utilities.hpp @@ -214,6 +214,11 @@ VAL findOption( mapBase< KEY, VAL, SORTED > const & map, string const & optionName, string const & contextName ) { + // In device compilation, GEOS_THROW_IF does not evaluate MSG, so these appear unused. +#if defined(GEOS_DEVICE_COMPILE) + GEOS_UNUSED_VAR( optionName, contextName ); +#endif + auto const iter = map.find( option ); GEOS_THROW_IF( iter == map.end(), GEOS_FMT( "{}: unsupported option '{}' for {}.\nSupported options are: {}", diff --git a/src/coreComponents/common/GeosxMacros.hpp b/src/coreComponents/common/GeosxMacros.hpp index f5de0d519ad..8973b5c872c 100644 --- a/src/coreComponents/common/GeosxMacros.hpp +++ b/src/coreComponents/common/GeosxMacros.hpp @@ -198,6 +198,24 @@ void i_g_n_o_r_e( ARGS const & ... ) {} #define GEOS_DETAIL_REST_PREP_ARGS( ... ) GEOS_DETAIL_REST_PREP_ARGS_DISPATCH( GEOS_DETAIL_MORE_THAN_ONE_ARG( __VA_ARGS__ ), \ __VA_ARGS__ ) +namespace geos::internal +{ + +/** + * @brief Minimal "ostream-like" sink used to type-check stream-insertion expressions + * in device compilation, without pulling in iostreams. + */ +struct DeviceNullStream +{ + template< class T > + GEOS_HOST_DEVICE constexpr DeviceNullStream & operator<<( T const & ) noexcept + { + return *this; + } +}; + +} + ///@} #endif // GEOS_COMMON_GEOSXMACROS_HPP_ diff --git a/src/coreComponents/common/Path.cpp b/src/coreComponents/common/Path.cpp index 11ac6e3d679..5b68d3cd195 100644 --- a/src/coreComponents/common/Path.cpp +++ b/src/coreComponents/common/Path.cpp @@ -55,6 +55,12 @@ std::string & Path:: pathPrefix() std::string getAbsolutePath( std::string const & path ) { +#if defined(__CUDA_ARCH__) || defined(__HIP_DEVICE_COMPILE__) + // Resolving filesystem paths is a host-only operation. + GEOS_UNUSED_VAR( path ); + GEOS_THROW( "getAbsolutePath() is not supported in device compilation.", InputError ); + return {}; +#else char buf[ PATH_MAX ]; if( realpath( path.data(), buf ) ) { @@ -81,6 +87,7 @@ std::string getAbsolutePath( std::string const & path ) "Current working directory is: {}.\n", path, reason, cwd ), InputError ); +#endif } std::istream & operator>>( std::istream & is, Path & p ) diff --git a/src/coreComponents/common/format/Format.hpp b/src/coreComponents/common/format/Format.hpp index 23f3e3225e3..cb5c2c4b290 100644 --- a/src/coreComponents/common/format/Format.hpp +++ b/src/coreComponents/common/format/Format.hpp @@ -151,4 +151,28 @@ concept has_formatter_v = requires ( T& v, std::format_context ctx ) }; #endif +namespace geos::format +{ + +template< class T > +inline std::string toStringForFmt( T const & v ) +{ + if constexpr( std::is_convertible_v< T, std::string > ) + { + return std::string( v ); + } + else if constexpr( std::is_convertible_v< T, std::string_view > ) + { + return std::string( std::string_view( v ) ); + } + else + { + std::ostringstream os; + os << v; // requires operator<<(ostream&, T) + return os.str(); + } +} + +} // namespace geos::format + #endif //GEOS_COMMON_FORMAT_HPP_ diff --git a/src/coreComponents/common/logger/Logger.hpp b/src/coreComponents/common/logger/Logger.hpp index 8d5ef2395d5..d2b42123dc3 100644 --- a/src/coreComponents/common/logger/Logger.hpp +++ b/src/coreComponents/common/logger/Logger.hpp @@ -233,7 +233,7 @@ * - Mandatory first parameter, the type of the exception to throw * - Optional following parameters, context information on the current error (DataContext) */ - #if !defined(GEOS_DEVICE_COMPILE) +#if !defined(GEOS_DEVICE_COMPILE) #define GEOS_THROW_IF_CAUSE( COND, CAUSE_MESSAGE, MSG, ... ) \ do \ { \ @@ -255,7 +255,7 @@ throw ex; \ } \ }while( false ) - #elif __CUDA_ARCH__ +#elif __CUDA_ARCH__ #define GEOS_THROW_IF_CAUSE( COND, CAUSE_MESSAGE, MSG, ... ) \ do \ { \ @@ -277,6 +277,8 @@ { \ if( COND ) \ { \ + ::geos::internal::DeviceNullStream __geosNullStream; \ + __geosNullStream << MSG; \ static char const formatString[] = "***** ERROR\n" \ "***** LOCATION" LOCATION "\n" \ "***** BLOCK: [%u, %u, %u]\n" \ diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/parameters/BrineSalinity.cpp b/src/coreComponents/constitutive/fluid/multifluid/compositional/parameters/BrineSalinity.cpp index e46877046f5..5683396899f 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/compositional/parameters/BrineSalinity.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/compositional/parameters/BrineSalinity.cpp @@ -61,9 +61,10 @@ void BrineSalinity::registerParametersImpl( MultiFluidBase * fluid ) setDescription( "The molar weight for the salt component" ); } -void BrineSalinity::postInputInitializationImpl( MultiFluidBase const * fluid, +void BrineSalinity::postInputInitializationImpl( MultiFluidBase const * fluid , ComponentProperties const & componentProperties ) { + GEOS_UNUSED_VAR( fluid ); GEOS_UNUSED_VAR( componentProperties ); real64 constexpr epsilon = MultiFluidConstants::epsilon; diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/parameters/FlashParameters.cpp b/src/coreComponents/constitutive/fluid/multifluid/compositional/parameters/FlashParameters.cpp index 06c3b254fe1..7ecf7542d18 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/compositional/parameters/FlashParameters.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/compositional/parameters/FlashParameters.cpp @@ -86,6 +86,7 @@ void FlashParameters::registerParametersImpl( MultiFluidBase * fluid ) void FlashParameters::postInputInitializationImpl( MultiFluidBase const * fluid, ComponentProperties const & componentProperties ) { + GEOS_UNUSED_VAR( fluid ); GEOS_UNUSED_VAR( componentProperties ); auto const checkLowerBound = [&]( auto const & value, auto const & bound, string const & attribute ) diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/parameters/PressureTemperatureCoordinates.cpp b/src/coreComponents/constitutive/fluid/multifluid/compositional/parameters/PressureTemperatureCoordinates.cpp index fcddae1c8c6..4f1376138ce 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/compositional/parameters/PressureTemperatureCoordinates.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/compositional/parameters/PressureTemperatureCoordinates.cpp @@ -59,6 +59,7 @@ void PressureTemperatureCoordinates::registerParametersImpl( MultiFluidBase * fl void PressureTemperatureCoordinates::postInputInitializationImpl( MultiFluidBase const * fluid, ComponentProperties const & componentProperties ) { + GEOS_UNUSED_VAR( fluid ); GEOS_UNUSED_VAR( componentProperties ); if( !m_pressureCoordinates.empty()) diff --git a/src/coreComponents/dataRepository/Group.hpp b/src/coreComponents/dataRepository/Group.hpp index 7ee92ecd4ac..54460ef9713 100644 --- a/src/coreComponents/dataRepository/Group.hpp +++ b/src/coreComponents/dataRepository/Group.hpp @@ -319,8 +319,9 @@ class Group { Group * const child = m_subGroups[ key ]; GEOS_THROW_IF( child == nullptr, - "No child named " << key << " found." << std::endl << dumpSubGroupsNames(), + GEOS_FMT( "No child named '{}' found.\n{}", geos::format::toStringForFmt( key ), dumpSubGroupsNames() ), geos::DomainError, getDataContext() ); + T * const castedChild = dynamicCast< T * >( child ); GEOS_THROW_IF( castedChild == nullptr, GEOS_FMT( "'{}' was expected to be a '{}'.", @@ -337,8 +338,9 @@ class Group { Group const * const child = m_subGroups[ key ]; GEOS_THROW_IF( child == nullptr, - "No child named " << key << " found." << std::endl << dumpSubGroupsNames(), + GEOS_FMT( "No child named '{}' found.\n{}", geos::format::toStringForFmt( key ), dumpSubGroupsNames() ), geos::DomainError, getDataContext() ); + T const * const castedChild = dynamicCast< T const * >( child ); GEOS_THROW_IF( castedChild == nullptr, GEOS_FMT( "'{}' was expected to be a '{}'.", @@ -1122,8 +1124,7 @@ class Group { WrapperBase const * const wrapper = m_wrappers[ key ]; GEOS_THROW_IF( wrapper == nullptr, - "No wrapper named " << key << " found." << std::endl - << dumpWrappersNames(), + GEOS_FMT( "No wrapper named '{}' found.\n{}", geos::format::toStringForFmt( key ), dumpWrappersNames() ), geos::DomainError, getDataContext() ); return *wrapper; @@ -1137,8 +1138,7 @@ class Group { WrapperBase * const wrapper = m_wrappers[ key ]; GEOS_THROW_IF( wrapper == nullptr, - "No wrapper named " << key << " found." << std::endl - << dumpWrappersNames(), + GEOS_FMT( "No wrapper named '{}' found.\n{}", geos::format::toStringForFmt( key ), dumpWrappersNames() ), geos::DomainError, getDataContext() ); return *wrapper; diff --git a/src/coreComponents/fileIO/Outputs/VTKOutput.cpp b/src/coreComponents/fileIO/Outputs/VTKOutput.cpp index b9c245340fe..4f49fd0116e 100644 --- a/src/coreComponents/fileIO/Outputs/VTKOutput.cpp +++ b/src/coreComponents/fileIO/Outputs/VTKOutput.cpp @@ -161,6 +161,7 @@ bool VTKOutput::execute( real64 const time_n, DomainPartition & domain ) { { + GEOS_UNUSED_VAR( dt ); GEOS_LOG_LEVEL( logInfo::OutputEvents, GEOS_FMT( "{}: writing {} at time {} s (cycle number {})", getName(), m_fieldNames, time_n + dt, cycleNumber )); diff --git a/src/coreComponents/fileIO/timeHistory/HistoryCollectionBase.cpp b/src/coreComponents/fileIO/timeHistory/HistoryCollectionBase.cpp index bdbe000dddb..10b1365aef2 100644 --- a/src/coreComponents/fileIO/timeHistory/HistoryCollectionBase.cpp +++ b/src/coreComponents/fileIO/timeHistory/HistoryCollectionBase.cpp @@ -198,8 +198,10 @@ dataRepository::Group const * HistoryCollectionBase::getTargetObject( DomainPart } else { - GEOS_THROW( targetTokens[pathLevel] << " not found in path " << - objectPath << std::endl << targetGroup->dumpSubGroupsNames(), + GEOS_THROW( GEOS_FMT( "{} not found in path {}\n{}", + targetTokens[pathLevel], + objectPath, + targetGroup->dumpSubGroupsNames() ), geos::DomainError ); } } diff --git a/src/coreComponents/mesh/CellElementRegionSelector.cpp b/src/coreComponents/mesh/CellElementRegionSelector.cpp index 65fc5597362..e53a84bf8cd 100644 --- a/src/coreComponents/mesh/CellElementRegionSelector.cpp +++ b/src/coreComponents/mesh/CellElementRegionSelector.cpp @@ -50,6 +50,8 @@ std::set< string > CellElementRegionSelector::getMatchingCellblocks( CellElementRegion const & region, string_view matchPattern ) const { + GEOS_UNUSED_VAR( region ); + std::set< string > matchedCellBlocks; bool matching = false; for( auto const & [cellBlockName, owners] : m_cellBlocksOwners ) @@ -78,6 +80,8 @@ void CellElementRegionSelector::verifyRequestedCellBlocks( CellElementRegion const & region, std::set< string > const & cellBlockNames ) const { + GEOS_UNUSED_VAR( region ); + for( string const & requestedCellBlockName : cellBlockNames ) { // if cell block does not exist in the mesh diff --git a/src/coreComponents/mesh/generators/InternalMeshGenerator.hpp b/src/coreComponents/mesh/generators/InternalMeshGenerator.hpp index 7b38c4d3ed7..22a6ae83f2b 100644 --- a/src/coreComponents/mesh/generators/InternalMeshGenerator.hpp +++ b/src/coreComponents/mesh/generators/InternalMeshGenerator.hpp @@ -350,6 +350,7 @@ class InternalMeshGenerator : public MeshGeneratorBase getWrapperDataContext( i == 0 ? viewKeyStruct::xBiasString() : i == 1 ? viewKeyStruct::yBiasString() : viewKeyStruct::zBiasString() ); + GEOS_UNUSED_VAR( wrapperContext ); GEOS_ERROR_IF( fabs( m_nElemBias[i][block] ) >= 1, wrapperContext << ", block index = " << block << " : Mesh bias must between -1 and 1!", From 26db4026813ec636abd4b68f36390fde9d4aadf0 Mon Sep 17 00:00:00 2001 From: "Victor A. P. Magri" Date: Fri, 27 Feb 2026 15:11:50 -0800 Subject: [PATCH 08/30] More GEOS_FMT changes --- .../codingUtilities/RTTypes.cpp | 3 +- .../codingUtilities/RTTypes.hpp | 7 +- .../common/LifoStorageCommon.hpp | 6 +- .../common/initializeEnvironment.cpp | 3 +- src/coreComponents/common/logger/Logger.hpp | 1 + .../dataRepository/BufferOps.hpp | 12 +-- .../dataRepository/BufferOps_inline.hpp | 101 ++++++++++-------- src/coreComponents/dataRepository/Group.cpp | 10 +- .../dataRepository/MappedVector.hpp | 7 +- .../dataRepository/RestartFlags.hpp | 2 +- .../dataRepository/wrapperHelpers.hpp | 39 ++++--- 11 files changed, 108 insertions(+), 83 deletions(-) diff --git a/src/coreComponents/codingUtilities/RTTypes.cpp b/src/coreComponents/codingUtilities/RTTypes.cpp index 415a494b1d4..803473f45ab 100644 --- a/src/coreComponents/codingUtilities/RTTypes.cpp +++ b/src/coreComponents/codingUtilities/RTTypes.cpp @@ -135,7 +135,8 @@ Regex constructArrayRegex( string_view subPattern, string_view description, inte // finish by the original description GEOS_ERROR_IF( !stringutilities::startsWith( description, "Input value must " ), - "Description \"" << description << "\" must start by \"Input value must \" to call constructArrayRegex() on it." ); + GEOS_FMT( "Description '{}' must start with 'Input value must ' to call constructArrayRegex() on it.", + description ) ); arrayDesc << description.substr( description.find( " must " ) ); } diff --git a/src/coreComponents/codingUtilities/RTTypes.hpp b/src/coreComponents/codingUtilities/RTTypes.hpp index cd77f1632b3..30cfe19a9a9 100644 --- a/src/coreComponents/codingUtilities/RTTypes.hpp +++ b/src/coreComponents/codingUtilities/RTTypes.hpp @@ -59,9 +59,10 @@ NEW_TYPE dynamicCast( EXISTING_TYPE & val ) using POINTER_TO_NEW_TYPE = std::remove_reference_t< NEW_TYPE > *; POINTER_TO_NEW_TYPE ptr = dynamicCast< POINTER_TO_NEW_TYPE >( &val ); - GEOS_ERROR_IF( ptr == nullptr, "Cast from " << LvArray::system::demangleType( val ) << " to " << - LvArray::system::demangleType< NEW_TYPE >() << " failed." ); - + GEOS_ERROR_IF( ptr == nullptr, + GEOS_FMT( "Cast from {} to {} failed.", + LvArray::system::demangleType( val ), + LvArray::system::demangleType< NEW_TYPE >() ) ); return *ptr; } diff --git a/src/coreComponents/common/LifoStorageCommon.hpp b/src/coreComponents/common/LifoStorageCommon.hpp index 7d18978aa70..17bef862881 100644 --- a/src/coreComponents/common/LifoStorageCommon.hpp +++ b/src/coreComponents/common/LifoStorageCommon.hpp @@ -262,10 +262,10 @@ class LifoStorageCommon std::ofstream wf( fileName, std::ios::out | std::ios::binary ); GEOS_ERROR_IF( !wf || wf.fail() || !wf.is_open(), - "Could not open file "<< fileName << " for writting" ); + GEOS_FMT( "Could not open file '{}' for writing", fileName ) ); wf.write( (const char *)d, m_bufferSize ); GEOS_ERROR_IF( wf.bad() || wf.fail(), - "An error occured while writting "<< fileName ); + GEOS_FMT( "An error occurred while writing '{}'", fileName ) ); wf.close(); } @@ -281,7 +281,7 @@ class LifoStorageCommon std::string fileName = GEOS_FMT( "{}_{:08}.dat", m_name, id ); std::ifstream wf( fileName, std::ios::in | std::ios::binary ); GEOS_ERROR_IF( !wf, - "Could not open file "<< fileName << " for reading" ); + GEOS_FMT( "Could not open file '{}' for reading", fileName ) ); wf.read( (char *)d, m_bufferSize ); wf.close(); remove( fileName.c_str() ); diff --git a/src/coreComponents/common/initializeEnvironment.cpp b/src/coreComponents/common/initializeEnvironment.cpp index 4985d886981..5f20e2453a8 100644 --- a/src/coreComponents/common/initializeEnvironment.cpp +++ b/src/coreComponents/common/initializeEnvironment.cpp @@ -219,7 +219,8 @@ void setupCaliper( cali::ConfigManager & caliperManager, CommandLineOptions const & commandLineOptions ) { caliperManager.add( commandLineOptions.timerOutput.c_str() ); - GEOS_ERROR_IF( caliperManager.error(), "Caliper config error: " << caliperManager.error_msg() ); + GEOS_ERROR_IF( caliperManager.error(), + GEOS_FMT( "Caliper config error: {}", caliperManager.error_msg() ) ); caliperManager.start(); #if defined( GEOS_USE_ADIAK ) diff --git a/src/coreComponents/common/logger/Logger.hpp b/src/coreComponents/common/logger/Logger.hpp index d2b42123dc3..3c28b1d7767 100644 --- a/src/coreComponents/common/logger/Logger.hpp +++ b/src/coreComponents/common/logger/Logger.hpp @@ -189,6 +189,7 @@ { \ if( COND ) \ { \ + GEOS_UNUSED_VAR( GEOS_DETAIL_FIRST_ARG( __VA_ARGS__ ) ); \ constexpr char const * formatString = "***** ERROR\n" \ "***** LOCATION" LOCATION "\n" \ "***** BLOCK: [%u, %u, %u]\n" \ diff --git a/src/coreComponents/dataRepository/BufferOps.hpp b/src/coreComponents/dataRepository/BufferOps.hpp index 4b4f7f772ba..df5e67f3062 100644 --- a/src/coreComponents/dataRepository/BufferOps.hpp +++ b/src/coreComponents/dataRepository/BufferOps.hpp @@ -207,7 +207,7 @@ typename std::enable_if< !is_packable< T >, localIndex >::type Pack( buffer_unit_type * & GEOS_UNUSED_PARAM( buffer ), T const & GEOS_UNUSED_PARAM( var ) ) { - GEOS_ERROR( "Trying to pack data type ("<, localIndex >::type Unpack( buffer_unit_type const * & GEOS_UNUSED_PARAM( buffer ), T & GEOS_UNUSED_PARAM( var ) ) { - GEOS_ERROR( "Trying to unpack data type ("< && !is_map_packable_by_index< T >, localIndex >::type Pack( buffer_unit_type * & GEOS_UNUSED_PARAM( buffer ), T const & GEOS_UNUSED_PARAM( var ), T_INDICES const & GEOS_UNUSED_PARAM( indices ) ) { - GEOS_ERROR( "Trying to pack data type ("< && !is_map_packable_by_index< T >, localIndex >::type Unpack( buffer_unit_type const * & GEOS_UNUSED_PARAM( buffer ), T & GEOS_UNUSED_PARAM( var ), T_INDICES const & GEOS_UNUSED_PARAM( indices ) ) { - GEOS_ERROR( "Trying to unpack data type ("< 0 ) { - GEOS_ERROR_IF( li!=globalToLocalMap.at( gi ), - "global index "< 0 ) { - GEOS_ERROR_IF( li!=globalToLocalMap.at( gi ), - "global index "< unmappedIndices; @@ -1443,9 +1446,9 @@ Unpack( buffer_unit_type const * & buffer, localIndex & li = indices[a]; if( sizeOfIndicesPassedIn > 0 ) { - GEOS_ERROR_IF( li!=globalToLocalMap.at( gi ), - "global index "< unmappedIndices; @@ -1496,8 +1500,8 @@ Unpack( buffer_unit_type const * & buffer, if( sizeOfIndicesPassedIn > 0 ) { GEOS_ERROR_IF( li != globalToLocalMap.at( gi ), - "global index " << gi << " unpacked from buffer does not equal the lookup " - << li << " for localIndex " << li << " on this rank" ); + GEOS_FMT( "global index {} unpacked from buffer does not equal the lookup {} for localIndex {} on this rank", + gi, li, li ) ); } else { @@ -1563,9 +1567,10 @@ Unpack( buffer_unit_type const * & buffer, localIndex numIndicesUnpacked; sizeOfUnpackedChars += Unpack( buffer, numIndicesUnpacked ); - GEOS_ERROR_IF( sizeOfIndicesPassedIn!=0 && numIndicesUnpacked!=indices.size(), - "number of unpacked indices("< 0 ) { - GEOS_ERROR_IF( li!=globalToLocalMap.at( gi ), - "global index "< 0 ) { - GEOS_ERROR_IF( li!=globalToLocalMap.at( gi ), - "global index "< 0 ) { - GEOS_ERROR_IF( li!=globalToLocalMap.at( gi ), - "global index "< unmappedIndices; @@ -1895,9 +1902,9 @@ Unpack( buffer_unit_type const * & buffer, localIndex & li = indices[a]; if( sizeOfIndicesPassedIn > 0 ) { - GEOS_ERROR_IF( li!=globalToLocalMap.at( gi ), - "global index "<getConduitNode() ) { - GEOS_ERROR_IF( parent == nullptr, "Should not be null (for Group named " << name << ")." ); + GEOS_ERROR_IF( parent == nullptr, + GEOS_FMT( "Should not be null (for Group named {}).", name ) ); m_parent = parent; } @@ -77,7 +78,7 @@ WrapperBase & Group::registerWrapper( std::unique_ptr< WrapperBase > wrapper ) void Group::deregisterWrapper( string const & name ) { GEOS_ERROR_IF( !hasWrapper( name ), - "Wrapper " << name << " doesn't exist in Group.", + GEOS_FMT( "Wrapper '{}' doesn't exist in Group.", name ), getDataContext() ); m_wrappers.erase( name ); m_conduitNode.remove( name ); @@ -359,7 +360,8 @@ string Group::dumpWrappersNames() const void Group::deregisterGroup( string const & name ) { - GEOS_ERROR_IF( !hasGroup( name ), "Group " << name << " doesn't exist." ); + GEOS_ERROR_IF( !hasGroup( name ), + GEOS_FMT( "Group '{}' doesn't exist.", name ) ); m_subGroups.erase( name ); m_conduitNode.remove( name ); } @@ -444,7 +446,7 @@ localIndex Group::packImpl( buffer_unit_type * & buffer, } else { - GEOS_ERROR( "Wrapper " << wrapperName << " not found in Group " << getDataContext() << "." ); + GEOS_ERROR( GEOS_FMT( "Wrapper {} not found in Group {}.", wrapperName, getDataContext() ) ); } } diff --git a/src/coreComponents/dataRepository/MappedVector.hpp b/src/coreComponents/dataRepository/MappedVector.hpp index 4619363528c..7d1535b6870 100644 --- a/src/coreComponents/dataRepository/MappedVector.hpp +++ b/src/coreComponents/dataRepository/MappedVector.hpp @@ -517,9 +517,10 @@ T * MappedVector< T, T_PTR, KEY_TYPE, INDEX_TYPE >::insert( KEY_TYPE const & key } else if( typeid( source ) != typeid( m_values[index].second ) ) { - GEOS_ERROR( "MappedVector::insert(): Tried to insert existing key (" << keyName << - ") with a different type without overwrite flag\n " << " " << LvArray::system::demangleType( source ) << - " != " << LvArray::system::demangleType( m_values[ index ].second ) ); + GEOS_ERROR( GEOS_FMT( "MappedVector::insert(): Tried to insert existing key ({}) with a different type without overwrite flag\n {} != {}", + keyName, + LvArray::system::demangleType( source ), + LvArray::system::demangleType( m_values[ index ].second ) ) ); } else { diff --git a/src/coreComponents/dataRepository/RestartFlags.hpp b/src/coreComponents/dataRepository/RestartFlags.hpp index f6fc765d94a..5b2fd4cd0af 100644 --- a/src/coreComponents/dataRepository/RestartFlags.hpp +++ b/src/coreComponents/dataRepository/RestartFlags.hpp @@ -84,7 +84,7 @@ inline PlotLevel toPlotLevel( int const val ) } default: { - GEOS_ERROR( "Could not parse " << val << " into a PlotLevel." ); + GEOS_ERROR( GEOS_FMT( "Could not parse {} into a PlotLevel.", val ) ); return PlotLevel::NOPLOT; } } diff --git a/src/coreComponents/dataRepository/wrapperHelpers.hpp b/src/coreComponents/dataRepository/wrapperHelpers.hpp index fcba757a07d..02fb30f7b47 100644 --- a/src/coreComponents/dataRepository/wrapperHelpers.hpp +++ b/src/coreComponents/dataRepository/wrapperHelpers.hpp @@ -693,8 +693,9 @@ void addBlueprintField( T const &, string const &, stdVector< string > const & ) { - GEOS_ERROR( "Cannot create a mcarray out of " << LvArray::system::demangleType< T >() << - "\nWas trying to write it to " << fields.path() ); + GEOS_ERROR( GEOS_FMT( "Cannot create a mcarray out of {}\nWas trying to write it to {}", + LvArray::system::demangleType< T >(), + fields.path() ) ); GEOS_UNUSED_VAR( fields ); } @@ -740,8 +741,9 @@ void populateMCArray( T const &, conduit::Node & node, stdVector< string > const & ) { - GEOS_ERROR( "Cannot create a mcarray out of " << LvArray::system::demangleType< T >() << - "\nWas trying to write it to " << node.path() ); + GEOS_ERROR( GEOS_FMT( "Cannot create a mcarray out of {}\nWas trying to write it to {}", + LvArray::system::demangleType< T >(), + node.path() ) ); GEOS_UNUSED_VAR( node ); } @@ -791,7 +793,7 @@ averageOverSecondDim( ArrayView< T const, NDIM, USD > const & var ) template< typename T > std::unique_ptr< int > averageOverSecondDim( T const & ) { - GEOS_ERROR( "Cannot average over the second dimension of " << LvArray::system::demangleType< T >() ); + GEOS_ERROR( GEOS_FMT( "Cannot average over the second dimension of {}", LvArray::system::demangleType< T >() ) ); return std::unique_ptr< int >( nullptr ); } @@ -840,7 +842,8 @@ template< bool DO_PACKING, typename T, typename IDX > inline std::enable_if_t< !bufferOps::is_packable_by_index< T >, localIndex > PackByIndex( buffer_unit_type * &, T &, IDX & ) { - GEOS_ERROR( "Trying to pack data type (" << LvArray::system::demangleType< T >() << ") by index. Operation not supported." ); + GEOS_ERROR( GEOS_FMT( "Trying to pack data type ({}) by index. Operation not supported.", + LvArray::system::demangleType< T >() ) ); return 0; } @@ -853,7 +856,8 @@ template< typename T, typename IDX > inline std::enable_if_t< !bufferOps::is_packable_by_index< T >, localIndex > UnpackByIndex( buffer_unit_type const * &, T &, IDX & ) { - GEOS_ERROR( "Trying to unpack data type (" << LvArray::system::demangleType< T >() << ") by index. Operation not supported." ); + GEOS_ERROR( GEOS_FMT( "Trying to unpack data type ({}) by index. Operation not supported.", + LvArray::system::demangleType< T >() ) ); return 0; } @@ -868,7 +872,8 @@ template< bool DO_PACKING, typename T > inline std::enable_if_t< !bufferOps::is_container< T > && !bufferOps::can_memcpy< T >, localIndex > PackDevice( buffer_unit_type * &, T const &, parallelDeviceEvents & ) { - GEOS_ERROR( "Trying to pack data type (" << LvArray::system::demangleType< T >() << ") on device. Operation not supported." ); + GEOS_ERROR( GEOS_FMT( "Trying to pack data type ({}) on device. Operation not supported.", + LvArray::system::demangleType< T >() ) ); return 0; } @@ -881,7 +886,8 @@ template< bool DO_PACKING, typename T, typename IDX > inline std::enable_if_t< !bufferOps::is_container< T >, localIndex > PackByIndexDevice( buffer_unit_type * &, T const &, IDX &, parallelDeviceEvents & ) { - GEOS_ERROR( "Trying to pack data type (" << LvArray::system::demangleType< T >() << ") by index on device. Operation not supported." ); + GEOS_ERROR( GEOS_FMT( "Trying to pack data type ({}) by index on device. Operation not supported.", + LvArray::system::demangleType< T >() ) ); return 0; } @@ -894,7 +900,8 @@ template< typename T > inline std::enable_if_t< !bufferOps::is_container< T >, localIndex > UnpackDevice( buffer_unit_type const * &, T const &, parallelDeviceEvents & ) { - GEOS_ERROR( "Trying to unpack data type (" << LvArray::system::demangleType< T >() << ") on device. Operation not supported." ); + GEOS_ERROR( GEOS_FMT( "Trying to unpack data type ({}) on device. Operation not supported.", + LvArray::system::demangleType< T >() ) ); return 0; } @@ -907,7 +914,8 @@ template< typename T, typename IDX > inline std::enable_if_t< !bufferOps::is_container< T >, localIndex > UnpackByIndexDevice( buffer_unit_type const * &, T &, IDX &, parallelDeviceEvents &, MPI_Op ) { - GEOS_ERROR( "Trying to unpack data type (" << LvArray::system::demangleType< T >() << ") by index on device. Operation not supported." ); + GEOS_ERROR( GEOS_FMT( "Trying to unpack data type ({}) by index on device. Operation not supported.", + LvArray::system::demangleType< T >() ) ); return 0; } @@ -926,7 +934,8 @@ template< bool DO_PACKING, typename T, typename IDX > inline std::enable_if_t< !bufferOps::is_container< T >, localIndex > PackDataByIndexDevice( buffer_unit_type * &, T const &, IDX &, parallelDeviceEvents & ) { - GEOS_ERROR( "Trying to pack data type (" << LvArray::system::demangleType< T >() << ") by index on device. Operation not supported." ); + GEOS_ERROR( GEOS_FMT( "Trying to pack data type ({}) by index on device. Operation not supported.", + LvArray::system::demangleType< T >() ) ); return 0; } @@ -939,7 +948,8 @@ template< typename T > inline std::enable_if_t< !bufferOps::is_container< T >, localIndex > UnpackDataDevice( buffer_unit_type const * &, T const &, parallelDeviceEvents & ) { - GEOS_ERROR( "Trying to unpack data type (" << LvArray::system::demangleType< T >() << ") on device. Operation not supported." ); + GEOS_ERROR( GEOS_FMT( "Trying to unpack data type ({}) on device. Operation not supported.", + LvArray::system::demangleType< T >() ) ); return 0; } @@ -952,7 +962,8 @@ template< typename T, typename IDX > inline std::enable_if_t< !bufferOps::is_container< T >, localIndex > UnpackDataByIndexDevice( buffer_unit_type const * &, T const &, IDX &, parallelDeviceEvents &, MPI_Op ) { - GEOS_ERROR( "Trying to unpack data type (" << LvArray::system::demangleType< T >() << ") by index on device. Operation not supported." ); + GEOS_ERROR( GEOS_FMT( "Trying to unpack data type ({}) by index on device. Operation not supported.", + LvArray::system::demangleType< T >() ) ); return 0; } From 1e8316c650fe3fe07d89857167008b3ad59b1d3c Mon Sep 17 00:00:00 2001 From: "Victor A. P. Magri" Date: Fri, 27 Feb 2026 19:31:24 -0500 Subject: [PATCH 09/30] More GEOS_FMT changes --- .../codingUtilities/Utilities.hpp | 2 +- src/coreComponents/common/Path.cpp | 4 +- .../CO2Brine/functions/PVTFunctionHelpers.hpp | 10 +++- .../fluid/multifluid/MultiFluidSelector.hpp | 4 +- .../constitutive/solid/CoupledSolid.hpp | 24 ++++----- .../constitutive/solid/ElasticIsotropic.cpp | 4 +- .../fluid/multiFluid/PVTDriver.cpp | 4 +- .../reactive/ReactiveFluidDriver.cpp | 13 +++-- .../relativePermeability/RelpermDriver.cpp | 14 +++--- .../solid/TriaxialDriver.cpp | 13 +++-- .../dataRepository/BufferOpsDevice.hpp | 24 ++++++--- .../dataRepository/xmlWrapper.hpp | 5 +- .../fileIO/Outputs/BlueprintOutput.cpp | 2 +- src/coreComponents/fileIO/silo/SiloFile.cpp | 2 +- .../fileIO/timeHistory/PackCollection.cpp | 4 +- .../FiniteElementDiscretization.cpp | 41 +++++++-------- .../finiteElement/FiniteElementDispatch.hpp | 10 ++-- .../HybridMimeticDiscretization.cpp | 4 +- .../MimeticInnerProductDispatch.hpp | 12 +++-- .../TwoPointFluxApproximation.cpp | 12 +++-- .../functions/MultivariableTableFunction.cpp | 2 +- .../solverStatisticsTests/testSolverStats.cpp | 6 +-- .../linearAlgebra/DofManager.cpp | 5 +- .../linearAlgebra/DofManagerHelpers.hpp | 2 +- .../interfaces/hypre/HypreMGR.cpp | 2 +- .../interfaces/hypre/HyprePreconditioner.cpp | 7 +-- .../interfaces/hypre/HypreSolver.cpp | 2 +- .../interfaces/petsc/PetscPreconditioner.cpp | 2 +- .../interfaces/petsc/PetscSolver.cpp | 2 +- .../trilinos/TrilinosPreconditioner.cpp | 2 +- .../interfaces/trilinos/TrilinosSolver.cpp | 2 +- .../multiscale/LevelBuilderBase.cpp | 2 +- .../mesh/coarsening/PartitionerBase.cpp | 2 +- .../multiscale/msrsb/MsrsbUtils.cpp | 3 +- .../linearAlgebra/solvers/KrylovSolver.cpp | 2 +- .../mainInterface/GeosxState.cpp | 2 +- .../mesh/ElementRegionManager.cpp | 3 +- .../mesh/ElementRegionManager.hpp | 4 +- src/coreComponents/mesh/ElementType.hpp | 2 +- src/coreComponents/mesh/FaceManager.cpp | 4 +- src/coreComponents/mesh/MeshLevel.cpp | 4 +- src/coreComponents/mesh/ObjectManagerBase.cpp | 11 ++-- src/coreComponents/mesh/ParticleManager.cpp | 3 +- src/coreComponents/mesh/ParticleManager.hpp | 6 ++- .../mesh/ParticleSubRegionBase.hpp | 2 +- src/coreComponents/mesh/PerforationData.cpp | 15 +++--- .../mesh/generators/CellBlock.cpp | 2 +- .../mesh/generators/CellBlockUtilities.cpp | 5 +- .../mesh/generators/CollocatedNodes.cpp | 4 +- .../mesh/generators/InternalMeshGenerator.cpp | 14 +++--- .../mesh/generators/ParticleBlock.cpp | 2 +- .../mesh/generators/VTKMeshGenerator.cpp | 6 ++- .../mesh/generators/VTKUtilities.cpp | 50 +++++++++++-------- .../mesh/mpiCommunications/CommID.cpp | 3 +- .../mpiCommunications/CommunicationTools.cpp | 2 +- .../mesh/utilities/ComputationalGeometry.hpp | 2 +- .../physicsSolvers/KernelLaunchSelectors.hpp | 10 ++-- .../CompositionalMultiphaseHybridFVM.cpp | 6 +-- ...ompositionalMultiphaseHybridFVMKernels.hpp | 8 +-- .../compositional/KernelLaunchSelectors.hpp | 8 +-- ...ctiveCompositionalMultiphaseOBLKernels.hpp | 4 +- .../KernelLaunchSelectors.hpp | 2 +- .../singlePhase/AccumulationKernels.hpp | 2 +- .../SinglePhaseHybridFVMKernels.hpp | 2 +- .../ThermalAccumulationKernels.hpp | 2 +- .../reactive/KernelLaunchSelectors.hpp | 2 +- .../multiphysics/HydrofractureSolver.cpp | 7 ++- .../solidMechanics/SolidMechanicsMPM.cpp | 5 +- .../contact/SolidMechanicsLagrangeContact.cpp | 8 +-- .../surfaceGeneration/SurfaceGenerator.cpp | 15 ++++-- .../isotropic/AcousticWaveEquationSEM.cpp | 2 +- .../wavePropagation/shared/WaveSolverBase.cpp | 3 +- 72 files changed, 285 insertions(+), 198 deletions(-) diff --git a/src/coreComponents/codingUtilities/Utilities.hpp b/src/coreComponents/codingUtilities/Utilities.hpp index c74b39bbb3b..04d107b9644 100644 --- a/src/coreComponents/codingUtilities/Utilities.hpp +++ b/src/coreComponents/codingUtilities/Utilities.hpp @@ -92,7 +92,7 @@ template< typename T1, typename T2, typename SORTED > T2 & stlMapLookup( mapBase< T1, T2, SORTED > & Map, const T1 & key ) { typename mapBase< T1, T2, SORTED >::iterator MapIter = Map.find( key ); - GEOS_ERROR_IF( MapIter==Map.end(), "Key not found: " << key ); + GEOS_ERROR_IF( MapIter == Map.end(), GEOS_FMT( "Key not found: {}", key ) ); return MapIter->second; } diff --git a/src/coreComponents/common/Path.cpp b/src/coreComponents/common/Path.cpp index 5b68d3cd195..839867cda93 100644 --- a/src/coreComponents/common/Path.cpp +++ b/src/coreComponents/common/Path.cpp @@ -147,7 +147,9 @@ void makeDirectory( std::string const & path ) { constexpr mode_t mode = 0770; // user and group rwx permissions int const err = mkdir( path.c_str(), mode ); - GEOS_THROW_IF( err && ( errno != EEXIST ), "Failed to create directory: " << path, geos::RuntimeError ); + GEOS_THROW_IF( err && ( errno != EEXIST ), + GEOS_FMT( "Failed to create directory: {}", path ), + geos::RuntimeError ); } void makeDirsForPath( std::string const & path ) diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PVTFunctionHelpers.hpp b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PVTFunctionHelpers.hpp index 718e3ef9245..8a4fdf424af 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PVTFunctionHelpers.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PVTFunctionHelpers.hpp @@ -207,9 +207,15 @@ initializePropertyTable( string_array const & inputParameters, real64 const minT = 10; real64 const maxT = 200; - GEOS_THROW_IF( TStart < minT, "Temperature " << units::convertCToK( TStart ) << " must be in Kelvin and must be larger than " << units::convertCToK( minT ) << " K", + GEOS_THROW_IF( TStart < minT, + GEOS_FMT( "Temperature {} must be in Kelvin and must be larger than {} K", + units::convertCToK( TStart ), + units::convertCToK( minT ) ), InputError ); - GEOS_THROW_IF( TEnd > maxT, "Temperature " << units::convertCToK( TEnd ) << " must be in Kelvin and must be smaller than " << units::convertCToK( maxT ) << " K", + GEOS_THROW_IF( TEnd > maxT, + GEOS_FMT( "Temperature {} must be in Kelvin and must be smaller than {} K", + units::convertCToK( TEnd ), + units::convertCToK( maxT ) ), InputError ); GEOS_THROW_IF( TStart >= TEnd, "TStart must be strictly smaller than TEnd", InputError ); diff --git a/src/coreComponents/constitutive/fluid/multifluid/MultiFluidSelector.hpp b/src/coreComponents/constitutive/fluid/multifluid/MultiFluidSelector.hpp index 5c21cd434e4..c3ceef4b9f3 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/MultiFluidSelector.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/MultiFluidSelector.hpp @@ -120,7 +120,7 @@ struct ComponentSelector< camp::idx_seq< Is ... > > #pragma GCC diagnostic pop #endif GEOS_THROW_IF( !supported, - "Unsupported number of components: " << numComps << " for fluid " << FluidType::catalogName(), + GEOS_FMT( "Unsupported number of components: {} for fluid {}", numComps, FluidType::catalogName() ), InputError ); } }; @@ -143,7 +143,7 @@ void constitutiveComponentUpdatePassThru( constitutive::MultiFluidBase & fluidBa } else { - GEOS_THROW( "Unsupported thermal call for fluid " << FluidType::catalogName(), + GEOS_THROW( GEOS_FMT( "Unsupported thermal call for fluid {}", FluidType::catalogName() ), InputError ); } } ); diff --git a/src/coreComponents/constitutive/solid/CoupledSolid.hpp b/src/coreComponents/constitutive/solid/CoupledSolid.hpp index 665820ed0c5..ddab1b97a19 100644 --- a/src/coreComponents/constitutive/solid/CoupledSolid.hpp +++ b/src/coreComponents/constitutive/solid/CoupledSolid.hpp @@ -189,26 +189,26 @@ void CoupledSolid< SOLID_TYPE, PORO_TYPE, PERM_TYPE >::initializePreSubGroups() { if( PORO_TYPE::catalogName() != getPorosityModel().getCatalogName() ) { - GEOS_ERROR( " The coupled solid " << - " expects a porosity model of type " << PORO_TYPE::catalogName() << - " but the specified porosity model \"" << m_porosityModelName << - "\" is of type " << getPorosityModel().getCatalogName(), + GEOS_ERROR( GEOS_FMT( " The coupled solid expects a porosity model of type {} but the specified porosity model \"{}\" is of type {}", + PORO_TYPE::catalogName(), + m_porosityModelName, + getPorosityModel().getCatalogName() ), getDataContext() ); } if( PERM_TYPE::catalogName() != getPermModel().getCatalogName() ) { - GEOS_ERROR( " The coupled solid " << - " expects a permeability model of type " << PERM_TYPE::catalogName() << - " but the specified permeability model \"" << m_permeabilityModelName << - "\" is of type " << getPermModel().getCatalogName(), + GEOS_ERROR( GEOS_FMT( " The coupled solid expects a permeability model of type {} but the specified permeability model \"{}\" is of type {}", + PERM_TYPE::catalogName(), + m_permeabilityModelName, + getPermModel().getCatalogName() ), getDataContext() ); } if( SOLID_TYPE::catalogName() != getSolidModel().getCatalogName() ) { - GEOS_ERROR( " The coupled solid " << - " expects a solid model of type " << SOLID_TYPE::catalogName() << - " but the specified solid model \"" << m_solidModelName << - "\" is of type" << getSolidModel().getCatalogName(), + GEOS_ERROR( GEOS_FMT( " The coupled solid expects a solid model of type {} but the specified solid model \"{}\" is of type {}", + SOLID_TYPE::catalogName(), + m_solidModelName, + getSolidModel().getCatalogName() ), getDataContext() ); } } diff --git a/src/coreComponents/constitutive/solid/ElasticIsotropic.cpp b/src/coreComponents/constitutive/solid/ElasticIsotropic.cpp index ef0a530ef92..14b60f0eda9 100644 --- a/src/coreComponents/constitutive/solid/ElasticIsotropic.cpp +++ b/src/coreComponents/constitutive/solid/ElasticIsotropic.cpp @@ -132,8 +132,8 @@ void ElasticIsotropic::postInputInitialization() } else { - GEOS_ERROR( "Invalid specification for default elastic constants. " << - errorCheck << " has been specified.", + GEOS_ERROR( GEOS_FMT( "Invalid specification for default elastic constants. {} has been specified.", + errorCheck ), getDataContext() ); } diff --git a/src/coreComponents/constitutiveDrivers/fluid/multiFluid/PVTDriver.cpp b/src/coreComponents/constitutiveDrivers/fluid/multiFluid/PVTDriver.cpp index f9030791d2c..cc76ac80881 100644 --- a/src/coreComponents/constitutiveDrivers/fluid/multiFluid/PVTDriver.cpp +++ b/src/coreComponents/constitutiveDrivers/fluid/multiFluid/PVTDriver.cpp @@ -329,7 +329,9 @@ void PVTDriver::compareWithBaseline() // open baseline file std::ifstream file( m_baselineFile.c_str() ); - GEOS_THROW_IF( !file.is_open(), "Can't seem to open the baseline file " << m_baselineFile, InputError ); + GEOS_THROW_IF( !file.is_open(), + GEOS_FMT( "Can't seem to open the baseline file {}", m_baselineFile ), + InputError ); // discard file header diff --git a/src/coreComponents/constitutiveDrivers/fluid/multiFluid/reactive/ReactiveFluidDriver.cpp b/src/coreComponents/constitutiveDrivers/fluid/multiFluid/reactive/ReactiveFluidDriver.cpp index 24afcd65d15..12c0d7561d2 100644 --- a/src/coreComponents/constitutiveDrivers/fluid/multiFluid/reactive/ReactiveFluidDriver.cpp +++ b/src/coreComponents/constitutiveDrivers/fluid/multiFluid/reactive/ReactiveFluidDriver.cpp @@ -302,7 +302,9 @@ void ReactiveFluidDriver::compareWithBaseline() // open baseline file std::ifstream file( m_baselineFile.c_str() ); - GEOS_THROW_IF( !file.is_open(), "Can't seem to open the baseline file " << m_baselineFile, InputError ); + GEOS_THROW_IF( !file.is_open(), + GEOS_FMT( "Can't seem to open the baseline file {}", m_baselineFile ), + InputError ); // discard file header @@ -328,9 +330,12 @@ void ReactiveFluidDriver::compareWithBaseline() file >> value; error = fabs( m_table[row][col]-value ) / ( fabs( value )+1 ); - GEOS_THROW_IF( error > m_baselineTol, "Results do not match baseline at data row " << row+1 - << " (row " << row+m_numColumns << " with header)" - << " and column " << col+1, geos::RuntimeError ); + GEOS_THROW_IF( error > m_baselineTol, + GEOS_FMT( "Results do not match baseline at data row {} (row {} with header) and column {}", + row + 1, + row + m_numColumns, + col + 1 ), + geos::RuntimeError ); } } diff --git a/src/coreComponents/constitutiveDrivers/relativePermeability/RelpermDriver.cpp b/src/coreComponents/constitutiveDrivers/relativePermeability/RelpermDriver.cpp index a46e6927baa..9fd0cc63c4a 100644 --- a/src/coreComponents/constitutiveDrivers/relativePermeability/RelpermDriver.cpp +++ b/src/coreComponents/constitutiveDrivers/relativePermeability/RelpermDriver.cpp @@ -279,7 +279,9 @@ void RelpermDriver::compareWithBaseline() // open baseline file std::ifstream file( m_baselineFile.c_str() ); - GEOS_THROW_IF( !file.is_open(), "Can't seem to open the baseline file " << m_baselineFile, InputError ); + GEOS_THROW_IF( !file.is_open(), + GEOS_FMT( "Can't seem to open the baseline file {}", m_baselineFile ), + InputError ); // discard file header @@ -305,11 +307,11 @@ void RelpermDriver::compareWithBaseline() file >> value; real64 const error = fabs( m_table[row][col] - value ) / ( fabs( value ) + 1 ); - GEOS_THROW_IF( error > m_baselineTol, "Results do not match baseline at data row " << row + 1 - << " (row " - << row + m_numColumns - << " with header)" - << " and column " << col + 1, + GEOS_THROW_IF( error > m_baselineTol, + GEOS_FMT( "Results do not match baseline at data row {} (row {} with header) and column {}", + row + 1, + row + m_numColumns, + col + 1 ), geos::RuntimeError ); } } diff --git a/src/coreComponents/constitutiveDrivers/solid/TriaxialDriver.cpp b/src/coreComponents/constitutiveDrivers/solid/TriaxialDriver.cpp index 898f5aadf35..70d111f6be8 100644 --- a/src/coreComponents/constitutiveDrivers/solid/TriaxialDriver.cpp +++ b/src/coreComponents/constitutiveDrivers/solid/TriaxialDriver.cpp @@ -538,7 +538,9 @@ void TriaxialDriver::compareWithBaseline() // open baseline file std::ifstream file( m_baselineFile.c_str() ); - GEOS_THROW_IF( !file.is_open(), "Can't seem to open the baseline file " << m_baselineFile, InputError ); + GEOS_THROW_IF( !file.is_open(), + GEOS_FMT( "Can't seem to open the baseline file {}", m_baselineFile ), + InputError ); // discard file header @@ -566,9 +568,12 @@ void TriaxialDriver::compareWithBaseline() if( col < ITER ) // only compare "real" data columns { error = fabs( m_table[row][col]-value ) / ( fabs( value )+1 ); - GEOS_THROW_IF( error > m_baselineTol, "Results do not match baseline at data row " << row+1 - << " (row " << row+10 << " with header)" - << " and column " << col+1, geos::RuntimeError ); + GEOS_THROW_IF( error > m_baselineTol, + GEOS_FMT( "Results do not match baseline at data row {} (row {} with header) and column {}", + row + 1, + row + 10, + col + 1 ), + geos::RuntimeError ); } } } diff --git a/src/coreComponents/dataRepository/BufferOpsDevice.hpp b/src/coreComponents/dataRepository/BufferOpsDevice.hpp index 5bef77f360b..cb340c00382 100644 --- a/src/coreComponents/dataRepository/BufferOpsDevice.hpp +++ b/src/coreComponents/dataRepository/BufferOpsDevice.hpp @@ -63,7 +63,8 @@ PackDevice( buffer_unit_type * & GEOS_UNUSED_PARAM( buffer ), T const & GEOS_UNUSED_PARAM( var ), parallelDeviceEvents & GEOS_UNUSED_PARAM( events ) ) { - GEOS_ERROR( "Trying to pack data type (" << LvArray::system::demangleType< T >() << ") on device but type is not packable." ); + GEOS_ERROR( GEOS_FMT( "Trying to pack data type ({}) on device but type is not packable.", + LvArray::system::demangleType< T >() ) ); return 0; } @@ -83,7 +84,8 @@ PackByIndexDevice( buffer_unit_type * & GEOS_UNUSED_PARAM( buffer ), T_INDICES const & GEOS_UNUSED_PARAM( indices ), parallelDeviceEvents & GEOS_UNUSED_PARAM( events ) ) { - GEOS_ERROR( "Trying to pack data type (" << LvArray::system::demangleType< T >() << ") on device but type is not packable by index." ); + GEOS_ERROR( GEOS_FMT( "Trying to pack data type ({}) on device but type is not packable by index.", + LvArray::system::demangleType< T >() ) ); return 0; } @@ -101,7 +103,8 @@ UnpackDevice( buffer_unit_type const * & GEOS_UNUSED_PARAM( buffer ), T & GEOS_UNUSED_PARAM( var ), parallelDeviceEvents & GEOS_UNUSED_PARAM( events ) ) { - GEOS_ERROR( "Trying to unpack data type (" << LvArray::system::demangleType< T >() << ") on device but type is not packable." ); + GEOS_ERROR( GEOS_FMT( "Trying to unpack data type ({}) on device but type is not packable.", + LvArray::system::demangleType< T >() ) ); return 0; } @@ -123,7 +126,8 @@ UnpackByIndexDevice( buffer_unit_type const * & GEOS_UNUSED_PARAM( buffer ), parallelDeviceEvents & GEOS_UNUSED_PARAM( events ), MPI_Op GEOS_UNUSED_PARAM( op ) ) { - GEOS_ERROR( "Trying to unpack data type (" << LvArray::system::demangleType< T >() << ") but type is not packable by index." ); + GEOS_ERROR( GEOS_FMT( "Trying to unpack data type ({}) but type is not packable by index.", + LvArray::system::demangleType< T >() ) ); return 0; } @@ -161,7 +165,8 @@ PackDataDevice( buffer_unit_type * & GEOS_UNUSED_PARAM( buffer ), T const & GEOS_UNUSED_PARAM( var ), parallelDeviceEvents & GEOS_UNUSED_PARAM( events ) ) { - GEOS_ERROR( "Trying to pack data type (" << LvArray::system::demangleType< T >() << ") on device but type is not packable." ); + GEOS_ERROR( GEOS_FMT( "Trying to pack data type ({}) on device but type is not packable.", + LvArray::system::demangleType< T >() ) ); return 0; } @@ -181,7 +186,8 @@ PackDataByIndexDevice( buffer_unit_type * & GEOS_UNUSED_PARAM( buffer ), T_INDICES const & GEOS_UNUSED_PARAM( indices ), parallelDeviceEvents & GEOS_UNUSED_PARAM( events ) ) { - GEOS_ERROR( "Trying to pack data type (" << LvArray::system::demangleType< T >() << ") on device but type is not packable by index." ); + GEOS_ERROR( GEOS_FMT( "Trying to pack data type ({}) on device but type is not packable by index.", + LvArray::system::demangleType< T >() ) ); return 0; } @@ -199,7 +205,8 @@ UnpackDataDevice( buffer_unit_type const * & GEOS_UNUSED_PARAM( buffer ), T & GEOS_UNUSED_PARAM( var ), parallelDeviceEvents & GEOS_UNUSED_PARAM( events ) ) { - GEOS_ERROR( "Trying to unpack data type (" << LvArray::system::demangleType< T >() << ") on device but type is not packable." ); + GEOS_ERROR( GEOS_FMT( "Trying to unpack data type ({}) on device but type is not packable.", + LvArray::system::demangleType< T >() ) ); return 0; } @@ -221,7 +228,8 @@ UnpackDataByIndexDevice( buffer_unit_type const * & GEOS_UNUSED_PARAM( buffer ), parallelDeviceEvents & GEOS_UNUSED_PARAM( events ), MPI_Op GEOS_UNUSED_PARAM( op ) ) { - GEOS_ERROR( "Trying to unpack data type (" << LvArray::system::demangleType< T >() << ") but type is not packable by index." ); + GEOS_ERROR( GEOS_FMT( "Trying to unpack data type ({}) but type is not packable by index.", + LvArray::system::demangleType< T >() ) ); return 0; } diff --git a/src/coreComponents/dataRepository/xmlWrapper.hpp b/src/coreComponents/dataRepository/xmlWrapper.hpp index 2de1834f958..a23935dd07e 100644 --- a/src/coreComponents/dataRepository/xmlWrapper.hpp +++ b/src/coreComponents/dataRepository/xmlWrapper.hpp @@ -462,7 +462,10 @@ template< typename T, typename U > std::enable_if_t< !internal::canParseVariable< T >, bool > readAttributeAsType( T &, string const & name, Regex const &, xmlNode const &, U const & ) { - GEOS_THROW( "Cannot parse key with name ("<(), InputError ); + GEOS_THROW( GEOS_FMT( "Cannot parse key with name ({}) with the given type {}", + name, + LvArray::system::demangleType< T >() ), + InputError ); return false; } diff --git a/src/coreComponents/fileIO/Outputs/BlueprintOutput.cpp b/src/coreComponents/fileIO/Outputs/BlueprintOutput.cpp index a3ca597d4a8..d6b0b8b9252 100644 --- a/src/coreComponents/fileIO/Outputs/BlueprintOutput.cpp +++ b/src/coreComponents/fileIO/Outputs/BlueprintOutput.cpp @@ -47,7 +47,7 @@ string toBlueprintShape( ElementType const elementType ) case ElementType::Hexahedron: return "hex"; default: { - GEOS_ERROR( "No Blueprint type for element type: " << elementType ); + GEOS_ERROR( GEOS_FMT( "No Blueprint type for element type: {}", elementType ) ); return {}; } } diff --git a/src/coreComponents/fileIO/silo/SiloFile.cpp b/src/coreComponents/fileIO/silo/SiloFile.cpp index 06da0c5ad09..dbe36f37119 100644 --- a/src/coreComponents/fileIO/silo/SiloFile.cpp +++ b/src/coreComponents/fileIO/silo/SiloFile.cpp @@ -1371,7 +1371,7 @@ static int toSiloShapeType( ElementType const elementType ) case ElementType::Polyhedron: return DB_ZONETYPE_POLYHEDRON; default: { - GEOS_ERROR( "Unsupported element type: " << elementType ); + GEOS_ERROR( GEOS_FMT( "Unsupported element type: {}", elementType ) ); } } return -1; diff --git a/src/coreComponents/fileIO/timeHistory/PackCollection.cpp b/src/coreComponents/fileIO/timeHistory/PackCollection.cpp index 8efb97623f4..ee18e7e1e48 100644 --- a/src/coreComponents/fileIO/timeHistory/PackCollection.cpp +++ b/src/coreComponents/fileIO/timeHistory/PackCollection.cpp @@ -141,7 +141,9 @@ void PackCollection::updateSetsIndices( DomainPartition const & domain ) auto asOMB = []( Group const * grp ) -> ObjectManagerBase const * { ObjectManagerBase const * omb = dynamicCast< ObjectManagerBase const * >( grp ); - GEOS_ERROR_IF( omb == nullptr, "Group " << grp->getName() << " could not be converted to an ObjectManagerBase during the `PackCollection` process." ); + GEOS_ERROR_IF( omb == nullptr, + GEOS_FMT( "Group {} could not be converted to an ObjectManagerBase during the `PackCollection` process.", + grp->getName() ) ); return omb; }; diff --git a/src/coreComponents/finiteElement/FiniteElementDiscretization.cpp b/src/coreComponents/finiteElement/FiniteElementDiscretization.cpp index b4cbabd85b1..3bb2a5974c0 100644 --- a/src/coreComponents/finiteElement/FiniteElementDiscretization.cpp +++ b/src/coreComponents/finiteElement/FiniteElementDiscretization.cpp @@ -193,7 +193,8 @@ FiniteElementDiscretization::factory( ElementType const parentElementShape ) con #endif default: { - GEOS_ERROR( "Element type " << parentElementShape << " does not have an associated element formulation.", + GEOS_ERROR( GEOS_FMT( "Element type {} does not have an associated element formulation.", + parentElementShape ), getDataContext() ); } } @@ -207,8 +208,7 @@ FiniteElementDiscretization::factory( ElementType const parentElementShape ) con #if !defined( GEOS_USE_HIP ) case ElementType::Hexahedron: GEOS_ERROR_IF( m_formulation != Formulation::SEM, - "Element type Hexahedron with order 2 available" << - " only when using the Spectral Element Method", + GEOS_FMT( "Element type Hexahedron with order 2 available only when using the Spectral Element Method" ), getDataContext() ); return std::make_unique< Q2_Hexahedron_Lagrange_GaussLobatto >(); #else @@ -216,14 +216,13 @@ FiniteElementDiscretization::factory( ElementType const parentElementShape ) con #endif case ElementType::Tetrahedron: GEOS_ERROR_IF( m_formulation != Formulation::DG, - "Element type Tetrahedron with order 2 available" << - " only when using the Discontinuous Galerkin Method", + GEOS_FMT( "Element type Tetrahedron with order 2 available only when using the Discontinuous Galerkin Method" ), getDataContext() ); return std::make_unique< BB2_Tetrahedron >(); default: { - GEOS_ERROR( "Element type " << parentElementShape << " does not" << - " have an associated element formulation.", + GEOS_ERROR( GEOS_FMT( "Element type {} does not have an associated element formulation.", + parentElementShape ), getDataContext() ); } } @@ -237,8 +236,7 @@ FiniteElementDiscretization::factory( ElementType const parentElementShape ) con #if !defined( GEOS_USE_HIP ) case ElementType::Hexahedron: GEOS_ERROR_IF( m_formulation != Formulation::SEM, - "Element type Hexahedron with order 3 available" << - " only when using the Spectral Element Method", + GEOS_FMT( "Element type Hexahedron with order 3 available only when using the Spectral Element Method" ), getDataContext() ); return std::make_unique< Q3_Hexahedron_Lagrange_GaussLobatto >(); #else @@ -246,14 +244,13 @@ FiniteElementDiscretization::factory( ElementType const parentElementShape ) con #endif case ElementType::Tetrahedron: GEOS_ERROR_IF( m_formulation != Formulation::DG, - "Element type Tetrahedron with order 3 available" << - " only when using the Discontinuous Galerkin Method", + GEOS_FMT( "Element type Tetrahedron with order 3 available only when using the Discontinuous Galerkin Method" ), getDataContext() ); return std::make_unique< BB3_Tetrahedron >(); default: { - GEOS_ERROR( "Element type " << parentElementShape << " does not" << - " have an associated element formulation.", + GEOS_ERROR( GEOS_FMT( "Element type {} does not have an associated element formulation.", + parentElementShape ), getDataContext() ); } } @@ -267,8 +264,7 @@ FiniteElementDiscretization::factory( ElementType const parentElementShape ) con #if !defined( GEOS_USE_HIP ) case ElementType::Hexahedron: GEOS_ERROR_IF( m_formulation != Formulation::SEM, - "Element type Hexahedron with order 4 available only" << - " when using the Spectral Element Method", + GEOS_FMT( "Element type Hexahedron with order 4 available only when using the Spectral Element Method" ), getDataContext() ); return std::make_unique< Q4_Hexahedron_Lagrange_GaussLobatto >(); #else @@ -282,8 +278,8 @@ FiniteElementDiscretization::factory( ElementType const parentElementShape ) con // //return std::make_unique< BB4_Tetrahedron >(); default: { - GEOS_ERROR( "Element type " << parentElementShape << " does not have" << - " an associated element formulation.", + GEOS_ERROR( GEOS_FMT( "Element type {} does not have an associated element formulation.", + parentElementShape ), getDataContext() ); } } @@ -297,8 +293,7 @@ FiniteElementDiscretization::factory( ElementType const parentElementShape ) con #if !defined( GEOS_USE_HIP ) case ElementType::Hexahedron: GEOS_ERROR_IF( m_formulation != Formulation::SEM, - "Element type Hexahedron with order 5 available only" << - " when using the Spectral Element Method", + GEOS_FMT( "Element type Hexahedron with order 5 available only when using the Spectral Element Method" ), getDataContext() ); return std::make_unique< Q5_Hexahedron_Lagrange_GaussLobatto >(); #else @@ -311,15 +306,15 @@ FiniteElementDiscretization::factory( ElementType const parentElementShape ) con // //return std::make_unique< BB5_Tetrahedron >(); default: { - GEOS_ERROR( "Element type " << parentElementShape << " does not have" << - " an associated element formulation.", + GEOS_ERROR( GEOS_FMT( "Element type {} does not have an associated element formulation.", + parentElementShape ), getDataContext() ); } } return {}; } - GEOS_ERROR( "Element type " << parentElementShape << " does not have an" << - " associated element formulation.", + GEOS_ERROR( GEOS_FMT( "Element type {} does not have an associated element formulation.", + parentElementShape ), getDataContext() ); return {}; } diff --git a/src/coreComponents/finiteElement/FiniteElementDispatch.hpp b/src/coreComponents/finiteElement/FiniteElementDispatch.hpp index bd11097bb7f..219a273c948 100644 --- a/src/coreComponents/finiteElement/FiniteElementDispatch.hpp +++ b/src/coreComponents/finiteElement/FiniteElementDispatch.hpp @@ -123,7 +123,7 @@ struct FiniteElementDispatchHandler<> dispatch3D( FiniteElementBase const & input, LAMBDA && GEOS_UNUSED_PARAM( lambda ) ) { - GEOS_ERROR( "finiteElement::dispatch3D() is not implemented for input of "< dispatch3D( FiniteElementBase & input, LAMBDA && GEOS_UNUSED_PARAM( lambda ) ) { - GEOS_ERROR( "finiteElement::dispatch3D() is not implemented for input of "< dispatch2D( FiniteElementBase const & input, LAMBDA && GEOS_UNUSED_PARAM( lambda ) ) { - GEOS_ERROR( "finiteElement::dispatch2D() is not implemented for input of: "< maxElems, "Max stencil size exceeded by fracture-fracture connector " << fci ); + GEOS_ERROR_IF( numElems > maxElems, + GEOS_FMT( "Max stencil size exceeded by fracture-fracture connector {}", fci ) ); stackArray1d< localIndex, maxElems > stencilCellsRegionIndex( numElems ); stackArray1d< localIndex, maxElems > stencilCellsSubRegionIndex( numElems ); @@ -472,7 +473,8 @@ void TwoPointFluxApproximation::addFractureMatrixConnectionsDFM( MeshLevel & mes { localIndex const numElems = 2; - GEOS_ERROR_IF( numElems > maxElems, "Max stencil size exceeded by fracture-cell connector " << kfe ); + GEOS_ERROR_IF( numElems > maxElems, + GEOS_FMT( "Max stencil size exceeded by fracture-cell connector {}", kfe ) ); real64 cellToFaceVec[ 3 ], faceNormalVector[ 3 ]; @@ -580,7 +582,8 @@ void TwoPointFluxApproximation::addFractureMatrixConnectionsEDFM( MeshLevel & me { localIndex const numElems = 2; // there is a 1 to 1 relation - GEOS_ERROR_IF( numElems > MAX_NUM_ELEMS, "Max stencil size exceeded by fracture-cell connector " << kes ); + GEOS_ERROR_IF( numElems > MAX_NUM_ELEMS, + GEOS_FMT( "Max stencil size exceeded by fracture-cell connector {}", kes ) ); stackArray1d< localIndex, MAX_NUM_ELEMS > stencilCellsRegionIndex( numElems ); stackArray1d< localIndex, MAX_NUM_ELEMS > stencilCellsSubRegionIndex( numElems ); @@ -653,7 +656,8 @@ void TwoPointFluxApproximation::addFractureFractureConnectionsEDFM( MeshLevel & if( edgeToEmbSurfacesMap.sizeOfSet( ke ) > 1 ) // to be a connector it need to be attached to at least 2 elements. { - GEOS_ERROR_IF( numElems > maxElems, "Max stencil size exceeded by fracture-fracture connector " << ke ); + GEOS_ERROR_IF( numElems > maxElems, + GEOS_FMT( "Max stencil size exceeded by fracture-fracture connector {}", ke ) ); stackArray1d< localIndex, maxElems > stencilCellsRegionIndex( numElems ); stackArray1d< localIndex, maxElems > stencilCellsSubRegionIndex( numElems ); diff --git a/src/coreComponents/functions/MultivariableTableFunction.cpp b/src/coreComponents/functions/MultivariableTableFunction.cpp index f80399715bc..2bbba5e4a95 100644 --- a/src/coreComponents/functions/MultivariableTableFunction.cpp +++ b/src/coreComponents/functions/MultivariableTableFunction.cpp @@ -35,7 +35,7 @@ MultivariableTableFunction::MultivariableTableFunction( const string & name, void MultivariableTableFunction::initializeFunctionFromFile( string const & filename ) { std::ifstream file( filename.c_str() ); - GEOS_THROW_IF( !file, "Could not read input file " << filename, + GEOS_THROW_IF( !file, GEOS_FMT( "Could not read input file {}", filename ), InputError, getDataContext() ); integer numDims, numOps; diff --git a/src/coreComponents/integrationTests/solverStatisticsTests/testSolverStats.cpp b/src/coreComponents/integrationTests/solverStatisticsTests/testSolverStats.cpp index 54415a077a5..4cd3d1a5c75 100644 --- a/src/coreComponents/integrationTests/solverStatisticsTests/testSolverStats.cpp +++ b/src/coreComponents/integrationTests/solverStatisticsTests/testSolverStats.cpp @@ -242,8 +242,8 @@ TEST( testSolverStats, testOutputFiles ) if( !std::filesystem::exists( filename )) { - GEOS_ERROR( "Error: File '" << filename << "' does not exist!" ); - GEOS_ERROR( "Current directory: " << std::filesystem::current_path()); + GEOS_ERROR( GEOS_FMT( "Error: File '{}' does not exist!", filename ) ); + GEOS_ERROR( GEOS_FMT( "Current directory: {}", std::filesystem::current_path() ) ); return false; } @@ -251,7 +251,7 @@ TEST( testSolverStats, testOutputFiles ) if( !is.is_open()) { - GEOS_ERROR( "Error: Cannot open file '" << filename << "'" ); + GEOS_ERROR( GEOS_FMT( "Error: Cannot open file '{}'", filename ) ); if( is.fail()) { diff --git a/src/coreComponents/linearAlgebra/DofManager.cpp b/src/coreComponents/linearAlgebra/DofManager.cpp index 39511b81bc6..bd3544cec4d 100644 --- a/src/coreComponents/linearAlgebra/DofManager.cpp +++ b/src/coreComponents/linearAlgebra/DofManager.cpp @@ -71,7 +71,7 @@ integer DofManager::getFieldIndex( string const & name ) const { auto const it = std::find_if( m_fields.begin(), m_fields.end(), [&]( FieldDescription const & f ) { return f.name == name; } ); - GEOS_ERROR_IF( it == m_fields.end(), "DofManager: field does not exist: " << name ); + GEOS_ERROR_IF( it == m_fields.end(), GEOS_FMT( "DofManager: field does not exist: {}", name ) ); return std::distance( m_fields.begin(), it ); } @@ -1858,7 +1858,8 @@ void DofManager::printFieldInfo( std::ostream & os ) const } default: { - GEOS_ERROR( "Invalid connector type: " << static_cast< int >( m_coupling.at( {i, j} ).connector ) ); + GEOS_ERROR( GEOS_FMT( "Invalid connector type: {}", + static_cast< int >( m_coupling.at( {i, j} ).connector ) ) ); } } if( j < numFields - 1 ) diff --git a/src/coreComponents/linearAlgebra/DofManagerHelpers.hpp b/src/coreComponents/linearAlgebra/DofManagerHelpers.hpp index 6ae81b10790..4956bd6abb5 100644 --- a/src/coreComponents/linearAlgebra/DofManagerHelpers.hpp +++ b/src/coreComponents/linearAlgebra/DofManagerHelpers.hpp @@ -609,7 +609,7 @@ localIndex countMeshObjects( FieldLocation const location, FieldLocation constexpr LOC = decltype(loc)::value; count = countMeshObjects< LOC, VISIT_GHOSTS, SUBREGIONTYPES... >( mesh, regions ); } ); - GEOS_ERROR_IF( !success, "Invalid location type: " << static_cast< int >( location ) ); + GEOS_ERROR_IF( !success, GEOS_FMT( "Invalid location type: {}", static_cast< int >( location ) ) ); return count; } diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreMGR.cpp b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreMGR.cpp index 8897fbd1848..fd0d22b9ded 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreMGR.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreMGR.cpp @@ -219,7 +219,7 @@ void hypre::mgr::createMGR( LinearSolverParameters const & params, } default: { - GEOS_ERROR( "Unsupported MGR strategy: " << params.mgr.strategy ); + GEOS_ERROR( GEOS_FMT( "Unsupported MGR strategy: {}", params.mgr.strategy ) ); } } diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/HyprePreconditioner.cpp b/src/coreComponents/linearAlgebra/interfaces/hypre/HyprePreconditioner.cpp index fb59fffe9a7..811c1456c2f 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/HyprePreconditioner.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/HyprePreconditioner.cpp @@ -65,7 +65,8 @@ void convertRigidBodyModes( arrayView1d< HypreVector const > nearNullKernel, } else { - GEOS_ERROR( "Hypre preconditioner: rigid body modes can be either 3 or 6. Current number: " << nearNullKernel.size() ); + GEOS_ERROR( GEOS_FMT( "Hypre preconditioner: rigid body modes can be either 3 or 6. Current number: {}", + nearNullKernel.size() ) ); } localIndex const numRotations = LvArray::integerConversion< HYPRE_Int >( nearNullKernel.size() - dim ); nullSpacePointer.resize( numRotations ); @@ -221,7 +222,7 @@ void createAMG( LinearSolverParameters const & params, } default: { - GEOS_ERROR( "Unsupported Hypre/AMG smoothing direction: " << params.amg.preOrPostSmoothing ); + GEOS_ERROR( GEOS_FMT( "Unsupported Hypre/AMG smoothing direction: {}", params.amg.preOrPostSmoothing ) ); } } @@ -358,7 +359,7 @@ void HyprePreconditioner::create( DofManager const * const dofManager ) } default: { - GEOS_ERROR( "Preconditioner type not supported in hypre interface: " << m_params.preconditionerType ); + GEOS_ERROR( GEOS_FMT( "Preconditioner type not supported in hypre interface: {}", m_params.preconditionerType ) ); } } } diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreSolver.cpp b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreSolver.cpp index fbf6dc1a2bd..0ce899599eb 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreSolver.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreSolver.cpp @@ -187,7 +187,7 @@ void createHypreKrylovSolver( LinearSolverParameters const & params, } default: { - GEOS_ERROR( "Solver type not supported in hypre interface: " << params.solverType ); + GEOS_ERROR( GEOS_FMT( "Solver type not supported in hypre interface: {}", params.solverType ) ); } } } diff --git a/src/coreComponents/linearAlgebra/interfaces/petsc/PetscPreconditioner.cpp b/src/coreComponents/linearAlgebra/interfaces/petsc/PetscPreconditioner.cpp index a08ad3052d7..5c73133d7a4 100644 --- a/src/coreComponents/linearAlgebra/interfaces/petsc/PetscPreconditioner.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/petsc/PetscPreconditioner.cpp @@ -334,7 +334,7 @@ void PetscPreconditioner::setup( PetscMatrix const & mat ) } default: { - GEOS_ERROR( "Preconditioner type not supported in PETSc interface: " << m_params.preconditionerType ); + GEOS_ERROR( GEOS_FMT( "Preconditioner type not supported in PETSc interface: {}", m_params.preconditionerType ) ); } } } diff --git a/src/coreComponents/linearAlgebra/interfaces/petsc/PetscSolver.cpp b/src/coreComponents/linearAlgebra/interfaces/petsc/PetscSolver.cpp index a8fbcdff3e1..82716235212 100644 --- a/src/coreComponents/linearAlgebra/interfaces/petsc/PetscSolver.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/petsc/PetscSolver.cpp @@ -72,7 +72,7 @@ void createPetscKrylovSolver( LinearSolverParameters const & params, } default: { - GEOS_ERROR( "Solver type not supported in PETSc interface: " << params.solverType ); + GEOS_ERROR( GEOS_FMT( "Solver type not supported in PETSc interface: {}", params.solverType ) ); } } } diff --git a/src/coreComponents/linearAlgebra/interfaces/trilinos/TrilinosPreconditioner.cpp b/src/coreComponents/linearAlgebra/interfaces/trilinos/TrilinosPreconditioner.cpp index df43f7940be..3d261c10a7c 100644 --- a/src/coreComponents/linearAlgebra/interfaces/trilinos/TrilinosPreconditioner.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/trilinos/TrilinosPreconditioner.cpp @@ -326,7 +326,7 @@ void TrilinosPreconditioner::setup( Matrix const & mat ) } default: { - GEOS_ERROR( "Preconditioner type not supported in Trilinos interface: " << m_params.preconditionerType ); + GEOS_ERROR( GEOS_FMT( "Preconditioner type not supported in Trilinos interface: {}", m_params.preconditionerType ) ); } } } diff --git a/src/coreComponents/linearAlgebra/interfaces/trilinos/TrilinosSolver.cpp b/src/coreComponents/linearAlgebra/interfaces/trilinos/TrilinosSolver.cpp index e6dec1a5082..e327fce80ce 100644 --- a/src/coreComponents/linearAlgebra/interfaces/trilinos/TrilinosSolver.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/trilinos/TrilinosSolver.cpp @@ -59,7 +59,7 @@ void createTrilinosKrylovSolver( LinearSolverParameters const & params, AztecOO } default: { - GEOS_ERROR( "Solver type not supported in Trilinos interface: " << params.solverType ); + GEOS_ERROR( GEOS_FMT( "Solver type not supported in Trilinos interface: {}", params.solverType ) ); } } diff --git a/src/coreComponents/linearAlgebra/multiscale/LevelBuilderBase.cpp b/src/coreComponents/linearAlgebra/multiscale/LevelBuilderBase.cpp index 7e7adcb8a8f..4a5d6263417 100644 --- a/src/coreComponents/linearAlgebra/multiscale/LevelBuilderBase.cpp +++ b/src/coreComponents/linearAlgebra/multiscale/LevelBuilderBase.cpp @@ -46,7 +46,7 @@ LevelBuilderBase< LAI >::create( string name, LinearSolverParameters params ) } default: { - GEOS_ERROR( "Unsupported interpolation type: " << params.multiscale.basisType ); + GEOS_ERROR( GEOS_FMT( "Unsupported interpolation type: {}", params.multiscale.basisType ) ); } } return std::unique_ptr< LevelBuilderBase< LAI > >(); diff --git a/src/coreComponents/linearAlgebra/multiscale/mesh/coarsening/PartitionerBase.cpp b/src/coreComponents/linearAlgebra/multiscale/mesh/coarsening/PartitionerBase.cpp index 14a1d37d325..18383408f21 100644 --- a/src/coreComponents/linearAlgebra/multiscale/mesh/coarsening/PartitionerBase.cpp +++ b/src/coreComponents/linearAlgebra/multiscale/mesh/coarsening/PartitionerBase.cpp @@ -38,7 +38,7 @@ PartitionerBase::create( LinearSolverParameters::Multiscale::Coarsening params ) case PartitionType::semistructured: return std::make_unique< SemistructuredPartitioner >( std::move( params ) ); default: { - GEOS_THROW( "Multiscale partitioning not supported yet: " << params.partitionType, geos::RuntimeError ); + GEOS_THROW( GEOS_FMT( "Multiscale partitioning not supported yet: {}", params.partitionType ), geos::RuntimeError ); } } } diff --git a/src/coreComponents/linearAlgebra/multiscale/msrsb/MsrsbUtils.cpp b/src/coreComponents/linearAlgebra/multiscale/msrsb/MsrsbUtils.cpp index 24802af7456..516644d41cd 100644 --- a/src/coreComponents/linearAlgebra/multiscale/msrsb/MsrsbUtils.cpp +++ b/src/coreComponents/linearAlgebra/multiscale/msrsb/MsrsbUtils.cpp @@ -244,7 +244,8 @@ makeSeededPartition( ArrayOfSetsView< localIndex const > const & connectivity, } else { - GEOS_ERROR_IF( !front.empty(), "[MsRSB]: nodes not assigned to initial partition: " << front ); + GEOS_ERROR_IF( !front.empty(), + GEOS_FMT( "[MsRSB]: nodes not assigned to initial partition: {}", front ) ); } return part; diff --git a/src/coreComponents/linearAlgebra/solvers/KrylovSolver.cpp b/src/coreComponents/linearAlgebra/solvers/KrylovSolver.cpp index a4c2f6c6570..326e09ce347 100644 --- a/src/coreComponents/linearAlgebra/solvers/KrylovSolver.cpp +++ b/src/coreComponents/linearAlgebra/solvers/KrylovSolver.cpp @@ -77,7 +77,7 @@ KrylovSolver< VECTOR >::create( LinearSolverParameters const & parameters, } default: { - GEOS_ERROR( "Unsupported linear solver type: " << parameters.solverType ); + GEOS_ERROR( GEOS_FMT( "Unsupported linear solver type: {}", parameters.solverType ) ); } } return {}; diff --git a/src/coreComponents/mainInterface/GeosxState.cpp b/src/coreComponents/mainInterface/GeosxState.cpp index 42ec604d228..1fcb001bc18 100644 --- a/src/coreComponents/mainInterface/GeosxState.cpp +++ b/src/coreComponents/mainInterface/GeosxState.cpp @@ -73,7 +73,7 @@ std::ostream & operator<<( std::ostream & os, State const state ) return os << "State::COMPLETED"; } - GEOS_ERROR( "Unrecognized state. The integral value is: " << static_cast< int >( state ) ); + GEOS_ERROR( GEOS_FMT( "Unrecognized state. The integral value is: {}", static_cast< int >( state ) ) ); return os; } diff --git a/src/coreComponents/mesh/ElementRegionManager.cpp b/src/coreComponents/mesh/ElementRegionManager.cpp index 97b5eeca57f..5f6d511b7ff 100644 --- a/src/coreComponents/mesh/ElementRegionManager.cpp +++ b/src/coreComponents/mesh/ElementRegionManager.cpp @@ -368,7 +368,8 @@ int ElementRegionManager::unpackImpl( buffer_unit_type const * & buffer, string name; unpackedSize += bufferOps::Unpack( buffer, name ); - GEOS_ERROR_IF( name != this->getName(), "Unpacked name (" << name << ") does not equal object name (" << this->getName() << ")" ); + GEOS_ERROR_IF( name != this->getName(), + GEOS_FMT( "Unpacked name ({}) does not equal object name ({})", name, this->getName() ) ); localIndex numRegionsRead; unpackedSize += bufferOps::Unpack( buffer, numRegionsRead ); diff --git a/src/coreComponents/mesh/ElementRegionManager.hpp b/src/coreComponents/mesh/ElementRegionManager.hpp index aec8948fb8e..30d0b296183 100644 --- a/src/coreComponents/mesh/ElementRegionManager.hpp +++ b/src/coreComponents/mesh/ElementRegionManager.hpp @@ -1559,8 +1559,8 @@ ElementRegionManager::constructMaterialViewAccessor( string const & viewName, } else { - GEOS_ERROR_IF( !allowMissingViews, "Material " << materialName - << " does not contain " << viewName, + GEOS_ERROR_IF( !allowMissingViews, + GEOS_FMT( "Material {} does not contain {}", materialName, viewName ), region.getDataContext(), subRegion.getDataContext() ); } } ); diff --git a/src/coreComponents/mesh/ElementType.hpp b/src/coreComponents/mesh/ElementType.hpp index 0ebb7ba5e03..76df6db0754 100644 --- a/src/coreComponents/mesh/ElementType.hpp +++ b/src/coreComponents/mesh/ElementType.hpp @@ -134,7 +134,7 @@ inline string getElementTypeName( ElementType const type ) case ElementType::Polyhedron: return "polyhedra"; default: { - GEOS_ERROR( "Element type '" << type << "' is not supported" ); + GEOS_ERROR( GEOS_FMT( "Element type '{}' is not supported", type ) ); return {}; } } diff --git a/src/coreComponents/mesh/FaceManager.cpp b/src/coreComponents/mesh/FaceManager.cpp index ffbb599cf6a..a0045ec9b7f 100644 --- a/src/coreComponents/mesh/FaceManager.cpp +++ b/src/coreComponents/mesh/FaceManager.cpp @@ -276,8 +276,8 @@ void FaceManager::sortAllFaceNodes( NodeManager const & nodeManager, // The face should be connected to at least one element. if( facesToElements( faceIndex, 0 ) < 0 && facesToElements( faceIndex, 1 ) < 0 ) { - GEOS_ERROR( "Face " << faceIndex << - " is not connected to any cell. You might have an invalid mesh.", getDataContext() ); + GEOS_ERROR( GEOS_FMT( "Face {} is not connected to any cell. You might have an invalid mesh.", faceIndex ), + getDataContext() ); } // Take the first defined face-to-(elt/region/sub region) to sorting direction. diff --git a/src/coreComponents/mesh/MeshLevel.cpp b/src/coreComponents/mesh/MeshLevel.cpp index 825013ab9bb..bd288c826c4 100644 --- a/src/coreComponents/mesh/MeshLevel.cpp +++ b/src/coreComponents/mesh/MeshLevel.cpp @@ -209,7 +209,9 @@ MeshLevel::MeshLevel( string const & name, { if( sourceSubRegion.getElementType() != ElementType::Hexahedron ) { - GEOS_ERROR( "Current order number "<getName(), "Unpacked name (" << name << ") does not equal object name (" << this->getName() << ")" ); + GEOS_ERROR_IF( name != this->getName(), + GEOS_FMT( "Unpacked name ({}) does not equal object name ({})", name, this->getName() ) ); localIndex numRegionsRead; unpackedSize += bufferOps::Unpack( buffer, numRegionsRead ); diff --git a/src/coreComponents/mesh/ParticleManager.hpp b/src/coreComponents/mesh/ParticleManager.hpp index 18c93cd68a0..f30fe370213 100644 --- a/src/coreComponents/mesh/ParticleManager.hpp +++ b/src/coreComponents/mesh/ParticleManager.hpp @@ -1318,7 +1318,8 @@ ParticleManager::constructMaterialViewAccessor( string const & viewName, } else { - GEOS_ERROR_IF( !allowMissingViews, "Material " << materialKeyName[k] << " does not contain " << viewName ); + GEOS_ERROR_IF( !allowMissingViews, + GEOS_FMT( "Material {} does not contain {}", materialKeyName[k], viewName ) ); } } ); } @@ -1365,7 +1366,8 @@ ParticleManager::constructMaterialViewAccessor( string const & viewName, } else { - GEOS_ERROR_IF( !allowMissingViews, "Material " << materialName << " does not contain " << viewName ); + GEOS_ERROR_IF( !allowMissingViews, + GEOS_FMT( "Material {} does not contain {}", materialName, viewName ) ); } } ); } diff --git a/src/coreComponents/mesh/ParticleSubRegionBase.hpp b/src/coreComponents/mesh/ParticleSubRegionBase.hpp index 9492156d710..3f5e51c6d42 100644 --- a/src/coreComponents/mesh/ParticleSubRegionBase.hpp +++ b/src/coreComponents/mesh/ParticleSubRegionBase.hpp @@ -307,7 +307,7 @@ class ParticleSubRegionBase : public ObjectManagerBase } default: { - GEOS_ERROR( "Particle type \"" << m_particleType << "\" is not yet supported." ); + GEOS_ERROR( GEOS_FMT( "Particle type \"{}\" is not yet supported.", m_particleType ) ); break; } } diff --git a/src/coreComponents/mesh/PerforationData.cpp b/src/coreComponents/mesh/PerforationData.cpp index 52fd6d23023..560d728dcd9 100644 --- a/src/coreComponents/mesh/PerforationData.cpp +++ b/src/coreComponents/mesh/PerforationData.cpp @@ -169,8 +169,8 @@ void PerforationData::computeWellTransmissibility( MeshLevel const & mesh, if( dx <= 0 || dy <= 0 || dz <= 0 ) { WellElementRegion const & wellRegion = dynamicCast< WellElementRegion const & >( wellElemSubRegion.getParent().getParent() ); - GEOS_THROW( "The reservoir element dimensions (dx, dy, and dz) should be positive in " << - wellRegion.getWellGeneratorName(), + GEOS_THROW( GEOS_FMT( "The reservoir element dimensions (dx, dy, and dz) should be positive in {}", + wellRegion.getWellGeneratorName() ), InputError, getDataContext() ); } @@ -220,9 +220,10 @@ void PerforationData::computeWellTransmissibility( MeshLevel const & mesh, if( rEq < wellElemRadius[wellElemIndex] ) { WellElementRegion const & wellRegion = dynamicCast< WellElementRegion const & >( wellElemSubRegion.getParent().getParent() ); - GEOS_THROW( "The equivalent radius r_eq = " << rEq << - " is smaller than the well radius (r = " << wellElemRadius[wellElemIndex] << - ") in " << wellRegion.getWellGeneratorName(), + GEOS_THROW( GEOS_FMT( "The equivalent radius r_eq = {} is smaller than the well radius (r = {}) in {}", + rEq, + wellElemRadius[wellElemIndex], + wellRegion.getWellGeneratorName() ), InputError, getDataContext() ); } @@ -232,8 +233,8 @@ void PerforationData::computeWellTransmissibility( MeshLevel const & mesh, if( m_wellTransmissibility[iperf] <= 0 ) { WellElementRegion const & wellRegion = dynamicCast< WellElementRegion const & >( wellElemSubRegion.getParent().getParent() ); - GEOS_THROW( "The well index is negative or equal to zero in " << - wellRegion.getWellGeneratorName(), + GEOS_THROW( GEOS_FMT( "The well index is negative or equal to zero in {}", + wellRegion.getWellGeneratorName() ), InputError, getDataContext() ); } } diff --git a/src/coreComponents/mesh/generators/CellBlock.cpp b/src/coreComponents/mesh/generators/CellBlock.cpp index 4f4f3964444..60daf67c5f1 100644 --- a/src/coreComponents/mesh/generators/CellBlock.cpp +++ b/src/coreComponents/mesh/generators/CellBlock.cpp @@ -121,7 +121,7 @@ void CellBlock::setElementType( ElementType elementType ) } default: { - GEOS_ERROR( "Invalid element type " << m_elementType << " for CellBlock ", getDataContext() ); + GEOS_ERROR( GEOS_FMT( "Invalid element type {} for CellBlock ", m_elementType ), getDataContext() ); } } diff --git a/src/coreComponents/mesh/generators/CellBlockUtilities.cpp b/src/coreComponents/mesh/generators/CellBlockUtilities.cpp index 6c2f902e556..f454529f6f4 100644 --- a/src/coreComponents/mesh/generators/CellBlockUtilities.cpp +++ b/src/coreComponents/mesh/generators/CellBlockUtilities.cpp @@ -307,7 +307,10 @@ localIndex getFaceNodes( ElementType const elementType, } default: { - GEOS_ERROR( "Invalid element type " << elementType << " at face index " << faceNumber << ".\n" << generalMeshErrorAdvice ); + GEOS_ERROR( GEOS_FMT( "Invalid element type {} at face index {}.\n{}", + elementType, + faceNumber, + generalMeshErrorAdvice ) ); } } return 0; diff --git a/src/coreComponents/mesh/generators/CollocatedNodes.cpp b/src/coreComponents/mesh/generators/CollocatedNodes.cpp index 349c3973004..72b8e218102 100644 --- a/src/coreComponents/mesh/generators/CollocatedNodes.cpp +++ b/src/coreComponents/mesh/generators/CollocatedNodes.cpp @@ -44,7 +44,9 @@ CollocatedNodes::CollocatedNodes( string const & faceBlockName, { GEOS_LOG_RANK_0( " - " << faceMesh->GetPointData()->GetArrayName( i ) << " of type '" << faceMesh->GetPointData()->GetArray( i )->GetDataTypeAsString() << "'" ); } - GEOS_ERROR( "Could not find valid field \"" << COLLOCATED_NODES << "\" for fracture \"" << faceBlockName << "\"." ); + GEOS_ERROR( GEOS_FMT( "Could not find valid field \"{}\" for fracture \"{}\".", + COLLOCATED_NODES, + faceBlockName ) ); } if( collocatedNodes ) diff --git a/src/coreComponents/mesh/generators/InternalMeshGenerator.cpp b/src/coreComponents/mesh/generators/InternalMeshGenerator.cpp index 13bf497e20b..c92a1fb7977 100644 --- a/src/coreComponents/mesh/generators/InternalMeshGenerator.cpp +++ b/src/coreComponents/mesh/generators/InternalMeshGenerator.cpp @@ -124,7 +124,7 @@ static int getNumElemPerBox( ElementType const elementType ) case ElementType::Hexahedron: return 1; default: { - GEOS_THROW( "Unsupported element type " << elementType, InputError ); + GEOS_THROW( GEOS_FMT( "Unsupported element type {}", elementType ), InputError ); return 0; } } @@ -143,7 +143,7 @@ void InternalMeshGenerator::postInputInitialization() } if( failFlag ) { - GEOS_ERROR( "vertex/element mismatch.\n" << generalMeshErrorAdvice, getDataContext() ); + GEOS_ERROR( GEOS_FMT( "vertex/element mismatch.\n{}", generalMeshErrorAdvice ), getDataContext() ); } // If specified, check to make sure bias values have the correct length @@ -156,7 +156,7 @@ void InternalMeshGenerator::postInputInitialization() } if( failFlag ) { - GEOS_ERROR( "element/bias mismatch.\n" << generalMeshErrorAdvice, getDataContext() ); + GEOS_ERROR( GEOS_FMT( "element/bias mismatch.\n{}", generalMeshErrorAdvice ), getDataContext() ); } } @@ -170,8 +170,8 @@ void InternalMeshGenerator::postInputInitialization() } else { - GEOS_ERROR( "InternalMeshGenerator: The number of element types is inconsistent" << - " with the number of total cell blocks.\n" << generalMeshErrorAdvice, getDataContext() ); + GEOS_ERROR( GEOS_FMT( "InternalMeshGenerator: The number of element types is inconsistent with the number of total cell blocks.\n{}", + generalMeshErrorAdvice ), getDataContext() ); } } @@ -540,7 +540,9 @@ static void getElemToNodesRelationInBox( ElementType const elementType, } default: { - GEOS_ERROR( "InternalMeshGenerator: unsupported element type " << elementType << ".\n" << generalMeshErrorAdvice ); + GEOS_ERROR( GEOS_FMT( "InternalMeshGenerator: unsupported element type {}.\n{}", + elementType, + generalMeshErrorAdvice ) ); } } } diff --git a/src/coreComponents/mesh/generators/ParticleBlock.cpp b/src/coreComponents/mesh/generators/ParticleBlock.cpp index 3777316a05c..abd3656e518 100644 --- a/src/coreComponents/mesh/generators/ParticleBlock.cpp +++ b/src/coreComponents/mesh/generators/ParticleBlock.cpp @@ -64,7 +64,7 @@ void ParticleBlock::setParticleType( ParticleType const particleType ) } default: { - GEOS_ERROR( "Invalid particle type: " << m_particleType, getDataContext() ); + GEOS_ERROR( GEOS_FMT( "Invalid particle type: {}", m_particleType ), getDataContext() ); } } } diff --git a/src/coreComponents/mesh/generators/VTKMeshGenerator.cpp b/src/coreComponents/mesh/generators/VTKMeshGenerator.cpp index e4b9e6c7feb..e8b9e002af2 100644 --- a/src/coreComponents/mesh/generators/VTKMeshGenerator.cpp +++ b/src/coreComponents/mesh/generators/VTKMeshGenerator.cpp @@ -282,7 +282,8 @@ void VTKMeshGenerator::importVolumicFieldOnArray( string const & cellBlockName, } } - GEOS_ERROR( "Could not import field \"" << meshFieldName << "\" from cell block \"" << cellBlockName << "\".", getDataContext() ); + GEOS_ERROR( GEOS_FMT( "Could not import field \"{}\" from cell block \"{}\".", meshFieldName, cellBlockName ), + getDataContext() ); } @@ -308,7 +309,8 @@ void VTKMeshGenerator::importSurfacicFieldOnArray( string const & faceBlockName, return vtk::importRegularField( vtkArray, wrapper ); } - GEOS_ERROR( "Could not import field \"" << meshFieldName << "\" from face block \"" << faceBlockName << "\".", getDataContext() ); + GEOS_ERROR( GEOS_FMT( "Could not import field \"{}\" from face block \"{}\".", meshFieldName, faceBlockName ), + getDataContext() ); } diff --git a/src/coreComponents/mesh/generators/VTKUtilities.cpp b/src/coreComponents/mesh/generators/VTKUtilities.cpp index e1da6189ac3..ce7ec6a54c7 100644 --- a/src/coreComponents/mesh/generators/VTKUtilities.cpp +++ b/src/coreComponents/mesh/generators/VTKUtilities.cpp @@ -434,8 +434,8 @@ VTKLegacyDatasetType getVTKLegacyDatasetType( vtkSmartPointer< vtkDataSetReader } else { - GEOS_ERROR( "Unsupported legacy VTK dataset format.\nLegacy supported formats are: " << - EnumStrings< VTKLegacyDatasetType >::concat( ", " ) << '.' ); + GEOS_ERROR( GEOS_FMT( "Unsupported legacy VTK dataset format.\nLegacy supported formats are: {}.", + EnumStrings< VTKLegacyDatasetType >::concat( ", " ) ) ); } return {}; } @@ -485,8 +485,9 @@ loadMesh( Path const & filePath, vtkCompositeDataSet * compositeDataSet = reader->GetOutput(); if( !compositeDataSet->IsA( "vtkMultiBlockDataSet" ) ) { - GEOS_ERROR( "Unsupported vtk multi-block format in file \"" << filePath << "\".\n" << - generalMeshErrorAdvice ); + GEOS_ERROR( GEOS_FMT( "Unsupported vtk multi-block format in file \"{}\".\n{}", + filePath, + generalMeshErrorAdvice ) ); } vtkMultiBlockDataSet * multiBlockDataSet = vtkMultiBlockDataSet::SafeDownCast( compositeDataSet ); @@ -505,8 +506,10 @@ loadMesh( Path const & filePath, } } } - GEOS_ERROR( "Could not find mesh \"" << blockName << "\" in multi-block vtk file \"" << filePath << "\".\n" << - generalMeshErrorAdvice ); + GEOS_ERROR( GEOS_FMT( "Could not find mesh \"{}\" in multi-block vtk file \"{}\".\n{}", + blockName, + filePath, + generalMeshErrorAdvice ) ); return {}; } else @@ -546,7 +549,9 @@ loadMesh( Path const & filePath, case VTKMeshExtension::pvtp: return parallelRead( vtkSmartPointer< vtkXMLPPolyDataReader >::New() ); default: { - GEOS_ERROR( extension << " is not a recognized extension for VTKMesh. Please use ." << EnumStrings< VTKMeshExtension >::concat( ", ." ) ); + GEOS_ERROR( GEOS_FMT( "{} is not a recognized extension for VTKMesh. Please use .{}", + extension, + EnumStrings< VTKMeshExtension >::concat( ", ." ) ) ); break; } } @@ -1068,17 +1073,19 @@ vtkSmartPointer< vtkDataSet > manageGlobalIds( vtkSmartPointer< vtkDataSet > mes vtkIdTypeArray const * const globalCellId = vtkIdTypeArray::FastDownCast( output->GetCellData()->GetGlobalIds() ); vtkIdTypeArray const * const globalPointId = vtkIdTypeArray::FastDownCast( output->GetPointData()->GetGlobalIds() ); GEOS_ERROR_IF( globalCellId->GetNumberOfComponents() != 1 && globalCellId->GetNumberOfTuples() != output->GetNumberOfCells(), - "Global cell IDs are invalid. Check the array or enable automatic generation (useGlobalId < 0).\n" << - generalMeshErrorAdvice ); + GEOS_FMT( "Global cell IDs are invalid. Check the array or enable automatic generation (useGlobalId < 0).\n{}", + generalMeshErrorAdvice ) ); GEOS_ERROR_IF( globalPointId->GetNumberOfComponents() != 1 && globalPointId->GetNumberOfTuples() != output->GetNumberOfPoints(), - "Global cell IDs are invalid. Check the array or enable automatic generation (useGlobalId < 0).\n" << - generalMeshErrorAdvice ); + GEOS_FMT( "Global cell IDs are invalid. Check the array or enable automatic generation (useGlobalId < 0).\n{}", + generalMeshErrorAdvice ) ); GEOS_LOG_RANK_0( "Using global Ids defined in VTK mesh" ); } else { - GEOS_ERROR_IF( isFractured, "Automatic generation of global IDs for fractured meshes is disabled. Please split with mesh_doctor. \n" << generalMeshErrorAdvice ); + GEOS_ERROR_IF( isFractured, + GEOS_FMT( "Automatic generation of global IDs for fractured meshes is disabled. Please split with mesh_doctor. \n{}", + generalMeshErrorAdvice ) ); GEOS_LOG_RANK_0( "Generating global Ids from VTK mesh" ); output = generateGlobalIDs( mesh ); @@ -1377,7 +1384,7 @@ geos::ElementType buildGeosxPolyhedronType( vtkCell * const cell ) case 11: return geos::ElementType::Prism11; default: { - GEOS_ERROR( "Prism with " << numQuads << " sides is not supported.\n" << generalMeshErrorAdvice ); + GEOS_ERROR( GEOS_FMT( "Prism with {} sides is not supported.\n{}", numQuads, generalMeshErrorAdvice ) ); return{}; } } @@ -1407,8 +1414,9 @@ ElementType convertVtkToGeosxElementType( vtkCell *cell ) case VTK_POLYHEDRON: return buildGeosxPolyhedronType( cell ); default: { - GEOS_ERROR( cell->GetCellType() << " is not a recognized cell type to be used with the VTKMeshGenerator.\n" << - generalMeshErrorAdvice ); + GEOS_ERROR( GEOS_FMT( "{} is not a recognized cell type to be used with the VTKMeshGenerator.\n{}", + cell->GetCellType(), + generalMeshErrorAdvice ) ); return {}; } } @@ -1481,7 +1489,7 @@ splitCellsByType( vtkDataSet & mesh ) } default: { - GEOS_ERROR( "Invalid element dimension: " << getElementDim( type ) ); + GEOS_ERROR( GEOS_FMT( "Invalid element dimension: {}", getElementDim( type ) ) ); } } } @@ -1732,7 +1740,7 @@ stdVector< localIndex > getWedgeNodeOrderingFromPolyhedron( vtkCell * const cell } } - GEOS_ERROR_IF( iFace == numFaces, "Invalid wedge.\n" << generalMeshErrorAdvice ); + GEOS_ERROR_IF( iFace == numFaces, GEOS_FMT( "Invalid wedge.\n{}", generalMeshErrorAdvice ) ); // Get global pointIds for the first triangle for( localIndex i = 0; i < 3; ++i ) @@ -1827,7 +1835,7 @@ stdVector< localIndex > getPyramidNodeOrderingFromPolyhedron( vtkCell * const ce } } - GEOS_ERROR_IF( iFace == numFaces, "Invalid pyramid.\n" << generalMeshErrorAdvice ); + GEOS_ERROR_IF( iFace == numFaces, GEOS_FMT( "Invalid pyramid.\n{}", generalMeshErrorAdvice ) ); // Get global pointIds for the base vtkCell * cellFace = cell->GetFace( iFace ); @@ -1901,7 +1909,7 @@ stdVector< localIndex > getPrismNodeOrderingFromPolyhedron( vtkCell * const cell } } - GEOS_ERROR_IF( iFace == numFaces, "Invalid prism.\n" << generalMeshErrorAdvice ); + GEOS_ERROR_IF( iFace == numFaces, GEOS_FMT( "Invalid prism.\n{}", generalMeshErrorAdvice ) ); // Get global pointIds for the first base vtkCell *cellFace = cell->GetFace( iFace ); @@ -2012,7 +2020,7 @@ stdVector< int > getVtkToGeosxNodeOrdering( ElementType const elemType ) case ElementType::Prism6: return { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; default: { - GEOS_ERROR( "Cannot get vtk to geos node ordering based on geos element type " << elemType ); + GEOS_ERROR( GEOS_FMT( "Cannot get vtk to geos node ordering based on geos element type {}", elemType ) ); break; } } @@ -2036,7 +2044,7 @@ stdVector< int > getVtkToGeosxNodeOrdering( VTKCellType const vtkType ) case VTK_HEXAGONAL_PRISM: return getVtkToGeosxNodeOrdering( ElementType::Prism6 ); default: { - GEOS_ERROR( "Cannot get vtk to geos node ordering based on vtk cell type " << vtkType ); + GEOS_ERROR( GEOS_FMT( "Cannot get vtk to geos node ordering based on vtk cell type {}", vtkType ) ); break; } } diff --git a/src/coreComponents/mesh/mpiCommunications/CommID.cpp b/src/coreComponents/mesh/mpiCommunications/CommID.cpp index da6d47a48cb..42c3324d662 100644 --- a/src/coreComponents/mesh/mpiCommunications/CommID.cpp +++ b/src/coreComponents/mesh/mpiCommunications/CommID.cpp @@ -40,7 +40,8 @@ CommID::CommID( CommID && src ): CommID::~CommID() { - GEOS_ERROR_IF( m_freeIDs.count( m_id ) > 0, "Attempting to release commID that is already free: " << m_id ); + GEOS_ERROR_IF( m_freeIDs.count( m_id ) > 0, + GEOS_FMT( "Attempting to release commID that is already free: {}", m_id ) ); m_freeIDs.insert( m_id ); m_id = -1; diff --git a/src/coreComponents/mesh/mpiCommunications/CommunicationTools.cpp b/src/coreComponents/mesh/mpiCommunications/CommunicationTools.cpp index 5b674816102..51f77038e34 100644 --- a/src/coreComponents/mesh/mpiCommunications/CommunicationTools.cpp +++ b/src/coreComponents/mesh/mpiCommunications/CommunicationTools.cpp @@ -641,7 +641,7 @@ void verifyGhostingConsistency( ObjectManagerBase const & objectManager, } } - GEOS_ERROR_IF( error, "Encountered a ghosting inconsistency in " << objectManager.getName() ); + GEOS_ERROR_IF( error, GEOS_FMT( "Encountered a ghosting inconsistency in {}", objectManager.getName() ) ); } /** diff --git a/src/coreComponents/mesh/utilities/ComputationalGeometry.hpp b/src/coreComponents/mesh/utilities/ComputationalGeometry.hpp index 61de4181531..d1bdb99542c 100644 --- a/src/coreComponents/mesh/utilities/ComputationalGeometry.hpp +++ b/src/coreComponents/mesh/utilities/ComputationalGeometry.hpp @@ -274,7 +274,7 @@ real64 centroid_3DPolygon( arraySlice1d< localIndex const > const pointsIndices, { GEOS_LOG_RANK( "Points: " << points[ pointsIndices[ a ] ] << " " << pointsIndices[ a ] ); } - GEOS_ERROR( "Negative area found : " << area ); + GEOS_ERROR( GEOS_FMT( "Negative area found : {}", area ) ); } else { diff --git a/src/coreComponents/physicsSolvers/KernelLaunchSelectors.hpp b/src/coreComponents/physicsSolvers/KernelLaunchSelectors.hpp index 99dd27435c1..2d74da8697f 100644 --- a/src/coreComponents/physicsSolvers/KernelLaunchSelectors.hpp +++ b/src/coreComponents/physicsSolvers/KernelLaunchSelectors.hpp @@ -45,7 +45,7 @@ void invokePhaseDispatchLambda ( S val, T numPhases, LAMBDA && lambda ) } else { - GEOS_ERROR( "Unsupported state: " << numPhases ); + GEOS_ERROR( GEOS_FMT( "Unsupported state: {}", numPhases ) ); } } @@ -64,7 +64,7 @@ void invokeThermalDispatchLambda ( S val, T isThermal, LAMBDA && lambda ) } else { - GEOS_ERROR( "Unsupported state: " << isThermal ); + GEOS_ERROR( GEOS_FMT( "Unsupported state: {}", isThermal ) ); } } @@ -87,7 +87,7 @@ void kernelLaunchSelectorThermalSwitch( T value, LAMBDA && lambda ) } default: { - GEOS_ERROR( "Unsupported thermal state: " << value ); + GEOS_ERROR( GEOS_FMT( "Unsupported thermal state: {}", value ) ); } } } @@ -126,7 +126,7 @@ void kernelLaunchSelectorCompThermSwitch( T value, bool const isThermal, LAMBDA } default: { - GEOS_ERROR( "Unsupported number of components: " << value ); + GEOS_ERROR( GEOS_FMT( "Unsupported number of components: {}", value ) ); } } } @@ -163,7 +163,7 @@ void kernelLaunchSelectorCompPhaseSwitch( T value, T n_phase, LAMBDA && lambda ) return; } default: - { GEOS_ERROR( "Unsupported number of components: " << value ); } + { GEOS_ERROR( GEOS_FMT( "Unsupported number of components: {}", value ) ); } } } diff --git a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseHybridFVM.cpp b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseHybridFVM.cpp index 68d14faaebd..a982e85c535 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseHybridFVM.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseHybridFVM.cpp @@ -906,7 +906,7 @@ void CompositionalMultiphaseHybridFVM::applyFaceDirichletBC( real64 const time_n else if( numFacesPerElement == 13 ) launchKernel( IP_TAG, std::integral_constant< integer, 13 >{} ); else - GEOS_ERROR( "Unsupported number of faces per element: " << numFacesPerElement, getDataContext() ); + GEOS_ERROR( GEOS_FMT( "Unsupported number of faces per element: {}", numFacesPerElement ), getDataContext() ); }; // Inner-product selection @@ -924,7 +924,7 @@ void CompositionalMultiphaseHybridFVM::applyFaceDirichletBC( real64 const time_n } else { - GEOS_ERROR( "Unsupported inner product type: " << innerProductType, getDataContext() ); + GEOS_ERROR( GEOS_FMT( "Unsupported inner product type: {}", innerProductType ), getDataContext() ); } }; @@ -933,7 +933,7 @@ void CompositionalMultiphaseHybridFVM::applyFaceDirichletBC( real64 const time_n else if( m_numPhases == 3 ) launchWithPhases( std::integral_constant< integer, 3 >{} ); else - GEOS_ERROR( "Unsupported number of phases: " << m_numPhases, getDataContext() ); + GEOS_ERROR( GEOS_FMT( "Unsupported number of phases: {}", m_numPhases ), getDataContext() ); } ); } } ); diff --git a/src/coreComponents/physicsSolvers/fluidFlow/kernels/compositional/CompositionalMultiphaseHybridFVMKernels.hpp b/src/coreComponents/physicsSolvers/fluidFlow/kernels/compositional/CompositionalMultiphaseHybridFVMKernels.hpp index d713a3d0a7e..b9831ad4fc5 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/kernels/compositional/CompositionalMultiphaseHybridFVMKernels.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/kernels/compositional/CompositionalMultiphaseHybridFVMKernels.hpp @@ -1282,7 +1282,7 @@ void kernelLaunchSelectorFaceSwitch( T value, LAMBDA && lambda ) return lambda( std::integral_constant< int, 13 >{} ); } default: - GEOS_ERROR( "Unknown numFacesInElem value: " << value ); + GEOS_ERROR( GEOS_FMT( "Unknown numFacesInElem value: {}", value ) ); } } @@ -1326,7 +1326,7 @@ void kernelLaunchSelector( integer numFacesInElem, integer numComps, integer num } else { - GEOS_ERROR( "Unsupported number of components: " << numComps ); + GEOS_ERROR( GEOS_FMT( "Unsupported number of components: {}", numComps ) ); } } else if( numPhases == 3 ) @@ -1353,12 +1353,12 @@ void kernelLaunchSelector( integer numFacesInElem, integer numComps, integer num } else { - GEOS_ERROR( "Unsupported number of components: " << numComps ); + GEOS_ERROR( GEOS_FMT( "Unsupported number of components: {}", numComps ) ); } } else { - GEOS_ERROR( "Unsupported number of phases: " << numPhases ); + GEOS_ERROR( GEOS_FMT( "Unsupported number of phases: {}", numPhases ) ); } } diff --git a/src/coreComponents/physicsSolvers/fluidFlow/kernels/compositional/KernelLaunchSelectors.hpp b/src/coreComponents/physicsSolvers/fluidFlow/kernels/compositional/KernelLaunchSelectors.hpp index 3e7370f1c6f..769f2ff7753 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/kernels/compositional/KernelLaunchSelectors.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/kernels/compositional/KernelLaunchSelectors.hpp @@ -55,7 +55,7 @@ void kernelLaunchSelectorCompSwitch( T value, LAMBDA && lambda ) case 5: { lambda( std::integral_constant< T, 5 >() ); return; } default: - { GEOS_ERROR( "Unsupported number of components: " << value ); } + { GEOS_ERROR( GEOS_FMT( "Unsupported number of components: {}", value ) ); } } } @@ -99,7 +99,7 @@ void KernelLaunchSelector2( integer const numComp, integer const numPhase, ARGS } else { - GEOS_ERROR( "Unsupported number of phases: " << numPhase ); + GEOS_ERROR( GEOS_FMT( "Unsupported number of phases: {}", numPhase ) ); } } @@ -125,7 +125,7 @@ void KernelLaunchSelector_NC_NP_THERM( integer const numComp, integer const numP } else { - GEOS_ERROR( "Unsupported number of phases: " << numPhase ); + GEOS_ERROR( GEOS_FMT( "Unsupported number of phases: {}", numPhase ) ); } } else @@ -146,7 +146,7 @@ void KernelLaunchSelector_NC_NP_THERM( integer const numComp, integer const numP } else { - GEOS_ERROR( "Unsupported number of phases: " << numPhase ); + GEOS_ERROR( GEOS_FMT( "Unsupported number of phases: {}", numPhase ) ); } } } diff --git a/src/coreComponents/physicsSolvers/fluidFlow/kernels/compositional/ReactiveCompositionalMultiphaseOBLKernels.hpp b/src/coreComponents/physicsSolvers/fluidFlow/kernels/compositional/ReactiveCompositionalMultiphaseOBLKernels.hpp index cb2a651ccd0..f632504b958 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/kernels/compositional/ReactiveCompositionalMultiphaseOBLKernels.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/kernels/compositional/ReactiveCompositionalMultiphaseOBLKernels.hpp @@ -91,7 +91,7 @@ void kernelLaunchSelectorCompSwitch( T numComps, LAMBDA && lambda ) case 5: { lambda( std::integral_constant< T, NUM_PHASES >(), std::integral_constant< T, 5 >(), std::integral_constant< bool, ENABLE_ENERGY >()); return; } default: - { GEOS_ERROR( "Unsupported number of components: " << numComps ); } + { GEOS_ERROR( GEOS_FMT( "Unsupported number of components: {}", numComps ) ); } } } @@ -109,7 +109,7 @@ void kernelLaunchSelectorPhaseSwitch( T numPhases, T numComps, LAMBDA && lambda case 3: { kernelLaunchSelectorCompSwitch< ENABLE_ENERGY, 3 >( numComps, lambda ); return; } default: - { GEOS_ERROR( "Unsupported number of phases: " << numPhases ); } + { GEOS_ERROR( GEOS_FMT( "Unsupported number of phases: {}", numPhases ) ); } } } diff --git a/src/coreComponents/physicsSolvers/fluidFlow/kernels/immiscibleMultiphase/KernelLaunchSelectors.hpp b/src/coreComponents/physicsSolvers/fluidFlow/kernels/immiscibleMultiphase/KernelLaunchSelectors.hpp index f219c31382a..f5eab427ddb 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/kernels/immiscibleMultiphase/KernelLaunchSelectors.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/kernels/immiscibleMultiphase/KernelLaunchSelectors.hpp @@ -40,7 +40,7 @@ void kernelLaunchSelectorPhaseSwitch( T value, LAMBDA && lambda ) case 2: { lambda( std::integral_constant< T, 2 >() ); return; } default: - { GEOS_ERROR( "Unsupported number of phases: " << value ); } + { GEOS_ERROR( GEOS_FMT( "Unsupported number of phases: {}", value ) ); } } } diff --git a/src/coreComponents/physicsSolvers/fluidFlow/kernels/singlePhase/AccumulationKernels.hpp b/src/coreComponents/physicsSolvers/fluidFlow/kernels/singlePhase/AccumulationKernels.hpp index 13393664683..1cd1623a917 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/kernels/singlePhase/AccumulationKernels.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/kernels/singlePhase/AccumulationKernels.hpp @@ -321,7 +321,7 @@ class AccumulationKernelFactory else { GEOS_UNUSED_VAR( rankOffset, dofKey, subRegion, localMatrix, localRhs ); - GEOS_ERROR( "Unsupported subregion type: " << typeid(SUBREGION_TYPE).name() ); + GEOS_ERROR( GEOS_FMT( "Unsupported subregion type: {}", typeid( SUBREGION_TYPE ).name() ) ); } } diff --git a/src/coreComponents/physicsSolvers/fluidFlow/kernels/singlePhase/SinglePhaseHybridFVMKernels.hpp b/src/coreComponents/physicsSolvers/fluidFlow/kernels/singlePhase/SinglePhaseHybridFVMKernels.hpp index 8db5affafc2..95b6581ee26 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/kernels/singlePhase/SinglePhaseHybridFVMKernels.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/kernels/singlePhase/SinglePhaseHybridFVMKernels.hpp @@ -79,7 +79,7 @@ void kernelLaunchSelectorFaceSwitch( T value, LAMBDA && lambda ) { lambda( std::integral_constant< T, 12 >() ); return;} case 13: { lambda( std::integral_constant< T, 13 >() ); return;} - default: GEOS_ERROR( "Unknown numFacesInElem value: " << value ); + default: GEOS_ERROR( GEOS_FMT( "Unknown numFacesInElem value: {}", value ) ); } } diff --git a/src/coreComponents/physicsSolvers/fluidFlow/kernels/singlePhase/ThermalAccumulationKernels.hpp b/src/coreComponents/physicsSolvers/fluidFlow/kernels/singlePhase/ThermalAccumulationKernels.hpp index c470b9790a1..755a394a664 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/kernels/singlePhase/ThermalAccumulationKernels.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/kernels/singlePhase/ThermalAccumulationKernels.hpp @@ -225,7 +225,7 @@ class AccumulationKernelFactory else { GEOS_UNUSED_VAR( rankOffset, dofKey, subRegion, localMatrix, localRhs ); - GEOS_ERROR( "Unsupported subregion type: " << typeid(SUBREGION_TYPE).name() ); + GEOS_ERROR( GEOS_FMT( "Unsupported subregion type: {}", typeid( SUBREGION_TYPE ).name() ) ); } } diff --git a/src/coreComponents/physicsSolvers/fluidFlow/kernels/singlePhase/reactive/KernelLaunchSelectors.hpp b/src/coreComponents/physicsSolvers/fluidFlow/kernels/singlePhase/reactive/KernelLaunchSelectors.hpp index 8964b9b6ef0..7fa4171c9b3 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/kernels/singlePhase/reactive/KernelLaunchSelectors.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/kernels/singlePhase/reactive/KernelLaunchSelectors.hpp @@ -63,7 +63,7 @@ void kernelLaunchSelectorCompSwitch( T value, LAMBDA && lambda ) case 9: { lambda( std::integral_constant< T, 9 >() ); return; } default: - { GEOS_ERROR( "Unsupported number of primary species: " << value ); } + { GEOS_ERROR( GEOS_FMT( "Unsupported number of primary species: {}", value ) ); } } } diff --git a/src/coreComponents/physicsSolvers/multiphysics/HydrofractureSolver.cpp b/src/coreComponents/physicsSolvers/multiphysics/HydrofractureSolver.cpp index e36249bbc76..7142a7c11e4 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/HydrofractureSolver.cpp +++ b/src/coreComponents/physicsSolvers/multiphysics/HydrofractureSolver.cpp @@ -226,10 +226,13 @@ void HydrofractureSolver< POROMECHANICS_SOLVER >::postInputInitialization() setMGRStrategy(); static const std::set< integer > binaryOptions = { 0, 1 }; - GEOS_ERROR_IF( binaryOptions.count( m_isMatrixPoroelastic ) == 0, viewKeyStruct::isMatrixPoroelasticString() << " option can be either 0 (false) or 1 (true)" ); + GEOS_ERROR_IF( binaryOptions.count( m_isMatrixPoroelastic ) == 0, + GEOS_FMT( "{} option can be either 0 (false) or 1 (true)", + viewKeyStruct::isMatrixPoroelasticString() ) ); GEOS_ERROR_IF( m_newFractureInitializationType != InitializationType::Pressure && m_newFractureInitializationType != InitializationType::Displacement, - viewKeyStruct::newFractureInitializationTypeString() << " option can be either Pressure or Displacement" ); + GEOS_FMT( "{} option can be either Pressure or Displacement", + viewKeyStruct::newFractureInitializationTypeString() ) ); m_surfaceGenerator = &this->getParent().template getGroup< SurfaceGenerator >( m_surfaceGeneratorName ); diff --git a/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsMPM.cpp b/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsMPM.cpp index 7f2ef8169df..9d6e9a64885 100644 --- a/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsMPM.cpp +++ b/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsMPM.cpp @@ -3714,7 +3714,7 @@ void SolidMechanicsMPM::flagOutOfRangeParticles( ParticleManager & particleManag } default: { - GEOS_ERROR( "Particle type \"" << particleType << "\" is not yet supported.", getDataContext() ); + GEOS_ERROR( GEOS_FMT( "Particle type \"{}\" is not yet supported.", particleType ), getDataContext() ); break; } } @@ -4048,7 +4048,8 @@ void SolidMechanicsMPM::populateMappingArrays( ParticleManager & particleManager default: { - GEOS_ERROR( "Particle type \"" << subRegion.getParticleType() << "\" is not yet supported.", getDataContext() ); + GEOS_ERROR( GEOS_FMT( "Particle type \"{}\" is not yet supported.", subRegion.getParticleType() ), + getDataContext() ); break; } } diff --git a/src/coreComponents/physicsSolvers/solidMechanics/contact/SolidMechanicsLagrangeContact.cpp b/src/coreComponents/physicsSolvers/solidMechanics/contact/SolidMechanicsLagrangeContact.cpp index 20949bc3a7e..72716cbaef2 100644 --- a/src/coreComponents/physicsSolvers/solidMechanics/contact/SolidMechanicsLagrangeContact.cpp +++ b/src/coreComponents/physicsSolvers/solidMechanics/contact/SolidMechanicsLagrangeContact.cpp @@ -926,7 +926,9 @@ SolidMechanicsLagrangeContact::createPreconditioner( DomainPartition & domain ) } else { - GEOS_ERROR( "SolidMechanicsLagrangeContact::CreatePreconditioner leadingBlockApproximation option " << leadingBlockApproximation << " not supported", getDataContext()); + GEOS_ERROR( GEOS_FMT( "SolidMechanicsLagrangeContact::CreatePreconditioner leadingBlockApproximation option {} not supported", + leadingBlockApproximation ), + getDataContext() ); } // Preconditioner for the leading block: tracPrecond @@ -1321,8 +1323,8 @@ void SolidMechanicsLagrangeContact::computeFaceNodalArea( localIndex const kf0, } else { - GEOS_ERROR( "Face with " << numNodesPerFace << - " nodes. Only triangles and quadrilaterals and PEBI prisms up to 11 sides are supported.", + GEOS_ERROR( GEOS_FMT( "Face with {} nodes. Only triangles and quadrilaterals and PEBI prisms up to 11 sides are supported.", + numNodesPerFace ), getDataContext() ); } } diff --git a/src/coreComponents/physicsSolvers/surfaceGeneration/SurfaceGenerator.cpp b/src/coreComponents/physicsSolvers/surfaceGeneration/SurfaceGenerator.cpp index 221bf06b16a..6085458d4d3 100644 --- a/src/coreComponents/physicsSolvers/surfaceGeneration/SurfaceGenerator.cpp +++ b/src/coreComponents/physicsSolvers/surfaceGeneration/SurfaceGenerator.cpp @@ -1406,11 +1406,16 @@ bool SurfaceGenerator::findFracturePlanes( localIndex const nodeID, // NOT be included in the path!!! if( nextEdge!=startingEdge && !(isEdgeExternal[nextEdge]==1 && startingEdgeExternal ) ) { - GEOS_ERROR( "Crap !" << - " NodeID, ParentID = " << nodeID << ", " << parentNodeIndex << '\n' << - " Starting Edge/Face = " << startingEdge << ", " << startingFace << '\n' << - " Face Separation Path = " << facePath << '\n' << - " Edge Separation Path = " << edgePath << '\n', + GEOS_ERROR( GEOS_FMT( "Crap ! NodeID, ParentID = {}, {}\n" + " Starting Edge/Face = {}, {}\n" + " Face Separation Path = {}\n" + " Edge Separation Path = {}\n", + nodeID, + parentNodeIndex, + startingEdge, + startingFace, + format::toStringForFmt( facePath ), + format::toStringForFmt( edgePath ) ), getDataContext() ); } diff --git a/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/secondOrderEqn/isotropic/AcousticWaveEquationSEM.cpp b/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/secondOrderEqn/isotropic/AcousticWaveEquationSEM.cpp index a9c7439a44a..a269ebe17ca 100644 --- a/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/secondOrderEqn/isotropic/AcousticWaveEquationSEM.cpp +++ b/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/secondOrderEqn/isotropic/AcousticWaveEquationSEM.cpp @@ -1138,7 +1138,7 @@ real64 AcousticWaveEquationSEM::explicitStepBackward( real64 const & time_n, int const rank = MpiWrapper::commRank( MPI_COMM_GEOS ); std::string fileName = GEOS_FMT( "lifo/rank_{:05}/pressure_forward_{:06}_{:08}.dat", rank, m_shotIndex, cycleNumber ); std::ifstream wf( fileName, std::ios::in | std::ios::binary ); - GEOS_THROW_IF( !wf, "Could not open file "<< fileName << " for reading", + GEOS_THROW_IF( !wf, GEOS_FMT( "Could not open file {} for reading", fileName ), InputError, getDataContext() ); p_forward.move( LvArray::MemorySpace::host, true ); diff --git a/src/coreComponents/physicsSolvers/wavePropagation/shared/WaveSolverBase.cpp b/src/coreComponents/physicsSolvers/wavePropagation/shared/WaveSolverBase.cpp index 22e4bb663a1..20e62efb0c9 100644 --- a/src/coreComponents/physicsSolvers/wavePropagation/shared/WaveSolverBase.cpp +++ b/src/coreComponents/physicsSolvers/wavePropagation/shared/WaveSolverBase.cpp @@ -459,7 +459,8 @@ localIndex WaveSolverBase::getNumNodesPerElem() FiniteElementDiscretization const * const feDiscretization = feDiscretizationManager.getGroupPointer< FiniteElementDiscretization >( m_discretizationName ); - GEOS_THROW_IF( feDiscretization == nullptr, "FE discretization not found: " << m_discretizationName, + GEOS_THROW_IF( feDiscretization == nullptr, + GEOS_FMT( "FE discretization not found: {}", m_discretizationName ), InputError, getDataContext() ); localIndex numNodesPerElem = 0; From 04cac163271de685dfb67462dd58558228fcf9f3 Mon Sep 17 00:00:00 2001 From: "Victor A. P. Magri" Date: Fri, 27 Feb 2026 19:56:55 -0500 Subject: [PATCH 10/30] More GEOS_FMT changes --- .../common/initializeEnvironment.cpp | 2 +- .../CO2Brine/functions/PVTFunctionHelpers.cpp | 8 +++++--- .../models/NegativeTwoPhaseFlashModel.hpp | 7 +++++-- .../permeability/PressurePermeability.cpp | 4 +++- .../constitutive/solid/ElasticIsotropic.cpp | 7 ++++--- .../unitTests/testCO2BrinePVTModels.cpp | 4 ++-- src/coreComponents/dataRepository/Wrapper.hpp | 4 ++-- .../TractionBoundaryCondition.cpp | 15 ++++++++------- .../FiniteElementDiscretization.cpp | 19 +++++++++---------- .../mesh/ElementRegionManager.cpp | 9 ++++++--- .../mesh/ElementRegionManager.hpp | 4 +++- .../mesh/FaceElementSubRegion.cpp | 4 +++- src/coreComponents/mesh/ObjectManagerBase.cpp | 8 ++++++-- src/coreComponents/mesh/Perforation.cpp | 4 ++-- .../mesh/SurfaceElementRegion.hpp | 2 +- .../mesh/generators/InternalMeshGenerator.hpp | 5 +++-- .../generators/InternalWellboreGenerator.cpp | 14 +++++++------- .../mesh/generators/VTKUtilities.cpp | 15 ++++++++++----- .../mpiCommunications/CommunicationTools.cpp | 14 +++++++++----- .../mesh/simpleGeometricObjects/Box.cpp | 4 ++-- .../physicsSolvers/PhysicsSolverBase.cpp | 6 +++--- .../proppantTransport/ProppantTransport.cpp | 6 +++--- .../ParallelTopologyChange.cpp | 4 +++- .../ParallelTopologyChangeNoFixup.cpp | 4 +++- 24 files changed, 103 insertions(+), 70 deletions(-) diff --git a/src/coreComponents/common/initializeEnvironment.cpp b/src/coreComponents/common/initializeEnvironment.cpp index 5f20e2453a8..de97d357332 100644 --- a/src/coreComponents/common/initializeEnvironment.cpp +++ b/src/coreComponents/common/initializeEnvironment.cpp @@ -207,7 +207,7 @@ void setupCUDA() { cudaError_t status = cudaDeviceSetLimit( cudaLimitStackSize, stackSize ); GEOS_ERROR_IF( status != cudaSuccess, - "Failed to set CUDA stack size. Error " << status << ": " << cudaGetErrorString( status ) ); + GEOS_FMT( "Failed to set CUDA stack size. Error {}: {}", status, cudaGetErrorString( status ) ) ); } #endif } diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PVTFunctionHelpers.cpp b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PVTFunctionHelpers.cpp index 053af792f3e..ef58ec99441 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PVTFunctionHelpers.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/PVTFunctionHelpers.cpp @@ -35,7 +35,7 @@ BlackOilTables::readTable( string const & fileName, { std::ifstream is( fileName ); GEOS_ERROR_IF( !is.is_open(), - "BlackOilTables: could not open file: " << fileName ); + GEOS_FMT( "BlackOilTables: could not open file: {}", fileName ) ); // Read line-by-line until eof string str; @@ -67,8 +67,10 @@ BlackOilTables::readTable( string const & fileName, for( localIndex i = 0; i < data.size(); ++i ) { GEOS_ERROR_IF( data[i].size() < minRowLength, - "BlackOilTables: too few entries in row " << i << " of table " << fileName - << ", minimum " << std::to_string( minRowLength ) << " required" ); + GEOS_FMT( "BlackOilTables: too few entries in row {} of table {}, minimum {} required", + i, + fileName, + minRowLength ) ); } } diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/models/NegativeTwoPhaseFlashModel.hpp b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/NegativeTwoPhaseFlashModel.hpp index 873fc9d757b..d1fad07db07 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/compositional/models/NegativeTwoPhaseFlashModel.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/NegativeTwoPhaseFlashModel.hpp @@ -29,6 +29,7 @@ #include "constitutive/fluid/multifluid/compositional/functions/FlashData.hpp" #include "constitutive/fluid/multifluid/compositional/functions/StabilityTest.hpp" #include "constitutive/fluid/multifluid/compositional/functions/NegativeTwoPhaseFlash.hpp" +#include "common/format/StringUtilities.hpp" namespace geos { @@ -166,8 +167,10 @@ class NegativeTwoPhaseFlashModelUpdate final : public FunctionBaseUpdate phaseCompFraction.value[m_vapourIndex] ); GEOS_ERROR_IF( !flashStatus, - GEOS_FMT( "Negative two phase flash failed to converge at pressure {:.5e}, temperature {:.3f} and composition ", - pressure, temperature ) << compFraction ); + GEOS_FMT( "Negative two phase flash failed to converge at pressure {:.5e}, temperature {:.3f} and composition {}.", + pressure, + temperature, + stringutilities::concat( "", compFraction ) ) ); // Calculate derivatives NegativeTwoPhaseFlash::computeDerivatives( m_numComponents, diff --git a/src/coreComponents/constitutive/permeability/PressurePermeability.cpp b/src/coreComponents/constitutive/permeability/PressurePermeability.cpp index 1106fc6df17..838439efd88 100644 --- a/src/coreComponents/constitutive/permeability/PressurePermeability.cpp +++ b/src/coreComponents/constitutive/permeability/PressurePermeability.cpp @@ -65,7 +65,9 @@ void PressurePermeability::postInputInitialization() for( localIndex i=0; i < 3; i++ ) { GEOS_ERROR_IF( std::abs( m_pressureDependenceConstants[i] ) < 1e-15 && m_presModelType == PressureModelType::Hyperbolic, - "The pressure dependent constant at component " << i << " is too close to zero, which is not allowed for the hyperbolic model.", + GEOS_FMT( "The pressure dependent constant at component {} is too close to zero, " + "which is not allowed for the hyperbolic model.", + i ), getDataContext() ); } } diff --git a/src/coreComponents/constitutive/solid/ElasticIsotropic.cpp b/src/coreComponents/constitutive/solid/ElasticIsotropic.cpp index 14b60f0eda9..be60e9fd6ee 100644 --- a/src/coreComponents/constitutive/solid/ElasticIsotropic.cpp +++ b/src/coreComponents/constitutive/solid/ElasticIsotropic.cpp @@ -95,9 +95,10 @@ void ElasticIsotropic::postInputInitialization() errorCheck += ")"; GEOS_ERROR_IF( numConstantsSpecified != 2, - "A specific pair of elastic constants is required. " << - "Either (K,G), (K,E), (G,E), (K,nu), (G,nu) or (E,nu). " << - "You have specified " << errorCheck, + GEOS_FMT( "A specific pair of elastic constants is required. " + "Either (K,G), (K,E), (G,E), (K,nu), (G,nu) or (E,nu). " + "You have specified {}", + errorCheck ), getDataContext() ); if( nu > -0.5 && nu < 0.5 && E > 0.0 ) diff --git a/src/coreComponents/constitutive/unitTests/testCO2BrinePVTModels.cpp b/src/coreComponents/constitutive/unitTests/testCO2BrinePVTModels.cpp index d9cdfbf1704..30242769d45 100644 --- a/src/coreComponents/constitutive/unitTests/testCO2BrinePVTModels.cpp +++ b/src/coreComponents/constitutive/unitTests/testCO2BrinePVTModels.cpp @@ -366,7 +366,7 @@ std::unique_ptr< MODEL > makePVTFunction( string const & filename, } } GEOS_ERROR_IF( pvtFunction == nullptr, - "Could not find " << key << " in " << filename ); + GEOS_FMT( "Could not find {} in {}", key, filename ) ); return pvtFunction; } @@ -411,7 +411,7 @@ std::unique_ptr< MODEL > makeFlashModel( string const & filename, } } GEOS_ERROR_IF( flashModel == nullptr, - "Could not find " << key << " in " << filename ); + GEOS_FMT( "Could not find {} in {}", key, filename ) ); return flashModel; } diff --git a/src/coreComponents/dataRepository/Wrapper.hpp b/src/coreComponents/dataRepository/Wrapper.hpp index cf4cca87daa..4f23afa084e 100644 --- a/src/coreComponents/dataRepository/Wrapper.hpp +++ b/src/coreComponents/dataRepository/Wrapper.hpp @@ -221,7 +221,7 @@ class Wrapper final : public WrapperBase static Wrapper & cast( WrapperBase & wrapper ) { GEOS_ERROR_IF( wrapper.getTypeId() != typeid( T ), - "Invalid downcast to Wrapper< " << LvArray::system::demangleType< T >() << " >" ); + GEOS_FMT( "Invalid downcast to Wrapper< {} >", LvArray::system::demangleType< T >() ) ); return static_cast< Wrapper< T > & >( wrapper ); } @@ -234,7 +234,7 @@ class Wrapper final : public WrapperBase static Wrapper< T > const & cast( WrapperBase const & wrapper ) { GEOS_ERROR_IF( wrapper.getTypeId() != typeid( T ), - "Invalid downcast to Wrapper< " << LvArray::system::demangleType< T >() << " >" ); + GEOS_FMT( "Invalid downcast to Wrapper< {} >", LvArray::system::demangleType< T >() ) ); return static_cast< Wrapper< T > const & >( wrapper ); } diff --git a/src/coreComponents/fieldSpecification/TractionBoundaryCondition.cpp b/src/coreComponents/fieldSpecification/TractionBoundaryCondition.cpp index 2dab7ebfa4f..8917f7908c3 100644 --- a/src/coreComponents/fieldSpecification/TractionBoundaryCondition.cpp +++ b/src/coreComponents/fieldSpecification/TractionBoundaryCondition.cpp @@ -78,10 +78,10 @@ void TractionBoundaryCondition::postInputInitialization() if( m_tractionType == TractionType::vector ) { GEOS_ERROR_IF( LvArray::tensorOps::l2Norm< 3 >( getDirection() ) < 1e-20, - viewKeyStruct::directionString() << " is required for " << - viewKeyStruct::tractionTypeString() << " = " << - EnumStrings< TractionType >::toString( TractionType::vector ) << - ", but appears to be unspecified", + GEOS_FMT( "{} is required for {} = {}, but appears to be unspecified", + viewKeyStruct::directionString(), + viewKeyStruct::tractionTypeString(), + EnumStrings< TractionType >::toString( TractionType::vector ) ), getDataContext() ); } else @@ -102,9 +102,10 @@ void TractionBoundaryCondition::postInputInitialization() ", so value of " << viewKeyStruct::inputStressString() << " is unused." ); GEOS_ERROR_IF( !inputStressRead && m_tractionType == TractionType::stress, - viewKeyStruct::tractionTypeString() << " = " << - EnumStrings< TractionType >::toString( TractionType::stress ) << - ", but " << viewKeyStruct::inputStressString() << " is not specified.", + GEOS_FMT( "{} = {}, but {} is not specified.", + viewKeyStruct::tractionTypeString(), + EnumStrings< TractionType >::toString( TractionType::stress ), + viewKeyStruct::inputStressString() ), getDataContext() ); diff --git a/src/coreComponents/finiteElement/FiniteElementDiscretization.cpp b/src/coreComponents/finiteElement/FiniteElementDiscretization.cpp index 3bb2a5974c0..aaddf7c0baf 100644 --- a/src/coreComponents/finiteElement/FiniteElementDiscretization.cpp +++ b/src/coreComponents/finiteElement/FiniteElementDiscretization.cpp @@ -208,7 +208,7 @@ FiniteElementDiscretization::factory( ElementType const parentElementShape ) con #if !defined( GEOS_USE_HIP ) case ElementType::Hexahedron: GEOS_ERROR_IF( m_formulation != Formulation::SEM, - GEOS_FMT( "Element type Hexahedron with order 2 available only when using the Spectral Element Method" ), + "Element type Hexahedron with order 2 available only when using the Spectral Element Method", getDataContext() ); return std::make_unique< Q2_Hexahedron_Lagrange_GaussLobatto >(); #else @@ -216,7 +216,7 @@ FiniteElementDiscretization::factory( ElementType const parentElementShape ) con #endif case ElementType::Tetrahedron: GEOS_ERROR_IF( m_formulation != Formulation::DG, - GEOS_FMT( "Element type Tetrahedron with order 2 available only when using the Discontinuous Galerkin Method" ), + "Element type Tetrahedron with order 2 available only when using the Discontinuous Galerkin Method", getDataContext() ); return std::make_unique< BB2_Tetrahedron >(); default: @@ -236,7 +236,7 @@ FiniteElementDiscretization::factory( ElementType const parentElementShape ) con #if !defined( GEOS_USE_HIP ) case ElementType::Hexahedron: GEOS_ERROR_IF( m_formulation != Formulation::SEM, - GEOS_FMT( "Element type Hexahedron with order 3 available only when using the Spectral Element Method" ), + "Element type Hexahedron with order 3 available only when using the Spectral Element Method", getDataContext() ); return std::make_unique< Q3_Hexahedron_Lagrange_GaussLobatto >(); #else @@ -244,7 +244,7 @@ FiniteElementDiscretization::factory( ElementType const parentElementShape ) con #endif case ElementType::Tetrahedron: GEOS_ERROR_IF( m_formulation != Formulation::DG, - GEOS_FMT( "Element type Tetrahedron with order 3 available only when using the Discontinuous Galerkin Method" ), + "Element type Tetrahedron with order 3 available only when using the Discontinuous Galerkin Method", getDataContext() ); return std::make_unique< BB3_Tetrahedron >(); default: @@ -264,7 +264,7 @@ FiniteElementDiscretization::factory( ElementType const parentElementShape ) con #if !defined( GEOS_USE_HIP ) case ElementType::Hexahedron: GEOS_ERROR_IF( m_formulation != Formulation::SEM, - GEOS_FMT( "Element type Hexahedron with order 4 available only when using the Spectral Element Method" ), + "Element type Hexahedron with order 4 available only when using the Spectral Element Method", getDataContext() ); return std::make_unique< Q4_Hexahedron_Lagrange_GaussLobatto >(); #else @@ -272,8 +272,7 @@ FiniteElementDiscretization::factory( ElementType const parentElementShape ) con #endif //case ElementType::Tetrahedron: // GEOS_ERROR_IF( m_formulation != Formulation::DG, - // << "Element type Tetrahedron with order 4 available" << - // " only when using the Discontinuous Galerkin Method", + // GEOS_FMT( "Element type Tetrahedron with order 4 available only when using the Discontinuous Galerkin Method" ), // getDataContext() ); // //return std::make_unique< BB4_Tetrahedron >(); default: @@ -293,7 +292,7 @@ FiniteElementDiscretization::factory( ElementType const parentElementShape ) con #if !defined( GEOS_USE_HIP ) case ElementType::Hexahedron: GEOS_ERROR_IF( m_formulation != Formulation::SEM, - GEOS_FMT( "Element type Hexahedron with order 5 available only when using the Spectral Element Method" ), + "Element type Hexahedron with order 5 available only when using the Spectral Element Method", getDataContext() ); return std::make_unique< Q5_Hexahedron_Lagrange_GaussLobatto >(); #else @@ -301,8 +300,8 @@ FiniteElementDiscretization::factory( ElementType const parentElementShape ) con #endif //case ElementType::Tetrahedron: // GEOS_ERROR_IF( m_formulation != Formulation::DG, - // getDataContext() << "Element type Tetrahedron with order 5 available" << - // " only when using the Discontinuous Galerkin Method" ); + // GEOS_FMT( "Element type Tetrahedron with order 5 available only when using the Discontinuous Galerkin Method" ), + // getDataContext() ); // //return std::make_unique< BB5_Tetrahedron >(); default: { diff --git a/src/coreComponents/mesh/ElementRegionManager.cpp b/src/coreComponents/mesh/ElementRegionManager.cpp index 5f6d511b7ff..963db5c6c3c 100644 --- a/src/coreComponents/mesh/ElementRegionManager.cpp +++ b/src/coreComponents/mesh/ElementRegionManager.cpp @@ -222,8 +222,9 @@ void ElementRegionManager::generateWells( CellBlockManagerABC const & cellBlockM globalIndex const numWellElemsGlobal = MpiWrapper::sum( subRegion.size() ); GEOS_ERROR_IF( numWellElemsGlobal != lineBlock.numElements(), - "Invalid partitioning in well " << lineBlock.getName() << - ", subregion " << subRegion.getName(), + GEOS_FMT( "Invalid partitioning in well {}, subregion {}", + lineBlock.getName(), + subRegion.getName() ), getDataContext(), lineBlock.getDataContext(), subRegion.getDataContext() ); } ); @@ -658,7 +659,9 @@ ElementRegionManager::unpackFaceElementToFace( buffer_unit_type const * & buffer string subRegionName; unpackedSize += bufferOps::Unpack( buffer, subRegionName ); GEOS_ERROR_IF( subRegionName != subRegion.getName(), - "Unpacked subregion name (" << subRegionName << ") does not equal object name (" << subRegion.getName() << ")" ); + GEOS_FMT( "Unpacked subregion name ({}) does not equal object name ({})", + subRegionName, + subRegion.getName() ) ); localIndex_array & elemList = packList[kReg][kSubReg]; unpackedSize += subRegion.unpackToFaceRelation( buffer, elemList, false, overwriteMap ); diff --git a/src/coreComponents/mesh/ElementRegionManager.hpp b/src/coreComponents/mesh/ElementRegionManager.hpp index 30d0b296183..9eea04fa8da 100644 --- a/src/coreComponents/mesh/ElementRegionManager.hpp +++ b/src/coreComponents/mesh/ElementRegionManager.hpp @@ -1511,7 +1511,9 @@ ElementRegionManager::constructMaterialViewAccessor( string const & viewName, else { GEOS_ERROR_IF( !allowMissingViews, - " : Material " << constitutiveRelation.getName() << " does not contain " << viewName, + GEOS_FMT( " : Material {} does not contain {}", + constitutiveRelation.getName(), + viewName ), subRegion.getDataContext(), constitutiveRelation.getDataContext() ); } } ); diff --git a/src/coreComponents/mesh/FaceElementSubRegion.cpp b/src/coreComponents/mesh/FaceElementSubRegion.cpp index 553ad85c777..996d6539688 100644 --- a/src/coreComponents/mesh/FaceElementSubRegion.cpp +++ b/src/coreComponents/mesh/FaceElementSubRegion.cpp @@ -1096,7 +1096,9 @@ void FaceElementSubRegion::fixSecondaryMappings( NodeManager const & nodeManager } } GEOS_ERROR_IF( !isolatedFractureElements.empty(), - "Fracture " << this->getName() << " has elements {" << stringutilities::join( isolatedFractureElements, ", " ) << "} with less than two neighbors." ); + GEOS_FMT( "Fracture {} has elements {{{}}} with less than two neighbors.", + this->getName(), + stringutilities::join( isolatedFractureElements, ", " ) ) ); fillMissing2dElemToEdges( m_toNodesRelation.toViewConst(), nodeManager.edgeList().toViewConst(), diff --git a/src/coreComponents/mesh/ObjectManagerBase.cpp b/src/coreComponents/mesh/ObjectManagerBase.cpp index f067070aa00..9f0f52484a5 100644 --- a/src/coreComponents/mesh/ObjectManagerBase.cpp +++ b/src/coreComponents/mesh/ObjectManagerBase.cpp @@ -435,7 +435,9 @@ localIndex ObjectManagerBase::unpackParentChildMaps( buffer_unit_type const * & string shouldBeParentIndexString; unpackedSize += bufferOps::Unpack( buffer, shouldBeParentIndexString ); GEOS_ERROR_IF( shouldBeParentIndexString != fields::parentIndex::key(), - "value read from buffer is:" << shouldBeParentIndexString << ". It should be " << fields::parentIndex::key() ); + GEOS_FMT( "value read from buffer is: {}. It should be {}", + shouldBeParentIndexString, + fields::parentIndex::key() ) ); unpackedSize += bufferOps::Unpack( buffer, parentIndex, packList, @@ -449,7 +451,9 @@ localIndex ObjectManagerBase::unpackParentChildMaps( buffer_unit_type const * & string shouldBeChildIndexString; unpackedSize += bufferOps::Unpack( buffer, shouldBeChildIndexString ); GEOS_ERROR_IF( shouldBeChildIndexString != fields::childIndex::key(), - "value read from buffer is:" << shouldBeChildIndexString << ". It should be " << fields::childIndex::key() ); + GEOS_FMT( "value read from buffer is: {}. It should be {}", + shouldBeChildIndexString, + fields::childIndex::key() ) ); unpackedSize += bufferOps::Unpack( buffer, childIndex, packList, diff --git a/src/coreComponents/mesh/Perforation.cpp b/src/coreComponents/mesh/Perforation.cpp index 2e003db3fd1..956a00e8d57 100644 --- a/src/coreComponents/mesh/Perforation.cpp +++ b/src/coreComponents/mesh/Perforation.cpp @@ -74,8 +74,8 @@ Perforation::Perforation( string const & name, Group * const parent ) void Perforation::postInputInitialization() { GEOS_ERROR_IF( m_distanceFromHead <= 0, - getWrapperDataContext( viewKeyStruct::distanceFromHeadString() ) << - ": distance from well head to perforation cannot be negative.", + GEOS_FMT( "{}: distance from well head to perforation cannot be negative.", + getWrapperDataContext( viewKeyStruct::distanceFromHeadString() ) ), getWrapperDataContext( viewKeyStruct::distanceFromHeadString() ) ); // Setup perforation status function diff --git a/src/coreComponents/mesh/SurfaceElementRegion.hpp b/src/coreComponents/mesh/SurfaceElementRegion.hpp index fc7da66eb59..80ea705a996 100644 --- a/src/coreComponents/mesh/SurfaceElementRegion.hpp +++ b/src/coreComponents/mesh/SurfaceElementRegion.hpp @@ -211,7 +211,7 @@ class SurfaceElementRegion : public ElementRegionBase subRegionNames.push_back( sr.getName() ); } ); GEOS_ERROR_IF( subRegionNames.size() != 1, - "Surface region should have one unique sub region (" << subRegionNames.size() << " found).", + GEOS_FMT( "Surface region should have one unique sub region ({} found).", subRegionNames.size() ), getDataContext() ); return subRegionNames.front(); } diff --git a/src/coreComponents/mesh/generators/InternalMeshGenerator.hpp b/src/coreComponents/mesh/generators/InternalMeshGenerator.hpp index 22a6ae83f2b..57c90fc510d 100644 --- a/src/coreComponents/mesh/generators/InternalMeshGenerator.hpp +++ b/src/coreComponents/mesh/generators/InternalMeshGenerator.hpp @@ -352,8 +352,9 @@ class InternalMeshGenerator : public MeshGeneratorBase viewKeyStruct::zBiasString() ); GEOS_UNUSED_VAR( wrapperContext ); GEOS_ERROR_IF( fabs( m_nElemBias[i][block] ) >= 1, - wrapperContext << - ", block index = " << block << " : Mesh bias must between -1 and 1!", + GEOS_FMT( "{}, block index = {} : Mesh bias must between -1 and 1!", + wrapperContext, + block ), wrapperContext ); real64 len = max - min; diff --git a/src/coreComponents/mesh/generators/InternalWellboreGenerator.cpp b/src/coreComponents/mesh/generators/InternalWellboreGenerator.cpp index e14a593c018..c56fd0c7f92 100644 --- a/src/coreComponents/mesh/generators/InternalWellboreGenerator.cpp +++ b/src/coreComponents/mesh/generators/InternalWellboreGenerator.cpp @@ -116,21 +116,21 @@ void InternalWellboreGenerator::postInputInitialization() { GEOS_ERROR_IF( m_nElems[1].size() > 1, - getWrapperDataContext( viewKeyStruct::yElemsString() ) << - ": Only one block in the theta direction is currently supported. ", + GEOS_FMT( "{}: Only one block in the theta direction is currently supported.", + getWrapperDataContext( viewKeyStruct::yElemsString() ) ), getWrapperDataContext( viewKeyStruct::yElemsString() ) ); GEOS_ERROR_IF( m_nElems[2].size() > 1, - getWrapperDataContext( viewKeyStruct::yElemsString() ) << - ": Only one block in the z direction is currently supported. ", + GEOS_FMT( "{}: Only one block in the z direction is currently supported.", + getWrapperDataContext( viewKeyStruct::yElemsString() ) ), getWrapperDataContext( viewKeyStruct::yElemsString() ) ); GEOS_ERROR_IF( m_trajectory.size( 0 ) != 2 || m_trajectory.size( 1 ) != 3, - getWrapperDataContext( viewKeyStruct::trajectoryString() ) << - ": Input for trajectory should be specified in the form of " - "{ { xbottom, ybottom, zbottom }, { xtop, ytop, ztop } }.", + GEOS_FMT( "{}: Input for trajectory should be specified in the form of " + "{{ {{ xbottom, ybottom, zbottom }}, {{ xtop, ytop, ztop }} }}.", + getWrapperDataContext( viewKeyStruct::trajectoryString() ) ), getWrapperDataContext( viewKeyStruct::trajectoryString() ) ); // Project trajectory to bottom and top of the wellbore diff --git a/src/coreComponents/mesh/generators/VTKUtilities.cpp b/src/coreComponents/mesh/generators/VTKUtilities.cpp index ce7ec6a54c7..efc3d112fe4 100644 --- a/src/coreComponents/mesh/generators/VTKUtilities.cpp +++ b/src/coreComponents/mesh/generators/VTKUtilities.cpp @@ -778,8 +778,11 @@ scatterByBlock( vtkDataSet & mesh ) // Validate cell range GEOS_ERROR_IF( rankStart< 0 || rankEnd > totalCells, - "Invalid cell range for rank " << r << ": [" << rankStart - << ", " << rankEnd << ") with total cells " << totalCells ); + GEOS_FMT( "Invalid cell range for rank {}: [{}, {}) with total cells {}", + r, + rankStart, + rankEnd, + totalCells ) ); if( rankEnd > rankStart ) { @@ -819,8 +822,9 @@ scatterByBlock( vtkDataSet & mesh ) vtkIdType finalTotalCells = MpiWrapper::allReduce( finalLocalCells, MpiWrapper::Reduction::Sum, MPI_COMM_GEOS ); GEOS_ERROR_IF( finalTotalCells != totalCells, - "Block redistribution lost cells: started with " << totalCells - << ", ended with " << finalTotalCells ); + GEOS_FMT( "Block redistribution lost cells: started with {}, ended with {}", + totalCells, + finalTotalCells ) ); return result; } @@ -2044,7 +2048,8 @@ stdVector< int > getVtkToGeosxNodeOrdering( VTKCellType const vtkType ) case VTK_HEXAGONAL_PRISM: return getVtkToGeosxNodeOrdering( ElementType::Prism6 ); default: { - GEOS_ERROR( GEOS_FMT( "Cannot get vtk to geos node ordering based on vtk cell type {}", vtkType ) ); + GEOS_ERROR( GEOS_FMT( "Cannot get vtk to geos node ordering based on vtk cell type {}", + static_cast< int >( vtkType ) ) ); break; } } diff --git a/src/coreComponents/mesh/mpiCommunications/CommunicationTools.cpp b/src/coreComponents/mesh/mpiCommunications/CommunicationTools.cpp index 51f77038e34..6fd4ed29383 100644 --- a/src/coreComponents/mesh/mpiCommunications/CommunicationTools.cpp +++ b/src/coreComponents/mesh/mpiCommunications/CommunicationTools.cpp @@ -279,8 +279,9 @@ void CommunicationTools::assignNewGlobalIndices( ObjectManagerBase & manager, for( localIndex const newLocalIndex : indexList ) { GEOS_ERROR_IF( localToGlobal[newLocalIndex] != -1, - "Local object " << newLocalIndex << " should be new but already has a global index " - << localToGlobal[newLocalIndex] ); + GEOS_FMT( "Local object {} should be new but already has a global index {}", + newLocalIndex, + localToGlobal[newLocalIndex] ) ); localToGlobal[newLocalIndex] = manager.maxGlobalIndex() + glocalIndexOffset + nIndicesAssigned + 1; manager.updateGlobalToLocalMap( newLocalIndex ); @@ -316,8 +317,9 @@ CommunicationTools::assignNewGlobalIndices( ElementRegionManager & elementManage for( localIndex const newLocalIndex : indexList ) { GEOS_ERROR_IF( localToGlobal[newLocalIndex] != -1, - "Local object " << newLocalIndex << " should be new but already has a global index " - << localToGlobal[newLocalIndex] ); + GEOS_FMT( "Local object {} should be new but already has a global index {}", + newLocalIndex, + localToGlobal[newLocalIndex] ) ); localToGlobal[newLocalIndex] = elementManager.maxGlobalIndex() + glocalIndexOffset + nIndicesAssigned + 1; subRegion.updateGlobalToLocalMap( newLocalIndex ); @@ -587,7 +589,9 @@ void CommunicationTools::findMatchedPartitionBoundaryNodes( NodeManager & nodeMa } } GEOS_ERROR_IF( !nodesNotFound.empty(), - "Global nodes {" << stringutilities::join( nodesNotFound, ", " ) << "} requested by rank " << allNeighbors[i].neighborRank() << " were not found on this rank." ); + GEOS_FMT( "Global nodes {{{}}} requested by rank {} were not found on this rank.", + stringutilities::join( nodesNotFound, ", " ), + allNeighbors[i].neighborRank() ) ); } } diff --git a/src/coreComponents/mesh/simpleGeometricObjects/Box.cpp b/src/coreComponents/mesh/simpleGeometricObjects/Box.cpp index 1abc04e5aed..8acdfdd8766 100644 --- a/src/coreComponents/mesh/simpleGeometricObjects/Box.cpp +++ b/src/coreComponents/mesh/simpleGeometricObjects/Box.cpp @@ -77,8 +77,8 @@ void Box::postInputInitialization() if( std::fabs( m_strikeAngle ) > 1e-20 ) { GEOS_ERROR_IF( (m_max[0]-m_min[0]) < (m_max[1]-m_min[1]), - "When a strike angle is specified, the box is supposed to" << - " represent a plane normal to the y direction. This box seems to be too thick.", + "When a strike angle is specified, the box is supposed to represent a plane normal to the y direction. " + "This box seems to be too thick.", getDataContext() ); m_cosStrike = std::cos( m_strikeAngle / 180 *M_PI ); diff --git a/src/coreComponents/physicsSolvers/PhysicsSolverBase.cpp b/src/coreComponents/physicsSolvers/PhysicsSolverBase.cpp index 116c4268c14..942fa1ed041 100644 --- a/src/coreComponents/physicsSolvers/PhysicsSolverBase.cpp +++ b/src/coreComponents/physicsSolvers/PhysicsSolverBase.cpp @@ -166,8 +166,8 @@ void PhysicsSolverBase::generateMeshTargetsFromTargetRegions( Group const & mesh if( targetTokens.size()==1 ) // no MeshBody or MeshLevel specified { GEOS_ERROR_IF( meshBodies.numSubGroups() != 1, - "No MeshBody information is specified in" << - " PhysicsSolverBase::meshTargets, but there are multiple MeshBody objects", + "No MeshBody information is specified in PhysicsSolverBase::meshTargets, " + "but there are multiple MeshBody objects", getDataContext() ); MeshBody const & meshBody = meshBodies.getGroup< MeshBody >( 0 ); string const meshBodyName = meshBody.getName(); @@ -182,7 +182,7 @@ void PhysicsSolverBase::generateMeshTargetsFromTargetRegions( Group const & mesh { string const meshBodyName = targetTokens[0]; GEOS_ERROR_IF( !meshBodies.hasGroup( meshBodyName ), - "MeshBody (" << meshBodyName << ") is specified in targetRegions, but does not exist.", + GEOS_FMT( "MeshBody ({}) is specified in targetRegions, but does not exist.", meshBodyName ), getWrapperDataContext( viewKeyStruct::targetRegionsString() ) ); string const meshLevelName = m_discretizationName; diff --git a/src/coreComponents/physicsSolvers/fluidFlow/proppantTransport/ProppantTransport.cpp b/src/coreComponents/physicsSolvers/fluidFlow/proppantTransport/ProppantTransport.cpp index 7ca9b25ff24..7f4305d7827 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/proppantTransport/ProppantTransport.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/proppantTransport/ProppantTransport.cpp @@ -701,7 +701,7 @@ void ProppantTransport::applyBoundaryConditions( real64 const time_n, string const & subRegionName = subRegion.getName(); GEOS_ERROR_IF( bcStatusMap[subRegionName].count( setName ) > 0, - "Conflicting proppant boundary conditions on set " << setName, + GEOS_FMT( "Conflicting proppant boundary conditions on set {}", setName ), getDataContext() ); bcStatusMap[subRegionName][setName].resize( m_numComponents ); bcStatusMap[subRegionName][setName].setValues< serialPolicy >( false ); @@ -722,10 +722,10 @@ void ProppantTransport::applyBoundaryConditions( real64 const time_n, localIndex const comp = fs.getComponent(); GEOS_ERROR_IF( bcStatusMap[subRegionName].count( setName ) == 0, - "Proppant boundary condition not prescribed on set '" << setName << "'", + GEOS_FMT( "Proppant boundary condition not prescribed on set '{}'", setName ), getDataContext() ); GEOS_ERROR_IF( bcStatusMap[subRegionName][setName][comp], - "Conflicting composition[" << comp << "] boundary conditions on set '" << setName << "'", + GEOS_FMT( "Conflicting composition[{}] boundary conditions on set '{}'", comp, setName ), getDataContext() ); bcStatusMap[subRegionName][setName][comp] = true; diff --git a/src/coreComponents/physicsSolvers/surfaceGeneration/ParallelTopologyChange.cpp b/src/coreComponents/physicsSolvers/surfaceGeneration/ParallelTopologyChange.cpp index 4051e5696e8..5ef359bb83e 100644 --- a/src/coreComponents/physicsSolvers/surfaceGeneration/ParallelTopologyChange.cpp +++ b/src/coreComponents/physicsSolvers/surfaceGeneration/ParallelTopologyChange.cpp @@ -286,7 +286,9 @@ void packNewAndModifiedObjectsToOwningRanks( NeighborCommunicator * const neighb // poll for pack completion here waitAllDeviceEvents( packEvents ); GEOS_ERROR_IF( bufferSize != packedSize, - "Allocated Buffer Size ("< Date: Fri, 27 Feb 2026 20:10:34 -0500 Subject: [PATCH 11/30] More GEOS_FMT changes --- src/coreComponents/common/MemoryInfos.cpp | 3 +- src/coreComponents/common/TypeDispatch.hpp | 14 ++-- .../common/format/EnumStrings.hpp | 10 ++- src/coreComponents/dataRepository/Group.cpp | 3 +- .../dataRepository/xmlWrapper.hpp | 5 +- .../multiscale/msrsb/MsrsbUtils.cpp | 2 +- .../mainInterface/ProblemManager.cpp | 4 +- .../mesh/ElementRegionManager.hpp | 4 +- .../mesh/FaceElementSubRegion.cpp | 3 +- src/coreComponents/mesh/ParticleManager.hpp | 4 +- .../generators/ExternalMeshGeneratorBase.cpp | 11 ++-- .../mesh/generators/VTKMeshGenerator.cpp | 2 +- .../mesh/generators/VTKUtilities.cpp | 13 ++-- .../mesh/generators/WellGeneratorBase.cpp | 64 +++++++++++-------- .../CompositionalMultiphaseHybridFVM.cpp | 6 +- .../proppantTransport/ProppantTransport.cpp | 9 ++- .../isotropic/AcousticWaveEquationSEM.cpp | 4 +- 17 files changed, 94 insertions(+), 67 deletions(-) diff --git a/src/coreComponents/common/MemoryInfos.cpp b/src/coreComponents/common/MemoryInfos.cpp index 7cd91ebeb0e..ac44f996d9d 100644 --- a/src/coreComponents/common/MemoryInfos.cpp +++ b/src/coreComponents/common/MemoryInfos.cpp @@ -171,7 +171,8 @@ void MemoryLogging::memoryStatsReport() const MpiWrapper::allReduce( allocatorNameFixedSize, allocatorNameMinChars, MpiWrapper::Reduction::Min, MPI_COMM_GEOS ); if( allocatorNameFixedSize != allocatorNameMinChars ) { - GEOS_WARNING( "Not all ranks have an allocator named " << allocatorNameFixedSize << ", cannot compute high water mark." ); + GEOS_WARNING( GEOS_FMT( "Not all ranks have an allocator named {}, cannot compute high water mark.", + allocatorNameFixedSize ) ); continue; } diff --git a/src/coreComponents/common/TypeDispatch.hpp b/src/coreComponents/common/TypeDispatch.hpp index 70a207b45fc..416aa3d08f5 100644 --- a/src/coreComponents/common/TypeDispatch.hpp +++ b/src/coreComponents/common/TypeDispatch.hpp @@ -378,13 +378,13 @@ bool dispatch( LIST const combinations, auto typePrinter = []( auto t ){ return LvArray::system::demangle( typeid( typename decltype(t)::type ).name() ); }; GEOS_MAYBE_UNUSED auto typeListPrinter = [typePrinter]( auto tlist ){ return internal::listToString( typename decltype( tlist )::type{}, "\n ", "", typePrinter ); }; - GEOS_ERROR( "Types were not dispatched to the lambda of type\n" - << LvArray::system::demangleType< LAMBDA >() << "\n" - << "The types of the input objects are:\n" - << "( "<<( ( "\n " + LvArray::system::demangle( internal::typeIdWrapper( objects ).name() ) ) + ... )<<" \n)\n" - << "and the dispatch options are:\n" - << internal::listToString( combinations, "\n(", "\n)", typeListPrinter ) - ); + GEOS_ERROR( GEOS_FMT( "Types were not dispatched to the lambda of type\n{}\n" + "The types of the input objects are:\n" + "( {} \n)\n" + "and the dispatch options are:\n{}", + LvArray::system::demangleType< LAMBDA >(), + ( ( "\n " + LvArray::system::demangle( internal::typeIdWrapper( objects ).name() ) ) + ... ), + internal::listToString( combinations, "\n(", "\n)", typeListPrinter ) ) ); } return success; } diff --git a/src/coreComponents/common/format/EnumStrings.hpp b/src/coreComponents/common/format/EnumStrings.hpp index f5b37de1df1..0bedb0f0081 100644 --- a/src/coreComponents/common/format/EnumStrings.hpp +++ b/src/coreComponents/common/format/EnumStrings.hpp @@ -153,7 +153,10 @@ struct EnumStrings std::size_t size = std::distance( std::begin( strings ), std::end( strings ) ); base_type const index = static_cast< base_type >( e ); GEOS_THROW_IF( index >= LvArray::integerConversion< base_type >( size ), - "Invalid value " << index << " of type " << getEnumTypeNameString( enum_type{} ) << ". Valid range is 0.." << size - 1, + GEOS_FMT( "Invalid value {} of type {}. Valid range is 0..{}", + index, + getEnumTypeNameString( enum_type{} ), + size - 1 ), InputError ); return strings[ index ]; } @@ -168,7 +171,10 @@ struct EnumStrings auto const & strings = get(); auto const it = std::find( std::begin( strings ), std::end( strings ), s ); GEOS_THROW_IF( it == std::end( strings ), - "Invalid value '" << s << "' of type " << getEnumTypeNameString( enum_type{} ) << ". Valid options are: " << concat( ", " ), + GEOS_FMT( "Invalid value '{}' of type {}. Valid options are: {}", + s, + getEnumTypeNameString( enum_type{} ), + concat( ", " ) ), InputError ); enum_type const e = static_cast< enum_type >( LvArray::integerConversion< base_type >( std::distance( std::begin( strings ), it ) ) ); return e; diff --git a/src/coreComponents/dataRepository/Group.cpp b/src/coreComponents/dataRepository/Group.cpp index 227d899c83d..77328f77b28 100644 --- a/src/coreComponents/dataRepository/Group.cpp +++ b/src/coreComponents/dataRepository/Group.cpp @@ -694,8 +694,7 @@ Group const & Group::getBaseGroupByPath( string const & path ) const } } GEOS_THROW_IF( !foundTarget, - "Could not find the specified path start.\n"<< - "Specified path is " << path, + GEOS_FMT( "Could not find the specified path start.\nSpecified path is {}", path ), geos::DomainError ); } diff --git a/src/coreComponents/dataRepository/xmlWrapper.hpp b/src/coreComponents/dataRepository/xmlWrapper.hpp index a23935dd07e..494eb2db119 100644 --- a/src/coreComponents/dataRepository/xmlWrapper.hpp +++ b/src/coreComponents/dataRepository/xmlWrapper.hpp @@ -355,8 +355,9 @@ stringToInputVariable( T & target, string const & value, Regex const & regex ) std::istringstream ss( (string( stringTrimed )) ); ss >> target; GEOS_THROW_IF( ss.fail() || !ss.eof(), - "Error detected while parsing string \"" << value << - "\" to type " << LvArray::system::demangleType< T >(), + GEOS_FMT( "Error detected while parsing string \"{}\" to type {}", + value, + LvArray::system::demangleType< T >() ), InputError ); } diff --git a/src/coreComponents/linearAlgebra/multiscale/msrsb/MsrsbUtils.cpp b/src/coreComponents/linearAlgebra/multiscale/msrsb/MsrsbUtils.cpp index 516644d41cd..1b225e3f09b 100644 --- a/src/coreComponents/linearAlgebra/multiscale/msrsb/MsrsbUtils.cpp +++ b/src/coreComponents/linearAlgebra/multiscale/msrsb/MsrsbUtils.cpp @@ -234,7 +234,7 @@ makeSeededPartition( ArrayOfSetsView< localIndex const > const & connectivity, // Attempt to fix unassigned front nodes, if any if( supports.size() > 0 ) { - GEOS_WARNING_IF( !front.empty(), "[MsRSB]: nodes not assigned to initial partition: " << front ); + GEOS_WARNING_IF( !front.empty(), GEOS_FMT( "[MsRSB]: nodes not assigned to initial partition: {}", front ) ); forAll< parallelHostPolicy >( front.size(), [=, front = front.toViewConst(), part = part.toView()]( localIndex const i ) { diff --git a/src/coreComponents/mainInterface/ProblemManager.cpp b/src/coreComponents/mainInterface/ProblemManager.cpp index 97deddfd517..3c2718b1955 100644 --- a/src/coreComponents/mainInterface/ProblemManager.cpp +++ b/src/coreComponents/mainInterface/ProblemManager.cpp @@ -260,7 +260,7 @@ bool ProblemManager::parseRestart( string & restartFileName, CommandLineOptions stdVector< string > dir_contents = readDirectory( dirname ); GEOS_THROW_IF( dir_contents.empty(), - "Directory gotten from " << restartFileName << " " << dirname << " is empty.", + GEOS_FMT( "Directory gotten from {} {} is empty.", restartFileName, dirname ), InputError ); std::regex basename_regex( basename ); @@ -278,7 +278,7 @@ bool ProblemManager::parseRestart( string & restartFileName, CommandLineOptions } GEOS_THROW_IF( !match_found, - "No matches found for pattern " << basename << " in directory " << dirname << ".", + GEOS_FMT( "No matches found for pattern {} in directory {}.", basename, dirname ), InputError ); restartFileName = getAbsolutePath( dirname + "/" + max_match ); diff --git a/src/coreComponents/mesh/ElementRegionManager.hpp b/src/coreComponents/mesh/ElementRegionManager.hpp index 9eea04fa8da..726d4737b43 100644 --- a/src/coreComponents/mesh/ElementRegionManager.hpp +++ b/src/coreComponents/mesh/ElementRegionManager.hpp @@ -1494,7 +1494,7 @@ ElementRegionManager::constructMaterialViewAccessor( string const & viewName, localIndex const er = regionMap.getIndex( regionNames[k] ); if( er >=0 ) { - GEOS_ERROR_IF_EQ_MSG( er, subGroupMap::KeyIndex::invalid_index, "Region not found: " << regionNames[k] ); + GEOS_ERROR_IF_EQ_MSG( er, subGroupMap::KeyIndex::invalid_index, GEOS_FMT( "Region not found: {}", regionNames[k] ) ); ElementRegionBase const & region = getRegion( er ); region.forElementSubRegionsIndex( [&]( localIndex const esr, @@ -1546,7 +1546,7 @@ ElementRegionManager::constructMaterialViewAccessor( string const & viewName, localIndex const er = regionMap.getIndex( regionNames[k] ); if( er >=0 ) { - GEOS_ERROR_IF_EQ_MSG( er, subGroupMap::KeyIndex::invalid_index, "Region not found: " << regionNames[k] ); + GEOS_ERROR_IF_EQ_MSG( er, subGroupMap::KeyIndex::invalid_index, GEOS_FMT( "Region not found: {}", regionNames[k] ) ); ElementRegionBase & region = getRegion( er ); region.forElementSubRegionsIndex( [&]( localIndex const esr, ElementSubRegionBase & subRegion ) diff --git a/src/coreComponents/mesh/FaceElementSubRegion.cpp b/src/coreComponents/mesh/FaceElementSubRegion.cpp index 996d6539688..7ceff7e5f78 100644 --- a/src/coreComponents/mesh/FaceElementSubRegion.cpp +++ b/src/coreComponents/mesh/FaceElementSubRegion.cpp @@ -138,7 +138,8 @@ void FaceElementSubRegion::copyFromCellBlock( FaceBlockABC const & faceBlock ) return ElementType::Prism11; case 0: // In the case the fracture is empty (on this rank), then we default to hexahedron. Otherwise, there's something wrong - GEOS_ERROR_IF_NE_MSG( num2dElements, 0, "Could not determine the element type of the fracture \"" << getName() << "\"." ); + GEOS_ERROR_IF_NE_MSG( num2dElements, 0, + GEOS_FMT( "Could not determine the element type of the fracture \"{}\".", getName() ) ); return ElementType::Hexahedron; default: GEOS_ERROR( "Unsupported type of elements during the face element sub region creation.", getDataContext() ); diff --git a/src/coreComponents/mesh/ParticleManager.hpp b/src/coreComponents/mesh/ParticleManager.hpp index f30fe370213..90e56a25df6 100644 --- a/src/coreComponents/mesh/ParticleManager.hpp +++ b/src/coreComponents/mesh/ParticleManager.hpp @@ -1302,7 +1302,7 @@ ParticleManager::constructMaterialViewAccessor( string const & viewName, localIndex const er = regionMap.getIndex( regionNames[k] ); if( er >=0 ) { - GEOS_ERROR_IF_EQ_MSG( er, subGroupMap::KeyIndex::invalid_index, "Region not found: " << regionNames[k] ); + GEOS_ERROR_IF_EQ_MSG( er, subGroupMap::KeyIndex::invalid_index, GEOS_FMT( "Region not found: {}", regionNames[k] ) ); ParticleRegionBase const & region = getRegion( er ); region.forParticleSubRegionsIndex( [&]( localIndex const esr, @@ -1351,7 +1351,7 @@ ParticleManager::constructMaterialViewAccessor( string const & viewName, localIndex const er = regionMap.getIndex( regionNames[k] ); if( er >=0 ) { - GEOS_ERROR_IF_EQ_MSG( er, subGroupMap::KeyIndex::invalid_index, "Region not found: " << regionNames[k] ); + GEOS_ERROR_IF_EQ_MSG( er, subGroupMap::KeyIndex::invalid_index, GEOS_FMT( "Region not found: {}", regionNames[k] ) ); ParticleRegionBase & region = getRegion( er ); region.forParticleSubRegionsIndex( [&]( localIndex const esr, ParticleSubRegionBase & subRegion ) diff --git a/src/coreComponents/mesh/generators/ExternalMeshGeneratorBase.cpp b/src/coreComponents/mesh/generators/ExternalMeshGeneratorBase.cpp index 039a478d297..be804c6a3ca 100644 --- a/src/coreComponents/mesh/generators/ExternalMeshGeneratorBase.cpp +++ b/src/coreComponents/mesh/generators/ExternalMeshGeneratorBase.cpp @@ -66,9 +66,9 @@ void ExternalMeshGeneratorBase::postInputInitialization() string const & fromKey, string const & toKey ) { GEOS_THROW_IF_NE_MSG( from.size(), to.size(), - getWrapperDataContext( fromKey ) << - " and " << getWrapperDataContext( toKey ) << - " must contain the same number of values.", + GEOS_FMT( "{} and {} must contain the same number of values.", + getWrapperDataContext( fromKey ), + getWrapperDataContext( toKey ) ), InputError ); }; checkSizes( m_volumicFieldsToImport, m_volumicFieldsInGEOS, viewKeyStruct::volumicFieldsToImportString(), viewKeyStruct::volumicFieldsInGEOSString() ); @@ -80,8 +80,9 @@ void ExternalMeshGeneratorBase::postInputInitialization() bool const hasDuplicates = tmp.size() != LvArray::integerConversion< std::size_t >( v.size() ); GEOS_THROW_IF( hasDuplicates, - getWrapperDataContext( key ) << ": '" << stringutilities::join( v, ", " ) << - "' already present in list of fields to import.", + GEOS_FMT( "{}: '{}' already present in list of fields to import.", + getWrapperDataContext( key ), + stringutilities::join( v, ", " ) ), InputError, getWrapperDataContext( key ) ); }; checkDuplicates( m_volumicFieldsInGEOS, viewKeyStruct::volumicFieldsInGEOSString() ); diff --git a/src/coreComponents/mesh/generators/VTKMeshGenerator.cpp b/src/coreComponents/mesh/generators/VTKMeshGenerator.cpp index e8b9e002af2..b90bd1651e7 100644 --- a/src/coreComponents/mesh/generators/VTKMeshGenerator.cpp +++ b/src/coreComponents/mesh/generators/VTKMeshGenerator.cpp @@ -119,7 +119,7 @@ void VTKMeshGenerator::postInputInitialization() m_dataSource = externalDataManager.getGroupPointer< VTKHierarchicalDataSource >( m_dataSourceName ); GEOS_THROW_IF( m_dataSource == nullptr, - "VTK Data Object Source not found: " << m_dataSourceName, + GEOS_FMT( "VTK Data Object Source not found: {}", m_dataSourceName ), InputError, getDataContext() ); m_dataSource->open(); diff --git a/src/coreComponents/mesh/generators/VTKUtilities.cpp b/src/coreComponents/mesh/generators/VTKUtilities.cpp index efc3d112fe4..6ceda703a86 100644 --- a/src/coreComponents/mesh/generators/VTKUtilities.cpp +++ b/src/coreComponents/mesh/generators/VTKUtilities.cpp @@ -758,8 +758,9 @@ scatterByBlock( vtkDataSet & mesh ) // Verify rank 0 has the complete mesh for redistribution if( rank == 0 && localCells != totalCells ) { - GEOS_ERROR( "Rank 0 must have the complete mesh. " - << "Rank 0 has " << localCells << " cells but total is " << totalCells ); + GEOS_ERROR( GEOS_FMT( "Rank 0 must have the complete mesh. Rank 0 has {} cells but total is {}", + localCells, + totalCells ) ); } // Scatter cells by contiguous blocks @@ -1011,8 +1012,8 @@ redistributeByKdTree( vtkDataSet & mesh ) { if( MpiWrapper::commRank() == 0 ) { - GEOS_WARNING( "VTK KdTree redistribution lost " << (globalInputCells - globalOutputCells) - << " elements! Falling back to block redistribution." ); + GEOS_WARNING( GEOS_FMT( "VTK KdTree redistribution lost {} elements! Falling back to block redistribution.", + globalInputCells - globalOutputCells ) ); } return scatterByBlock( mesh ); } @@ -2159,7 +2160,7 @@ void importMaterialField( stdVector< vtkIdType > const & cellIds, localIndex const numComponentsSrc = LvArray::integerConversion< localIndex >( vtkArray->GetNumberOfComponents() ); localIndex const numComponentsDst = wrapperT.numArrayComp() / view.size( 1 ); GEOS_ERROR_IF_NE_MSG( numComponentsDst, numComponentsSrc, - "Mismatch in number of components for field " << vtkArray->GetName() ); + GEOS_FMT( "Mismatch in number of components for field {}", vtkArray->GetName() ) ); vtkArrayDispatch::DispatchByValueType< vtkArrayDispatch::Reals >::Execute( vtkArray, [&]( auto const * srcArray ) { @@ -2195,7 +2196,7 @@ void importRegularField( stdVector< vtkIdType > const & cellIds, localIndex const numComponentsSrc = LvArray::integerConversion< localIndex >( vtkArray->GetNumberOfComponents() ); localIndex const numComponentsDst = wrapperT.numArrayComp(); GEOS_ERROR_IF_NE_MSG( numComponentsDst, numComponentsSrc, - "Mismatch in number of components for field " << vtkArray->GetName() ); + GEOS_FMT( "Mismatch in number of components for field {}", vtkArray->GetName() ) ); vtkArrayDispatch::DispatchByValueType< vtkArrayDispatch::Reals >::Execute( vtkArray, [&]( auto const * srcArray ) { diff --git a/src/coreComponents/mesh/generators/WellGeneratorBase.cpp b/src/coreComponents/mesh/generators/WellGeneratorBase.cpp index 9979e61ab77..ee3118133a8 100644 --- a/src/coreComponents/mesh/generators/WellGeneratorBase.cpp +++ b/src/coreComponents/mesh/generators/WellGeneratorBase.cpp @@ -21,6 +21,7 @@ #include "LvArray/src/genericTensorOps.hpp" #include "common/format/table/TableFormatter.hpp" #include "common/format/Format.hpp" +#include "common/format/StringUtilities.hpp" namespace geos { using namespace dataRepository; @@ -147,7 +148,7 @@ void WellGeneratorBase::generateWellGeometry( ) void WellGeneratorBase::postInputInitialization() { GEOS_THROW_IF( m_radius <= 0, - "Invalid " << viewKeyStruct::radiusString(), + GEOS_FMT( "Invalid {}", viewKeyStruct::radiusString() ), InputError, getDataContext() ); GEOS_THROW_IF( m_wellRegionName.empty(), @@ -178,15 +179,19 @@ void WellGeneratorBase::constructPolylineNodeToSegmentMap() // various checks and warnings on the segment and element length GEOS_THROW_IF( segmentLength < m_minSegmentLength, - "Error in the topology of well '" << getName() << - "': we detected a polyline segment measuring less than " << m_minSegmentLength << "m. \n" << - "You can change the minimum segment length using the field " << viewKeyStruct::minSegmentLengthString(), + GEOS_FMT( "Error in the topology of well '{}': we detected a polyline segment measuring less than {}m.\n" + "You can change the minimum segment length using the field {}", + getName(), + m_minSegmentLength, + viewKeyStruct::minSegmentLengthString() ), InputError, getDataContext() ); GEOS_THROW_IF( m_polyNodeCoords[ipolyNode_a][2] < m_polyNodeCoords[ipolyNode_b][2], - "Error in the topology of well '" << getName() << - "': in the polyline, each segment must be going down. \n" << - "This is not the case between polyline nodes " << m_polyNodeCoords[ipolyNode_a] << " and " << m_polyNodeCoords[ipolyNode_b], + GEOS_FMT( "Error in the topology of well '{}': in the polyline, each segment must be going down.\n" + "This is not the case between polyline nodes {} and {}", + getName(), + stringutilities::concat( "", m_polyNodeCoords[ipolyNode_a] ), + stringutilities::concat( "", m_polyNodeCoords[ipolyNode_b] ) ), InputError, getDataContext() ); if( segmentLength / m_numElemsPerSegment < m_minElemLength ) @@ -221,10 +226,11 @@ void WellGeneratorBase::findPolylineHeadNodeIndex() // therefore here we throw an error if the well head segment is horizontal GEOS_THROW_IF( !(m_polyNodeCoords[ipolyNode_a][2] < m_polyNodeCoords[ipolyNode_b][2]) && !(m_polyNodeCoords[ipolyNode_a][2] > m_polyNodeCoords[ipolyNode_b][2]), - "The head polyline segment cannot be horizontal in well '" << getName() - << "' since we use depth to determine which of its nodes is to head node of the well.\n" - << "If you are trying to set up a horizontal well, please simply add a non-horizontal segment at the top of the well," - << " and this error will go away", + GEOS_FMT( "The head polyline segment cannot be horizontal in well '{}' since we use depth to determine " + "which of its nodes is to head node of the well.\n" + "If you are trying to set up a horizontal well, please simply add a non-horizontal segment " + "at the top of the well, and this error will go away", + getName() ), InputError, getDataContext() ); // detect the top node, assuming z oriented upwards @@ -243,8 +249,8 @@ void WellGeneratorBase::findPolylineHeadNodeIndex() real64 const currentZcoord = m_polyNodeCoords[inode][2]; GEOS_THROW_IF( !(currentZcoord < headZcoord), - "Error in the topology of well '" << getName() - << "' since we found a well node that is above the head node", + GEOS_FMT( "Error in the topology of well '{}' since we found a well node that is above the head node", + getName() ), InputError, getDataContext() ); } } @@ -361,10 +367,13 @@ void WellGeneratorBase::connectPerforationsToWellElements() real64 const wellLength = m_nodeDistFromHead[m_elemToNodesMap[iwelemBottom][LineBlockABC::NodeLocation::BOTTOM]]; GEOS_THROW_IF( m_perfDistFromHead[iperf] > wellLength, - "Distance from perforation " << perf.getName() << " to head is larger than well polyline length for well " << getName() << "\n \n" - << "Here is how the \"distanceFromHead\" keyword is used in the definition of the perforation location: \n" - << "We start from the well head (top of the well) and we measure the linear distance along the well polyline as we go down the well.\n" - << "When we reach the distanceFromHead specified by the user, we place a perforation on the well at this location of the polyline, and connect it to the reservoir element that contains this perforation", + GEOS_FMT( "Distance from perforation {} to head is larger than well polyline length for well {}\n \n" + "Here is how the \"distanceFromHead\" keyword is used in the definition of the perforation location:\n" + "We start from the well head (top of the well) and we measure the linear distance along the well polyline as we go down the well.\n" + "When we reach the distanceFromHead specified by the user, we place a perforation on the well at this location of the " + "polyline, and connect it to the reservoir element that contains this perforation", + perf.getName(), + getName() ), InputError, getDataContext() ); // start binary search @@ -387,7 +396,7 @@ void WellGeneratorBase::connectPerforationsToWellElements() } GEOS_THROW_IF( currentNumSteps > maxNumSteps, - "Perforation " << perf.getName() << " cannot be mapped to a well element", + GEOS_FMT( "Perforation {} cannot be mapped to a well element", perf.getName() ), InputError, getDataContext() ); currentNumSteps++; @@ -464,14 +473,17 @@ void WellGeneratorBase::checkPerforationLocationsValidity() for( localIndex iwelemPrev = 0; iwelemPrev < m_prevElemId[iwelem].size(); ++iwelemPrev ) { GEOS_THROW_IF( m_prevElemId[iwelem][iwelemPrev] == -1 && elemToPerfMap[iwelem].size() == 0, - "The bottom element of well " << getName() << " does not have a perforation. " - << "This is needed to have a well-posed problem. \n\n" - << "Here are the two possible ways to solve this problem: \n\n" - << "1) Adding a perforation located close to the bottom of the well. " - << "To do that, compute the total length of the well polyline (by summing the length of the well segments defined by the keywords \"polylineNodeCoords\" and \"polylineSegmentConn\") " - << "and place a perforation whose \"distanceFromHead\" is slightly smaller than this total length. \n \n" - << "2) Shorten the well polyline. " - << "To do that, reduce the length of the well polyline by shortening the segments defined by the keywords \"polylineNodeCoords\" and \"polylineSegmentConn\", or by removing a segment.", + GEOS_FMT( "The bottom element of well {} does not have a perforation. " + "This is needed to have a well-posed problem.\n\n" + "Here are the two possible ways to solve this problem:\n\n" + "1) Adding a perforation located close to the bottom of the well. " + "To do that, compute the total length of the well polyline (by summing the length of the well segments defined by " + "the keywords \"polylineNodeCoords\" and \"polylineSegmentConn\") and place a perforation whose " + "\"distanceFromHead\" is slightly smaller than this total length.\n\n" + "2) Shorten the well polyline. " + "To do that, reduce the length of the well polyline by shortening the segments defined by the keywords " + "\"polylineNodeCoords\" and \"polylineSegmentConn\", or by removing a segment.", + getName() ), InputError, getDataContext() ); } } diff --git a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseHybridFVM.cpp b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseHybridFVM.cpp index a982e85c535..e6412fd2c81 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseHybridFVM.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseHybridFVM.cpp @@ -227,8 +227,10 @@ void CompositionalMultiphaseHybridFVM::initializePostInitialConditionsPreSubGrou fsManager.forSubGroups< AquiferBoundaryCondition >( [&] ( AquiferBoundaryCondition const & bc ) { - GEOS_WARNING( "An aquifer boundary condition named " << bc.getName() << " was requested in the XML file. \n" << - "This type of boundary condition is not yet supported by CompositionalMultiphaseHybridFVM and will be ignored", + GEOS_WARNING( GEOS_FMT( "An aquifer boundary condition named {} was requested in the XML file.\n" + "This type of boundary condition is not yet supported by CompositionalMultiphaseHybridFVM " + "and will be ignored", + bc.getName() ), getDataContext() ); } ); } ); diff --git a/src/coreComponents/physicsSolvers/fluidFlow/proppantTransport/ProppantTransport.cpp b/src/coreComponents/physicsSolvers/fluidFlow/proppantTransport/ProppantTransport.cpp index 7f4305d7827..c0718a19e35 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/proppantTransport/ProppantTransport.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/proppantTransport/ProppantTransport.cpp @@ -745,9 +745,12 @@ void ProppantTransport::applyBoundaryConditions( real64 const time_n, { bcConsistent &= bcStatusEntryInner.second[ic]; GEOS_WARNING_IF( !bcConsistent, - "Composition boundary condition not applied to component " << - ic << " on region '" << bcStatusEntryOuter.first << "'," << - " set '" << bcStatusEntryInner.first << "'", getDataContext() ); + GEOS_FMT( "Composition boundary condition not applied to component {} on region '{}', " + "set '{}'", + ic, + bcStatusEntryOuter.first, + bcStatusEntryInner.first ), + getDataContext() ); } } } diff --git a/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/secondOrderEqn/isotropic/AcousticWaveEquationSEM.cpp b/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/secondOrderEqn/isotropic/AcousticWaveEquationSEM.cpp index a269ebe17ca..f6613f6c4f4 100644 --- a/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/secondOrderEqn/isotropic/AcousticWaveEquationSEM.cpp +++ b/src/coreComponents/physicsSolvers/wavePropagation/sem/acoustic/secondOrderEqn/isotropic/AcousticWaveEquationSEM.cpp @@ -1071,12 +1071,12 @@ real64 AcousticWaveEquationSEM::explicitStepForward( real64 const & time_n, std::ofstream wf( fileName, std::ios::out | std::ios::binary ); GEOS_THROW_IF( !wf, - "Could not open file "<< fileName << " for writing", + GEOS_FMT( "Could not open file {} for writing", fileName ), InputError, getDataContext() ); wf.write( (char *)&p_n[0], p_n.size()*sizeof( real32 ) ); wf.close( ); GEOS_THROW_IF( !wf.good(), - "An error occured while writing "<< fileName, + GEOS_FMT( "An error occured while writing {}", fileName ), InputError, getDataContext() ); } From 1014cc72d0285ed1f712dd7898e03edfc41a0bde Mon Sep 17 00:00:00 2001 From: "Victor A. P. Magri" Date: Fri, 27 Feb 2026 20:12:42 -0500 Subject: [PATCH 12/30] More GEOS_FMT changes --- src/coreComponents/functions/FunctionBase.hpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/coreComponents/functions/FunctionBase.hpp b/src/coreComponents/functions/FunctionBase.hpp index 4c36350e897..4e921c6f83f 100644 --- a/src/coreComponents/functions/FunctionBase.hpp +++ b/src/coreComponents/functions/FunctionBase.hpp @@ -215,13 +215,14 @@ void FunctionBase::evaluateT( dataRepository::Group const & group, // Make sure the inputs do not exceed the maximum length GEOS_ERROR_IF_GT_MSG( totalVarSize, MAX_VARS, - getDataContext() << ": Function input size exceeded" ); + GEOS_FMT( "{}: Function input size exceeded", getDataContext() ) ); GEOS_ERROR_IF_GT_MSG( totalVarSize, m_inputVarScale.size(), - getDataContext() << ": Insufficient number of scale values provided" ); + GEOS_FMT( "{}: Insufficient number of scale values provided", getDataContext() ) ); // Make sure the result / set size match GEOS_ERROR_IF_NE_MSG( result.size(), set.size(), - getDataContext() << ": To apply a function to a set, the size of the result and set must match" ); + GEOS_FMT( "{}: To apply a function to a set, the size of the result and set must match", + getDataContext() ) ); arrayView1d< real64 const > const scale = m_inputVarScale.toViewConst(); forAll< POLICY >( set.size(), [=]( localIndex const i ) From 4d5395d78ff2bf1f8e9b306e112244349bb84d09 Mon Sep 17 00:00:00 2001 From: "Victor A. P. Magri" Date: Fri, 27 Feb 2026 20:20:57 -0500 Subject: [PATCH 13/30] More GEOS_FMT changes --- .../fluid/singlefluid/ProppantSlurryFluid.cpp | 10 +++++----- src/coreComponents/dataRepository/BufferOps_inline.hpp | 8 ++++---- .../linearAlgebra/interfaces/hypre/HypreKernels.hpp | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/coreComponents/constitutive/fluid/singlefluid/ProppantSlurryFluid.cpp b/src/coreComponents/constitutive/fluid/singlefluid/ProppantSlurryFluid.cpp index 6f181890e5b..b637588ef86 100644 --- a/src/coreComponents/constitutive/fluid/singlefluid/ProppantSlurryFluid.cpp +++ b/src/coreComponents/constitutive/fluid/singlefluid/ProppantSlurryFluid.cpp @@ -75,23 +75,23 @@ void ProppantSlurryFluid::postInputInitialization() SlurryFluidBase::postInputInitialization(); GEOS_ERROR_IF_LT_MSG( m_compressibility, 0.0, - "invalid value of " << viewKeyStruct::compressibilityString(), + GEOS_FMT( "invalid value of {}", viewKeyStruct::compressibilityString() ), getDataContext() ); GEOS_ERROR_IF_LE_MSG( m_referenceDensity, 0.0, - "invalid value of " << viewKeyStruct::referenceDensityString(), + GEOS_FMT( "invalid value of {}", viewKeyStruct::referenceDensityString() ), getDataContext() ); GEOS_ERROR_IF_LT_MSG( m_referenceViscosity, 0.0, - "invalid value of " << viewKeyStruct::referenceViscosityString(), + GEOS_FMT( "invalid value of {}", viewKeyStruct::referenceViscosityString() ), getDataContext() ); GEOS_ERROR_IF_LE_MSG( m_maxProppantConcentration, 0.0, - "invalid value of " << viewKeyStruct::maxProppantConcentrationString(), + GEOS_FMT( "invalid value of {}", viewKeyStruct::maxProppantConcentrationString() ), getDataContext() ); GEOS_ERROR_IF_GT_MSG( m_maxProppantConcentration, 1.0, - "invalid value of " << viewKeyStruct::maxProppantConcentrationString(), + GEOS_FMT( "invalid value of {}", viewKeyStruct::maxProppantConcentrationString() ), getDataContext() ); } diff --git a/src/coreComponents/dataRepository/BufferOps_inline.hpp b/src/coreComponents/dataRepository/BufferOps_inline.hpp index c7fc03f156c..14b80ae06ca 100644 --- a/src/coreComponents/dataRepository/BufferOps_inline.hpp +++ b/src/coreComponents/dataRepository/BufferOps_inline.hpp @@ -67,8 +67,8 @@ Unpack( buffer_unit_type const * & buffer, T * const GEOS_RESTRICT var, INDEX_TY INDEX_TYPE length; localIndex sizeOfUnpackedChars = Unpack( buffer, length ); - GEOS_ASSERT_MSG( length == expectedLength, "expectedLength != length: " << - expectedLength << " != " << length ); + GEOS_ASSERT_MSG( length == expectedLength, + GEOS_FMT( "expectedLength != length: {} != {}", expectedLength, length ) ); GEOS_DEBUG_VAR( expectedLength ); memcpy( var, buffer, length * sizeof(T) ); @@ -527,8 +527,8 @@ UnpackPointer( buffer_unit_type const * & buffer, { INDEX_TYPE length; localIndex sizeOfUnpackedChars = Unpack( buffer, length ); - GEOS_ASSERT_MSG( length == expectedLength, "expectedLength != length: " << - expectedLength << " != " << length ); + GEOS_ASSERT_MSG( length == expectedLength, + GEOS_FMT( "expectedLength != length: {} != {}", expectedLength, length ) ); GEOS_DEBUG_VAR( expectedLength ); memcpy( var, buffer, length * sizeof(T) ); sizeOfUnpackedChars += length * sizeof(T); diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreKernels.hpp b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreKernels.hpp index e8a7154f410..fef104628fe 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreKernels.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreKernels.hpp @@ -103,7 +103,7 @@ void rescaleMatrixRows( hypre_ParCSRMatrix * const mat, } } - GEOS_ASSERT_MSG( !isZero( scale ), "Zero row sum in row " << rowIndices[i] ); + GEOS_ASSERT_MSG( !isZero( scale ), GEOS_FMT( "Zero row sum in row {}", rowIndices[i] ) ); scale = 1.0 / scale; for( HYPRE_Int k = diag.rowptr[localRow]; k < diag.rowptr[localRow + 1]; ++k ) { From 2360052fcfd2529d8be6f7c07725330c674859b2 Mon Sep 17 00:00:00 2001 From: "Victor A. P. Magri" Date: Sat, 28 Feb 2026 10:57:49 -0500 Subject: [PATCH 14/30] More GEOS_FMT changes --- .../constitutive/ConstitutivePassThru.hpp | 13 +-- .../constitutive/contact/BartonBandis.cpp | 3 +- .../constitutive/contact/CoulombFriction.cpp | 3 +- .../contact/HydraulicApertureTable.cpp | 4 +- .../CO2Brine/functions/CO2EOSSolver.cpp | 11 ++- .../unitTests/testErrorHandling.cpp | 28 +++--- .../interfaces/blaslapack/BlasLapackLA.cpp | 10 +- .../AquiferBoundaryCondition.cpp | 12 ++- .../EquilibriumInitialCondition.cpp | 47 ++++++---- .../PerfectlyMatchedLayer.cpp | 10 +- .../fileIO/vtk/VTKPolyDataWriterInterface.cpp | 6 +- .../dataRepositoryTests/testGroupPath.cpp | 8 +- .../testFieldSpecification.cpp | 56 ++++++----- .../interfaces/direct/SuiteSparse.cpp | 5 +- .../interfaces/direct/SuperLUDist.cpp | 5 +- .../interfaces/trilinos/EpetraMatrix.cpp | 3 +- .../multiscale/mesh/DofManager.cpp | 3 +- src/coreComponents/mesh/ElementRegionBase.cpp | 5 +- .../mesh/SurfaceElementRegion.cpp | 4 +- src/coreComponents/mesh/WellElementRegion.cpp | 17 ++-- .../mesh/WellElementSubRegion.cpp | 7 +- .../mesh/generators/InternalWellGenerator.cpp | 13 +-- .../mesh/generators/PrismUtilities.hpp | 25 ++++- .../mesh/mpiCommunications/MPI_iCommData.cpp | 28 ++++-- .../NonlinearSolverParameters.cpp | 5 +- .../fluidFlow/CompositionalMultiphaseBase.cpp | 60 +++++++----- .../fluidFlow/SinglePhaseBase.cpp | 30 +++--- .../fluidFlow/SinglePhaseHybridFVM.cpp | 2 +- .../wells/CompositionalMultiphaseWell.cpp | 10 +- .../fluidFlow/wells/WellControls.cpp | 93 +++++++++++-------- .../fluidFlow/wells/WellSolverBase.cpp | 5 +- .../multiphysics/PoromechanicsSolver.hpp | 4 +- .../MultiphasePoromechanics_impl.hpp | 4 +- 33 files changed, 325 insertions(+), 214 deletions(-) diff --git a/src/coreComponents/constitutive/ConstitutivePassThru.hpp b/src/coreComponents/constitutive/ConstitutivePassThru.hpp index 75075f8aae7..d78d7bb1bf8 100644 --- a/src/coreComponents/constitutive/ConstitutivePassThru.hpp +++ b/src/coreComponents/constitutive/ConstitutivePassThru.hpp @@ -261,8 +261,8 @@ struct ConstitutivePassThru< NullModel > } else { - GEOS_ERROR( "ConstitutivePassThru< NullModel >::execute failed on constitutive relation " - << LvArray::system::demangleType( constitutiveRelation ), + GEOS_ERROR( GEOS_FMT( "ConstitutivePassThru< NullModel >::execute failed on constitutive relation {}", + LvArray::system::demangleType( constitutiveRelation ) ), constitutiveRelation.getDataContext() ); } } @@ -284,8 +284,9 @@ struct ConstitutivePassThru< PorousSolid< ElasticIsotropic, ConstantPermeability } else { - GEOS_ERROR( "ConstitutivePassThru< PorousSolid< ElasticIsotropic, ConstantPermeability > >::execute failed on constitutive relation " - << LvArray::system::demangleType( constitutiveRelation ), + GEOS_ERROR( GEOS_FMT( "ConstitutivePassThru< PorousSolid< ElasticIsotropic, ConstantPermeability > >::execute " + "failed on constitutive relation {}", + LvArray::system::demangleType( constitutiveRelation ) ), constitutiveRelation.getDataContext() ); } } @@ -440,8 +441,8 @@ struct ConstitutivePassThru< ProppantSolid< ProppantPorosity, ProppantPermeabili } else { - GEOS_ERROR( "ConstitutivePassThru< ProppantSolid >::execute failed on constitutive relation " - << LvArray::system::demangleType( constitutiveRelation ), + GEOS_ERROR( GEOS_FMT( "ConstitutivePassThru< ProppantSolid >::execute failed on constitutive relation {}", + LvArray::system::demangleType( constitutiveRelation ) ), constitutiveRelation.getDataContext() ); } } diff --git a/src/coreComponents/constitutive/contact/BartonBandis.cpp b/src/coreComponents/constitutive/contact/BartonBandis.cpp index 165723532e0..e7861fe6c4a 100644 --- a/src/coreComponents/constitutive/contact/BartonBandis.cpp +++ b/src/coreComponents/constitutive/contact/BartonBandis.cpp @@ -41,7 +41,8 @@ BartonBandis::BartonBandis( string const & name, Group * const parent ): void BartonBandis::postInputInitialization() { GEOS_THROW_IF( m_referenceNormalStress <= 0.0, - "The provided reference stress is zero or negative. Value: " << m_referenceNormalStress, + GEOS_FMT( "The provided reference stress is zero or negative. Value: {}", + m_referenceNormalStress ), InputError, getDataContext() ); } diff --git a/src/coreComponents/constitutive/contact/CoulombFriction.cpp b/src/coreComponents/constitutive/contact/CoulombFriction.cpp index e11aa3b6bc1..c1f1f719698 100644 --- a/src/coreComponents/constitutive/contact/CoulombFriction.cpp +++ b/src/coreComponents/constitutive/contact/CoulombFriction.cpp @@ -52,7 +52,8 @@ CoulombFriction::CoulombFriction( string const & name, Group * const parent ): void CoulombFriction::postInputInitialization() { GEOS_THROW_IF( m_frictionCoefficient < 0.0, - ": The provided friction coefficient is less than zero. Value: " << m_frictionCoefficient, + GEOS_FMT( ": The provided friction coefficient is less than zero. Value: {}", + m_frictionCoefficient ), InputError, getDataContext() ); } diff --git a/src/coreComponents/constitutive/contact/HydraulicApertureTable.cpp b/src/coreComponents/constitutive/contact/HydraulicApertureTable.cpp index 74458047fc1..9755990bac7 100644 --- a/src/coreComponents/constitutive/contact/HydraulicApertureTable.cpp +++ b/src/coreComponents/constitutive/contact/HydraulicApertureTable.cpp @@ -53,13 +53,13 @@ HydraulicApertureTable::HydraulicApertureTable( string const & name, void HydraulicApertureTable::postInputInitialization() { GEOS_THROW_IF( m_apertureTableName.empty(), - "the aperture table name " << m_apertureTableName << " is empty", + GEOS_FMT( "the aperture table name {} is empty", m_apertureTableName ), InputError, getDataContext() ); FunctionManager & functionManager = FunctionManager::getInstance(); GEOS_THROW_IF( !functionManager.hasGroup( m_apertureTableName ), - "the aperture table named " << m_apertureTableName << " could not be found", + GEOS_FMT( "the aperture table named {} could not be found", m_apertureTableName ), InputError, getDataContext() ); } diff --git a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2EOSSolver.cpp b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2EOSSolver.cpp index 1ab2bf40a91..471105f424e 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2EOSSolver.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/CO2Brine/functions/CO2EOSSolver.cpp @@ -145,9 +145,14 @@ CO2EOSSolver::solve( string const & name, } GEOS_THROW_IF( !newtonHasConverged, - name << ": Newton's method failed to converge for pair " - << "( pressure = " << pres*presMultiplierForReporting << " Pa, temperature = " << units::convertCToK( temp ) << " K) :" - << " final residual = " << res << ", final update = " << update << ", tolerance = " << tolerance, + GEOS_FMT( "{}: Newton's method failed to converge for pair " + "( pressure = {} Pa, temperature = {} K) : final residual = {}, final update = {}, tolerance = {}", + name, + pres * presMultiplierForReporting, + units::convertCToK( temp ), + res, + update, + tolerance ), InputError ); return var; } diff --git a/src/coreComponents/dataRepository/unitTests/testErrorHandling.cpp b/src/coreComponents/dataRepository/unitTests/testErrorHandling.cpp index 33e95b745d4..ee2ed70b739 100644 --- a/src/coreComponents/dataRepository/unitTests/testErrorHandling.cpp +++ b/src/coreComponents/dataRepository/unitTests/testErrorHandling.cpp @@ -194,9 +194,11 @@ TEST( ErrorHandling, testYamlFileExceptionOutput ) testErrorLogger.getCurrentExceptionMsg().m_file, line1, testErrorLogger.getCurrentExceptionMsg().m_contextsInfo.front().m_formattedContext ); GEOS_ERROR_IF_EQ_MSG( string( ex.what()).find( whatExpected ), string::npos, - "The error message was not containing the expected sequence.\n" << - " Error message :\n" << ex.what() << - " expected sequence :\n" << whatExpected ); + GEOS_FMT( "The error message was not containing the expected sequence.\n" + " Error message :\n{}" + " expected sequence :\n{}", + ex.what(), + whatExpected ) ); } testErrorLogger.flushCurrentExceptionMessage(); @@ -323,10 +325,12 @@ TEST( ErrorHandling, testLogFileExceptionOutput ) std::ostringstream oss; ErrorLogger::formatMsgForLog( testErrorLogger.getCurrentExceptionMsg(), oss ); GEOS_ERROR_IF_EQ_MSG( oss.str().find( streamExpected ), string::npos, - "The error message was not containing the expected sequence.\n" << - "The error message was not containing the expected sequence.\n" << - " Error message :\n" < const & A ) // LAPACK_ROW_MAJOR ordering. GEOS_dgetrf( &NN, &NN, LUFactor.data(), &NN, IPIV.data(), &INFO ); - GEOS_ASSERT_MSG( INFO == 0, "LAPACK dgetrf error code: " << INFO ); + GEOS_ASSERT_MSG( INFO == 0, GEOS_FMT( "LAPACK dgetrf error code: {}", INFO ) ); det = 1.0; for( int i = 0; i < NN; ++i ) @@ -269,7 +269,7 @@ void matrixInverse( arraySlice2d< real64 const, USD > const & A, int INFO; GEOS_dgetrf( &NN, &NN, Ainv.dataIfContiguous(), &NN, IPIV.data(), &INFO ); - GEOS_ASSERT_MSG( INFO == 0, "LAPACK dgetrf error code: " << INFO ); + GEOS_ASSERT_MSG( INFO == 0, GEOS_FMT( "LAPACK dgetrf error code: {}", INFO ) ); detA = 1.0; for( int i = 0; i < NN; ++i ) @@ -337,7 +337,7 @@ void matrixInverse( arraySlice2d< real64 const, USD > const & A, int INFO; GEOS_dgetri( &NN, Ainv.dataIfContiguous(), &NN, IPIV.data(), INV_WORK.data(), &NN, &INFO ); - GEOS_ASSERT_MSG( INFO == 0, "LAPACK dgetri error code: " << INFO ); + GEOS_ASSERT_MSG( INFO == 0, GEOS_FMT( "LAPACK dgetri error code: {}", INFO ) ); break; } @@ -461,7 +461,7 @@ void solveLinearSystem( arraySlice2d< T, USD > const & A, GEOS_dgetrf( &N, &N, matrixData, &N, IPIV.data(), &INFO ); - GEOS_ASSERT_MSG( INFO == 0, "LAPACK dgetrf error code: " << INFO ); + GEOS_ASSERT_MSG( INFO == 0, GEOS_FMT( "LAPACK dgetrf error code: {}", INFO ) ); if constexpr ( std::is_const< T >::value ) { @@ -492,7 +492,7 @@ void solveLinearSystem( arraySlice2d< T, USD > const & A, GEOS_dgetrs( &TRANS, &N, &M, matrixData, &N, IPIV.data(), solutionData, &N, &INFO ); - GEOS_ASSERT_MSG( INFO == 0, "LAPACK dgetrs error code: " << INFO ); + GEOS_ASSERT_MSG( INFO == 0, GEOS_FMT( "LAPACK dgetrs error code: {}", INFO ) ); if constexpr ( USD == MatrixLayout::ROW_MAJOR ) { diff --git a/src/coreComponents/fieldSpecification/AquiferBoundaryCondition.cpp b/src/coreComponents/fieldSpecification/AquiferBoundaryCondition.cpp index 9ef74dd88eb..4a9c99a7b2f 100644 --- a/src/coreComponents/fieldSpecification/AquiferBoundaryCondition.cpp +++ b/src/coreComponents/fieldSpecification/AquiferBoundaryCondition.cpp @@ -126,13 +126,14 @@ void AquiferBoundaryCondition::postInputInitialization() { FunctionManager const & functionManager = FunctionManager::getInstance(); GEOS_THROW_IF( !functionManager.hasGroup( m_pressureInfluenceFunctionName ), - "The pressure influence table " << m_pressureInfluenceFunctionName << " could not be found", + GEOS_FMT( "The pressure influence table {} could not be found", + m_pressureInfluenceFunctionName ), InputError, getDataContext() ); TableFunction const & pressureInfluenceFunction = functionManager.getGroup< TableFunction >( m_pressureInfluenceFunctionName ); GEOS_THROW_IF( pressureInfluenceFunction.getInterpolationMethod() != TableFunction::InterpolationType::Linear, - "The interpolation method for the pressure influence function table " << - " should be TableFunction::InterpolationType::Linear", + "The interpolation method for the pressure influence function table should be " + "TableFunction::InterpolationType::Linear", InputError, pressureInfluenceFunction.getDataContext(), getDataContext() ); } @@ -148,8 +149,9 @@ void AquiferBoundaryCondition::postInputInitialization() InputError, getDataContext() ); GEOS_THROW_IF_NE_MSG( m_phaseComponentFraction.size(), LvArray::integerConversion< int >( m_phaseComponentNames.size() ), - "The sizes of " << viewKeyStruct::aquiferWaterPhaseComponentFractionString() << - " and " << viewKeyStruct::aquiferWaterPhaseComponentNamesString() << " are inconsistent", + GEOS_FMT( "The sizes of {} and {} are inconsistent", + viewKeyStruct::aquiferWaterPhaseComponentFractionString(), + viewKeyStruct::aquiferWaterPhaseComponentNamesString() ), InputError, getDataContext() ); } diff --git a/src/coreComponents/fieldSpecification/EquilibriumInitialCondition.cpp b/src/coreComponents/fieldSpecification/EquilibriumInitialCondition.cpp index 4e4fd68e6d8..6e0f1181e6e 100644 --- a/src/coreComponents/fieldSpecification/EquilibriumInitialCondition.cpp +++ b/src/coreComponents/fieldSpecification/EquilibriumInitialCondition.cpp @@ -102,12 +102,13 @@ void EquilibriumInitialCondition::postInputInitialization() if( !m_componentFractionVsElevationTableNames.empty() ) { GEOS_THROW_IF( m_componentFractionVsElevationTableNames.size() <= 1, - "At least two component names must be specified in " << viewKeyStruct::componentNamesString(), + GEOS_FMT( "At least two component names must be specified in {}", + viewKeyStruct::componentNamesString() ), InputError, getDataContext() ); GEOS_THROW_IF( m_componentFractionVsElevationTableNames.size() != m_componentNames.size(), - "Mismatch between the size of " << - viewKeyStruct::componentNamesString() << - " and " << viewKeyStruct::componentFractionVsElevationTableNamesString(), + GEOS_FMT( "Mismatch between the size of {} and {}", + viewKeyStruct::componentNamesString(), + viewKeyStruct::componentFractionVsElevationTableNamesString() ), InputError, getDataContext() ); integer const numberOfComponents = static_cast< integer >(m_componentNames.size()); @@ -116,15 +117,18 @@ void EquilibriumInitialCondition::postInputInitialization() { integer const numberOfContacts = static_cast< integer >(m_phaseContacts.size()); GEOS_THROW_IF( m_initPhaseName.empty() && numberOfContacts == 0, - ": for a multiphase simulation either the initial phase name must be provided using " - << viewKeyStruct::initPhaseNameString() << " or the phase contact elevations number be provided using " - << viewKeyStruct::phaseContactsString(), + GEOS_FMT( ": for a multiphase simulation either the initial phase name must be provided using {} " + "or the phase contact elevations number be provided using {}", + viewKeyStruct::initPhaseNameString(), + viewKeyStruct::phaseContactsString() ), InputError, getDataContext() ); if( !m_initPhaseName.empty() && 0 < numberOfContacts ) { - GEOS_WARNING( "both " << viewKeyStruct::initPhaseNameString() << " and " << viewKeyStruct::phaseContactsString() - << " have been specified. The phase contacts will be ignored and single phase initialisation performed", + GEOS_WARNING( GEOS_FMT( "both {} and {} have been specified. The phase contacts will be ignored and " + "single phase initialisation performed", + viewKeyStruct::initPhaseNameString(), + viewKeyStruct::phaseContactsString() ), getDataContext() ); } @@ -144,19 +148,21 @@ void EquilibriumInitialCondition::postInputInitialization() for( integer ic = 0; ic < numberOfComponents; ++ic ) { GEOS_THROW_IF( m_componentFractionVsElevationTableNames[ic].empty(), - "The component fraction vs elevation table name is missing for component " << ic, + GEOS_FMT( "The component fraction vs elevation table name is missing for component {}", ic ), InputError, getDataContext() ); GEOS_THROW_IF( !m_componentFractionVsElevationTableNames[ic].empty() && !functionManager.hasGroup( m_componentFractionVsElevationTableNames[ic] ), - "The component fraction vs elevation table " << - m_componentFractionVsElevationTableNames[ic] << " could not be found" << " for component " << ic, + GEOS_FMT( "The component fraction vs elevation table {} could not be found for component {}", + m_componentFractionVsElevationTableNames[ic], + ic ), InputError, getDataContext() ); TableFunction const & compFracTable = functionManager.getGroup< TableFunction >( m_componentFractionVsElevationTableNames[ic] ); GEOS_THROW_IF( compFracTable.getInterpolationMethod() != TableFunction::InterpolationType::Linear, - "The interpolation method for the component fraction vs elevation table " << - compFracTable.getName() << " should be TableFunction::InterpolationType::Linear", + GEOS_FMT( "The interpolation method for the component fraction vs elevation table {} " + "should be TableFunction::InterpolationType::Linear", + compFracTable.getName() ), InputError, getDataContext() ); } @@ -166,14 +172,15 @@ void EquilibriumInitialCondition::postInputInitialization() { GEOS_THROW_IF( !functionManager.hasGroup( m_temperatureVsElevationTableName ), - "The temperature vs elevation table " << - m_temperatureVsElevationTableName << " could not be found", + GEOS_FMT( "The temperature vs elevation table {} could not be found", + m_temperatureVsElevationTableName ), InputError, getDataContext() ); TableFunction const & tempTable = functionManager.getGroup< TableFunction >( m_temperatureVsElevationTableName ); GEOS_THROW_IF( tempTable.getInterpolationMethod() != TableFunction::InterpolationType::Linear, - "The interpolation method for the temperature vs elevation table " << tempTable.getName() << - " should be TableFunction::InterpolationType::Linear", + GEOS_FMT( "The interpolation method for the temperature vs elevation table {} " + "should be TableFunction::InterpolationType::Linear", + tempTable.getName() ), InputError, getDataContext() ); } } @@ -192,8 +199,8 @@ void EquilibriumInitialCondition::initializePreSubGroups() TableFunction const & compFracTable = functionManager.getGroup< TableFunction >( m_componentFractionVsElevationTableNames[ic] ); arrayView1d< real64 const > compFracValues = compFracTable.getValues(); GEOS_THROW_IF( compFracValues.size() <= 1, - "The component fraction vs elevation table " << compFracTable.getName() << - " must contain at least two values", + GEOS_FMT( "The component fraction vs elevation table {} must contain at least two values", + compFracTable.getName() ), InputError, getDataContext() ); tableSizes[ic] = compFracValues.size(); diff --git a/src/coreComponents/fieldSpecification/PerfectlyMatchedLayer.cpp b/src/coreComponents/fieldSpecification/PerfectlyMatchedLayer.cpp index 220630d1761..7e71480536c 100644 --- a/src/coreComponents/fieldSpecification/PerfectlyMatchedLayer.cpp +++ b/src/coreComponents/fieldSpecification/PerfectlyMatchedLayer.cpp @@ -79,14 +79,14 @@ PerfectlyMatchedLayer::PerfectlyMatchedLayer( string const & name, Group * const void PerfectlyMatchedLayer::postInputInitialization() { GEOS_THROW_IF( (m_xMax[0]1), - viewKeyStruct::reflectivityString() - << " must satisfy 0 < reflectivity <= 1", + GEOS_FMT( "{} must satisfy 0 < reflectivity <= 1", + viewKeyStruct::reflectivityString() ), InputError, getDataContext() ); GEOS_LOG_RANK_0_IF( (m_xMin[0]GetNumberOfComponents(), - "VTK writer: sanity check failed for " << field << " (inconsistent array sizes)" ); + GEOS_FMT( "VTK writer: sanity check failed for {} (inconsistent array sizes)", + field ) ); } } ); diff --git a/src/coreComponents/integrationTests/dataRepositoryTests/testGroupPath.cpp b/src/coreComponents/integrationTests/dataRepositoryTests/testGroupPath.cpp index 37724a42378..49f1c45bc40 100644 --- a/src/coreComponents/integrationTests/dataRepositoryTests/testGroupPath.cpp +++ b/src/coreComponents/integrationTests/dataRepositoryTests/testGroupPath.cpp @@ -116,9 +116,11 @@ TEST( testGroupPath, testGlobalPaths ) std::ostringstream stream; geos::ErrorLogger::formatMsgForLog( ErrorLogger::global().getCurrentExceptionMsg(), stream ); GEOS_ERROR_IF_EQ_MSG( string( e.what() ).find( expectedMsg ), string::npos, - "The error message was not containing the expected sequence.\n" << - " Error message :\n" << e.what() << - " expected sequence :\n" << expectedMsg ); + GEOS_FMT( "The error message was not containing the expected sequence.\n" + " Error message :\n{}" + " expected sequence :\n{}", + e.what(), + expectedMsg ) ); trowHappened = true; } // checks if the exception has been thrown as expected diff --git a/src/coreComponents/integrationTests/fieldSpecificationTests/testFieldSpecification.cpp b/src/coreComponents/integrationTests/fieldSpecificationTests/testFieldSpecification.cpp index 2e576dc3283..d474ee9c564 100644 --- a/src/coreComponents/integrationTests/fieldSpecificationTests/testFieldSpecification.cpp +++ b/src/coreComponents/integrationTests/fieldSpecificationTests/testFieldSpecification.cpp @@ -253,13 +253,17 @@ TEST( testIncorrectFieldSpecification, testWrongFieldNames ) catch( std::exception const & e ) { GEOS_ERROR_IF_EQ_MSG( string( e.what() ).find( expectedMsg1 ), string::npos, - "The error message was not containing the expected sequence.\n" << - " Error message :\n" << e.what() << - " expected sequence :\n" << expectedMsg1 ); + GEOS_FMT( "The error message was not containing the expected sequence.\n" + " Error message :\n{}" + " expected sequence :\n{}", + e.what(), + expectedMsg1 ) ); GEOS_ERROR_IF_EQ_MSG( string( e.what() ).find( expectedMsg2 ), string::npos, - "The error message was not containing the expected sequence.\n" << - " Error message :\n" << e.what() << - " expected sequence :\n" << expectedMsg2 ); + GEOS_FMT( "The error message was not containing the expected sequence.\n" + " Error message :\n{}" + " expected sequence :\n{}", + e.what(), + expectedMsg2 ) ); trowHappened = true; } ASSERT_TRUE( trowHappened ); @@ -321,9 +325,11 @@ TEST( testIncorrectFieldSpecification, testSetNameTargetNothing ) { string const & expectedMsg1 = "does not capture anything in the mesh"; GEOS_ERROR_IF_EQ_MSG( string( e.what() ).find( expectedMsg1 ), string::npos, - "The error message was not containing the expected sequence.\n" << - " Error message :\n" << e.what() << - " expected sequence :\n" << expectedMsg1 ); + GEOS_FMT( "The error message was not containing the expected sequence.\n" + " Error message :\n{}" + " expected sequence :\n{}", + e.what(), + expectedMsg1 ) ); trowHappened = true; } @@ -363,13 +369,17 @@ TEST( testIncorrectFieldSpecification, testSetName ) string const & expectedMsg1 = "- Does not capture: ElementRegions/Channel2"; string const & expectedMsg2 = "- Instead, captures: nodeManager, edgeManager, faceManager"; GEOS_ERROR_IF_EQ_MSG( string( e.what() ).find( expectedMsg1 ), string::npos, - "The error message was not containing the expected sequence.\n" << - " Error message :\n" << e.what() << - " expected sequence :\n" << expectedMsg1 ); + GEOS_FMT( "The error message was not containing the expected sequence.\n" + " Error message :\n{}" + " expected sequence :\n{}", + e.what(), + expectedMsg1 ) ); GEOS_ERROR_IF_EQ_MSG( string( e.what() ).find( expectedMsg2 ), string::npos, - "The error message was not containing the expected sequence.\n" << - " Error message :\n" << e.what() << - " expected sequence :\n" << expectedMsg2 ); + GEOS_FMT( "The error message was not containing the expected sequence.\n" + " Error message :\n{}" + " expected sequence :\n{}", + e.what(), + expectedMsg2 ) ); trowHappened = true; } @@ -409,13 +419,17 @@ TEST( testIncorrectFieldSpecification, testMultiSetNames ) string const & expectedMsg1 = "Set 'xneg':"; string const & expectedMsg2 = "- Instead, captures: nodeManager, edgeManager, faceManager"; GEOS_ERROR_IF_EQ_MSG( string( e.what() ).find( expectedMsg1 ), string::npos, - "The error message was not containing the expected sequence.\n" << - " Error message :\n" << e.what() << - " expected sequence :\n" << expectedMsg1 ); + GEOS_FMT( "The error message was not containing the expected sequence.\n" + " Error message :\n{}" + " expected sequence :\n{}", + e.what(), + expectedMsg1 ) ); GEOS_ERROR_IF_EQ_MSG( string( e.what() ).find( expectedMsg2 ), string::npos, - "The error message was not containing the expected sequence.\n" << - " Error message :\n" << e.what() << - " expected sequence :\n" << expectedMsg2 ); + GEOS_FMT( "The error message was not containing the expected sequence.\n" + " Error message :\n{}" + " expected sequence :\n{}", + e.what(), + expectedMsg2 ) ); trowHappened = true; } diff --git a/src/coreComponents/linearAlgebra/interfaces/direct/SuiteSparse.cpp b/src/coreComponents/linearAlgebra/interfaces/direct/SuiteSparse.cpp index 33d3affe7cf..31254c27533 100644 --- a/src/coreComponents/linearAlgebra/interfaces/direct/SuiteSparse.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/direct/SuiteSparse.cpp @@ -276,8 +276,9 @@ void SuiteSparse< LAI >::solve( Vector const & rhs, { if( m_params.logLevel > 0 && MpiWrapper::commRank( rhs.comm() ) == 0 ) { - GEOS_WARNING( "SuiteSparse: failed to reduce residual below tolerance.\n" - "Condition number estimate: " << condEst ); + GEOS_WARNING( GEOS_FMT( "SuiteSparse: failed to reduce residual below tolerance.\n" + "Condition number estimate: {}", + condEst ) ); } m_result.status = LinearSolverResult::Status::Breakdown; } diff --git a/src/coreComponents/linearAlgebra/interfaces/direct/SuperLUDist.cpp b/src/coreComponents/linearAlgebra/interfaces/direct/SuperLUDist.cpp index dd109b0d3f9..c7da68840e3 100644 --- a/src/coreComponents/linearAlgebra/interfaces/direct/SuperLUDist.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/direct/SuperLUDist.cpp @@ -289,8 +289,9 @@ void SuperLUDist< LAI >::solve( Vector const & rhs, { if( m_params.logLevel > 0 ) { - GEOS_WARNING( "SuperLUDist: failed to reduce residual below tolerance.\n" - "Condition number estimate: " << condEst ); + GEOS_WARNING( GEOS_FMT( "SuperLUDist: failed to reduce residual below tolerance.\n" + "Condition number estimate: {}", + condEst ) ); } m_result.status = LinearSolverResult::Status::Breakdown; } diff --git a/src/coreComponents/linearAlgebra/interfaces/trilinos/EpetraMatrix.cpp b/src/coreComponents/linearAlgebra/interfaces/trilinos/EpetraMatrix.cpp index b3bdf0ba47c..d6f5ddfffb0 100644 --- a/src/coreComponents/linearAlgebra/interfaces/trilinos/EpetraMatrix.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/trilinos/EpetraMatrix.cpp @@ -1032,7 +1032,8 @@ void rescaleRow( Epetra_CrsMatrix & mat, double * vals; mat.ExtractMyRowView( localRow, numEntries, vals ); double const scale = std::accumulate( vals, vals + numEntries, 0.0, reducer ); - GEOS_ASSERT_MSG( !isZero( scale ), "Zero row sum in row " << mat.GRID64( localRow ) ); + GEOS_ASSERT_MSG( !isZero( scale ), + GEOS_FMT( "Zero row sum in row {}", mat.GRID64( localRow ) ) ); std::transform( vals, vals + numEntries, vals, [scale]( double const v ){ return v / scale; } ); } diff --git a/src/coreComponents/linearAlgebra/multiscale/mesh/DofManager.cpp b/src/coreComponents/linearAlgebra/multiscale/mesh/DofManager.cpp index 092a65a8f3c..9195ecfcf87 100644 --- a/src/coreComponents/linearAlgebra/multiscale/mesh/DofManager.cpp +++ b/src/coreComponents/linearAlgebra/multiscale/mesh/DofManager.cpp @@ -55,7 +55,8 @@ DofManager::FieldDescription const & DofManager::getField( string const & name ) { auto const it = std::find_if( m_fields.begin(), m_fields.end(), [&]( FieldDescription const & f ) { return f.name == name; } ); - GEOS_ASSERT_MSG( it != m_fields.end(), "DofManager: field does not exist: " << name ); + GEOS_ASSERT_MSG( it != m_fields.end(), + GEOS_FMT( "DofManager: field does not exist: {}", name ) ); return *it; } diff --git a/src/coreComponents/mesh/ElementRegionBase.cpp b/src/coreComponents/mesh/ElementRegionBase.cpp index 63f9c200682..fba98adca9d 100644 --- a/src/coreComponents/mesh/ElementRegionBase.cpp +++ b/src/coreComponents/mesh/ElementRegionBase.cpp @@ -81,8 +81,9 @@ string ElementRegionBase::verifyMeshBodyName( Group const & meshBodies, } } ); GEOS_THROW_IF( !meshBodyFound, - "There are multiple MeshBodies in this problem, but the " - "specified MeshBody name "<forElementSubRegions< SurfaceElementSubRegion >( [&] ( SurfaceElementSubRegion & subRegion ) { diff --git a/src/coreComponents/mesh/WellElementRegion.cpp b/src/coreComponents/mesh/WellElementRegion.cpp index efb1a4fd9bc..f9f787433ca 100644 --- a/src/coreComponents/mesh/WellElementRegion.cpp +++ b/src/coreComponents/mesh/WellElementRegion.cpp @@ -73,14 +73,15 @@ void WellElementRegion::generateWell( MeshLevel & mesh, globalIndex const matchedPerforations = MpiWrapper::sum( perforationData->size() ); //should we do this check in the well generator? Here we don't have the wellGeneratorDataContext GEOS_THROW_IF( matchedPerforations != numPerforationsGlobal, - "Invalid mapping perforation-to-element in "<< - InternalWellGenerator::catalogName() << " " << getWellGeneratorName() << "." << - " This happens when GEOSX cannot match a perforation with a reservoir element." << - " There are two common reasons for this error:\n" << - " 1- The most common reason for this error is that a perforation is on a section of " << - " the well polyline located outside the domain.\n" << - " 2- This error can also happen if a perforation falls on a mesh face or a mesh vertex." << - " Please try to move the perforation slightly (to the interior of the perforated cell) to see if it fixes the problem.", + GEOS_FMT( "Invalid mapping perforation-to-element in {} {}. This happens when GEOSX cannot match " + "a perforation with a reservoir element. There are two common reasons for this error:\n" + " 1- The most common reason for this error is that a perforation is on a section of " + " the well polyline located outside the domain.\n" + " 2- This error can also happen if a perforation falls on a mesh face or a mesh vertex." + " Please try to move the perforation slightly (to the interior of the perforated cell) " + "to see if it fixes the problem.", + InternalWellGenerator::catalogName(), + getWellGeneratorName() ), InputError, getDataContext() ); // 2) classify well elements based on connectivity to local mesh partition diff --git a/src/coreComponents/mesh/WellElementSubRegion.cpp b/src/coreComponents/mesh/WellElementSubRegion.cpp index 2954a382c8f..1cacfc95d80 100644 --- a/src/coreComponents/mesh/WellElementSubRegion.cpp +++ b/src/coreComponents/mesh/WellElementSubRegion.cpp @@ -659,10 +659,9 @@ void WellElementSubRegion::checkPartitioningValidity( LineBlockABC const & lineB globalIndex const prevGlobal = prevElemIdsGlobal[iwelemGlobal][numBranches-1]; GEOS_THROW_IF( prevGlobal <= iwelemGlobal || prevGlobal < 0, - "The structure of well is invalid. " << - " The main reason for this error is that there may be no perforation" << - " in the bottom well element of the well, which is required to have" << - " a well-posed problem.", + "The structure of well is invalid. The main reason for this error is that there may be no " + "perforation in the bottom well element of the well, which is required to have a well-posed " + "problem.", InputError, lineBlock.getDataContext() ); if( elemStatusGlobal[prevGlobal] == WellElemParallelStatus::LOCAL ) diff --git a/src/coreComponents/mesh/generators/InternalWellGenerator.cpp b/src/coreComponents/mesh/generators/InternalWellGenerator.cpp index f219d359e9a..d3fae0a3a1b 100644 --- a/src/coreComponents/mesh/generators/InternalWellGenerator.cpp +++ b/src/coreComponents/mesh/generators/InternalWellGenerator.cpp @@ -41,18 +41,19 @@ InternalWellGenerator::InternalWellGenerator( string const & name, Group * const void InternalWellGenerator::postInputInitialization() { GEOS_THROW_IF( m_polyNodeCoords.size( 1 ) != m_nDims, - "InternalWell " << getWrapperDataContext( viewKeyStruct::polylineNodeCoordsString() ) << - ": Invalid number of physical coordinates.", + GEOS_FMT( "InternalWell {}: Invalid number of physical coordinates.", + getWrapperDataContext( viewKeyStruct::polylineNodeCoordsString() ) ), InputError, getWrapperDataContext( viewKeyStruct::polylineNodeCoordsString() ) ); GEOS_THROW_IF( m_segmentToPolyNodeMap.size( 1 ) != 2, - "InternalWell " << getWrapperDataContext( viewKeyStruct::polylineSegmentConnString() ) << - ": Invalid size.", + GEOS_FMT( "InternalWell {}: Invalid size.", + getWrapperDataContext( viewKeyStruct::polylineSegmentConnString() ) ), InputError, getWrapperDataContext( viewKeyStruct::polylineSegmentConnString() ) ); GEOS_THROW_IF( m_polyNodeCoords.size( 0 )-1 != m_segmentToPolyNodeMap.size( 0 ), - "Incompatible sizes of " << getWrapperDataContext( viewKeyStruct::polylineNodeCoordsString() ) << - " and " << getWrapperDataContext( viewKeyStruct::polylineSegmentConnString() ), + GEOS_FMT( "Incompatible sizes of {} and {}", + getWrapperDataContext( viewKeyStruct::polylineNodeCoordsString() ), + getWrapperDataContext( viewKeyStruct::polylineSegmentConnString() ) ), InputError, getWrapperDataContext( viewKeyStruct::polylineSegmentConnString() ) ); // TODO: add more checks here diff --git a/src/coreComponents/mesh/generators/PrismUtilities.hpp b/src/coreComponents/mesh/generators/PrismUtilities.hpp index 8dd8e983e30..da62a4eb648 100644 --- a/src/coreComponents/mesh/generators/PrismUtilities.hpp +++ b/src/coreComponents/mesh/generators/PrismUtilities.hpp @@ -45,7 +45,10 @@ localIndex getFaceNodesPrism( localIndex const faceNum, if( faceNum == 0 ) { - GEOS_ERROR_IF_LT_MSG( faceNodes.size(), 4, GEOS_FMT( nodeCountError, N, faceNum ) << generalMeshErrorAdvice ); + GEOS_ERROR_IF_LT_MSG( faceNodes.size(), 4, + GEOS_FMT( "{}{}", + GEOS_FMT( nodeCountError, N, faceNum ), + generalMeshErrorAdvice ) ); faceNodes[0] = elemNodes[0]; faceNodes[1] = elemNodes[1]; faceNodes[2] = elemNodes[N+1]; @@ -54,7 +57,10 @@ localIndex getFaceNodesPrism( localIndex const faceNum, } else if( faceNum == 1 ) { - GEOS_ERROR_IF_LT_MSG( faceNodes.size(), N, GEOS_FMT( nodeCountError, N, faceNum ) << generalMeshErrorAdvice ); + GEOS_ERROR_IF_LT_MSG( faceNodes.size(), N, + GEOS_FMT( "{}{}", + GEOS_FMT( nodeCountError, N, faceNum ), + generalMeshErrorAdvice ) ); faceNodes[0] = elemNodes[0]; for( localIndex i = 1; i < N; ++i ) { @@ -64,7 +70,10 @@ localIndex getFaceNodesPrism( localIndex const faceNum, } else if( faceNum == 2 ) { - GEOS_ERROR_IF_LT_MSG( faceNodes.size(), 4, GEOS_FMT( nodeCountError, N, faceNum ) << generalMeshErrorAdvice ); + GEOS_ERROR_IF_LT_MSG( faceNodes.size(), 4, + GEOS_FMT( "{}{}", + GEOS_FMT( nodeCountError, N, faceNum ), + generalMeshErrorAdvice ) ); faceNodes[0] = elemNodes[0]; faceNodes[1] = elemNodes[N]; faceNodes[2] = elemNodes[N*2-1]; @@ -73,7 +82,10 @@ localIndex getFaceNodesPrism( localIndex const faceNum, } else if( faceNum >= 3 && faceNum <= N ) { - GEOS_ERROR_IF_LT_MSG( faceNodes.size(), 4, GEOS_FMT( nodeCountError, N, faceNum ) << generalMeshErrorAdvice ); + GEOS_ERROR_IF_LT_MSG( faceNodes.size(), 4, + GEOS_FMT( "{}{}", + GEOS_FMT( nodeCountError, N, faceNum ), + generalMeshErrorAdvice ) ); faceNodes[0] = elemNodes[faceNum-2]; faceNodes[1] = elemNodes[faceNum-1]; faceNodes[2] = elemNodes[N+faceNum-1]; @@ -82,7 +94,10 @@ localIndex getFaceNodesPrism( localIndex const faceNum, } else if( faceNum == N + 1 ) { - GEOS_ERROR_IF_LT_MSG( faceNodes.size(), N, GEOS_FMT( nodeCountError, N, faceNum ) << generalMeshErrorAdvice ); + GEOS_ERROR_IF_LT_MSG( faceNodes.size(), N, + GEOS_FMT( "{}{}", + GEOS_FMT( nodeCountError, N, faceNum ), + generalMeshErrorAdvice ) ); for( localIndex i = 0; i < N; ++i ) { faceNodes[i] = elemNodes[i+N]; diff --git a/src/coreComponents/mesh/mpiCommunications/MPI_iCommData.cpp b/src/coreComponents/mesh/mpiCommunications/MPI_iCommData.cpp index 59be5f37fc6..12c72a6786b 100644 --- a/src/coreComponents/mesh/mpiCommunications/MPI_iCommData.cpp +++ b/src/coreComponents/mesh/mpiCommunications/MPI_iCommData.cpp @@ -38,13 +38,17 @@ MPI_iCommData::~MPI_iCommData() for( int neighbor=0; neighbor ", + GEOS_FMT( "hydrostatic pressure initialization failed to converge in region {}! \n" + "Try to loosen the equilibration tolerance, or increase the number of equilibration iterations. \n" + "If nothing works, something may be wrong in the fluid model, see ", + region.getName() ), geos::RuntimeError, getDataContext() ); if( singlePhaseInitialisation ) diff --git a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseBase.cpp b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseBase.cpp index 713367c05f0..3cf39eb373e 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseBase.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseBase.cpp @@ -414,29 +414,32 @@ void SinglePhaseBase::computeHydrostaticEquilibrium( DomainPartition & domain ) // check that the gravity vector is aligned with the z-axis GEOS_THROW_IF( !isZero( gravVector[0] ) || !isZero( gravVector[1] ), - "The gravity vector specified in this simulation (" << gravVector[0] << " " << gravVector[1] << " " << gravVector[2] << - ") is not aligned with the z-axis. \n" - "This is incompatible with the " << bc.getCatalogName() << " " << bc.getName() << - "used in this simulation. To proceed, you can either: \n" << - " - Use a gravityVector aligned with the z-axis, such as (0.0,0.0,-9.81)\n" << - " - Remove the hydrostatic equilibrium initial condition from the XML file", + GEOS_FMT( "The gravity vector specified in this simulation ({} {} {}) is not aligned with the z-axis. \n" + "This is incompatible with the {} {}used in this simulation. To proceed, you can either: \n" + " - Use a gravityVector aligned with the z-axis, such as (0.0,0.0,-9.81)\n" + " - Remove the hydrostatic equilibrium initial condition from the XML file", + gravVector[0], + gravVector[1], + gravVector[2], + bc.getCatalogName(), + bc.getName() ), InputError, getDataContext(), bc.getDataContext() ); // ensure that the temperature tables are defined for thermal simulations GEOS_THROW_IF( m_isThermal && bc.getTemperatureVsElevationTableName().empty(), - EquilibriumInitialCondition::viewKeyStruct::temperatureVsElevationTableNameString() - << " must be provided for a thermal simulation", + GEOS_FMT( "{} must be provided for a thermal simulation", + EquilibriumInitialCondition::viewKeyStruct::temperatureVsElevationTableNameString() ), InputError, getDataContext(), bc.getDataContext() ); //ensure that compositions are empty GEOS_THROW_IF( !bc.getComponentFractionVsElevationTableNames().empty(), - EquilibriumInitialCondition::viewKeyStruct::componentFractionVsElevationTableNamesString() - << " must not be provided for a single phase simulation.", + GEOS_FMT( "{} must not be provided for a single phase simulation.", + EquilibriumInitialCondition::viewKeyStruct::componentFractionVsElevationTableNamesString() ), InputError, getDataContext(), bc.getDataContext() ); GEOS_THROW_IF( !bc.getComponentNames().empty(), - EquilibriumInitialCondition::viewKeyStruct::componentNamesString() - << " must not be provided for a single phase simulation.", + GEOS_FMT( "{} must not be provided for a single phase simulation.", + EquilibriumInitialCondition::viewKeyStruct::componentNamesString() ), InputError, getDataContext(), bc.getDataContext() ); } ); @@ -573,7 +576,8 @@ void SinglePhaseBase::computeHydrostaticEquilibrium( DomainPartition & domain ) pressureValues.toView() ); GEOS_THROW_IF( !equilHasConverged, - "Hydrostatic pressure initialization failed to converge in region " << region.getName() << "!", + GEOS_FMT( "Hydrostatic pressure initialization failed to converge in region {}!", + region.getName() ), geos::RuntimeError, getDataContext() ); } ); diff --git a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseHybridFVM.cpp b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseHybridFVM.cpp index a611b95fd44..c4550149394 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseHybridFVM.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseHybridFVM.cpp @@ -144,7 +144,7 @@ void SinglePhaseHybridFVM::initializePostInitialConditionsPreSubGroups() FieldSpecificationManager & fsManager = FieldSpecificationManager::getInstance(); fsManager.forSubGroups< AquiferBoundaryCondition >( [&] ( AquiferBoundaryCondition const & bc ) { - GEOS_WARNING( "The aquifer boundary condition was requested in the XML file. \n" << + GEOS_WARNING( "The aquifer boundary condition was requested in the XML file. \n" "This type of boundary condition is not yet supported by SinglePhaseHybridFVM and will be ignored", getDataContext(), bc.getDataContext() ); } ); diff --git a/src/coreComponents/physicsSolvers/fluidFlow/wells/CompositionalMultiphaseWell.cpp b/src/coreComponents/physicsSolvers/fluidFlow/wells/CompositionalMultiphaseWell.cpp index 9f18e9741da..275b0451d82 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/wells/CompositionalMultiphaseWell.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/wells/CompositionalMultiphaseWell.cpp @@ -404,7 +404,8 @@ void CompositionalMultiphaseWell::validateInjectionStreams( WellElementSubRegion "Injection stream not specified for well ", InputError, wellControls.getDataContext() ); GEOS_THROW_IF( ( streamSize != m_numComponents ), - "Injection stream for well should have " << m_numComponents << " components.", + GEOS_FMT( "Injection stream for well should have {} components.", + m_numComponents ), InputError, wellControls.getDataContext() ); real64 compFracSum = 0; @@ -432,8 +433,9 @@ void CompositionalMultiphaseWell::validateWellConstraints( real64 const & time_n { bool const useSeg =wellControls.referenceReservoirRegion().empty(); GEOS_WARNING_IF( useSeg, - "WellControls " <= 0) || (!m_injectionStream.empty() && m_injectionTemperature < 0), - "Both " - << viewKeyStruct::injectionStreamString() << " and " << viewKeyStruct::injectionTemperatureString() - << " must be specified for multiphase simulations", + GEOS_FMT( "Both {} and {} must be specified for multiphase simulations", + viewKeyStruct::injectionStreamString(), + viewKeyStruct::injectionTemperatureString() ), InputError, getDataContext() ); // 1.c) Set the multiplier for the rates @@ -309,37 +309,46 @@ void WellControls::postInputInitialization() GEOS_THROW_IF( ((m_targetPhaseRate <= 0.0 && m_targetPhaseRateTableName.empty()) && (m_targetMassRate <= 0.0 && m_targetMassRateTableName.empty()) && (m_targetTotalRate <= 0.0 && m_targetTotalRateTableName.empty())), - "You need to specify a phase, mass, or total rate constraint. \n" << - "The phase rate constraint can be specified using " << - "either " << viewKeyStruct::targetPhaseRateString() << - " or " << viewKeyStruct::targetPhaseRateTableNameString() << ".\n" << - "The total rate constraint can be specified using " << ".\n" << - "either " << viewKeyStruct::targetTotalRateString() << - " or " << viewKeyStruct::targetTotalRateTableNameString() << ".\n" << - "The mass rate constraint can be specified using " << - "either " << viewKeyStruct::targetMassRateString() << - " or " << viewKeyStruct::targetMassRateTableNameString(), + GEOS_FMT( "You need to specify a phase, mass, or total rate constraint. \n" + "The phase rate constraint can be specified using either {} or {}.\n" + "The total rate constraint can be specified using .\n" + "either {} or {}.\n" + "The mass rate constraint can be specified using either {} or {}", + viewKeyStruct::targetPhaseRateString(), + viewKeyStruct::targetPhaseRateTableNameString(), + viewKeyStruct::targetTotalRateString(), + viewKeyStruct::targetTotalRateTableNameString(), + viewKeyStruct::targetMassRateString(), + viewKeyStruct::targetMassRateTableNameString() ), InputError, getDataContext() ); // 5) check whether redundant information has been provided GEOS_THROW_IF( ((m_targetPhaseRate > 0.0 && !m_targetPhaseRateTableName.empty())), - "You have provided redundant information for well phase rate." << - " The keywords " << viewKeyStruct::targetPhaseRateString() << " and " << viewKeyStruct::targetPhaseRateTableNameString() << " cannot be specified together", + GEOS_FMT( "You have provided redundant information for well phase rate." + " The keywords {} and {} cannot be specified together", + viewKeyStruct::targetPhaseRateString(), + viewKeyStruct::targetPhaseRateTableNameString() ), InputError, getDataContext() ); GEOS_THROW_IF( ((m_targetTotalRate > 0.0 && !m_targetTotalRateTableName.empty())), - "You have provided redundant information for well total rate." << - " The keywords " << viewKeyStruct::targetTotalRateString() << " and " << viewKeyStruct::targetTotalRateTableNameString() << " cannot be specified together", + GEOS_FMT( "You have provided redundant information for well total rate." + " The keywords {} and {} cannot be specified together", + viewKeyStruct::targetTotalRateString(), + viewKeyStruct::targetTotalRateTableNameString() ), InputError, getDataContext() ); GEOS_THROW_IF( ((m_targetBHP > 0.0 && !m_targetBHPTableName.empty())), - "You have provided redundant information for well BHP." << - " The keywords " << viewKeyStruct::targetBHPString() << " and " << viewKeyStruct::targetBHPTableNameString() << " cannot be specified together", + GEOS_FMT( "You have provided redundant information for well BHP." + " The keywords {} and {} cannot be specified together", + viewKeyStruct::targetBHPString(), + viewKeyStruct::targetBHPTableNameString() ), InputError, getDataContext() ); GEOS_THROW_IF( ((m_targetMassRate > 0.0 && !m_targetMassRateTableName.empty())), - "You have provided redundant information for well mass rate." << - " The keywords " << viewKeyStruct::targetMassRateString() << " and " << viewKeyStruct::targetMassRateTableNameString() << " cannot be specified together", + GEOS_FMT( "You have provided redundant information for well mass rate." + " The keywords {} and {} cannot be specified together", + viewKeyStruct::targetMassRateString(), + viewKeyStruct::targetMassRateTableNameString() ), InputError, getDataContext() ); GEOS_THROW_IF( ((m_targetMassRate > 0.0 && m_useSurfaceConditions==0)), @@ -351,8 +360,9 @@ void WellControls::postInputInitialization() if( m_currentControl == Control::BHP ) { GEOS_THROW_IF( ((m_targetBHP <= 0.0 && m_targetBHPTableName.empty())), - "You have to provide well BHP by specifying either " - << viewKeyStruct::targetBHPString() << " or " << viewKeyStruct::targetBHPTableNameString(), + GEOS_FMT( "You have to provide well BHP by specifying either {} or {}", + viewKeyStruct::targetBHPString(), + viewKeyStruct::targetBHPTableNameString() ), InputError, getDataContext() ); } else if( m_targetBHP <= 0.0 && m_targetBHPTableName.empty() ) @@ -366,20 +376,20 @@ void WellControls::postInputInitialization() // An injector must be controlled by TotalVolRate GEOS_THROW_IF( (isInjector() && (m_inputControl == Control::PHASEVOLRATE)), - "You have to control an injector with " - << EnumStrings< Control >::toString( Control::TOTALVOLRATE ), + GEOS_FMT( "You have to control an injector with {}", + EnumStrings< Control >::toString( Control::TOTALVOLRATE ) ), InputError, getDataContext() ); // An injector must be controlled by TotalVolRate GEOS_THROW_IF( (isProducer() && (m_inputControl == Control::MASSRATE)), - "You have to control an injector with " - << EnumStrings< Control >::toString( Control::MASSRATE ), + GEOS_FMT( "You have to control an injector with {}", + EnumStrings< Control >::toString( Control::MASSRATE ) ), InputError, getDataContext() ); // 8) Make sure that the initial pressure coefficient is positive GEOS_THROW_IF( m_initialPressureCoefficient < 0, - viewKeyStruct::initialPressureCoefficientString() << - "This tuning coefficient is negative", + GEOS_FMT( "{}This tuning coefficient is negative", + viewKeyStruct::initialPressureCoefficientString() ), InputError, getWrapperDataContext( viewKeyStruct::initialPressureCoefficientString() ) ); @@ -395,8 +405,9 @@ void WellControls::postInputInitialization() m_targetBHPTable = &(functionManager.getGroup< TableFunction const >( m_targetBHPTableName )); GEOS_THROW_IF( m_targetBHPTable->getInterpolationMethod() != TableFunction::InterpolationType::Lower, - "The interpolation method for the time-dependent BHP table " - << m_targetBHPTable->getName() << " should be TableFunction::InterpolationType::Lower", + GEOS_FMT( "The interpolation method for the time-dependent BHP table {} " + "should be TableFunction::InterpolationType::Lower", + m_targetBHPTable->getName() ), InputError, getDataContext() ); } @@ -412,8 +423,9 @@ void WellControls::postInputInitialization() m_targetTotalRateTable = &(functionManager.getGroup< TableFunction const >( m_targetTotalRateTableName )); GEOS_THROW_IF( m_targetTotalRateTable->getInterpolationMethod() != TableFunction::InterpolationType::Lower, - "The interpolation method for the time-dependent total rate table " - << m_targetTotalRateTable->getName() << " should be TableFunction::InterpolationType::Lower", + GEOS_FMT( "The interpolation method for the time-dependent total rate table {} " + "should be TableFunction::InterpolationType::Lower", + m_targetTotalRateTable->getName() ), InputError, getDataContext() ); } @@ -429,8 +441,9 @@ void WellControls::postInputInitialization() m_targetPhaseRateTable = &(functionManager.getGroup< TableFunction const >( m_targetPhaseRateTableName )); GEOS_THROW_IF( m_targetPhaseRateTable->getInterpolationMethod() != TableFunction::InterpolationType::Lower, - "The interpolation method for the time-dependent phase rate table " - << m_targetPhaseRateTable->getName() << " should be TableFunction::InterpolationType::Lower", + GEOS_FMT( "The interpolation method for the time-dependent phase rate table {} " + "should be TableFunction::InterpolationType::Lower", + m_targetPhaseRateTable->getName() ), InputError, getDataContext() ); } // Create time-dependent mass rate table @@ -445,8 +458,9 @@ void WellControls::postInputInitialization() m_targetMassRateTable = &(functionManager.getGroup< TableFunction const >( m_targetMassRateTableName )); GEOS_THROW_IF( m_targetMassRateTable->getInterpolationMethod() != TableFunction::InterpolationType::Lower, - "The interpolation method for the time-dependent mass rate table " - << m_targetMassRateTable->getName() << " should be TableFunction::InterpolationType::Lower", + GEOS_FMT( "The interpolation method for the time-dependent mass rate table {} " + "should be TableFunction::InterpolationType::Lower", + m_targetMassRateTable->getName() ), InputError, getDataContext() ); } // 12) Create the time-dependent well status table @@ -467,8 +481,9 @@ void WellControls::postInputInitialization() m_statusTable = &(functionManager.getGroup< TableFunction const >( m_statusTableName )); GEOS_THROW_IF( m_statusTable->getInterpolationMethod() != TableFunction::InterpolationType::Lower, - "The interpolation method for the time-dependent status table " - << m_statusTable->getName() << " should be TableFunction::InterpolationType::Lower", + GEOS_FMT( "The interpolation method for the time-dependent status table {} " + "should be TableFunction::InterpolationType::Lower", + m_statusTable->getName() ), InputError, getDataContext() ); } diff --git a/src/coreComponents/physicsSolvers/fluidFlow/wells/WellSolverBase.cpp b/src/coreComponents/physicsSolvers/fluidFlow/wells/WellSolverBase.cpp index 2e98c2fbaf2..060ff895e73 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/wells/WellSolverBase.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/wells/WellSolverBase.cpp @@ -169,8 +169,9 @@ void WellSolverBase::initializePostSubGroups() { TableFunction * tableFunction = functionManager.getGroupPointer< TableFunction >( perfStatusTableName[i] ); GEOS_THROW_IF( tableFunction->getInterpolationMethod() != TableFunction::InterpolationType::Lower, - "The interpolation method for the perforation status table " - << tableFunction->getName() << " should be TableFunction::InterpolationType::Lower", + GEOS_FMT( "The interpolation method for the perforation status table {} " + "should be TableFunction::InterpolationType::Lower", + tableFunction->getName() ), InputError, getDataContext() ); } } ); diff --git a/src/coreComponents/physicsSolvers/multiphysics/PoromechanicsSolver.hpp b/src/coreComponents/physicsSolvers/multiphysics/PoromechanicsSolver.hpp index 1428affdb3a..572ffb09363 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/PoromechanicsSolver.hpp +++ b/src/coreComponents/physicsSolvers/multiphysics/PoromechanicsSolver.hpp @@ -152,8 +152,8 @@ class PoromechanicsSolver : public CoupledSolver< FLOW_SOLVER, MECHANICS_SOLVER InputError, this->flowSolver()->getDataContext() ); GEOS_THROW_IF( m_stabilizationType == stabilization::StabilizationType::Local, - this->getWrapperDataContext( viewKeyStruct::stabilizationTypeString() ) << - ": Local stabilization has been temporarily disabled", + GEOS_FMT( "{}: Local stabilization has been temporarily disabled", + this->getWrapperDataContext( viewKeyStruct::stabilizationTypeString() ) ), InputError, this->getWrapperDataContext( viewKeyStruct::stabilizationTypeString() ) ); DomainPartition & domain = this->template getGroupByPath< DomainPartition >( "/Problem/domain" ); diff --git a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/MultiphasePoromechanics_impl.hpp b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/MultiphasePoromechanics_impl.hpp index 6a00810b11c..c9392272f42 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/MultiphasePoromechanics_impl.hpp +++ b/src/coreComponents/physicsSolvers/multiphysics/poromechanicsKernels/MultiphasePoromechanics_impl.hpp @@ -86,8 +86,8 @@ MultiphasePoromechanics( NodeManager const & nodeManager, m_performStressInitialization( performStressInitialization ) { GEOS_ERROR_IF_GT_MSG( m_numComponents, maxNumComponents, - "MultiphasePoromechanics solver allows at most " << - maxNumComponents << " components at the moment" ); + GEOS_FMT( "MultiphasePoromechanics solver allows at most {} components at the moment", + maxNumComponents ) ); // extract fluid constitutive data views { From c36ca7499ca1cbf9655f5a743c66a808df0f7a5b Mon Sep 17 00:00:00 2001 From: "Victor A. P. Magri" Date: Sat, 28 Feb 2026 11:08:09 -0500 Subject: [PATCH 15/30] More GEOS_FMT changes --- .../compositional/functions/CubicEOSPhaseModel_impl.hpp | 7 ++++++- .../compositional/models/NegativeTwoPhaseFlashModel.hpp | 5 +++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/functions/CubicEOSPhaseModel_impl.hpp b/src/coreComponents/constitutive/fluid/multifluid/compositional/functions/CubicEOSPhaseModel_impl.hpp index df65df80704..07feb4d5a7a 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/compositional/functions/CubicEOSPhaseModel_impl.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/compositional/functions/CubicEOSPhaseModel_impl.hpp @@ -494,8 +494,13 @@ computeLogFugacityCoefficients( integer const numComps, // E real64 const expE = ( Z + EOS_TYPE::delta1 * B ) / ( Z + EOS_TYPE::delta2 * B ); real64 const expF = Z - B; +#if defined(GEOS_DEVICE_COMPILE) GEOS_ERROR_IF( expE < MultiFluidConstants::epsilon || expF < MultiFluidConstants::epsilon, - GEOS_FMT( "Cubic EOS failed with exp(E)={} and exp(F)={}", expE, expF )); + "Cubic EOS failed: exp(E) or exp(F) is below epsilon." ); +#else + GEOS_ERROR_IF( expE < MultiFluidConstants::epsilon || expF < MultiFluidConstants::epsilon, + GEOS_FMT( "Cubic EOS failed with exp(E)={} and exp(F)={}", expE, expF ) ); +#endif real64 const E = log( expE ); real64 const F = log( expF ); real64 const G = 1.0 / ( ( EOS_TYPE::delta1 - EOS_TYPE::delta2 ) * B ); diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/models/NegativeTwoPhaseFlashModel.hpp b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/NegativeTwoPhaseFlashModel.hpp index d1fad07db07..9370e92a70c 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/compositional/models/NegativeTwoPhaseFlashModel.hpp +++ b/src/coreComponents/constitutive/fluid/multifluid/compositional/models/NegativeTwoPhaseFlashModel.hpp @@ -166,11 +166,16 @@ class NegativeTwoPhaseFlashModelUpdate final : public FunctionBaseUpdate phaseCompFraction.value[m_liquidIndex], phaseCompFraction.value[m_vapourIndex] ); +#if defined(GEOS_DEVICE_COMPILE) + GEOS_ERROR_IF( !flashStatus, + "Negative two phase flash failed to converge." ); +#else GEOS_ERROR_IF( !flashStatus, GEOS_FMT( "Negative two phase flash failed to converge at pressure {:.5e}, temperature {:.3f} and composition {}.", pressure, temperature, stringutilities::concat( "", compFraction ) ) ); +#endif // Calculate derivatives NegativeTwoPhaseFlash::computeDerivatives( m_numComponents, From 0d48750e586044c52cc5690489670c2f2d70a992 Mon Sep 17 00:00:00 2001 From: "Victor A. P. Magri" Date: Sat, 28 Feb 2026 11:12:24 -0500 Subject: [PATCH 16/30] More GEOS_FMT changes --- src/coreComponents/common/unitTests/testLifoStorage.cpp | 2 +- src/coreComponents/denseLinearAlgebra/unitTests/testUtils.hpp | 2 +- src/coreComponents/linearAlgebra/common/common.hpp | 4 ++-- .../multiscale/mesh/coarsening/ScotchInterface.cpp | 2 +- src/coreComponents/mesh/generators/PTScotchInterface.cpp | 2 +- src/coreComponents/mesh/generators/ParMETISInterface.cpp | 2 +- src/coreComponents/mesh/graphs/ZoltanGraphColoring.cpp | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/coreComponents/common/unitTests/testLifoStorage.cpp b/src/coreComponents/common/unitTests/testLifoStorage.cpp index 0a6ea4b410a..2847756774f 100644 --- a/src/coreComponents/common/unitTests/testLifoStorage.cpp +++ b/src/coreComponents/common/unitTests/testLifoStorage.cpp @@ -31,7 +31,7 @@ #else #define PORTABLE_EXPECT_EQ( L, R ) GEOS_ERROR_IF_NE( L, R ) #define PORTABLE_EXPECT_NEAR( L, R, EPSILON ) GEOS_ERROR_IF_GE_MSG( math::abs( ( L ) -( R ) ), EPSILON, \ - STRINGIZE( L ) " = " << ( L ) << "\n" << STRINGIZE( R ) " = " << ( R ) ); + "Expected " STRINGIZE( L ) " and " STRINGIZE( R ) " to be within EPSILON." ); #endif namespace geos diff --git a/src/coreComponents/denseLinearAlgebra/unitTests/testUtils.hpp b/src/coreComponents/denseLinearAlgebra/unitTests/testUtils.hpp index 44c83edc9f1..9039bd14ce5 100644 --- a/src/coreComponents/denseLinearAlgebra/unitTests/testUtils.hpp +++ b/src/coreComponents/denseLinearAlgebra/unitTests/testUtils.hpp @@ -16,7 +16,7 @@ namespace testing #if defined(GEOS_DEVICE_COMPILE) #define PORTABLE_EXPECT_EQ( L, R ) GEOS_ERROR_IF_NE( L, R ) #define PORTABLE_EXPECT_NEAR( L, R, EPSILON ) GEOS_ERROR_IF_GE_MSG( LvArray::math::abs( ( L ) -( R ) ), EPSILON, \ - STRINGIZE( L ) " = " << ( L ) << "\n" << STRINGIZE( R ) " = " << ( R ) ); + "Expected " STRINGIZE( L ) " and " STRINGIZE( R ) " to be within EPSILON." ); #define PORTABLE_EXPECT_TRUE( value ) GEOS_ERROR_IF( !value, "should be true" ) #define PORTABLE_EXPECT_FALSE( value ) GEOS_ERROR_IF( value, "should be false" ) #else diff --git a/src/coreComponents/linearAlgebra/common/common.hpp b/src/coreComponents/linearAlgebra/common/common.hpp index 54cd03337a7..3b7a60cfa03 100644 --- a/src/coreComponents/linearAlgebra/common/common.hpp +++ b/src/coreComponents/linearAlgebra/common/common.hpp @@ -119,7 +119,7 @@ #define GEOS_LAI_CHECK_ERROR( call ) \ do { \ auto const ierr = call; \ - GEOS_ERROR_IF_NE_MSG( ierr, 0, "Error in call to " << #call ); \ + GEOS_ERROR_IF_NE_MSG( ierr, 0, "Error in call to " #call ); \ } while( false ) /** @@ -129,7 +129,7 @@ #define GEOS_LAI_CHECK_ERROR_NNEG( call ) \ do { \ auto const ierr = call; \ - GEOS_ERROR_IF_GT_MSG( 0, ierr, "Error in call to " << #call ); \ + GEOS_ERROR_IF_GT_MSG( 0, ierr, "Error in call to " #call ); \ } while( false ) namespace geos diff --git a/src/coreComponents/linearAlgebra/multiscale/mesh/coarsening/ScotchInterface.cpp b/src/coreComponents/linearAlgebra/multiscale/mesh/coarsening/ScotchInterface.cpp index e492a109830..f85ca5aee1b 100644 --- a/src/coreComponents/linearAlgebra/multiscale/mesh/coarsening/ScotchInterface.cpp +++ b/src/coreComponents/linearAlgebra/multiscale/mesh/coarsening/ScotchInterface.cpp @@ -28,7 +28,7 @@ static_assert( std::is_same< SCOTCH_Num, int64_t >::value, #define GEOS_SCOTCH_CHECK( call ) \ do { \ auto const ierr = call; \ - GEOS_ERROR_IF_NE_MSG( ierr, 0, "Error in call to:\n" << #call ); \ + GEOS_ERROR_IF_NE_MSG( ierr, 0, "Error in call to:\n" #call ); \ } while( false ) namespace geos diff --git a/src/coreComponents/mesh/generators/PTScotchInterface.cpp b/src/coreComponents/mesh/generators/PTScotchInterface.cpp index 2737c42db70..d07f60d4394 100644 --- a/src/coreComponents/mesh/generators/PTScotchInterface.cpp +++ b/src/coreComponents/mesh/generators/PTScotchInterface.cpp @@ -29,7 +29,7 @@ static_assert( std::is_same< int64_t, SCOTCH_Num >::value, #define GEOS_SCOTCH_CHECK( call ) \ do { \ auto const ierr = call; \ - GEOS_ERROR_IF_NE_MSG( ierr, 0, "Error in call to:\n" << #call ); \ + GEOS_ERROR_IF_NE_MSG( ierr, 0, "Error in call to:\n" #call ); \ } while( false ) namespace geos diff --git a/src/coreComponents/mesh/generators/ParMETISInterface.cpp b/src/coreComponents/mesh/generators/ParMETISInterface.cpp index 4567826b341..d177313f44c 100644 --- a/src/coreComponents/mesh/generators/ParMETISInterface.cpp +++ b/src/coreComponents/mesh/generators/ParMETISInterface.cpp @@ -28,7 +28,7 @@ #define GEOS_PARMETIS_CHECK( call ) \ do { \ auto const ierr = call; \ - GEOS_ERROR_IF_NE_MSG( ierr, METIS_OK, "Error in call to:\n" << #call ); \ + GEOS_ERROR_IF_NE_MSG( ierr, METIS_OK, "Error in call to:\n" #call ); \ } while( false ) namespace geos diff --git a/src/coreComponents/mesh/graphs/ZoltanGraphColoring.cpp b/src/coreComponents/mesh/graphs/ZoltanGraphColoring.cpp index 03fa9d0f5e5..c343e8a7c01 100644 --- a/src/coreComponents/mesh/graphs/ZoltanGraphColoring.cpp +++ b/src/coreComponents/mesh/graphs/ZoltanGraphColoring.cpp @@ -25,7 +25,7 @@ #define GEOS_ZOLTAN_CHECK( call ) \ do { \ auto const ierr = call; \ - GEOS_ERROR_IF_NE_MSG( ierr, ZOLTAN_OK, "Error in call to:\n" << #call ); \ + GEOS_ERROR_IF_NE_MSG( ierr, ZOLTAN_OK, "Error in call to:\n" #call ); \ } while( false ) namespace geos From 2aaa3ef3b475f0f0f02505df48b1af6d9e095232 Mon Sep 17 00:00:00 2001 From: "Victor A. P. Magri" Date: Sat, 28 Feb 2026 11:16:43 -0500 Subject: [PATCH 17/30] More GEOS_FMT changes --- .../interfaces/direct/SuperLUDist.cpp | 6 ++++-- .../interfaces/petsc/PetscPreconditioner.cpp | 3 ++- .../trilinos/TrilinosPreconditioner.cpp | 18 ++++++++++++------ 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/src/coreComponents/linearAlgebra/interfaces/direct/SuperLUDist.cpp b/src/coreComponents/linearAlgebra/interfaces/direct/SuperLUDist.cpp index c7da68840e3..2171dab3bdb 100644 --- a/src/coreComponents/linearAlgebra/interfaces/direct/SuperLUDist.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/direct/SuperLUDist.cpp @@ -67,7 +67,8 @@ colperm_t const & getColPermType( LinearSolverParameters::Direct::ColPerm const { LinearSolverParameters::Direct::ColPerm::parmetis, PARMETIS }, }; - GEOS_LAI_ASSERT_MSG( optionMap.count( value ) > 0, "Unsupported SuperLU_Dist columns permutation option: " << value ); + GEOS_LAI_ASSERT_MSG( optionMap.count( value ) > 0, + GEOS_FMT( "Unsupported SuperLU_Dist columns permutation option: {}", value ) ); return optionMap.at( value ); } @@ -84,7 +85,8 @@ rowperm_t const & getRowPermType( LinearSolverParameters::Direct::RowPerm const { LinearSolverParameters::Direct::RowPerm::mc64, LargeDiag_MC64 }, }; - GEOS_LAI_ASSERT_MSG( optionMap.count( value ) > 0, "Unsupported SuperLU_Dist rows permutation option: " << value ); + GEOS_LAI_ASSERT_MSG( optionMap.count( value ) > 0, + GEOS_FMT( "Unsupported SuperLU_Dist rows permutation option: {}", value ) ); return optionMap.at( value ); } diff --git a/src/coreComponents/linearAlgebra/interfaces/petsc/PetscPreconditioner.cpp b/src/coreComponents/linearAlgebra/interfaces/petsc/PetscPreconditioner.cpp index 5c73133d7a4..147734ba40e 100644 --- a/src/coreComponents/linearAlgebra/interfaces/petsc/PetscPreconditioner.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/petsc/PetscPreconditioner.cpp @@ -71,7 +71,8 @@ PCType getPetscSmootherType( LinearSolverParameters::PreconditionerType const & { LinearSolverParameters::PreconditionerType::l1sgs, PCSOR }, }; - GEOS_LAI_ASSERT_MSG( typeMap.count( type ) > 0, "Unsupported Petsc smoother option: " << type ); + GEOS_LAI_ASSERT_MSG( typeMap.count( type ) > 0, + GEOS_FMT( "Unsupported Petsc smoother option: {}", type ) ); return typeMap.at( type ); } diff --git a/src/coreComponents/linearAlgebra/interfaces/trilinos/TrilinosPreconditioner.cpp b/src/coreComponents/linearAlgebra/interfaces/trilinos/TrilinosPreconditioner.cpp index 3d261c10a7c..fa3aa18a482 100644 --- a/src/coreComponents/linearAlgebra/interfaces/trilinos/TrilinosPreconditioner.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/trilinos/TrilinosPreconditioner.cpp @@ -88,7 +88,8 @@ string getMLCycleType( LinearSolverParameters::AMG::CycleType const & value ) { LinearSolverParameters::AMG::CycleType::W, "MGW" }, }; - GEOS_LAI_ASSERT_MSG( optionMap.count( value ) > 0, "Unsupported Trilinos/ML cycle option: " << value ); + GEOS_LAI_ASSERT_MSG( optionMap.count( value ) > 0, + GEOS_FMT( "Unsupported Trilinos/ML cycle option: {}", value ) ); return optionMap.at( value ); } @@ -109,7 +110,8 @@ string getMLSmootherType( LinearSolverParameters::AMG::SmootherType const & valu { LinearSolverParameters::AMG::SmootherType::ilut, "ILUT" }, }; - GEOS_LAI_ASSERT_MSG( optionMap.count( value ) > 0, "Unsupported Trilinos/ML smoother option: " << value ); + GEOS_LAI_ASSERT_MSG( optionMap.count( value ) > 0, + GEOS_FMT( "Unsupported Trilinos/ML smoother option: {}", value ) ); return optionMap.at( value ); } @@ -128,7 +130,8 @@ string getMLCoarseType( LinearSolverParameters::AMG::CoarseType const & value ) { LinearSolverParameters::AMG::CoarseType::direct, "Amesos-KLU"}, }; - GEOS_LAI_ASSERT_MSG( optionMap.count( value ) > 0, "Unsupported Trilinos/ML coarse solver option: " << value ); + GEOS_LAI_ASSERT_MSG( optionMap.count( value ) > 0, + GEOS_FMT( "Unsupported Trilinos/ML coarse solver option: {}", value ) ); return optionMap.at( value ); } @@ -141,7 +144,8 @@ string getMLPreOrPostSmoothingType( LinearSolverParameters::AMG::PreOrPost const { LinearSolverParameters::AMG::PreOrPost::both, "both" } }; - GEOS_LAI_ASSERT_MSG( optionMap.count( value ) > 0, "Unsupported Trilinos/ML smoothing direction option: " << value ); + GEOS_LAI_ASSERT_MSG( optionMap.count( value ) > 0, + GEOS_FMT( "Unsupported Trilinos/ML smoothing direction option: {}", value ) ); return optionMap.at( value ); } @@ -200,7 +204,8 @@ Ifpack::EPrecType getIfpackPrecondType( LinearSolverParameters::PreconditionerTy { LinearSolverParameters::PreconditionerType::direct, Ifpack::AMESOS } }; - GEOS_LAI_ASSERT_MSG( typeMap.count( type ) > 0, "Unsupported Trilinos/Ifpack preconditioner option: " << type ); + GEOS_LAI_ASSERT_MSG( typeMap.count( type ) > 0, + GEOS_FMT( "Unsupported Trilinos/Ifpack preconditioner option: {}", type ) ); return typeMap.at( type ); } string getIfpackRelaxationType( LinearSolverParameters::PreconditionerType const & type ) @@ -215,7 +220,8 @@ string getIfpackRelaxationType( LinearSolverParameters::PreconditionerType const { LinearSolverParameters::PreconditionerType::l1sgs, "symmetric Gauss-Seidel" }, }; - GEOS_LAI_ASSERT_MSG( typeMap.count( type ) > 0, "Unsupported Trilinos/Ifpack preconditioner option: " << type ); + GEOS_LAI_ASSERT_MSG( typeMap.count( type ) > 0, + GEOS_FMT( "Unsupported Trilinos/Ifpack preconditioner option: {}", type ) ); return typeMap.at( type ); } From 38d9c19b5b6713762ebb90d6f4a6bd0aee9ca5f8 Mon Sep 17 00:00:00 2001 From: "Victor A. P. Magri" Date: Sat, 28 Feb 2026 11:29:37 -0500 Subject: [PATCH 18/30] More GEOS_FMT changes --- src/coreComponents/mesh/utilities/ComputationalGeometry.hpp | 4 ++++ .../physicsSolvers/fluidFlow/CompositionalMultiphaseBase.cpp | 1 + .../fluidFlow/CompositionalMultiphaseHybridFVM.cpp | 1 + .../physicsSolvers/fluidFlow/ImmiscibleMultiphaseFlow.cpp | 1 + .../fluidFlow/ReactiveCompositionalMultiphaseOBL.cpp | 1 + .../physicsSolvers/fluidFlow/SinglePhaseBase.cpp | 1 + .../physicsSolvers/fluidFlow/SinglePhaseHybridFVM.cpp | 1 + .../physicsSolvers/fluidFlow/SourceFluxStatistics.cpp | 1 + .../solidMechanics/SolidMechanicsLagrangianFEM.cpp | 1 + 9 files changed, 12 insertions(+) diff --git a/src/coreComponents/mesh/utilities/ComputationalGeometry.hpp b/src/coreComponents/mesh/utilities/ComputationalGeometry.hpp index d1bdb99542c..da4e4746bdb 100644 --- a/src/coreComponents/mesh/utilities/ComputationalGeometry.hpp +++ b/src/coreComponents/mesh/utilities/ComputationalGeometry.hpp @@ -274,7 +274,11 @@ real64 centroid_3DPolygon( arraySlice1d< localIndex const > const pointsIndices, { GEOS_LOG_RANK( "Points: " << points[ pointsIndices[ a ] ] << " " << pointsIndices[ a ] ); } +#if defined(GEOS_DEVICE_COMPILE) + GEOS_ERROR( "Negative area found" ); +#else GEOS_ERROR( GEOS_FMT( "Negative area found : {}", area ) ); +#endif } else { diff --git a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseBase.cpp b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseBase.cpp index 8e867b62610..8d0900adf38 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseBase.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseBase.cpp @@ -2068,6 +2068,7 @@ bool CompositionalMultiphaseBase::validateDirichletBC( DomainPartition & domain, fsManager.forSubGroups< EquilibriumInitialCondition >( [&] ( EquilibriumInitialCondition const & bc ) { string_array const & componentNames = bc.getComponentNames(); + GEOS_UNUSED_VAR( componentNames ); GEOS_WARNING( BCMessage::conflictingComposition( comp, componentNames[comp], regionName, subRegionName, setName, flow::globalCompFraction::key() ) ); diff --git a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseHybridFVM.cpp b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseHybridFVM.cpp index e6412fd2c81..278bb760907 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseHybridFVM.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseHybridFVM.cpp @@ -227,6 +227,7 @@ void CompositionalMultiphaseHybridFVM::initializePostInitialConditionsPreSubGrou fsManager.forSubGroups< AquiferBoundaryCondition >( [&] ( AquiferBoundaryCondition const & bc ) { + GEOS_UNUSED_VAR( bc ); GEOS_WARNING( GEOS_FMT( "An aquifer boundary condition named {} was requested in the XML file.\n" "This type of boundary condition is not yet supported by CompositionalMultiphaseHybridFVM " "and will be ignored", diff --git a/src/coreComponents/physicsSolvers/fluidFlow/ImmiscibleMultiphaseFlow.cpp b/src/coreComponents/physicsSolvers/fluidFlow/ImmiscibleMultiphaseFlow.cpp index b1dc1a08fb9..6bd4ead9e6b 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/ImmiscibleMultiphaseFlow.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/ImmiscibleMultiphaseFlow.cpp @@ -742,6 +742,7 @@ bool ImmiscibleMultiphaseFlow::validateDirichletBC( DomainPartition & domain, fsManager.forSubGroups< EquilibriumInitialCondition >( [&] ( EquilibriumInitialCondition const & bc ) { string_array const & componentNames = bc.getComponentNames(); + GEOS_UNUSED_VAR( componentNames ); GEOS_WARNING( BCMessage::conflictingComposition( comp, componentNames[comp], regionName, subRegionName, setName, fields::immiscibleMultiphaseFlow::phaseVolumeFraction::key() ) diff --git a/src/coreComponents/physicsSolvers/fluidFlow/ReactiveCompositionalMultiphaseOBL.cpp b/src/coreComponents/physicsSolvers/fluidFlow/ReactiveCompositionalMultiphaseOBL.cpp index 82c15573fbd..29bc7397087 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/ReactiveCompositionalMultiphaseOBL.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/ReactiveCompositionalMultiphaseOBL.cpp @@ -980,6 +980,7 @@ bool ReactiveCompositionalMultiphaseOBL::validateDirichletBC( DomainPartition & fsManager.forSubGroups< EquilibriumInitialCondition >( [&] ( EquilibriumInitialCondition const & bc ) { string_array const & componentNames = bc.getComponentNames(); + GEOS_UNUSED_VAR( componentNames ); GEOS_WARNING( BCMessage::conflictingComposition( comp, componentNames[comp], regionName, subRegionName, setName, flow::globalCompFraction::key() ), getDataContext() ); diff --git a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseBase.cpp b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseBase.cpp index 3cf39eb373e..9743d408f33 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseBase.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseBase.cpp @@ -1027,6 +1027,7 @@ void SinglePhaseBase::applySourceFluxBC( real64 const time_n, ElementSubRegionBase & subRegion, string const & ) { + GEOS_UNUSED_VAR( setName ); if( targetSet.size() == 0 ) { return; diff --git a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseHybridFVM.cpp b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseHybridFVM.cpp index c4550149394..3c96ad83984 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseHybridFVM.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseHybridFVM.cpp @@ -144,6 +144,7 @@ void SinglePhaseHybridFVM::initializePostInitialConditionsPreSubGroups() FieldSpecificationManager & fsManager = FieldSpecificationManager::getInstance(); fsManager.forSubGroups< AquiferBoundaryCondition >( [&] ( AquiferBoundaryCondition const & bc ) { + GEOS_UNUSED_VAR( bc ); GEOS_WARNING( "The aquifer boundary condition was requested in the XML file. \n" "This type of boundary condition is not yet supported by SinglePhaseHybridFVM and will be ignored", getDataContext(), bc.getDataContext() ); diff --git a/src/coreComponents/physicsSolvers/fluidFlow/SourceFluxStatistics.cpp b/src/coreComponents/physicsSolvers/fluidFlow/SourceFluxStatistics.cpp index 77c7a48f690..26f734efd64 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/SourceFluxStatistics.cpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/SourceFluxStatistics.cpp @@ -200,6 +200,7 @@ void SourceFluxStatsAggregator::outputStatsToLog( bool logLevelActive, string_view fluxesStr, TableData const & statsData ) { + GEOS_UNUSED_VAR( statsData ); if( logLevelActive && MpiWrapper::commRank() == 0 ) { string const title = GEOS_FMT( "{}, flux statistics for: {}", diff --git a/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsLagrangianFEM.cpp b/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsLagrangianFEM.cpp index dcf51ae7c19..c642da4c7ea 100644 --- a/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsLagrangianFEM.cpp +++ b/src/coreComponents/physicsSolvers/solidMechanics/SolidMechanicsLagrangianFEM.cpp @@ -750,6 +750,7 @@ void SolidMechanicsLagrangianFEM::applyDisplacementBCImplicit( real64 const time "\nWarning!" "\nThere is no displacement boundary condition applied to this problem in the {} direction. \n" "The problem may be ill-posed.\n"; + GEOS_UNUSED_VAR( bcLogMessage ); GEOS_WARNING_IF( isDisplacementBCAppliedGlobal[0] == 0, // target set is empty GEOS_FMT( bcLogMessage, 'x' ), getDataContext() ); From dc81a503fbe63ebba9d45e500ba1f462bae9a55a Mon Sep 17 00:00:00 2001 From: "Victor A. P. Magri" Date: Sat, 28 Feb 2026 12:42:48 -0500 Subject: [PATCH 19/30] More GEOS_FMT changes --- src/coreComponents/physicsSolvers/multiphysics/CoupledSolver.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/coreComponents/physicsSolvers/multiphysics/CoupledSolver.hpp b/src/coreComponents/physicsSolvers/multiphysics/CoupledSolver.hpp index 3c04dedfef8..c5cddf6acd1 100644 --- a/src/coreComponents/physicsSolvers/multiphysics/CoupledSolver.hpp +++ b/src/coreComponents/physicsSolvers/multiphysics/CoupledSolver.hpp @@ -77,6 +77,7 @@ class CoupledSolver : public PhysicsSolverBase string const & solverWrapperKey, string const & solverType ) { + GEOS_UNUSED_VAR( solverWrapperKey ); string_array availableSolvers; this->getParent().template forSubGroups< T >( [&]( T & group ) From 1a592f05df4ab78ff7261b29d0cd1e8720e01278 Mon Sep 17 00:00:00 2001 From: "Victor A. P. Magri" Date: Sat, 28 Feb 2026 21:50:52 -0500 Subject: [PATCH 20/30] Update TPL tag --- .devcontainer/devcontainer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 2c080fe20f7..4d3c5dce3bd 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -2,7 +2,7 @@ "build": { "dockerfile": "Dockerfile", "args": { - "GEOS_TPL_TAG": "336-919" + "GEOS_TPL_TAG": "340-926" } }, "runArgs": [ From 0d2e21067ae0ed976ac9e7a427ffb0b60e523622 Mon Sep 17 00:00:00 2001 From: "Victor A. P. Magri" Date: Sun, 1 Mar 2026 00:17:37 -0500 Subject: [PATCH 21/30] Fixes --- .../interfaces/hypre/HypreKernels.hpp | 8 ++-- .../interfaces/hypre/HypreMatrix.cpp | 38 +++++++++---------- 2 files changed, 21 insertions(+), 25 deletions(-) diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreKernels.hpp b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreKernels.hpp index fef104628fe..846fc66084a 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreKernels.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreKernels.hpp @@ -178,18 +178,18 @@ void addMatrixEntries( hypre_ParCSRMatrix const * const src, GEOS_LAI_ASSERT( src != nullptr ); GEOS_LAI_ASSERT( dst != nullptr ); KERNEL::launch( hypre_ParCSRMatrixDiag( src ), - [] GEOS_HOST_DEVICE ( auto x ){ return x; }, + [] GEOS_HOST_DEVICE ( HYPRE_Int const x ){ return x; }, hypre_ParCSRMatrixDiag( dst ), - [] GEOS_HOST_DEVICE ( auto x ){ return x; }, + [] GEOS_HOST_DEVICE ( HYPRE_Int const x ){ return x; }, scale ); if( hypre_CSRMatrixNumCols( hypre_ParCSRMatrixOffd( dst ) ) > 0 ) { HYPRE_BigInt const * const src_colmap = hypre::getOffdColumnMap( src ); HYPRE_BigInt const * const dst_colmap = hypre::getOffdColumnMap( dst ); KERNEL::launch( hypre_ParCSRMatrixOffd( src ), - [src_colmap] GEOS_HOST_DEVICE ( auto i ){ return src_colmap[i]; }, + [src_colmap] GEOS_HOST_DEVICE ( HYPRE_Int const i ){ return src_colmap[i]; }, hypre_ParCSRMatrixOffd( dst ), - [dst_colmap] GEOS_HOST_DEVICE ( auto i ){ return dst_colmap[i]; }, + [dst_colmap] GEOS_HOST_DEVICE ( HYPRE_Int const i ){ return dst_colmap[i]; }, scale ); } } diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreMatrix.cpp b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreMatrix.cpp index 3457a82452f..1d23690e0a1 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreMatrix.cpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreMatrix.cpp @@ -173,11 +173,11 @@ void HypreMatrix::create( CRSMatrixView< real64 const, globalIndex const > const array1d< HYPRE_Int > offsets; offsets.resizeWithoutInitializationOrDestruction( hypre::memorySpace, localMatrix.numRows() ); + auto const rowsView = rows.toView(); + auto const sizesView = sizes.toView(); + auto const offsetsView = offsets.toView(); forAll< hypre::execPolicy >( localMatrix.numRows(), - [localMatrix, rankOffset, - rowsView = rows.toView(), - sizesView = sizes.toView(), - offsetsView = offsets.toView()] GEOS_HYPRE_DEVICE ( localIndex const row ) + [localMatrix, rankOffset, rowsView, sizesView, offsetsView] GEOS_HYPRE_DEVICE ( localIndex const row ) { rowsView[row] = LvArray::integerConversion< HYPRE_BigInt >( row + rankOffset ); sizesView[row] = LvArray::integerConversion< HYPRE_Int >( localMatrix.numNonZeros( row ) ); @@ -841,29 +841,29 @@ void HypreMatrix::rescaleRows( arrayView1d< globalIndex const > const & rowIndic case RowSumType::SumValues: { hypre::rescaleMatrixRows( unwrapped(), rowIndices, - [] GEOS_HYPRE_DEVICE ( auto x ){ return x; }, - [] GEOS_HYPRE_DEVICE ( auto a, auto b ){ return a + b; } ); + [] GEOS_HYPRE_DEVICE ( HYPRE_Real const x ){ return x; }, + [] GEOS_HYPRE_DEVICE ( HYPRE_Real const a, HYPRE_Real const b ){ return a + b; } ); break; } case RowSumType::SumAbsValues: { hypre::rescaleMatrixRows( unwrapped(), rowIndices, - [] GEOS_HYPRE_DEVICE ( auto x ){ return LvArray::math::abs( x ); }, - [] GEOS_HYPRE_DEVICE ( auto a, auto b ){ return a + b; } ); + [] GEOS_HYPRE_DEVICE ( HYPRE_Real const x ){ return LvArray::math::abs( x ); }, + [] GEOS_HYPRE_DEVICE ( HYPRE_Real const a, HYPRE_Real const b ){ return a + b; } ); break; } case RowSumType::SumSqrValues: { hypre::rescaleMatrixRows( unwrapped(), rowIndices, - [] GEOS_HYPRE_DEVICE ( auto x ){ return LvArray::math::square( x ); }, - [] GEOS_HYPRE_DEVICE ( auto a, auto b ){ return a + b; } ); + [] GEOS_HYPRE_DEVICE ( HYPRE_Real const x ){ return LvArray::math::square( x ); }, + [] GEOS_HYPRE_DEVICE ( HYPRE_Real const a, HYPRE_Real const b ){ return a + b; } ); break; } case RowSumType::MaxAbsValues: { hypre::rescaleMatrixRows( unwrapped(), rowIndices, - [] GEOS_HYPRE_DEVICE ( auto x ){ return LvArray::math::abs( x ); }, - [] GEOS_HYPRE_DEVICE ( auto a, auto b ){ return LvArray::math::max( a, b ); } ); + [] GEOS_HYPRE_DEVICE ( HYPRE_Real const x ){ return LvArray::math::abs( x ); }, + [] GEOS_HYPRE_DEVICE ( HYPRE_Real const a, HYPRE_Real const b ){ return LvArray::math::max( a, b ); } ); break; } } @@ -889,19 +889,15 @@ void HypreMatrix::separateComponentFilter( HypreMatrix & dst, HYPRE_BigInt const * const colMap = hypre::getOffdColumnMap( unwrapped() ); - auto const getComponent = [dofsPerNode] GEOS_HYPRE_DEVICE ( auto const i ) - { - return LvArray::integerConversion< integer >( i % dofsPerNode ); - }; - - forAll< hypre::execPolicy >( numLocalRows(), [diag, offd, tempMatView, getComponent, + forAll< hypre::execPolicy >( numLocalRows(), [diag, offd, tempMatView, dofsPerNode, firstLocalRow, firstLocalCol, colMap] GEOS_HYPRE_DEVICE ( localIndex const localRow ) { - integer const rowComponent = getComponent( firstLocalRow + localRow ); + integer const rowComponent = + LvArray::integerConversion< integer >( ( firstLocalRow + localRow ) % dofsPerNode ); for( HYPRE_Int k = diag.rowptr[localRow]; k < diag.rowptr[localRow + 1]; ++k ) { HYPRE_BigInt const globalCol = firstLocalCol + diag.colind[k]; - if( getComponent( globalCol ) == rowComponent ) + if( LvArray::integerConversion< integer >( globalCol % dofsPerNode ) == rowComponent ) { tempMatView.insertNonZero( localRow, globalCol, diag.values[k] ); } @@ -911,7 +907,7 @@ void HypreMatrix::separateComponentFilter( HypreMatrix & dst, for( HYPRE_Int k = offd.rowptr[localRow]; k < offd.rowptr[localRow + 1]; ++k ) { HYPRE_BigInt const globalCol = colMap[offd.colind[k]]; - if( getComponent( globalCol ) == rowComponent ) + if( LvArray::integerConversion< integer >( globalCol % dofsPerNode ) == rowComponent ) { tempMatView.insertNonZero( localRow, globalCol, offd.values[k] ); } From ec9ca4624c8aaf4bcab038f84e7cabb7b569e0c3 Mon Sep 17 00:00:00 2001 From: "Victor A. P. Magri" Date: Sun, 1 Mar 2026 12:10:54 -0500 Subject: [PATCH 22/30] Fix std::filesystem CI issue --- .../integrationTests/solverStatisticsTests/testSolverStats.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreComponents/integrationTests/solverStatisticsTests/testSolverStats.cpp b/src/coreComponents/integrationTests/solverStatisticsTests/testSolverStats.cpp index 4cd3d1a5c75..7247a45a722 100644 --- a/src/coreComponents/integrationTests/solverStatisticsTests/testSolverStats.cpp +++ b/src/coreComponents/integrationTests/solverStatisticsTests/testSolverStats.cpp @@ -243,7 +243,7 @@ TEST( testSolverStats, testOutputFiles ) if( !std::filesystem::exists( filename )) { GEOS_ERROR( GEOS_FMT( "Error: File '{}' does not exist!", filename ) ); - GEOS_ERROR( GEOS_FMT( "Current directory: {}", std::filesystem::current_path() ) ); + GEOS_ERROR( GEOS_FMT( "Current directory: {}", std::filesystem::current_path().string() ) ); return false; } From 24355a3c6b2b8526a2e240c8b296aa29c71a5e3b Mon Sep 17 00:00:00 2001 From: "Victor A. P. Magri" Date: Sun, 1 Mar 2026 12:36:29 -0500 Subject: [PATCH 23/30] Fix regression --- .../dataRepositoryTests/testGroupPath.cpp | 40 ++++++++++++------- 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/src/coreComponents/integrationTests/dataRepositoryTests/testGroupPath.cpp b/src/coreComponents/integrationTests/dataRepositoryTests/testGroupPath.cpp index 49f1c45bc40..c177254e825 100644 --- a/src/coreComponents/integrationTests/dataRepositoryTests/testGroupPath.cpp +++ b/src/coreComponents/integrationTests/dataRepositoryTests/testGroupPath.cpp @@ -107,20 +107,32 @@ TEST( testGroupPath, testGlobalPaths ) } catch( geos::Exception & e ) { - static constexpr auto expectedMsg = "***** Error cause: child == nullptr\n" - "***** Rank 0\n" - "***** Message from Mesh (CodeIncludedXML0, l.10):\n" - "No child named mesh2 found.\n" - "The children of Mesh are: { mesh1 }"; - // checks if the exception contains the expected message - std::ostringstream stream; - geos::ErrorLogger::formatMsgForLog( ErrorLogger::global().getCurrentExceptionMsg(), stream ); - GEOS_ERROR_IF_EQ_MSG( string( e.what() ).find( expectedMsg ), string::npos, - GEOS_FMT( "The error message was not containing the expected sequence.\n" - " Error message :\n{}" - " expected sequence :\n{}", - e.what(), - expectedMsg ) ); + string const errorMsg = e.what(); + + // Check only stable error-message parts; exact formatting can vary (quotes around child name, list rendering, stack depth). + auto const assertContains = [&]( string const & expected ) + { + GEOS_ERROR_IF_EQ_MSG( errorMsg.find( expected ), string::npos, + GEOS_FMT( "The error message was missing an expected token.\n" + " Error message :\n{}" + " expected token :\n{}", + errorMsg, + expected ) ); + }; + + assertContains( "***** Error cause: child == nullptr" ); + assertContains( "***** Message from Mesh (CodeIncludedXML0, l.10):" ); + assertContains( "The children of Mesh are:" ); + assertContains( "mesh1" ); + + bool const hasMissingChildMsg = + ( errorMsg.find( "No child named mesh2 found." ) != string::npos ) || + ( errorMsg.find( "No child named 'mesh2' found." ) != string::npos ); + + GEOS_ERROR_IF_EQ_MSG( hasMissingChildMsg, false, + GEOS_FMT( "The error message was not containing any expected missing-child phrase.\n" + " Error message :\n{}", + errorMsg ) ); trowHappened = true; } // checks if the exception has been thrown as expected From 427b39d4fe25b70c58893865b78c6b528b66f3da Mon Sep 17 00:00:00 2001 From: "Victor A. P. Magri" Date: Sun, 1 Mar 2026 12:51:59 -0500 Subject: [PATCH 24/30] Fix doxygen warning --- .../linearAlgebra/interfaces/hypre/HypreUtils.hpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreUtils.hpp b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreUtils.hpp index a786514bb5f..731f1dcbc11 100644 --- a/src/coreComponents/linearAlgebra/interfaces/hypre/HypreUtils.hpp +++ b/src/coreComponents/linearAlgebra/interfaces/hypre/HypreUtils.hpp @@ -29,6 +29,10 @@ #include #include +/** + * @def GEOS_HYPRE_DEVICE + * @brief Host/device annotation used by hypre wrappers. + */ #define GEOS_HYPRE_DEVICE GEOS_HOST_DEVICE namespace geos @@ -157,8 +161,9 @@ inline void checkDeviceErrors( char const * msg, char const * file, int const li } /** - * @brief Check for previous device errors and report with line information. - * @param msg custom message to add + * @def GEOS_HYPRE_CHECK_DEVICE_ERRORS + * @brief Check for previous device errors and report with file/line information. + * @param msg Custom message to add. */ #define GEOS_HYPRE_CHECK_DEVICE_ERRORS( msg ) ::geos::hypre::checkDeviceErrors( msg, __FILE__, __LINE__ ) From 6c5293a283b54e2ded94e52a5ed6ad79db7af43d Mon Sep 17 00:00:00 2001 From: "Victor A. P. Magri" Date: Sun, 1 Mar 2026 13:03:25 -0500 Subject: [PATCH 25/30] Fix code style --- .../codingUtilities/RTTypes.cpp | 2 +- src/coreComponents/common/format/Format.hpp | 4 +-- .../common/format/table/TableFormatter.cpp | 2 +- .../common/initializeEnvironment.cpp | 2 +- src/coreComponents/common/logger/Logger.hpp | 30 +++++++++---------- .../multifluid/blackOil/BlackOilFluid.cpp | 2 +- .../parameters/BrineSalinity.cpp | 2 +- .../timeHistory/HistoryCollectionBase.cpp | 6 ++-- 8 files changed, 25 insertions(+), 25 deletions(-) diff --git a/src/coreComponents/codingUtilities/RTTypes.cpp b/src/coreComponents/codingUtilities/RTTypes.cpp index 803473f45ab..d95ee701695 100644 --- a/src/coreComponents/codingUtilities/RTTypes.cpp +++ b/src/coreComponents/codingUtilities/RTTypes.cpp @@ -136,7 +136,7 @@ Regex constructArrayRegex( string_view subPattern, string_view description, inte // finish by the original description GEOS_ERROR_IF( !stringutilities::startsWith( description, "Input value must " ), GEOS_FMT( "Description '{}' must start with 'Input value must ' to call constructArrayRegex() on it.", - description ) ); + description ) ); arrayDesc << description.substr( description.find( " must " ) ); } diff --git a/src/coreComponents/common/format/Format.hpp b/src/coreComponents/common/format/Format.hpp index cb5c2c4b290..e624dea1d65 100644 --- a/src/coreComponents/common/format/Format.hpp +++ b/src/coreComponents/common/format/Format.hpp @@ -157,11 +157,11 @@ namespace geos::format template< class T > inline std::string toStringForFmt( T const & v ) { - if constexpr( std::is_convertible_v< T, std::string > ) + if constexpr ( std::is_convertible_v< T, std::string > ) { return std::string( v ); } - else if constexpr( std::is_convertible_v< T, std::string_view > ) + else if constexpr ( std::is_convertible_v< T, std::string_view > ) { return std::string( std::string_view( v ) ); } diff --git a/src/coreComponents/common/format/table/TableFormatter.cpp b/src/coreComponents/common/format/table/TableFormatter.cpp index f3e6faf9be2..2e5fd79d1d9 100644 --- a/src/coreComponents/common/format/table/TableFormatter.cpp +++ b/src/coreComponents/common/format/table/TableFormatter.cpp @@ -99,7 +99,7 @@ void toStream( std::ostream & outputStream, string_view content, string_view str GEOS_WARNING( GEOS_FMT( "Error while writing to '{}':\n{}", streamName, msgs ) ); } // TODO: remove after implementing GEOS_ERROR for HIP - GEOS_UNUSED_VAR(streamName); + GEOS_UNUSED_VAR( streamName ); } void TableFormatter::toStreamImpl( std::ostream & outputStream, string_view content ) const diff --git a/src/coreComponents/common/initializeEnvironment.cpp b/src/coreComponents/common/initializeEnvironment.cpp index de97d357332..f08ad7582c2 100644 --- a/src/coreComponents/common/initializeEnvironment.cpp +++ b/src/coreComponents/common/initializeEnvironment.cpp @@ -220,7 +220,7 @@ void setupCaliper( cali::ConfigManager & caliperManager, { caliperManager.add( commandLineOptions.timerOutput.c_str() ); GEOS_ERROR_IF( caliperManager.error(), - GEOS_FMT( "Caliper config error: {}", caliperManager.error_msg() ) ); + GEOS_FMT( "Caliper config error: {}", caliperManager.error_msg() ) ); caliperManager.start(); #if defined( GEOS_USE_ADIAK ) diff --git a/src/coreComponents/common/logger/Logger.hpp b/src/coreComponents/common/logger/Logger.hpp index 3c28b1d7767..b23ba87a39d 100644 --- a/src/coreComponents/common/logger/Logger.hpp +++ b/src/coreComponents/common/logger/Logger.hpp @@ -192,16 +192,16 @@ GEOS_UNUSED_VAR( GEOS_DETAIL_FIRST_ARG( __VA_ARGS__ ) ); \ constexpr char const * formatString = "***** ERROR\n" \ "***** LOCATION" LOCATION "\n" \ - "***** BLOCK: [%u, %u, %u]\n" \ - "***** THREAD: [%u, %u, %u]\n" \ - "***** %s\n" \ - "***** %s\n\n"; \ + "***** BLOCK: [%u, %u, %u]\n" \ + "***** THREAD: [%u, %u, %u]\n" \ + "***** %s\n" \ + "***** %s\n\n"; \ printf( formatString, \ blockIdx.x, blockIdx.y, blockIdx.z, \ threadIdx.x, threadIdx.y, threadIdx.z, \ STRINGIZE( CAUSE_MESSAGE ), \ STRINGIZE( GEOS_DETAIL_FIRST_ARG( __VA_ARGS__ ) ) \ - ); \ + ); \ asm volatile ( "s_trap 2" ); \ } \ } while( false ) @@ -282,16 +282,16 @@ __geosNullStream << MSG; \ static char const formatString[] = "***** ERROR\n" \ "***** LOCATION" LOCATION "\n" \ - "***** BLOCK: [%u, %u, %u]\n" \ - "***** THREAD: [%u, %u, %u]\n" \ - "***** %s\n" \ - "***** %s\n\n"; \ + "***** BLOCK: [%u, %u, %u]\n" \ + "***** THREAD: [%u, %u, %u]\n" \ + "***** %s\n" \ + "***** %s\n\n"; \ printf( formatString, \ blockIdx.x, blockIdx.y, blockIdx.z, \ threadIdx.x, threadIdx.y, threadIdx.z, \ STRINGIZE( CAUSE_MESSAGE ), \ STRINGIZE( GEOS_DETAIL_FIRST_ARG( __VA_ARGS__ ) ) \ - ); \ + ); \ asm volatile ( "s_trap 2" ); \ } \ } while( false ) @@ -370,16 +370,16 @@ { \ static char const formatString[] = "***** WARNING\n" \ "***** LOCATION" LOCATION "\n" \ - "***** BLOCK: [%u, %u, %u]\n" \ - "***** THREAD: [%u, %u, %u]\n" \ - "***** %s\n" \ - "***** %s\n\n"; \ + "***** BLOCK: [%u, %u, %u]\n" \ + "***** THREAD: [%u, %u, %u]\n" \ + "***** %s\n" \ + "***** %s\n\n"; \ printf( formatString, \ blockIdx.x, blockIdx.y, blockIdx.z, \ threadIdx.x, threadIdx.y, threadIdx.z, \ STRINGIZE( CAUSE_MESSAGE ), \ STRINGIZE( GEOS_DETAIL_FIRST_ARG( __VA_ARGS__ ) ) \ - ); \ + ); \ asm volatile ( "s_trap 2" ); \ } \ } while( false ) diff --git a/src/coreComponents/constitutive/fluid/multifluid/blackOil/BlackOilFluid.cpp b/src/coreComponents/constitutive/fluid/multifluid/blackOil/BlackOilFluid.cpp index 23eb2d77d3b..5e63887f575 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/blackOil/BlackOilFluid.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/blackOil/BlackOilFluid.cpp @@ -482,7 +482,7 @@ void BlackOilFluid::checkTableConsistency() const } // Needed to remove compilation warnings in the HIP build - GEOS_UNUSED_VAR(PT::OIL); + GEOS_UNUSED_VAR( PT::OIL ); } BlackOilFluid::KernelWrapper:: diff --git a/src/coreComponents/constitutive/fluid/multifluid/compositional/parameters/BrineSalinity.cpp b/src/coreComponents/constitutive/fluid/multifluid/compositional/parameters/BrineSalinity.cpp index 5683396899f..d5f9f054136 100644 --- a/src/coreComponents/constitutive/fluid/multifluid/compositional/parameters/BrineSalinity.cpp +++ b/src/coreComponents/constitutive/fluid/multifluid/compositional/parameters/BrineSalinity.cpp @@ -61,7 +61,7 @@ void BrineSalinity::registerParametersImpl( MultiFluidBase * fluid ) setDescription( "The molar weight for the salt component" ); } -void BrineSalinity::postInputInitializationImpl( MultiFluidBase const * fluid , +void BrineSalinity::postInputInitializationImpl( MultiFluidBase const * fluid, ComponentProperties const & componentProperties ) { GEOS_UNUSED_VAR( fluid ); diff --git a/src/coreComponents/fileIO/timeHistory/HistoryCollectionBase.cpp b/src/coreComponents/fileIO/timeHistory/HistoryCollectionBase.cpp index 10b1365aef2..f71b997145d 100644 --- a/src/coreComponents/fileIO/timeHistory/HistoryCollectionBase.cpp +++ b/src/coreComponents/fileIO/timeHistory/HistoryCollectionBase.cpp @@ -199,9 +199,9 @@ dataRepository::Group const * HistoryCollectionBase::getTargetObject( DomainPart else { GEOS_THROW( GEOS_FMT( "{} not found in path {}\n{}", - targetTokens[pathLevel], - objectPath, - targetGroup->dumpSubGroupsNames() ), + targetTokens[pathLevel], + objectPath, + targetGroup->dumpSubGroupsNames() ), geos::DomainError ); } } From bc5154adee2d90da9b06490814e4b8fbc66830da Mon Sep 17 00:00:00 2001 From: "Victor A. P. Magri" Date: Sun, 1 Mar 2026 13:22:53 -0500 Subject: [PATCH 26/30] More fixes --- .../capillaryPressure/BrooksCoreyCapillaryPressure.cpp | 1 + .../capillaryPressure/VanGenuchtenCapillaryPressure.cpp | 1 + .../BrooksCoreyBakerRelativePermeability.cpp | 2 ++ .../relativePermeability/BrooksCoreyRelativePermeability.cpp | 1 + .../BrooksCoreyStone2RelativePermeability.cpp | 2 ++ .../VanGenuchtenBakerRelativePermeability.cpp | 2 ++ .../VanGenuchtenStone2RelativePermeability.cpp | 2 ++ .../physicsSolvers/fluidFlow/SinglePhaseProppantBase.hpp | 2 ++ 8 files changed, 13 insertions(+) diff --git a/src/coreComponents/constitutive/capillaryPressure/BrooksCoreyCapillaryPressure.cpp b/src/coreComponents/constitutive/capillaryPressure/BrooksCoreyCapillaryPressure.cpp index 279b8badd01..342da282b58 100644 --- a/src/coreComponents/constitutive/capillaryPressure/BrooksCoreyCapillaryPressure.cpp +++ b/src/coreComponents/constitutive/capillaryPressure/BrooksCoreyCapillaryPressure.cpp @@ -73,6 +73,7 @@ void BrooksCoreyCapillaryPressure::postInputInitialization() { return GEOS_FMT( "invalid value at {}[{}]", attribute, ip ); }; + GEOS_UNUSED_VAR( errorMsg ); GEOS_THROW_IF_LT_MSG( m_phaseMinVolumeFraction[ip], 0.0, errorMsg( viewKeyStruct::phaseMinVolumeFractionString() ), diff --git a/src/coreComponents/constitutive/capillaryPressure/VanGenuchtenCapillaryPressure.cpp b/src/coreComponents/constitutive/capillaryPressure/VanGenuchtenCapillaryPressure.cpp index a1785e7e1b4..74870cdb909 100644 --- a/src/coreComponents/constitutive/capillaryPressure/VanGenuchtenCapillaryPressure.cpp +++ b/src/coreComponents/constitutive/capillaryPressure/VanGenuchtenCapillaryPressure.cpp @@ -78,6 +78,7 @@ void VanGenuchtenCapillaryPressure::postInputInitialization() { return GEOS_FMT( "invalid value at {}[{}]", attribute, ip ); }; + GEOS_UNUSED_VAR( errorMsg ); GEOS_THROW_IF_LT_MSG( m_phaseMinVolumeFraction[ip], 0.0, errorMsg( viewKeyStruct::phaseMinVolumeFractionString() ), diff --git a/src/coreComponents/constitutive/relativePermeability/BrooksCoreyBakerRelativePermeability.cpp b/src/coreComponents/constitutive/relativePermeability/BrooksCoreyBakerRelativePermeability.cpp index 81fc1942390..095d26b2bef 100644 --- a/src/coreComponents/constitutive/relativePermeability/BrooksCoreyBakerRelativePermeability.cpp +++ b/src/coreComponents/constitutive/relativePermeability/BrooksCoreyBakerRelativePermeability.cpp @@ -101,6 +101,7 @@ void BrooksCoreyBakerRelativePermeability::postInputInitialization() { return GEOS_FMT( "invalid value at {}[{}]", attribute, ip ); }; + GEOS_UNUSED_VAR( errorMsg ); GEOS_THROW_IF_LT_MSG( m_phaseMinVolumeFraction[ip], 0.0, errorMsg( viewKeyStruct::phaseMinVolumeFractionString() ), InputError, getDataContext() ); @@ -121,6 +122,7 @@ void BrooksCoreyBakerRelativePermeability::postInputInitialization() { return GEOS_FMT( "invalid value at {}[{}]", attribute, ip ); }; + GEOS_UNUSED_VAR( errorMsg ); if( m_phaseOrder[PhaseType::WATER] >= 0 ) { GEOS_THROW_IF_LT_MSG( m_waterOilRelPermExponent[ip], 0.0, diff --git a/src/coreComponents/constitutive/relativePermeability/BrooksCoreyRelativePermeability.cpp b/src/coreComponents/constitutive/relativePermeability/BrooksCoreyRelativePermeability.cpp index 592de053ce0..b47002f6232 100644 --- a/src/coreComponents/constitutive/relativePermeability/BrooksCoreyRelativePermeability.cpp +++ b/src/coreComponents/constitutive/relativePermeability/BrooksCoreyRelativePermeability.cpp @@ -78,6 +78,7 @@ void BrooksCoreyRelativePermeability::postInputInitialization() { return GEOS_FMT( "invalid value at {}[{}]", attribute, ip ); }; + GEOS_UNUSED_VAR( errorMsg ); GEOS_THROW_IF_LT_MSG( m_phaseMinVolumeFraction[ip], 0.0, errorMsg( viewKeyStruct::phaseMinVolumeFractionString() ), diff --git a/src/coreComponents/constitutive/relativePermeability/BrooksCoreyStone2RelativePermeability.cpp b/src/coreComponents/constitutive/relativePermeability/BrooksCoreyStone2RelativePermeability.cpp index 7f043dfab9d..f2e49a6d9a5 100644 --- a/src/coreComponents/constitutive/relativePermeability/BrooksCoreyStone2RelativePermeability.cpp +++ b/src/coreComponents/constitutive/relativePermeability/BrooksCoreyStone2RelativePermeability.cpp @@ -101,6 +101,7 @@ void BrooksCoreyStone2RelativePermeability::postInputInitialization() { return GEOS_FMT( "invalid value at {}[{}]", attribute, ip ); }; + GEOS_UNUSED_VAR( errorMsg ); GEOS_THROW_IF_LT_MSG( m_phaseMinVolumeFraction[ip], 0.0, errorMsg( viewKeyStruct::phaseMinVolumeFractionString() ), InputError, getDataContext() ); @@ -121,6 +122,7 @@ void BrooksCoreyStone2RelativePermeability::postInputInitialization() { return GEOS_FMT( "invalid value at {}[{}]", attribute, ip ); }; + GEOS_UNUSED_VAR( errorMsg ); if( m_phaseOrder[PhaseType::WATER] >= 0 ) { GEOS_THROW_IF_LT_MSG( m_waterOilRelPermExponent[ip], 0.0, diff --git a/src/coreComponents/constitutive/relativePermeability/VanGenuchtenBakerRelativePermeability.cpp b/src/coreComponents/constitutive/relativePermeability/VanGenuchtenBakerRelativePermeability.cpp index f9639d69bec..dd387247366 100644 --- a/src/coreComponents/constitutive/relativePermeability/VanGenuchtenBakerRelativePermeability.cpp +++ b/src/coreComponents/constitutive/relativePermeability/VanGenuchtenBakerRelativePermeability.cpp @@ -103,6 +103,7 @@ void VanGenuchtenBakerRelativePermeability::postInputInitialization() { return GEOS_FMT( "invalid value at {}[{}]", attribute, ip ); }; + GEOS_UNUSED_VAR( errorMsg ); GEOS_THROW_IF_LT_MSG( m_phaseMinVolumeFraction[ip], 0.0, errorMsg( viewKeyStruct::phaseMinVolumeFractionString() ), InputError, getDataContext() ); @@ -122,6 +123,7 @@ void VanGenuchtenBakerRelativePermeability::postInputInitialization() { return GEOS_FMT( "invalid value at {}[{}]", attribute, ip ); }; + GEOS_UNUSED_VAR( errorMsg ); if( m_phaseOrder[PhaseType::WATER] >= 0 ) { GEOS_THROW_IF_LT_MSG( m_waterOilRelPermExponentInv[ip], 0.0, diff --git a/src/coreComponents/constitutive/relativePermeability/VanGenuchtenStone2RelativePermeability.cpp b/src/coreComponents/constitutive/relativePermeability/VanGenuchtenStone2RelativePermeability.cpp index 60b4f1d9e17..841c2f6f0a8 100644 --- a/src/coreComponents/constitutive/relativePermeability/VanGenuchtenStone2RelativePermeability.cpp +++ b/src/coreComponents/constitutive/relativePermeability/VanGenuchtenStone2RelativePermeability.cpp @@ -103,6 +103,7 @@ void VanGenuchtenStone2RelativePermeability::postInputInitialization() { return GEOS_FMT( "invalid value at {}[{}]", attribute, ip ); }; + GEOS_UNUSED_VAR( errorMsg ); GEOS_THROW_IF_LT_MSG( m_phaseMinVolumeFraction[ip], 0.0, errorMsg( viewKeyStruct::phaseMinVolumeFractionString() ), InputError, getDataContext() ); @@ -122,6 +123,7 @@ void VanGenuchtenStone2RelativePermeability::postInputInitialization() { return GEOS_FMT( "invalid value at {}[{}]", attribute, ip ); }; + GEOS_UNUSED_VAR( errorMsg ); if( m_phaseOrder[PhaseType::WATER] >= 0 ) { GEOS_THROW_IF_LT_MSG( m_waterOilRelPermExponentInv[ip], 0.0, diff --git a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseProppantBase.hpp b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseProppantBase.hpp index b793e64e1ec..946050fdfc0 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseProppantBase.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseProppantBase.hpp @@ -55,6 +55,8 @@ class SinglePhaseProppantBase : public SinglePhaseBase */ virtual ~SinglePhaseProppantBase(); + using SinglePhaseBase::updatePorosityAndPermeability; + virtual void updateFluidModel( ObjectManagerBase & dataGroup ) const override; virtual void updatePorosityAndPermeability( SurfaceElementSubRegion & subRegion ) const override; From c5a37c7e6772a53f0983c1fd5c57e550770f824f Mon Sep 17 00:00:00 2001 From: "Victor A. P. Magri" Date: Sun, 1 Mar 2026 14:22:51 -0500 Subject: [PATCH 27/30] Fixing warnings --- .../multiscale/mesh/coarsening/MetisInterface.cpp | 9 +++++++-- .../multiscale/mesh/coarsening/PartitionerBase.cpp | 2 ++ src/coreComponents/mesh/generators/VTKUtilities.cpp | 3 ++- .../fluidFlow/SinglePhaseReactiveTransport.hpp | 2 ++ 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/coreComponents/linearAlgebra/multiscale/mesh/coarsening/MetisInterface.cpp b/src/coreComponents/linearAlgebra/multiscale/mesh/coarsening/MetisInterface.cpp index df30b457b45..bed4593dba5 100644 --- a/src/coreComponents/linearAlgebra/multiscale/mesh/coarsening/MetisInterface.cpp +++ b/src/coreComponents/linearAlgebra/multiscale/mesh/coarsening/MetisInterface.cpp @@ -63,16 +63,21 @@ void partition( CRSMatrixView< int64_t const, int64_t const, int64_t const > con idx_t * const columns = const_cast< idx_t * >( graph.getColumns() ); idx_t * const weights = const_cast< idx_t * >( graph.getEntries() ); - auto const metisCall = [&]() + auto const metisCall = [&]() -> decltype( &METIS_PartGraphKway ) { using Method = LinearSolverParameters::Multiscale::Coarsening::Graph::Metis::Method; switch( params.method ) { case Method::kway: return METIS_PartGraphKway; case Method::recursive: return METIS_PartGraphRecursive; - default: GEOS_THROW( "Unrecognized METIS method", InputError ); + default: + { + GEOS_THROW( "Unrecognized METIS method", InputError ); + return nullptr; + } } }(); + GEOS_ERROR_IF( metisCall == nullptr, "No METIS partitioning routine selected" ); int const result = metisCall( &nnodes, // nvtxs &nconst, // ncon diff --git a/src/coreComponents/linearAlgebra/multiscale/mesh/coarsening/PartitionerBase.cpp b/src/coreComponents/linearAlgebra/multiscale/mesh/coarsening/PartitionerBase.cpp index 18383408f21..a549bc84ffd 100644 --- a/src/coreComponents/linearAlgebra/multiscale/mesh/coarsening/PartitionerBase.cpp +++ b/src/coreComponents/linearAlgebra/multiscale/mesh/coarsening/PartitionerBase.cpp @@ -41,6 +41,8 @@ PartitionerBase::create( LinearSolverParameters::Multiscale::Coarsening params ) GEOS_THROW( GEOS_FMT( "Multiscale partitioning not supported yet: {}", params.partitionType ), geos::RuntimeError ); } } + + return nullptr; } } // namespace multiscale diff --git a/src/coreComponents/mesh/generators/VTKUtilities.cpp b/src/coreComponents/mesh/generators/VTKUtilities.cpp index 6ceda703a86..a85763daffa 100644 --- a/src/coreComponents/mesh/generators/VTKUtilities.cpp +++ b/src/coreComponents/mesh/generators/VTKUtilities.cpp @@ -909,7 +909,8 @@ redistributeByAreaGraphAndLayer( AllMeshes & input, localIndex const numCells = LvArray::integerConversion< localIndex >( input.getMainMesh()->GetNumberOfCells() ); int const numProcs = MpiWrapper::commSize( comm ); int const numPartA = numProcs / numPartZ; - GEOS_ERROR_IF_NE_MSG( numProcs % numPartZ, 0, "Number of ranks must evenly divide the number of z-partitions" ); + int const numProcsRemainder = numProcs % numPartZ; + GEOS_ERROR_IF_NE_MSG( numProcsRemainder, 0, "Number of ranks must evenly divide the number of z-partitions" ); // Compute conversion from cell z-index to partition z-index std::array< std::pair< int, int >, 2 > const idxLimits = findGlobalIndexBounds( *input.getMainMesh(), comm, indexArrayName ); diff --git a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseReactiveTransport.hpp b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseReactiveTransport.hpp index e8c45a7260a..8ed4b4d47e3 100644 --- a/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseReactiveTransport.hpp +++ b/src/coreComponents/physicsSolvers/fluidFlow/SinglePhaseReactiveTransport.hpp @@ -78,6 +78,8 @@ class SinglePhaseReactiveTransport : public SinglePhaseBase */ virtual ~SinglePhaseReactiveTransport() override = default; + using SinglePhaseBase::updatePorosityAndPermeability; + /** * @brief name of the node manager in the object catalog * @return string that contains the catalog name to generate a new NodeManager object through the object catalog. From 43fc987373b4594512c0a334eb47a8cba3b0fd99 Mon Sep 17 00:00:00 2001 From: "Victor A. P. Magri" Date: Sun, 1 Mar 2026 20:12:54 -0500 Subject: [PATCH 28/30] Fix code style --- .../multiscale/mesh/coarsening/MetisInterface.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/coreComponents/linearAlgebra/multiscale/mesh/coarsening/MetisInterface.cpp b/src/coreComponents/linearAlgebra/multiscale/mesh/coarsening/MetisInterface.cpp index bed4593dba5..f4d48c82b9a 100644 --- a/src/coreComponents/linearAlgebra/multiscale/mesh/coarsening/MetisInterface.cpp +++ b/src/coreComponents/linearAlgebra/multiscale/mesh/coarsening/MetisInterface.cpp @@ -63,7 +63,7 @@ void partition( CRSMatrixView< int64_t const, int64_t const, int64_t const > con idx_t * const columns = const_cast< idx_t * >( graph.getColumns() ); idx_t * const weights = const_cast< idx_t * >( graph.getEntries() ); - auto const metisCall = [&]() -> decltype( &METIS_PartGraphKway ) + auto const metisCall = [&]() -> decltype( & METIS_PartGraphKway ) { using Method = LinearSolverParameters::Multiscale::Coarsening::Graph::Metis::Method; switch( params.method ) @@ -76,7 +76,7 @@ void partition( CRSMatrixView< int64_t const, int64_t const, int64_t const > con return nullptr; } } - }(); + } (); GEOS_ERROR_IF( metisCall == nullptr, "No METIS partitioning routine selected" ); int const result = metisCall( &nnodes, // nvtxs From a82824d9a78e219cbd36f24ec7f9a6a5aa8ed8a3 Mon Sep 17 00:00:00 2001 From: Matteo Cusini Date: Mon, 2 Mar 2026 16:39:51 -0800 Subject: [PATCH 29/30] Update TPL tag --- .devcontainer/devcontainer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 4d3c5dce3bd..8c71c7f225b 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -2,7 +2,7 @@ "build": { "dockerfile": "Dockerfile", "args": { - "GEOS_TPL_TAG": "340-926" + "GEOS_TPL_TAG": "340-929" } }, "runArgs": [ From 1a39672bb4a9b67405390a726fc7b652afb7db8f Mon Sep 17 00:00:00 2001 From: Matteo Cusini Date: Mon, 2 Mar 2026 16:41:46 -0800 Subject: [PATCH 30/30] Update LLNL host-configs --- .../dane-toss_4_x86_64_ib-gcc@12.1.1.cmake | 46 ++--- .../dane-toss_4_x86_64_ib-gcc@13.3.1.cmake | 46 ++--- .../dane-toss_4_x86_64_ib-llvm@14.0.6.cmake | 46 ++--- .../dane-toss_4_x86_64_ib-llvm@19.1.3.cmake | 183 +++++++++++++++++ ...s_4_x86_64_ib-gcc@12.1.1-cuda@12.6.0.cmake | 44 ++-- ...s_4_x86_64_ib-gcc@13.3.1-cuda@12.9.1.cmake | 44 ++-- ..._4_x86_64_ib-llvm@14.0.6-cuda@12.6.0.cmake | 44 ++-- ..._4_x86_64_ib-llvm@19.1.3-cuda@12.9.1.cmake | 44 ++-- ...x86_64_ib_cray-cce@20.0.0-rocm@6.4.3.cmake | 193 ++++++++++++++++++ ...ib_cray-llvm-amdgpu@6.4.3-rocm@6.4.3.cmake | 193 ++++++++++++++++++ 10 files changed, 726 insertions(+), 157 deletions(-) create mode 100644 host-configs/LLNL/dane-toss_4_x86_64_ib-llvm@19.1.3.cmake create mode 100644 host-configs/LLNL/tuolumne-toss_4_x86_64_ib_cray-cce@20.0.0-rocm@6.4.3.cmake create mode 100644 host-configs/LLNL/tuolumne-toss_4_x86_64_ib_cray-llvm-amdgpu@6.4.3-rocm@6.4.3.cmake diff --git a/host-configs/LLNL/dane-toss_4_x86_64_ib-gcc@12.1.1.cmake b/host-configs/LLNL/dane-toss_4_x86_64_ib-gcc@12.1.1.cmake index 90ae2cad970..48bb4f45f0c 100644 --- a/host-configs/LLNL/dane-toss_4_x86_64_ib-gcc@12.1.1.cmake +++ b/host-configs/LLNL/dane-toss_4_x86_64_ib-gcc@12.1.1.cmake @@ -3,7 +3,7 @@ ################################################################################# #-------------------------------------------------------------------------------- # SYS_TYPE: toss_4_x86_64_ib -# Compiler Spec: gcc@12.1.1/yrpaj5xpatcxrcwfoq54ecujlpt2jmnf +# Compiler Spec: gcc@12.1.1/tip5n7rqr2qzxyu675utpsa2hwmlcf7u # CMake executable path: /usr/tce/backend/installations/linux-rhel8-x86_64/gcc-10.3.1/cmake-3.26.3-nz532rvfpaf5lf74zxmplgiobuhol7lu/bin/cmake #-------------------------------------------------------------------------------- @@ -65,15 +65,15 @@ set(ENABLE_HIP OFF CACHE BOOL "") set(ENABLE_CHAI ON CACHE BOOL "") -set(CHAI_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-12_tpls/gcc-12.1.1/chai-git.4b9060b18b9bec1167026cfb3132bd540c4bd56b_develop-kvotnknm3ncv25iv5o7s35r7metz75ck" CACHE PATH "") +set(CHAI_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-12_tpls/gcc-12.1.1/chai-2025.12.0-gj4cge5skn5pmcq7h4rd7vg47zygtx63" CACHE PATH "") -set(RAJA_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-12_tpls/gcc-12.1.1/raja-git.1d70abf171474d331f1409908bdf1b1c3fe19222_develop-fbyklkn7jvn4iz3szch7pkctimcfjomf" CACHE PATH "") +set(RAJA_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-12_tpls/gcc-12.1.1/raja-2025.12.0-7tz3a6vkc7e642t7zmpxexyi5lqsfafg" CACHE PATH "") set(ENABLE_UMPIRE ON CACHE BOOL "") -set(UMPIRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-12_tpls/gcc-12.1.1/umpire-git.1ed0669c57f041baa1f1070693991c3a7a43e7ee_develop-ripym2jy3aos6wzycskpgk3ynzv4hyjj" CACHE PATH "") +set(UMPIRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-12_tpls/gcc-12.1.1/umpire-2025.12.0-qxwp33yhikgs2fkl2vdeobbmal6bqw6n" CACHE PATH "") -set(CAMP_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-12_tpls/gcc-12.1.1/camp-git.ee0a3069a7ae72da8bcea63c06260fad34901d43_main-mjhnetcs5cjx4inkvqpaprhsi5eebbco" CACHE PATH "") +set(CAMP_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-12_tpls/gcc-12.1.1/camp-2025.12.0-v3got3dbxmrizv3nk7m6gftc37aen4ym" CACHE PATH "") #-------------------------------------------------------------------------------- # IO TPLs @@ -81,23 +81,23 @@ set(CAMP_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-12_tpls/gcc-12.1.1/ca set(ENABLE_CALIPER ON CACHE BOOL "") -set(CALIPER_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-12_tpls/gcc-12.1.1/caliper-git.287b7f3ad2d12f520aad04268d44f353cd05403c_2.12.0-rlix6c6ragjlpu4zz4ianbzm3mocd2xj" CACHE PATH "") +set(CALIPER_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-12_tpls/gcc-12.1.1/caliper-2.14.0-lwnj4cxlrnclq564deuu7tljugndvtnt" CACHE PATH "") -set(ADIAK_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-12_tpls/gcc-12.1.1/adiak-0.4.0-jaobjsovvsr5cxhvur4vhbjih46cnyxn" CACHE PATH "") +set(ADIAK_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-12_tpls/gcc-12.1.1/adiak-0.4.0-6lz2sfblhg3haec5wghtcahttyei5h3v" CACHE PATH "") set(ZLIB_DIR "/usr" CACHE PATH "") -set(HDF5_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-12_tpls/gcc-12.1.1/hdf5-1.14.6-asvxotlx2q56he4mdfdtjcnb4jq62zic" CACHE PATH "") +set(HDF5_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-12_tpls/gcc-12.1.1/hdf5-1.14.6-7n343tz7mztayupsigyaj7chzbsltayo" CACHE PATH "") -set(CONDUIT_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-12_tpls/gcc-12.1.1/conduit-git.ad86e316ad56a75c099d30ca5ce75cff275b5924_develop-kytlb7oa3gohj7endcxxge7e7mt7hvdq" CACHE PATH "") +set(CONDUIT_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-12_tpls/gcc-12.1.1/conduit-0.9.5-j25t5t5kvxjhbt3vzvrig6ejqyjuy3pl" CACHE PATH "") -set(SILO_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-12_tpls/gcc-12.1.1/silo-4.12.0-aqrzg22nh5byo7vajr7y6iqtegjbfb5e" CACHE PATH "") +set(SILO_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-12_tpls/gcc-12.1.1/silo-4.12.0-wo3vlynxc3jkwkunrlikk3645pg76gog" CACHE PATH "") -set(PUGIXML_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-12_tpls/gcc-12.1.1/pugixml-1.13-tpluwqvpaqeb2shk27wuse7syhub4dau" CACHE PATH "") +set(PUGIXML_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-12_tpls/gcc-12.1.1/pugixml-1.13-vnpomoy3m4sh7zsnz5uqfn2hp6zh2mzw" CACHE PATH "") -set(VTK_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-12_tpls/gcc-12.1.1/vtk-9.4.2-hqjv4sjl75rmbodofocrwfcen7o3v2yx" CACHE PATH "") +set(VTK_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-12_tpls/gcc-12.1.1/vtk-9.4.2-mu24yirl5ddhfv3qzhhbwilxxsjn47dp" CACHE PATH "") -set(FMT_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-12_tpls/gcc-12.1.1/fmt-10.0.0-6u2gjlwcibsgjei5ulun3tyfpvyxpfxw" CACHE PATH "") +set(FMT_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-12_tpls/gcc-12.1.1/fmt-11.0.2-fbj372jbpfsajq5bzeyhdj4ouz4pgbzm" CACHE PATH "") #-------------------------------------------------------------------------------- # System Math Libraries @@ -111,19 +111,19 @@ set(LAPACK_LIBRARIES /usr/lib64/libopenblas.so CACHE STRING "") # Math TPLs #-------------------------------------------------------------------------------- -set(METIS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-12_tpls/gcc-12.1.1/metis-5.1.0-cmykznrnhtc5biethufzl6wzrihlpp64" CACHE PATH "") +set(METIS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-12_tpls/gcc-12.1.1/metis-5.1.0-pxv4jh6tetihokv5u7keagd7cytygua7" CACHE PATH "") -set(PARMETIS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-12_tpls/gcc-12.1.1/parmetis-4.0.3-bhxwfuyf3dlsmdw3slllqqpxftodvhfc" CACHE PATH "") +set(PARMETIS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-12_tpls/gcc-12.1.1/parmetis-4.0.3-rbzv62lqv7bqm54x5ofwvlgw43wjcalo" CACHE PATH "") -set(SCOTCH_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-12_tpls/gcc-12.1.1/scotch-7.0.8-7g27ocdgn4ub55aic7ucj7yuywi2e5vp" CACHE PATH "") +set(SCOTCH_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-12_tpls/gcc-12.1.1/scotch-7.0.8-eqsq7le3z5srqx2ezsez4yvwu2vq5n6g" CACHE PATH "") -set(SUPERLU_DIST_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-12_tpls/gcc-12.1.1/superlu-dist-9.2.1-wznczpgb7yuxu7733qao7nxgi6gf4voc" CACHE PATH "") +set(SUPERLU_DIST_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-12_tpls/gcc-12.1.1/superlu-dist-9.2.1-n2ffm6w6nh6s7lc3puw6uiffldvtuto4" CACHE PATH "") -set(SUITESPARSE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-12_tpls/gcc-12.1.1/suite-sparse-5.10.1-zt627tebpvlpsxqqxq6szn37r3canc5b" CACHE PATH "") +set(SUITESPARSE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-12_tpls/gcc-12.1.1/suite-sparse-5.10.1-d6clmff6msrxrgoecsx6one2cbju6a4t" CACHE PATH "") -set(TRILINOS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-12_tpls/gcc-12.1.1/trilinos-16.1.0-xaabteedwoghcxz37axn6hbri23e66ey" CACHE PATH "") +set(TRILINOS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-12_tpls/gcc-12.1.1/trilinos-16.1.0-jxdbiuqjoiln4ezxfbjzgi6dbs4dtpus" CACHE PATH "") -set(HYPRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-12_tpls/gcc-12.1.1/hypre-git.8b0093306228fef1b92384d9face7fbe5a63b460_master-te3qxz3qr2i6xnxm5i5gdqzjj64es3lt" CACHE PATH "") +set(HYPRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-12_tpls/gcc-12.1.1/hypre-git.8b0093306228fef1b92384d9face7fbe5a63b460_master-wfynro7iqqothqthqpz3obnelkmpmcnr" CACHE PATH "") set(ENABLE_PETSC OFF CACHE BOOL "") @@ -147,7 +147,7 @@ set(ENABLE_PYGEOSX ON CACHE BOOL "") set(SPHINX_EXECUTABLE "/usr/gapps/GEOSX/thirdPartyLibs/python/quartz-gcc-python/python/bin/sphinx-build" CACHE PATH "") -set(DOXYGEN_EXECUTABLE "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-12_tpls/gcc-12.1.1/doxygen-1.8.20-s3wdyangge2sxyf636vupctl3ezkzhiv/bin/doxygen" CACHE PATH "") +set(DOXYGEN_EXECUTABLE "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-12_tpls/gcc-12.1.1/doxygen-1.8.20-lbqhlrg3msfivysu2rfxq674siosbmob/bin/doxygen" CACHE PATH "") #-------------------------------------------------------------------------------- # Development tools @@ -155,7 +155,7 @@ set(DOXYGEN_EXECUTABLE "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-12_tpls/gcc set(ENABLE_UNCRUSTIFY ON CACHE BOOL "") -set(UNCRUSTIFY_EXECUTABLE "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-12_tpls/gcc-12.1.1/uncrustify-git.401a4098bce9dcc47e024987403f2d59d9ba7bd2_0.70.1-git.319-axue2pvkw2ucosmupgu3j2cctg2kvnap/bin/uncrustify" CACHE PATH "") +set(UNCRUSTIFY_EXECUTABLE "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-12_tpls/gcc-12.1.1/uncrustify-git.401a4098bce9dcc47e024987403f2d59d9ba7bd2_0.70.1-git.319-yqfbyrbgcnjjpkfaijkdtsejzjtpp4ig/bin/uncrustify" CACHE PATH "") #-------------------------------------------------------------------------------- # addr2line @@ -171,7 +171,7 @@ set(ADDR2LINE_EXEC "/usr/bin/addr2line" CACHE PATH "") set(ENABLE_MATHPRESSO ON CACHE BOOL "") -set(MATHPRESSO_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-12_tpls/gcc-12.1.1/mathpresso-geos-sh3rclmkawcdazdhnwwncursinf4a534" CACHE PATH "") +set(MATHPRESSO_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-12_tpls/gcc-12.1.1/mathpresso-geos-iz4kph2ijg7inklauzcits2sivybrttp" CACHE PATH "") set(ENABLE_XML_UPDATES ON CACHE BOOL "") diff --git a/host-configs/LLNL/dane-toss_4_x86_64_ib-gcc@13.3.1.cmake b/host-configs/LLNL/dane-toss_4_x86_64_ib-gcc@13.3.1.cmake index 49d4700112f..32325300882 100644 --- a/host-configs/LLNL/dane-toss_4_x86_64_ib-gcc@13.3.1.cmake +++ b/host-configs/LLNL/dane-toss_4_x86_64_ib-gcc@13.3.1.cmake @@ -3,7 +3,7 @@ ################################################################################# #-------------------------------------------------------------------------------- # SYS_TYPE: toss_4_x86_64_ib -# Compiler Spec: gcc@13.3.1/uy2jpfm5ainwsww2bboqa727eyowk7c2 +# Compiler Spec: gcc@13.3.1/usup2wgpduknmwrwuols33qbmrmhz5dq # CMake executable path: /usr/tce/backend/installations/linux-rhel8-x86_64/gcc-10.3.1/cmake-3.26.3-nz532rvfpaf5lf74zxmplgiobuhol7lu/bin/cmake #-------------------------------------------------------------------------------- @@ -65,15 +65,15 @@ set(ENABLE_HIP OFF CACHE BOOL "") set(ENABLE_CHAI ON CACHE BOOL "") -set(CHAI_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-13_tpls/gcc-13.3.1/chai-git.4b9060b18b9bec1167026cfb3132bd540c4bd56b_develop-c6kv3hjgayugw3m54whnvqrwv763et3n" CACHE PATH "") +set(CHAI_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-13_tpls/gcc-13.3.1/chai-2025.12.0-qbuudn4fk6m7wftxulklbk5cw7ozacjf" CACHE PATH "") -set(RAJA_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-13_tpls/gcc-13.3.1/raja-git.1d70abf171474d331f1409908bdf1b1c3fe19222_develop-iucoqkktaz627ezgtlyd2cv7bjd5ivdy" CACHE PATH "") +set(RAJA_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-13_tpls/gcc-13.3.1/raja-2025.12.0-g37z6m2jmvyqb7qiwwa37hom3uyp2ypp" CACHE PATH "") set(ENABLE_UMPIRE ON CACHE BOOL "") -set(UMPIRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-13_tpls/gcc-13.3.1/umpire-git.1ed0669c57f041baa1f1070693991c3a7a43e7ee_develop-d7dgxnh7hujciq5utyw4ylg2rb2ropxk" CACHE PATH "") +set(UMPIRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-13_tpls/gcc-13.3.1/umpire-2025.12.0-hqtbmsfujzpjxj3kl3jk3bmt3a7k5ety" CACHE PATH "") -set(CAMP_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-13_tpls/gcc-13.3.1/camp-git.ee0a3069a7ae72da8bcea63c06260fad34901d43_main-tcbkhejrohvuizsbmqewihnki7ko2fdt" CACHE PATH "") +set(CAMP_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-13_tpls/gcc-13.3.1/camp-2025.12.0-3q3quidchcepoysqupvlwla577e3smyt" CACHE PATH "") #-------------------------------------------------------------------------------- # IO TPLs @@ -81,23 +81,23 @@ set(CAMP_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-13_tpls/gcc-13.3.1/ca set(ENABLE_CALIPER ON CACHE BOOL "") -set(CALIPER_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-13_tpls/gcc-13.3.1/caliper-git.287b7f3ad2d12f520aad04268d44f353cd05403c_2.12.0-4mfajxjfzt45oamvc5bhigyinly5v3oo" CACHE PATH "") +set(CALIPER_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-13_tpls/gcc-13.3.1/caliper-2.14.0-xixabnkvywrgd6a7v766yr74mobs73tx" CACHE PATH "") -set(ADIAK_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-13_tpls/gcc-13.3.1/adiak-0.4.0-bvqjdhele3xlnjovgesbiuiykjuavcwm" CACHE PATH "") +set(ADIAK_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-13_tpls/gcc-13.3.1/adiak-0.4.0-u3s7u7hqxlxok3vyus63lfao77t3wvdq" CACHE PATH "") set(ZLIB_DIR "/usr" CACHE PATH "") -set(HDF5_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-13_tpls/gcc-13.3.1/hdf5-1.14.6-l557c2ijv4nstgnlm3lsqnouiy4476w2" CACHE PATH "") +set(HDF5_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-13_tpls/gcc-13.3.1/hdf5-1.14.6-ptzjlsdhytvyf5dxp6js6iugmpfd6pqc" CACHE PATH "") -set(CONDUIT_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-13_tpls/gcc-13.3.1/conduit-git.ad86e316ad56a75c099d30ca5ce75cff275b5924_develop-y4ngi2h5jrzoxnin3i5u2yk7p3zszfzp" CACHE PATH "") +set(CONDUIT_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-13_tpls/gcc-13.3.1/conduit-0.9.5-6ockgir74o2gncru2tfhabauss3leyqb" CACHE PATH "") -set(SILO_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-13_tpls/gcc-13.3.1/silo-4.12.0-pl4e72jltht7z2ffufy774uq5wuptyhz" CACHE PATH "") +set(SILO_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-13_tpls/gcc-13.3.1/silo-4.12.0-zwey5kdj32q7nfz6o6gbgay5mln6qozf" CACHE PATH "") -set(PUGIXML_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-13_tpls/gcc-13.3.1/pugixml-1.13-uekbyefkladmhu3txy7fsrphjqqwpc3d" CACHE PATH "") +set(PUGIXML_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-13_tpls/gcc-13.3.1/pugixml-1.13-vykyowhrjriqfjysczgzijjvo6fbimew" CACHE PATH "") -set(VTK_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-13_tpls/gcc-13.3.1/vtk-9.4.2-csi6mfw6xz6cdc6fkvedj6wejaev3m2j" CACHE PATH "") +set(VTK_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-13_tpls/gcc-13.3.1/vtk-9.4.2-xllx5twzha2typ6vabecuwrdb7dt5vdn" CACHE PATH "") -set(FMT_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-13_tpls/gcc-13.3.1/fmt-10.0.0-oyro5yd5ntu3yp3tjoc2q6mvg2xaoy4s" CACHE PATH "") +set(FMT_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-13_tpls/gcc-13.3.1/fmt-11.0.2-g27pu3mcspwrp46iuo32tkyrrxrhzdrk" CACHE PATH "") #-------------------------------------------------------------------------------- # System Math Libraries @@ -111,19 +111,19 @@ set(LAPACK_LIBRARIES /usr/lib64/libopenblas.so CACHE STRING "") # Math TPLs #-------------------------------------------------------------------------------- -set(METIS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-13_tpls/gcc-13.3.1/metis-5.1.0-gub5ytd4ni6besdgq4a7v7634da4lrum" CACHE PATH "") +set(METIS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-13_tpls/gcc-13.3.1/metis-5.1.0-7lnhkbv2fdcbtcrv5ubv7og3l6cor54b" CACHE PATH "") -set(PARMETIS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-13_tpls/gcc-13.3.1/parmetis-4.0.3-l2457z6c5si54kdzwidospl5xqyshgnj" CACHE PATH "") +set(PARMETIS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-13_tpls/gcc-13.3.1/parmetis-4.0.3-3mayiemdzkvic4myatatjp37gx7wmk3k" CACHE PATH "") -set(SCOTCH_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-13_tpls/gcc-13.3.1/scotch-7.0.8-p3qtu42xktbvvp3sz4dksh2u6fggq6lw" CACHE PATH "") +set(SCOTCH_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-13_tpls/gcc-13.3.1/scotch-7.0.8-smdrzzop27f3svwxzwq63aoaol7wwyzu" CACHE PATH "") -set(SUPERLU_DIST_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-13_tpls/gcc-13.3.1/superlu-dist-9.2.1-l7j4zhv6q6vpp2bzzfzzaamh26xoxto4" CACHE PATH "") +set(SUPERLU_DIST_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-13_tpls/gcc-13.3.1/superlu-dist-9.2.1-lkn6ca4m4oejawk3pauulv7qmeiruuhq" CACHE PATH "") -set(SUITESPARSE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-13_tpls/gcc-13.3.1/suite-sparse-5.10.1-cg225lh2z6cwornathi4obwcud4x2xgd" CACHE PATH "") +set(SUITESPARSE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-13_tpls/gcc-13.3.1/suite-sparse-5.10.1-avjp6ihuavwtlx4xgtotehbz2noze2fh" CACHE PATH "") -set(TRILINOS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-13_tpls/gcc-13.3.1/trilinos-16.1.0-x7lb6xh2vn3nazrtg53e26cggt3k3ie6" CACHE PATH "") +set(TRILINOS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-13_tpls/gcc-13.3.1/trilinos-16.1.0-47kt3mvxzybxrfomkqkr3qbo64hwjzc7" CACHE PATH "") -set(HYPRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-13_tpls/gcc-13.3.1/hypre-git.8b0093306228fef1b92384d9face7fbe5a63b460_master-bhenjbz47e5h4j4e5mm5mk4n7ncsevv2" CACHE PATH "") +set(HYPRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-13_tpls/gcc-13.3.1/hypre-git.8b0093306228fef1b92384d9face7fbe5a63b460_master-gme2drnput4pakha7r4x4i7vcuteuobt" CACHE PATH "") set(ENABLE_PETSC OFF CACHE BOOL "") @@ -147,7 +147,7 @@ set(ENABLE_PYGEOSX ON CACHE BOOL "") set(SPHINX_EXECUTABLE "/usr/gapps/GEOSX/thirdPartyLibs/python/quartz-gcc-python/python/bin/sphinx-build" CACHE PATH "") -set(DOXYGEN_EXECUTABLE "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-13_tpls/gcc-13.3.1/doxygen-1.8.20-llexzql2nksyaxm2nn3cwqwwskgbcvmj/bin/doxygen" CACHE PATH "") +set(DOXYGEN_EXECUTABLE "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-13_tpls/gcc-13.3.1/doxygen-1.8.20-x3azuxonudnfy6nnvzjyovjkjfncioq2/bin/doxygen" CACHE PATH "") #-------------------------------------------------------------------------------- # Development tools @@ -155,7 +155,7 @@ set(DOXYGEN_EXECUTABLE "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-13_tpls/gcc set(ENABLE_UNCRUSTIFY ON CACHE BOOL "") -set(UNCRUSTIFY_EXECUTABLE "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-13_tpls/gcc-13.3.1/uncrustify-git.401a4098bce9dcc47e024987403f2d59d9ba7bd2_0.70.1-git.319-qn72owjuzr7toqjrykjju7dp3xi4qtwr/bin/uncrustify" CACHE PATH "") +set(UNCRUSTIFY_EXECUTABLE "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-13_tpls/gcc-13.3.1/uncrustify-git.401a4098bce9dcc47e024987403f2d59d9ba7bd2_0.70.1-git.319-wp72eon5hcohsatqntmggcspmd3ibryy/bin/uncrustify" CACHE PATH "") #-------------------------------------------------------------------------------- # addr2line @@ -171,7 +171,7 @@ set(ADDR2LINE_EXEC "/usr/bin/addr2line" CACHE PATH "") set(ENABLE_MATHPRESSO ON CACHE BOOL "") -set(MATHPRESSO_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-gcc-13_tpls/gcc-13.3.1/mathpresso-geos-xc5mfpfv55njpzic7bgfnn2ld55k6k4m" CACHE PATH "") +set(MATHPRESSO_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-gcc-13_tpls/gcc-13.3.1/mathpresso-geos-fzt67tuymmzyrl5lhcprtffdhnanu4xq" CACHE PATH "") set(ENABLE_XML_UPDATES ON CACHE BOOL "") diff --git a/host-configs/LLNL/dane-toss_4_x86_64_ib-llvm@14.0.6.cmake b/host-configs/LLNL/dane-toss_4_x86_64_ib-llvm@14.0.6.cmake index c456c61b957..a9887e55e86 100644 --- a/host-configs/LLNL/dane-toss_4_x86_64_ib-llvm@14.0.6.cmake +++ b/host-configs/LLNL/dane-toss_4_x86_64_ib-llvm@14.0.6.cmake @@ -3,7 +3,7 @@ ################################################################################# #-------------------------------------------------------------------------------- # SYS_TYPE: toss_4_x86_64_ib -# Compiler Spec: llvm@14.0.6/ul5bul3z5rs5ykers5jxmtuyaovscvqr +# Compiler Spec: llvm@14.0.6/6hueebr6kxrx6r2je7lfkrj7gk6sdghn # CMake executable path: /usr/tce/backend/installations/linux-rhel8-x86_64/gcc-10.3.1/cmake-3.26.3-nz532rvfpaf5lf74zxmplgiobuhol7lu/bin/cmake #-------------------------------------------------------------------------------- @@ -65,15 +65,15 @@ set(ENABLE_HIP OFF CACHE BOOL "") set(ENABLE_CHAI ON CACHE BOOL "") -set(CHAI_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-llvm-14_tpls/llvm-14.0.6/chai-git.4b9060b18b9bec1167026cfb3132bd540c4bd56b_develop-ewcgvgen5mhjtlv5t72hsbowups3gwod" CACHE PATH "") +set(CHAI_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-14_tpls/llvm-14.0.6/chai-2025.12.0-pvwccufebbexz5j5332lq7jq7ynwhv3y" CACHE PATH "") -set(RAJA_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-llvm-14_tpls/llvm-14.0.6/raja-git.1d70abf171474d331f1409908bdf1b1c3fe19222_develop-lccqdgiel6mdrobnw4uostmqhxnwimdx" CACHE PATH "") +set(RAJA_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-14_tpls/llvm-14.0.6/raja-2025.12.0-s45pq56nd5qutsia5icxw7c7odt4wngp" CACHE PATH "") set(ENABLE_UMPIRE ON CACHE BOOL "") -set(UMPIRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-llvm-14_tpls/llvm-14.0.6/umpire-git.1ed0669c57f041baa1f1070693991c3a7a43e7ee_develop-awpfyiuugwt4ipecza6uzlarwpzty2rl" CACHE PATH "") +set(UMPIRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-14_tpls/llvm-14.0.6/umpire-2025.12.0-62eh5t3wbqm3skcy5sl7d744mdrmpi2j" CACHE PATH "") -set(CAMP_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-llvm-14_tpls/llvm-14.0.6/camp-git.ee0a3069a7ae72da8bcea63c06260fad34901d43_main-aogjkuwlentfqtaukh2k3hvjw2y6y6jl" CACHE PATH "") +set(CAMP_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-14_tpls/llvm-14.0.6/camp-2025.12.0-agkxhbph6l3wdetnbv5mrmq5chogauge" CACHE PATH "") #-------------------------------------------------------------------------------- # IO TPLs @@ -81,23 +81,23 @@ set(CAMP_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-llvm-14_tpls/llvm-14.0.6/ set(ENABLE_CALIPER ON CACHE BOOL "") -set(CALIPER_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-llvm-14_tpls/llvm-14.0.6/caliper-git.287b7f3ad2d12f520aad04268d44f353cd05403c_2.12.0-p5aeqjrvvexyrdal4epo7it2fbdgzzxk" CACHE PATH "") +set(CALIPER_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-14_tpls/llvm-14.0.6/caliper-2.14.0-oahv5uuriqn2vyqbzespzkrfsghxjfew" CACHE PATH "") -set(ADIAK_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-llvm-14_tpls/llvm-14.0.6/adiak-0.4.0-7fjc7gjmpgx4jytzryqlsg2anuv27xcg" CACHE PATH "") +set(ADIAK_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-14_tpls/llvm-14.0.6/adiak-0.4.0-iitjnfmanurcrmlyau4qm7kpep6q6vxt" CACHE PATH "") set(ZLIB_DIR "/usr" CACHE PATH "") -set(HDF5_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-llvm-14_tpls/llvm-14.0.6/hdf5-1.14.6-n4d653mlykuikmfab3ss6ruvejw24dml" CACHE PATH "") +set(HDF5_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-14_tpls/llvm-14.0.6/hdf5-1.14.6-ottiokh52c2uvkujg6s4yc63afy24e7d" CACHE PATH "") -set(CONDUIT_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-llvm-14_tpls/llvm-14.0.6/conduit-git.ad86e316ad56a75c099d30ca5ce75cff275b5924_develop-l4n3oasabottshhvnmpynvnr5qv4m5ym" CACHE PATH "") +set(CONDUIT_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-14_tpls/llvm-14.0.6/conduit-0.9.5-y5dwa2wdrmelzcpyx7yzayckzo3gpgrm" CACHE PATH "") -set(SILO_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-llvm-14_tpls/llvm-14.0.6/silo-4.12.0-m72pwkottbfattkmfy5et4y2zexnt3hv" CACHE PATH "") +set(SILO_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-14_tpls/llvm-14.0.6/silo-4.12.0-24vfiuq62fnn5ui6uqdhvouz65zytin2" CACHE PATH "") -set(PUGIXML_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-llvm-14_tpls/llvm-14.0.6/pugixml-1.13-qnpx3zh4q3eouffejz63xhyrdjvjkitl" CACHE PATH "") +set(PUGIXML_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-14_tpls/llvm-14.0.6/pugixml-1.13-rd24lxieweuz24w7ycbaryfyk6lbznmb" CACHE PATH "") -set(VTK_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-llvm-14_tpls/llvm-14.0.6/vtk-9.4.2-fqjvu6cakp4mkhr7s5ypn5f2ftbka5hg" CACHE PATH "") +set(VTK_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-14_tpls/llvm-14.0.6/vtk-9.4.2-fnpua5soyrcqbkrqnnh4zqt6yn5hem5e" CACHE PATH "") -set(FMT_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-llvm-14_tpls/llvm-14.0.6/fmt-10.0.0-qbvletrbia2c5guh6kzewyt6i5ua4q22" CACHE PATH "") +set(FMT_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-14_tpls/llvm-14.0.6/fmt-11.0.2-voxs6pm2ttqbwt3gszcbvcb2xmugiosj" CACHE PATH "") #-------------------------------------------------------------------------------- # System Math Libraries @@ -111,19 +111,19 @@ set(LAPACK_LIBRARIES /usr/lib64/libopenblas.so CACHE STRING "") # Math TPLs #-------------------------------------------------------------------------------- -set(METIS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-llvm-14_tpls/llvm-14.0.6/metis-5.1.0-y7tsdri3aun762o4qjxji66y6ud4yjsk" CACHE PATH "") +set(METIS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-14_tpls/llvm-14.0.6/metis-5.1.0-7ultypmkrm5nnur3o6ntl557ut4zpi3a" CACHE PATH "") -set(PARMETIS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-llvm-14_tpls/llvm-14.0.6/parmetis-4.0.3-uvoynbg75vl2fda5gupkf572btgexrw7" CACHE PATH "") +set(PARMETIS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-14_tpls/llvm-14.0.6/parmetis-4.0.3-l7zdwdi3icsmd2ei7lmnytikc4kitsrf" CACHE PATH "") -set(SCOTCH_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-llvm-14_tpls/llvm-14.0.6/scotch-7.0.8-5utttqumhe2j2kb2swrnxt6iebuectv4" CACHE PATH "") +set(SCOTCH_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-14_tpls/llvm-14.0.6/scotch-7.0.8-kfvnwp3qofbqvm4duccjctx23zsjfyj3" CACHE PATH "") -set(SUPERLU_DIST_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-llvm-14_tpls/llvm-14.0.6/superlu-dist-9.2.1-la2ltj5isheee7yzd24krgjrixlqoj7r" CACHE PATH "") +set(SUPERLU_DIST_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-14_tpls/llvm-14.0.6/superlu-dist-9.2.1-ft373aafcmpgtywcvvti4taddmsbqn2r" CACHE PATH "") -set(SUITESPARSE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-llvm-14_tpls/llvm-14.0.6/suite-sparse-5.10.1-dccejparafjkgc4jjp2bl3hwhvjz4xtg" CACHE PATH "") +set(SUITESPARSE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-14_tpls/llvm-14.0.6/suite-sparse-5.10.1-6s5wuk2jv66hevvxm4tjnrxmad6cuqw3" CACHE PATH "") -set(TRILINOS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-llvm-14_tpls/llvm-14.0.6/trilinos-16.1.0-oouxqanvjkbleahqbwwkslj55tpjygym" CACHE PATH "") +set(TRILINOS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-14_tpls/llvm-14.0.6/trilinos-16.1.0-ugaxqluqwxpbnupdzgkjqjcjx42k5d4n" CACHE PATH "") -set(HYPRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-llvm-14_tpls/llvm-14.0.6/hypre-git.8b0093306228fef1b92384d9face7fbe5a63b460_master-n2qoz7ldlw75txcjo6v5dxp7btwro6nb" CACHE PATH "") +set(HYPRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-14_tpls/llvm-14.0.6/hypre-git.8b0093306228fef1b92384d9face7fbe5a63b460_master-lb2bbdvaubmyonpm4cecnwyclpp2nt7g" CACHE PATH "") set(ENABLE_PETSC OFF CACHE BOOL "") @@ -147,7 +147,7 @@ set(ENABLE_PYGEOSX ON CACHE BOOL "") set(SPHINX_EXECUTABLE "/usr/gapps/GEOSX/thirdPartyLibs/python/quartz-gcc-python/python/bin/sphinx-build" CACHE PATH "") -set(DOXYGEN_EXECUTABLE "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-llvm-14_tpls/llvm-14.0.6/doxygen-1.8.20-iiqc2a7ephqjgr2ebn26km7s2h6y2ylg/bin/doxygen" CACHE PATH "") +set(DOXYGEN_EXECUTABLE "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-14_tpls/llvm-14.0.6/doxygen-1.8.20-r35mgsl7acmueg3o7lu4sm436u6lmeye/bin/doxygen" CACHE PATH "") #-------------------------------------------------------------------------------- # Development tools @@ -155,7 +155,7 @@ set(DOXYGEN_EXECUTABLE "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-llvm-14_tpls/ll set(ENABLE_UNCRUSTIFY ON CACHE BOOL "") -set(UNCRUSTIFY_EXECUTABLE "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-llvm-14_tpls/llvm-14.0.6/uncrustify-git.401a4098bce9dcc47e024987403f2d59d9ba7bd2_0.70.1-git.319-hbngzkhzopjokqkoxm4tnv2thpmuopuz/bin/uncrustify" CACHE PATH "") +set(UNCRUSTIFY_EXECUTABLE "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-14_tpls/llvm-14.0.6/uncrustify-git.401a4098bce9dcc47e024987403f2d59d9ba7bd2_0.70.1-git.319-rmqswrm2hqjas6bshjhhf6vljdk3c663/bin/uncrustify" CACHE PATH "") #-------------------------------------------------------------------------------- # addr2line @@ -171,7 +171,7 @@ set(ADDR2LINE_EXEC "/usr/bin/addr2line" CACHE PATH "") set(ENABLE_MATHPRESSO ON CACHE BOOL "") -set(MATHPRESSO_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/dane-llvm-14_tpls/llvm-14.0.6/mathpresso-geos-4npqxs2paek425irgmzf2s5bniqoqkg2" CACHE PATH "") +set(MATHPRESSO_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-14_tpls/llvm-14.0.6/mathpresso-geos-kxwkykrmexwzjykwccwn3p4hl54nsmym" CACHE PATH "") set(ENABLE_XML_UPDATES ON CACHE BOOL "") diff --git a/host-configs/LLNL/dane-toss_4_x86_64_ib-llvm@19.1.3.cmake b/host-configs/LLNL/dane-toss_4_x86_64_ib-llvm@19.1.3.cmake new file mode 100644 index 00000000000..4ef9cb259dd --- /dev/null +++ b/host-configs/LLNL/dane-toss_4_x86_64_ib-llvm@19.1.3.cmake @@ -0,0 +1,183 @@ +################################################################################# +# Generated host-config - Edit at own risk! +################################################################################# +#-------------------------------------------------------------------------------- +# SYS_TYPE: toss_4_x86_64_ib +# Compiler Spec: llvm@19.1.3/habns2audkie6inulqld6jd365vyat2b +# CMake executable path: /usr/tce/backend/installations/linux-rhel8-x86_64/gcc-10.3.1/cmake-3.26.3-nz532rvfpaf5lf74zxmplgiobuhol7lu/bin/cmake +#-------------------------------------------------------------------------------- + +#-------------------------------------------------------------------------------- +# Compilers +#-------------------------------------------------------------------------------- + +set(CMAKE_C_COMPILER "/usr/tce/packages/clang/clang-19.1.3-magic/bin/clang" CACHE PATH "") + +set(CMAKE_CXX_COMPILER "/usr/tce/packages/clang/clang-19.1.3-magic/bin/clang++" CACHE PATH "") + +set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG -march=native -mtune=native" CACHE STRING "") + +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -DNDEBUG" CACHE STRING "") + +set(CMAKE_CXX_FLAGS_DEBUG "-g" CACHE STRING "") + +#-------------------------------------------------------------------------------- +# CMake Standard +#-------------------------------------------------------------------------------- + +set(BLT_CXX_STD "c++17" CACHE STRING "") + +#-------------------------------------------------------------------------------- +# MPI +#-------------------------------------------------------------------------------- + +set(ENABLE_MPI ON CACHE BOOL "") + +set(MPI_C_COMPILER "/usr/tce/packages/mvapich2/mvapich2-2.3.7-clang-19.1.3/bin/mpicc" CACHE PATH "") + +set(MPI_CXX_COMPILER "/usr/tce/packages/mvapich2/mvapich2-2.3.7-clang-19.1.3/bin/mpicxx" CACHE PATH "") + +set(MPIEXEC "srun" CACHE PATH "") + +set(MPIEXEC_NUMPROC_FLAG "-n" CACHE PATH "") + +#-------------------------------------------------------------------------------- +# OpenMP +#-------------------------------------------------------------------------------- + +set(ENABLE_OPENMP ON CACHE BOOL "") + +#-------------------------------------------------------------------------------- +# Cuda +#-------------------------------------------------------------------------------- + +set(ENABLE_CUDA OFF CACHE BOOL "") + +#-------------------------------------------------------------------------------- +# ROCm/HIP +#-------------------------------------------------------------------------------- + +set(ENABLE_HIP OFF CACHE BOOL "") + +#-------------------------------------------------------------------------------- +# Performance Portability TPLs +#-------------------------------------------------------------------------------- + +set(ENABLE_CHAI ON CACHE BOOL "") + +set(CHAI_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-19_tpls/llvm-19.1.3/chai-2025.12.0-zggmegavyen23j54tmeg7q6utmnjse5f" CACHE PATH "") + +set(RAJA_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-19_tpls/llvm-19.1.3/raja-2025.12.0-cajra6jawhf4w6oqzxecxe427r6o2bui" CACHE PATH "") + +set(ENABLE_UMPIRE ON CACHE BOOL "") + +set(UMPIRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-19_tpls/llvm-19.1.3/umpire-2025.12.0-h5pfqtbchzkbxxjxjhmv3paldoeorwme" CACHE PATH "") + +set(CAMP_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-19_tpls/llvm-19.1.3/camp-2025.12.0-mh3yb77ywuf32gplrc4lhml23ote7yp3" CACHE PATH "") + +#-------------------------------------------------------------------------------- +# IO TPLs +#-------------------------------------------------------------------------------- + +set(ENABLE_CALIPER ON CACHE BOOL "") + +set(CALIPER_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-19_tpls/llvm-19.1.3/caliper-2.14.0-wrc2ypphd35igian2fzgjoy6fsk77oho" CACHE PATH "") + +set(ADIAK_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-19_tpls/llvm-19.1.3/adiak-0.4.0-ujr4y5se43yq4lockjqy7vowt67dw4xw" CACHE PATH "") + +set(ZLIB_DIR "/usr" CACHE PATH "") + +set(HDF5_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-19_tpls/llvm-19.1.3/hdf5-1.14.6-4fjfrpi2m2m7h2i3stkstsfpyxf3cgqs" CACHE PATH "") + +set(CONDUIT_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-19_tpls/llvm-19.1.3/conduit-0.9.5-r62ftdczyms4lqbth3pwxgklrvhk4pjo" CACHE PATH "") + +set(SILO_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-19_tpls/llvm-19.1.3/silo-4.12.0-fq3zneqbjlbdm3oabe7do6q6ujl37igk" CACHE PATH "") + +set(PUGIXML_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-19_tpls/gcc-13.3.1/pugixml-1.13-vykyowhrjriqfjysczgzijjvo6fbimew" CACHE PATH "") + +set(VTK_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-19_tpls/llvm-19.1.3/vtk-9.4.2-scfh7fve7yam3m7e2fd4yvxj4ahndf7k" CACHE PATH "") + +set(FMT_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-19_tpls/llvm-19.1.3/fmt-11.0.2-togw47kavsjrlxnebp23byhiwvhylawl" CACHE PATH "") + +#-------------------------------------------------------------------------------- +# System Math Libraries +#-------------------------------------------------------------------------------- + +set(BLAS_LIBRARIES /usr/lib64/libopenblas.so CACHE STRING "") + +set(LAPACK_LIBRARIES /usr/lib64/libopenblas.so CACHE STRING "") + +#-------------------------------------------------------------------------------- +# Math TPLs +#-------------------------------------------------------------------------------- + +set(METIS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-19_tpls/llvm-19.1.3/metis-5.1.0-oxwylf6j2verzocr4vn4njqhtlennylg" CACHE PATH "") + +set(PARMETIS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-19_tpls/llvm-19.1.3/parmetis-4.0.3-gtl5bhyxtkun2ppcnnzb4ocximklfs4n" CACHE PATH "") + +set(SCOTCH_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-19_tpls/llvm-19.1.3/scotch-7.0.8-4y2qvry7rn7wavoepaoa5wkzf6zmvwce" CACHE PATH "") + +set(SUPERLU_DIST_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-19_tpls/llvm-19.1.3/superlu-dist-9.2.1-uoomikhpvwtlzu7odatw5duzka7tebar" CACHE PATH "") + +set(SUITESPARSE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-19_tpls/llvm-19.1.3/suite-sparse-5.10.1-tbp64oxbjdeyijs22ngwvsdeszamufwq" CACHE PATH "") + +set(TRILINOS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-19_tpls/llvm-19.1.3/trilinos-16.1.0-bl7mwswoitytxfeirisjumvgeqyqbgg7" CACHE PATH "") + +set(HYPRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-19_tpls/llvm-19.1.3/hypre-git.8b0093306228fef1b92384d9face7fbe5a63b460_master-32rnedneuddz3yee6mikkf2xo4m4rb2z" CACHE PATH "") + +set(ENABLE_PETSC OFF CACHE BOOL "") + +set(ENABLE_CALIPER_HYPRE ON CACHE BOOL "") + +set(GEOS_LA_INTERFACE "Hypre" CACHE STRING "") + +#-------------------------------------------------------------------------------- +# Python +#-------------------------------------------------------------------------------- + +set(Python3_ROOT_DIR "/usr/gapps/GEOSX/thirdPartyLibs/python/quartz-gcc-python/python/" CACHE PATH "") + +set(Python3_EXECUTABLE "/usr/gapps/GEOSX/thirdPartyLibs/python/quartz-gcc-python/python/bin/python3" CACHE PATH "") + +set(ENABLE_PYGEOSX ON CACHE BOOL "") + +#-------------------------------------------------------------------------------- +# Documentation +#-------------------------------------------------------------------------------- + +set(SPHINX_EXECUTABLE "/usr/gapps/GEOSX/thirdPartyLibs/python/quartz-gcc-python/python/bin/sphinx-build" CACHE PATH "") + +set(DOXYGEN_EXECUTABLE "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-19_tpls/gcc-13.3.1/doxygen-1.8.20-x3azuxonudnfy6nnvzjyovjkjfncioq2/bin/doxygen" CACHE PATH "") + +#-------------------------------------------------------------------------------- +# Development tools +#-------------------------------------------------------------------------------- + +set(ENABLE_UNCRUSTIFY ON CACHE BOOL "") + +set(UNCRUSTIFY_EXECUTABLE "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-19_tpls/llvm-19.1.3/uncrustify-git.401a4098bce9dcc47e024987403f2d59d9ba7bd2_0.70.1-git.319-mjajvyor26b46jvqafzpmxt5vc32lica/bin/uncrustify" CACHE PATH "") + +#-------------------------------------------------------------------------------- +# addr2line +#-------------------------------------------------------------------------------- + +set(ENABLE_ADDR2LINE ON CACHE BOOL "") + +set(ADDR2LINE_EXEC "/usr/bin/addr2line" CACHE PATH "") + +#-------------------------------------------------------------------------------- +# Other +#-------------------------------------------------------------------------------- + +set(ENABLE_MATHPRESSO ON CACHE BOOL "") + +set(MATHPRESSO_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/dane-llvm-19_tpls/gcc-13.3.1/mathpresso-geos-fzt67tuymmzyrl5lhcprtffdhnanu4xq" CACHE PATH "") + +set(ENABLE_XML_UPDATES ON CACHE BOOL "") + +set(ENABLE_GRPC OFF CACHE BOOL "") + +set(GEOS_BUILD_SHARED_LIBS ON CACHE BOOL "") + +set(ATS_ARGUMENTS "--machine slurm112" CACHE STRING "") + diff --git a/host-configs/LLNL/matrix-toss_4_x86_64_ib-gcc@12.1.1-cuda@12.6.0.cmake b/host-configs/LLNL/matrix-toss_4_x86_64_ib-gcc@12.1.1-cuda@12.6.0.cmake index f5ae4848c1e..e2576dc0ae3 100644 --- a/host-configs/LLNL/matrix-toss_4_x86_64_ib-gcc@12.1.1-cuda@12.6.0.cmake +++ b/host-configs/LLNL/matrix-toss_4_x86_64_ib-gcc@12.1.1-cuda@12.6.0.cmake @@ -3,7 +3,7 @@ ################################################################################# #-------------------------------------------------------------------------------- # SYS_TYPE: toss_4_x86_64_ib -# Compiler Spec: gcc@12.1.1/yrpaj5xpatcxrcwfoq54ecujlpt2jmnf +# Compiler Spec: gcc@12.1.1/tip5n7rqr2qzxyu675utpsa2hwmlcf7u # CMake executable path: /usr/tce/backend/installations/linux-rhel8-x86_64/gcc-10.3.1/cmake-3.26.3-nz532rvfpaf5lf74zxmplgiobuhol7lu/bin/cmake #-------------------------------------------------------------------------------- @@ -53,7 +53,7 @@ set(ENABLE_OPENMP ON CACHE BOOL "") set(ENABLE_CUDA ON CACHE BOOL "") -set(CMAKE_CUDA_STANDARD "17" CACHE PATH "") +set(CMAKE_CUDA_STANDARD "17" CACHE STRING "") set(CUDA_TOOLKIT_ROOT_DIR "/usr/tce/packages/cuda/cuda-12.6.0" CACHE PATH "") @@ -79,15 +79,15 @@ set(ENABLE_HIP OFF CACHE BOOL "") set(ENABLE_CHAI ON CACHE BOOL "") -set(CHAI_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/chai-git.4b9060b18b9bec1167026cfb3132bd540c4bd56b_develop-wzjalvcalpkeyxe5siy7gwqrbtnnyxxz" CACHE PATH "") +set(CHAI_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/chai-2025.12.0-eai7qn6635lcxbo52rxsydh4rytkpjxs" CACHE PATH "") -set(RAJA_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/raja-git.1d70abf171474d331f1409908bdf1b1c3fe19222_develop-jbhkrbgaxfn5mzaggta4rk7wv5p2chgk" CACHE PATH "") +set(RAJA_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/raja-2025.12.0-5uzmmaqpyuxzh3c4swijeeihtbbaturz" CACHE PATH "") set(ENABLE_UMPIRE ON CACHE BOOL "") -set(UMPIRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/umpire-git.1ed0669c57f041baa1f1070693991c3a7a43e7ee_develop-zt4bjb6zfhp2tbd25epz5e42jwcgycaa" CACHE PATH "") +set(UMPIRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/umpire-2025.12.0-75jwccjcgnx6kkdsabgkulooqpiqe6ks" CACHE PATH "") -set(CAMP_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/camp-git.ee0a3069a7ae72da8bcea63c06260fad34901d43_main-wczbiqynrets26vxqrsjudbufzvk43px" CACHE PATH "") +set(CAMP_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/camp-2025.12.0-hgj24s6p3cdle65yjc752zkoc75v7zxn" CACHE PATH "") #-------------------------------------------------------------------------------- # IO TPLs @@ -95,23 +95,23 @@ set(CAMP_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-12-cuda-12.6_tpls/g set(ENABLE_CALIPER ON CACHE BOOL "") -set(CALIPER_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/caliper-git.287b7f3ad2d12f520aad04268d44f353cd05403c_2.12.0-rlix6c6ragjlpu4zz4ianbzm3mocd2xj" CACHE PATH "") +set(CALIPER_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/caliper-2.14.0-lwnj4cxlrnclq564deuu7tljugndvtnt" CACHE PATH "") -set(ADIAK_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/adiak-0.4.0-jaobjsovvsr5cxhvur4vhbjih46cnyxn" CACHE PATH "") +set(ADIAK_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/adiak-0.4.0-6lz2sfblhg3haec5wghtcahttyei5h3v" CACHE PATH "") set(ZLIB_DIR "/usr" CACHE PATH "") -set(HDF5_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/hdf5-1.14.6-asvxotlx2q56he4mdfdtjcnb4jq62zic" CACHE PATH "") +set(HDF5_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/hdf5-1.14.6-7n343tz7mztayupsigyaj7chzbsltayo" CACHE PATH "") -set(CONDUIT_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/conduit-git.ad86e316ad56a75c099d30ca5ce75cff275b5924_develop-kytlb7oa3gohj7endcxxge7e7mt7hvdq" CACHE PATH "") +set(CONDUIT_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/conduit-0.9.5-j25t5t5kvxjhbt3vzvrig6ejqyjuy3pl" CACHE PATH "") -set(SILO_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/silo-4.12.0-aqrzg22nh5byo7vajr7y6iqtegjbfb5e" CACHE PATH "") +set(SILO_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/silo-4.12.0-wo3vlynxc3jkwkunrlikk3645pg76gog" CACHE PATH "") -set(PUGIXML_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/pugixml-1.13-tpluwqvpaqeb2shk27wuse7syhub4dau" CACHE PATH "") +set(PUGIXML_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/pugixml-1.13-vnpomoy3m4sh7zsnz5uqfn2hp6zh2mzw" CACHE PATH "") -set(VTK_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/vtk-9.4.2-hqjv4sjl75rmbodofocrwfcen7o3v2yx" CACHE PATH "") +set(VTK_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/vtk-9.4.2-mu24yirl5ddhfv3qzhhbwilxxsjn47dp" CACHE PATH "") -set(FMT_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/fmt-10.0.0-6u2gjlwcibsgjei5ulun3tyfpvyxpfxw" CACHE PATH "") +set(FMT_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/fmt-11.0.2-fbj372jbpfsajq5bzeyhdj4ouz4pgbzm" CACHE PATH "") #-------------------------------------------------------------------------------- # System Math Libraries @@ -125,19 +125,19 @@ set(LAPACK_LIBRARIES /usr/lib64/libopenblas.so CACHE STRING "") # Math TPLs #-------------------------------------------------------------------------------- -set(METIS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/metis-5.1.0-cmykznrnhtc5biethufzl6wzrihlpp64" CACHE PATH "") +set(METIS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/metis-5.1.0-pxv4jh6tetihokv5u7keagd7cytygua7" CACHE PATH "") -set(PARMETIS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/parmetis-4.0.3-bhxwfuyf3dlsmdw3slllqqpxftodvhfc" CACHE PATH "") +set(PARMETIS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/parmetis-4.0.3-rbzv62lqv7bqm54x5ofwvlgw43wjcalo" CACHE PATH "") -set(SCOTCH_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/scotch-7.0.8-7g27ocdgn4ub55aic7ucj7yuywi2e5vp" CACHE PATH "") +set(SCOTCH_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/scotch-7.0.8-eqsq7le3z5srqx2ezsez4yvwu2vq5n6g" CACHE PATH "") -set(SUPERLU_DIST_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/superlu-dist-9.2.1-giy6hfrd4pyhfrax4ugfdv4ogz2566qu" CACHE PATH "") +set(SUPERLU_DIST_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/superlu-dist-9.2.1-o4lnuxo5k5i7ztokmixcdhewg6yfxzr3" CACHE PATH "") -set(SUITESPARSE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/suite-sparse-5.10.1-zt627tebpvlpsxqqxq6szn37r3canc5b" CACHE PATH "") +set(SUITESPARSE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/suite-sparse-5.10.1-d6clmff6msrxrgoecsx6one2cbju6a4t" CACHE PATH "") -set(TRILINOS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/trilinos-16.1.0-xaabteedwoghcxz37axn6hbri23e66ey" CACHE PATH "") +set(TRILINOS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/trilinos-16.1.0-jxdbiuqjoiln4ezxfbjzgi6dbs4dtpus" CACHE PATH "") -set(HYPRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/hypre-git.8b0093306228fef1b92384d9face7fbe5a63b460_master-4rwynoqpblvi4mnm6xjznnihizhjwttt" CACHE PATH "") +set(HYPRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/hypre-git.8b0093306228fef1b92384d9face7fbe5a63b460_master-dggrbwctr2m3vnchkkewncxak6bl6lts" CACHE PATH "") set(ENABLE_HYPRE_DEVICE "CUDA" CACHE STRING "") @@ -187,7 +187,7 @@ set(ADDR2LINE_EXEC "/usr/bin/addr2line" CACHE PATH "") set(ENABLE_MATHPRESSO ON CACHE BOOL "") -set(MATHPRESSO_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/mathpresso-geos-sh3rclmkawcdazdhnwwncursinf4a534" CACHE PATH "") +set(MATHPRESSO_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-gcc-12-cuda-12.6_tpls/gcc-12.1.1/mathpresso-geos-iz4kph2ijg7inklauzcits2sivybrttp" CACHE PATH "") set(ENABLE_XML_UPDATES ON CACHE BOOL "") diff --git a/host-configs/LLNL/matrix-toss_4_x86_64_ib-gcc@13.3.1-cuda@12.9.1.cmake b/host-configs/LLNL/matrix-toss_4_x86_64_ib-gcc@13.3.1-cuda@12.9.1.cmake index 3fbec709797..03861f6345b 100644 --- a/host-configs/LLNL/matrix-toss_4_x86_64_ib-gcc@13.3.1-cuda@12.9.1.cmake +++ b/host-configs/LLNL/matrix-toss_4_x86_64_ib-gcc@13.3.1-cuda@12.9.1.cmake @@ -3,7 +3,7 @@ ################################################################################# #-------------------------------------------------------------------------------- # SYS_TYPE: toss_4_x86_64_ib -# Compiler Spec: gcc@13.3.1/uy2jpfm5ainwsww2bboqa727eyowk7c2 +# Compiler Spec: gcc@13.3.1/usup2wgpduknmwrwuols33qbmrmhz5dq # CMake executable path: /usr/tce/backend/installations/linux-rhel8-x86_64/gcc-10.3.1/cmake-3.26.3-nz532rvfpaf5lf74zxmplgiobuhol7lu/bin/cmake #-------------------------------------------------------------------------------- @@ -53,7 +53,7 @@ set(ENABLE_OPENMP ON CACHE BOOL "") set(ENABLE_CUDA ON CACHE BOOL "") -set(CMAKE_CUDA_STANDARD "17" CACHE PATH "") +set(CMAKE_CUDA_STANDARD "17" CACHE STRING "") set(CUDA_TOOLKIT_ROOT_DIR "/usr/tce/packages/cuda/cuda-12.9.1" CACHE PATH "") @@ -79,15 +79,15 @@ set(ENABLE_HIP OFF CACHE BOOL "") set(ENABLE_CHAI ON CACHE BOOL "") -set(CHAI_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/chai-git.4b9060b18b9bec1167026cfb3132bd540c4bd56b_develop-dc5mvcpl7hdpmowxileqltabbsaisiiu" CACHE PATH "") +set(CHAI_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/chai-2025.12.0-meix2nqnb76bnykuhxydtp6ikahodwld" CACHE PATH "") -set(RAJA_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/raja-git.1d70abf171474d331f1409908bdf1b1c3fe19222_develop-d64nbk4yxgxyamdzuy4fbw77j7tximqa" CACHE PATH "") +set(RAJA_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/raja-2025.12.0-ofcrxyx6kb2iwsugddcps4yjsfaws4dz" CACHE PATH "") set(ENABLE_UMPIRE ON CACHE BOOL "") -set(UMPIRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/umpire-git.1ed0669c57f041baa1f1070693991c3a7a43e7ee_develop-uxzwx3vlflbwwre3t6uoadtpb64sqwk7" CACHE PATH "") +set(UMPIRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/umpire-2025.12.0-w3o2oo5becpghphnwxqli5pogj7ni7vi" CACHE PATH "") -set(CAMP_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/camp-git.ee0a3069a7ae72da8bcea63c06260fad34901d43_main-p2khhhzt4zyjkzggduebqgzgasef6uz3" CACHE PATH "") +set(CAMP_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/camp-2025.12.0-c4wmxpp5jwkkfdo3c5ygbfcdpf7xjk2x" CACHE PATH "") #-------------------------------------------------------------------------------- # IO TPLs @@ -95,23 +95,23 @@ set(CAMP_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-13-cuda-12.9_tpls/g set(ENABLE_CALIPER ON CACHE BOOL "") -set(CALIPER_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/caliper-git.287b7f3ad2d12f520aad04268d44f353cd05403c_2.12.0-4mfajxjfzt45oamvc5bhigyinly5v3oo" CACHE PATH "") +set(CALIPER_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/caliper-2.14.0-xixabnkvywrgd6a7v766yr74mobs73tx" CACHE PATH "") -set(ADIAK_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/adiak-0.4.0-bvqjdhele3xlnjovgesbiuiykjuavcwm" CACHE PATH "") +set(ADIAK_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/adiak-0.4.0-u3s7u7hqxlxok3vyus63lfao77t3wvdq" CACHE PATH "") set(ZLIB_DIR "/usr" CACHE PATH "") -set(HDF5_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/hdf5-1.14.6-l557c2ijv4nstgnlm3lsqnouiy4476w2" CACHE PATH "") +set(HDF5_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/hdf5-1.14.6-ptzjlsdhytvyf5dxp6js6iugmpfd6pqc" CACHE PATH "") -set(CONDUIT_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/conduit-git.ad86e316ad56a75c099d30ca5ce75cff275b5924_develop-y4ngi2h5jrzoxnin3i5u2yk7p3zszfzp" CACHE PATH "") +set(CONDUIT_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/conduit-0.9.5-6ockgir74o2gncru2tfhabauss3leyqb" CACHE PATH "") -set(SILO_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/silo-4.12.0-pl4e72jltht7z2ffufy774uq5wuptyhz" CACHE PATH "") +set(SILO_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/silo-4.12.0-zwey5kdj32q7nfz6o6gbgay5mln6qozf" CACHE PATH "") -set(PUGIXML_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/pugixml-1.13-uekbyefkladmhu3txy7fsrphjqqwpc3d" CACHE PATH "") +set(PUGIXML_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/pugixml-1.13-vykyowhrjriqfjysczgzijjvo6fbimew" CACHE PATH "") -set(VTK_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/vtk-9.4.2-csi6mfw6xz6cdc6fkvedj6wejaev3m2j" CACHE PATH "") +set(VTK_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/vtk-9.4.2-xllx5twzha2typ6vabecuwrdb7dt5vdn" CACHE PATH "") -set(FMT_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/fmt-10.0.0-oyro5yd5ntu3yp3tjoc2q6mvg2xaoy4s" CACHE PATH "") +set(FMT_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/fmt-11.0.2-g27pu3mcspwrp46iuo32tkyrrxrhzdrk" CACHE PATH "") #-------------------------------------------------------------------------------- # System Math Libraries @@ -125,19 +125,19 @@ set(LAPACK_LIBRARIES /usr/lib64/libopenblas.so CACHE STRING "") # Math TPLs #-------------------------------------------------------------------------------- -set(METIS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/metis-5.1.0-gub5ytd4ni6besdgq4a7v7634da4lrum" CACHE PATH "") +set(METIS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/metis-5.1.0-7lnhkbv2fdcbtcrv5ubv7og3l6cor54b" CACHE PATH "") -set(PARMETIS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/parmetis-4.0.3-l2457z6c5si54kdzwidospl5xqyshgnj" CACHE PATH "") +set(PARMETIS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/parmetis-4.0.3-3mayiemdzkvic4myatatjp37gx7wmk3k" CACHE PATH "") -set(SCOTCH_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/scotch-7.0.8-p3qtu42xktbvvp3sz4dksh2u6fggq6lw" CACHE PATH "") +set(SCOTCH_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/scotch-7.0.8-smdrzzop27f3svwxzwq63aoaol7wwyzu" CACHE PATH "") -set(SUPERLU_DIST_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/superlu-dist-9.2.1-s3qx7m3zuehtvuh3c65b2kr7ug7rtj3x" CACHE PATH "") +set(SUPERLU_DIST_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/superlu-dist-9.2.1-t7vgyyy3wvegm3sbx3d7o2nts3rrq2bi" CACHE PATH "") -set(SUITESPARSE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/suite-sparse-5.10.1-cg225lh2z6cwornathi4obwcud4x2xgd" CACHE PATH "") +set(SUITESPARSE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/suite-sparse-5.10.1-avjp6ihuavwtlx4xgtotehbz2noze2fh" CACHE PATH "") -set(TRILINOS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/trilinos-16.1.0-x7lb6xh2vn3nazrtg53e26cggt3k3ie6" CACHE PATH "") +set(TRILINOS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/trilinos-16.1.0-47kt3mvxzybxrfomkqkr3qbo64hwjzc7" CACHE PATH "") -set(HYPRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/hypre-git.8b0093306228fef1b92384d9face7fbe5a63b460_master-lzywdu3winbo7be72sfzvwsww273j7rc" CACHE PATH "") +set(HYPRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/hypre-git.8b0093306228fef1b92384d9face7fbe5a63b460_master-zr2d6bddefdt57yp4jixmyabbx3df3rm" CACHE PATH "") set(ENABLE_HYPRE_DEVICE "CUDA" CACHE STRING "") @@ -187,7 +187,7 @@ set(ADDR2LINE_EXEC "/usr/bin/addr2line" CACHE PATH "") set(ENABLE_MATHPRESSO ON CACHE BOOL "") -set(MATHPRESSO_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/mathpresso-geos-xc5mfpfv55njpzic7bgfnn2ld55k6k4m" CACHE PATH "") +set(MATHPRESSO_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-gcc-13-cuda-12.9_tpls/gcc-13.3.1/mathpresso-geos-fzt67tuymmzyrl5lhcprtffdhnanu4xq" CACHE PATH "") set(ENABLE_XML_UPDATES ON CACHE BOOL "") diff --git a/host-configs/LLNL/matrix-toss_4_x86_64_ib-llvm@14.0.6-cuda@12.6.0.cmake b/host-configs/LLNL/matrix-toss_4_x86_64_ib-llvm@14.0.6-cuda@12.6.0.cmake index a46046337bc..b2b3367448e 100644 --- a/host-configs/LLNL/matrix-toss_4_x86_64_ib-llvm@14.0.6-cuda@12.6.0.cmake +++ b/host-configs/LLNL/matrix-toss_4_x86_64_ib-llvm@14.0.6-cuda@12.6.0.cmake @@ -3,7 +3,7 @@ ################################################################################# #-------------------------------------------------------------------------------- # SYS_TYPE: toss_4_x86_64_ib -# Compiler Spec: llvm@14.0.6/ul5bul3z5rs5ykers5jxmtuyaovscvqr +# Compiler Spec: llvm@14.0.6/6hueebr6kxrx6r2je7lfkrj7gk6sdghn # CMake executable path: /usr/tce/backend/installations/linux-rhel8-x86_64/gcc-10.3.1/cmake-3.26.3-nz532rvfpaf5lf74zxmplgiobuhol7lu/bin/cmake #-------------------------------------------------------------------------------- @@ -53,7 +53,7 @@ set(ENABLE_OPENMP ON CACHE BOOL "") set(ENABLE_CUDA ON CACHE BOOL "") -set(CMAKE_CUDA_STANDARD "17" CACHE PATH "") +set(CMAKE_CUDA_STANDARD "17" CACHE STRING "") set(CUDA_TOOLKIT_ROOT_DIR "/usr/tce/packages/cuda/cuda-12.6.0" CACHE PATH "") @@ -79,15 +79,15 @@ set(ENABLE_HIP OFF CACHE BOOL "") set(ENABLE_CHAI ON CACHE BOOL "") -set(CHAI_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/chai-git.4b9060b18b9bec1167026cfb3132bd540c4bd56b_develop-f53bhm6scvibecphxaahannyb67ne4gn" CACHE PATH "") +set(CHAI_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/chai-2025.12.0-434reoatceiqmp5nhsvqhmqqh5v66ekl" CACHE PATH "") -set(RAJA_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/raja-git.1d70abf171474d331f1409908bdf1b1c3fe19222_develop-36pk2ixifqzhhqrloqbvev475eroq2ns" CACHE PATH "") +set(RAJA_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/raja-2025.12.0-ftze7ut2hidtld6s6557vwo7kqd7m2d2" CACHE PATH "") set(ENABLE_UMPIRE ON CACHE BOOL "") -set(UMPIRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/umpire-git.1ed0669c57f041baa1f1070693991c3a7a43e7ee_develop-j2evmfqon42guvjuz5zxlqht523xgl7k" CACHE PATH "") +set(UMPIRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/umpire-2025.12.0-zvalmcwps5dsita5uhmu5g3zzwdbux7x" CACHE PATH "") -set(CAMP_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/camp-git.ee0a3069a7ae72da8bcea63c06260fad34901d43_main-eqycl5hesixa2mzurda2uw4rqpu3xjho" CACHE PATH "") +set(CAMP_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/camp-2025.12.0-hzukgfyf3dys4u6ehe6tjpq7r2cwpjgb" CACHE PATH "") #-------------------------------------------------------------------------------- # IO TPLs @@ -95,23 +95,23 @@ set(CAMP_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-14-cuda-12.6_tpls/ set(ENABLE_CALIPER ON CACHE BOOL "") -set(CALIPER_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/caliper-git.287b7f3ad2d12f520aad04268d44f353cd05403c_2.12.0-p5aeqjrvvexyrdal4epo7it2fbdgzzxk" CACHE PATH "") +set(CALIPER_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/caliper-2.14.0-oahv5uuriqn2vyqbzespzkrfsghxjfew" CACHE PATH "") -set(ADIAK_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/adiak-0.4.0-7fjc7gjmpgx4jytzryqlsg2anuv27xcg" CACHE PATH "") +set(ADIAK_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/adiak-0.4.0-iitjnfmanurcrmlyau4qm7kpep6q6vxt" CACHE PATH "") set(ZLIB_DIR "/usr" CACHE PATH "") -set(HDF5_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/hdf5-1.14.6-n4d653mlykuikmfab3ss6ruvejw24dml" CACHE PATH "") +set(HDF5_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/hdf5-1.14.6-ottiokh52c2uvkujg6s4yc63afy24e7d" CACHE PATH "") -set(CONDUIT_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/conduit-git.ad86e316ad56a75c099d30ca5ce75cff275b5924_develop-l4n3oasabottshhvnmpynvnr5qv4m5ym" CACHE PATH "") +set(CONDUIT_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/conduit-0.9.5-y5dwa2wdrmelzcpyx7yzayckzo3gpgrm" CACHE PATH "") -set(SILO_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/silo-4.12.0-m72pwkottbfattkmfy5et4y2zexnt3hv" CACHE PATH "") +set(SILO_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/silo-4.12.0-24vfiuq62fnn5ui6uqdhvouz65zytin2" CACHE PATH "") -set(PUGIXML_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/pugixml-1.13-qnpx3zh4q3eouffejz63xhyrdjvjkitl" CACHE PATH "") +set(PUGIXML_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/pugixml-1.13-rd24lxieweuz24w7ycbaryfyk6lbznmb" CACHE PATH "") -set(VTK_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/vtk-9.4.2-fqjvu6cakp4mkhr7s5ypn5f2ftbka5hg" CACHE PATH "") +set(VTK_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/vtk-9.4.2-fnpua5soyrcqbkrqnnh4zqt6yn5hem5e" CACHE PATH "") -set(FMT_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/fmt-10.0.0-qbvletrbia2c5guh6kzewyt6i5ua4q22" CACHE PATH "") +set(FMT_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/fmt-11.0.2-voxs6pm2ttqbwt3gszcbvcb2xmugiosj" CACHE PATH "") #-------------------------------------------------------------------------------- # System Math Libraries @@ -125,19 +125,19 @@ set(LAPACK_LIBRARIES /usr/lib64/libopenblas.so CACHE STRING "") # Math TPLs #-------------------------------------------------------------------------------- -set(METIS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/metis-5.1.0-y7tsdri3aun762o4qjxji66y6ud4yjsk" CACHE PATH "") +set(METIS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/metis-5.1.0-7ultypmkrm5nnur3o6ntl557ut4zpi3a" CACHE PATH "") -set(PARMETIS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/parmetis-4.0.3-uvoynbg75vl2fda5gupkf572btgexrw7" CACHE PATH "") +set(PARMETIS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/parmetis-4.0.3-l7zdwdi3icsmd2ei7lmnytikc4kitsrf" CACHE PATH "") -set(SCOTCH_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/scotch-7.0.8-5utttqumhe2j2kb2swrnxt6iebuectv4" CACHE PATH "") +set(SCOTCH_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/scotch-7.0.8-kfvnwp3qofbqvm4duccjctx23zsjfyj3" CACHE PATH "") -set(SUPERLU_DIST_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/superlu-dist-9.2.1-2da4io7hvinici6gompzakkl2o2mqzcx" CACHE PATH "") +set(SUPERLU_DIST_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/superlu-dist-9.2.1-qyykp4rzu22h7hzag5xubujl2oxl6iqu" CACHE PATH "") -set(SUITESPARSE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/suite-sparse-5.10.1-dccejparafjkgc4jjp2bl3hwhvjz4xtg" CACHE PATH "") +set(SUITESPARSE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/suite-sparse-5.10.1-6s5wuk2jv66hevvxm4tjnrxmad6cuqw3" CACHE PATH "") -set(TRILINOS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/trilinos-16.1.0-oouxqanvjkbleahqbwwkslj55tpjygym" CACHE PATH "") +set(TRILINOS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/trilinos-16.1.0-ugaxqluqwxpbnupdzgkjqjcjx42k5d4n" CACHE PATH "") -set(HYPRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/hypre-git.8b0093306228fef1b92384d9face7fbe5a63b460_master-t3gqjg54mns4dhorclgeadsrunq42jiv" CACHE PATH "") +set(HYPRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/hypre-git.8b0093306228fef1b92384d9face7fbe5a63b460_master-rp25dcvyczbf7kusq2gn52o2fqufn5eo" CACHE PATH "") set(ENABLE_HYPRE_DEVICE "CUDA" CACHE STRING "") @@ -187,7 +187,7 @@ set(ADDR2LINE_EXEC "/usr/bin/addr2line" CACHE PATH "") set(ENABLE_MATHPRESSO ON CACHE BOOL "") -set(MATHPRESSO_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/mathpresso-geos-4npqxs2paek425irgmzf2s5bniqoqkg2" CACHE PATH "") +set(MATHPRESSO_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-llvm-14-cuda-12.6_tpls/llvm-14.0.6/mathpresso-geos-kxwkykrmexwzjykwccwn3p4hl54nsmym" CACHE PATH "") set(ENABLE_XML_UPDATES ON CACHE BOOL "") diff --git a/host-configs/LLNL/matrix-toss_4_x86_64_ib-llvm@19.1.3-cuda@12.9.1.cmake b/host-configs/LLNL/matrix-toss_4_x86_64_ib-llvm@19.1.3-cuda@12.9.1.cmake index 70ca21ce862..07a2da44f85 100644 --- a/host-configs/LLNL/matrix-toss_4_x86_64_ib-llvm@19.1.3-cuda@12.9.1.cmake +++ b/host-configs/LLNL/matrix-toss_4_x86_64_ib-llvm@19.1.3-cuda@12.9.1.cmake @@ -3,7 +3,7 @@ ################################################################################# #-------------------------------------------------------------------------------- # SYS_TYPE: toss_4_x86_64_ib -# Compiler Spec: llvm@19.1.3/7jv6jekclgzi4zqym2rqyjpxis2jba4z +# Compiler Spec: llvm@19.1.3/habns2audkie6inulqld6jd365vyat2b # CMake executable path: /usr/tce/backend/installations/linux-rhel8-x86_64/gcc-10.3.1/cmake-3.26.3-nz532rvfpaf5lf74zxmplgiobuhol7lu/bin/cmake #-------------------------------------------------------------------------------- @@ -53,7 +53,7 @@ set(ENABLE_OPENMP ON CACHE BOOL "") set(ENABLE_CUDA ON CACHE BOOL "") -set(CMAKE_CUDA_STANDARD "17" CACHE PATH "") +set(CMAKE_CUDA_STANDARD "17" CACHE STRING "") set(CUDA_TOOLKIT_ROOT_DIR "/usr/tce/packages/cuda/cuda-12.9.1" CACHE PATH "") @@ -79,15 +79,15 @@ set(ENABLE_HIP OFF CACHE BOOL "") set(ENABLE_CHAI ON CACHE BOOL "") -set(CHAI_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/chai-git.4b9060b18b9bec1167026cfb3132bd540c4bd56b_develop-bnu5kssessa7gqzougaefgw3yu4y4ihb" CACHE PATH "") +set(CHAI_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/chai-2025.12.0-ib2cqysjlzt3wwjl2cufzyi3ue4uhuc7" CACHE PATH "") -set(RAJA_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/raja-git.1d70abf171474d331f1409908bdf1b1c3fe19222_develop-rudhwipp3va3oylav63n2qne3sumoxnh" CACHE PATH "") +set(RAJA_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/raja-2025.12.0-r37be665umopzrbi24zswofosnvh7jmz" CACHE PATH "") set(ENABLE_UMPIRE ON CACHE BOOL "") -set(UMPIRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/umpire-git.1ed0669c57f041baa1f1070693991c3a7a43e7ee_develop-rbbiccmdkm2rbqtx5ex4nhhrbfaw4oc5" CACHE PATH "") +set(UMPIRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/umpire-2025.12.0-wgk2v4jqd3unptjuwdaih7p5ulzxv47x" CACHE PATH "") -set(CAMP_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/camp-git.ee0a3069a7ae72da8bcea63c06260fad34901d43_main-vsgbb4lia44oulb3svwf2g6zmzigm6fx" CACHE PATH "") +set(CAMP_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/camp-2025.12.0-pbx76ulylargqljlodtht4pkntpck35q" CACHE PATH "") #-------------------------------------------------------------------------------- # IO TPLs @@ -95,23 +95,23 @@ set(CAMP_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-19-cuda-12.9_tpls/ set(ENABLE_CALIPER ON CACHE BOOL "") -set(CALIPER_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/caliper-git.287b7f3ad2d12f520aad04268d44f353cd05403c_2.12.0-wybp33js4pm72b3o26nddcdjk46dyovi" CACHE PATH "") +set(CALIPER_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/caliper-2.14.0-kehdscqwtewmtqo5dvchiuc5zazlffuz" CACHE PATH "") -set(ADIAK_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/adiak-0.4.0-fwbkqlr7qh4x52hugodphguaiegnlkuz" CACHE PATH "") +set(ADIAK_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/adiak-0.4.0-pxpenoo7xnjrwg5ozcdvtbiuffclwth7" CACHE PATH "") set(ZLIB_DIR "/usr" CACHE PATH "") -set(HDF5_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/hdf5-1.14.6-emhkgne27pp2s4ldkni5qxttfxn4loqb" CACHE PATH "") +set(HDF5_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/hdf5-1.14.6-bnpjs5nouol4334iecw7htzgbdanzx5o" CACHE PATH "") -set(CONDUIT_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/conduit-git.ad86e316ad56a75c099d30ca5ce75cff275b5924_develop-mcca23hdahdishoazky5qul7hwravxip" CACHE PATH "") +set(CONDUIT_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/conduit-0.9.5-6cuckjyq7gda3nufjxfynbqchpk32f34" CACHE PATH "") -set(SILO_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/silo-4.12.0-tgouf36m5y3iwvrpa35zcp2lvrgwxywk" CACHE PATH "") +set(SILO_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/silo-4.12.0-na7kwpkogxpv7phnw2nxj3wl2fdq2tgf" CACHE PATH "") -set(PUGIXML_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/pugixml-1.13-l23g6j3kwncztuumub6liygn7novqcp3" CACHE PATH "") +set(PUGIXML_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/pugixml-1.13-croztjo7eqsnni3vkno6zmydkeix4t3a" CACHE PATH "") -set(VTK_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/vtk-9.4.2-6wddiruymgg7a6pfqcrydiauty34jbbv" CACHE PATH "") +set(VTK_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/vtk-9.4.2-scfh7fve7yam3m7e2fd4yvxj4ahndf7k" CACHE PATH "") -set(FMT_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/fmt-10.0.0-56kh3bcmdkwhwo74xrduk2bsaum2qbdi" CACHE PATH "") +set(FMT_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/fmt-11.0.2-7spm6qh5pp5lnym2whrsq3ry5ektpxyv" CACHE PATH "") #-------------------------------------------------------------------------------- # System Math Libraries @@ -125,19 +125,19 @@ set(LAPACK_LIBRARIES /usr/lib64/libopenblas.so CACHE STRING "") # Math TPLs #-------------------------------------------------------------------------------- -set(METIS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/metis-5.1.0-guca2ocyshxgv525mpel4wolbm5qdq2b" CACHE PATH "") +set(METIS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/metis-5.1.0-cnjdtwvpu6ncfkvjrcaeolixz65ph5m5" CACHE PATH "") -set(PARMETIS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/parmetis-4.0.3-ehshc3waspnropefve364j5onlg5sobp" CACHE PATH "") +set(PARMETIS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/parmetis-4.0.3-k2l6kwiu536k2mv6tuqkh2cexgutz5un" CACHE PATH "") -set(SCOTCH_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/scotch-7.0.8-wjye3qyxebfvkwquohzqgykefhjlu3to" CACHE PATH "") +set(SCOTCH_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/scotch-7.0.8-ayjsxukjfngehyi4dc26f3hf4gtcwgfh" CACHE PATH "") -set(SUPERLU_DIST_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/superlu-dist-9.2.1-qhuf2dlpafswupxmzzzbs3ze4byxyb4u" CACHE PATH "") +set(SUPERLU_DIST_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/superlu-dist-9.2.1-fxwj4hn3denaalhokks5zr7jwi62otz3" CACHE PATH "") -set(SUITESPARSE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/suite-sparse-5.10.1-h2eyshdr5vyu7wzomirngtjtdpbuzs3t" CACHE PATH "") +set(SUITESPARSE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/suite-sparse-5.10.1-vludha7jex5ir5uofrvfjwuofcfa2lz2" CACHE PATH "") -set(TRILINOS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/trilinos-16.1.0-qszvzz3aj3arkc63ese4ne3ldneairks" CACHE PATH "") +set(TRILINOS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/trilinos-16.1.0-wmjfqvmzmnf6r6ywlltau4535jy65rdz" CACHE PATH "") -set(HYPRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/hypre-git.8b0093306228fef1b92384d9face7fbe5a63b460_master-ufpwbc5l76pfbr3cyj3lqbha4ozhx3u2" CACHE PATH "") +set(HYPRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/hypre-git.8b0093306228fef1b92384d9face7fbe5a63b460_master-6r5iizitmkl4xixkqwiinqychzjdqrxq" CACHE PATH "") set(ENABLE_HYPRE_DEVICE "CUDA" CACHE STRING "") @@ -187,7 +187,7 @@ set(ADDR2LINE_EXEC "/usr/bin/addr2line" CACHE PATH "") set(ENABLE_MATHPRESSO ON CACHE BOOL "") -set(MATHPRESSO_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-02-24/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/mathpresso-geos-752qrxbuejz3idwjyqcgyhujzat5hsih" CACHE PATH "") +set(MATHPRESSO_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/matrix-llvm-19-cuda-12.9_tpls/llvm-19.1.3/mathpresso-geos-bqegytlbvvg4io324svtlc74dzam4ifs" CACHE PATH "") set(ENABLE_XML_UPDATES ON CACHE BOOL "") diff --git a/host-configs/LLNL/tuolumne-toss_4_x86_64_ib_cray-cce@20.0.0-rocm@6.4.3.cmake b/host-configs/LLNL/tuolumne-toss_4_x86_64_ib_cray-cce@20.0.0-rocm@6.4.3.cmake new file mode 100644 index 00000000000..1ce92a13485 --- /dev/null +++ b/host-configs/LLNL/tuolumne-toss_4_x86_64_ib_cray-cce@20.0.0-rocm@6.4.3.cmake @@ -0,0 +1,193 @@ +################################################################################# +# Generated host-config - Edit at own risk! +################################################################################# +#-------------------------------------------------------------------------------- +# SYS_TYPE: toss_4_x86_64_ib_cray +# Compiler Spec: cce@20.0.0/3lsh34k6vtdv3cgqje3mxi5tudetifrc +# CMake executable path: /usr/tce/backend/installations/linux-rhel8-x86_64/gcc-8.3.1/cmake-3.24.2-ywx52e32uh6gkxzuyubpwkulzgdvxyh6/bin/cmake +#-------------------------------------------------------------------------------- + +#-------------------------------------------------------------------------------- +# Compilers +#-------------------------------------------------------------------------------- + +set(CMAKE_C_COMPILER "/usr/tce/packages/cce-tce/cce-20.0.0/bin/craycc" CACHE PATH "") + +set(CMAKE_CXX_COMPILER "/usr/tce/packages/cce-tce/cce-20.0.0/bin/crayCC" CACHE PATH "") + +set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "") + +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -DNDEBUG" CACHE STRING "") + +set(CMAKE_CXX_FLAGS_DEBUG "-g" CACHE STRING "") + +#-------------------------------------------------------------------------------- +# CMake Standard +#-------------------------------------------------------------------------------- + +set(BLT_CXX_STD "c++17" CACHE STRING "") + +#-------------------------------------------------------------------------------- +# MPI +#-------------------------------------------------------------------------------- + +set(ENABLE_MPI ON CACHE BOOL "") + +set(MPI_C_COMPILER "/opt/cray/pe/mpich/9.0.1/ofi/cray/20.0/bin/mpicc" CACHE PATH "") + +set(MPI_CXX_COMPILER "/opt/cray/pe/mpich/9.0.1/ofi/cray/20.0/bin/mpicxx" CACHE PATH "") + +set(MPIEXEC "srun" CACHE PATH "") + +set(MPIEXEC_NUMPROC_FLAG "-n" CACHE PATH "") + +#-------------------------------------------------------------------------------- +# OpenMP +#-------------------------------------------------------------------------------- + +set(ENABLE_OPENMP ON CACHE BOOL "") + +#-------------------------------------------------------------------------------- +# Cuda +#-------------------------------------------------------------------------------- + +set(ENABLE_CUDA OFF CACHE BOOL "") + +#-------------------------------------------------------------------------------- +# ROCm/HIP +#-------------------------------------------------------------------------------- + +set(ENABLE_HIP ON CACHE BOOL "") + +set(CMAKE_HIP_STANDARD "17" CACHE STRING "") + +set(CMAKE_HIP_COMPILER "/opt/rocm-6.4.3/bin/hipcc" CACHE PATH "") + +set(CMAKE_HIP_ARCHITECTURES "gfx942" CACHE STRING "") + +set(ROCM_PATH "/opt/rocm-6.4.3" CACHE PATH "") + +#-------------------------------------------------------------------------------- +# Performance Portability TPLs +#-------------------------------------------------------------------------------- + +set(ENABLE_CHAI ON CACHE BOOL "") + +set(CHAI_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/tuolumne-cce-20-rocm-6.4.3_tpls/cce-20.0.0/chai-2025.12.0-xnyu3aqqd7benfr7fkwlates66mruuth" CACHE PATH "") + +set(RAJA_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/tuolumne-cce-20-rocm-6.4.3_tpls/cce-20.0.0/raja-2025.12.0-amgdvrnkwl2oh5lpddgvyupteldgl6ip" CACHE PATH "") + +set(ENABLE_UMPIRE ON CACHE BOOL "") + +set(UMPIRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/tuolumne-cce-20-rocm-6.4.3_tpls/cce-20.0.0/umpire-2025.12.0-l7ni3umhaf7f4rwoy4qhjfyrnye3oit6" CACHE PATH "") + +set(CAMP_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/tuolumne-cce-20-rocm-6.4.3_tpls/cce-20.0.0/camp-2025.12.0-p2srwdveimzi7csrjw7o3u4ryxpaz5wm" CACHE PATH "") + +#-------------------------------------------------------------------------------- +# IO TPLs +#-------------------------------------------------------------------------------- + +set(ENABLE_CALIPER ON CACHE BOOL "") + +set(CALIPER_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/tuolumne-cce-20-rocm-6.4.3_tpls/cce-20.0.0/caliper-2.14.0-xfkj7r2zaqfuuugu2wdkppydyr3fwrph" CACHE PATH "") + +set(ADIAK_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/tuolumne-cce-20-rocm-6.4.3_tpls/cce-20.0.0/adiak-0.4.0-6rim24h5wdcrhoaxgpw5mldcufzkfqxb" CACHE PATH "") + +set(ZLIB_DIR "/usr" CACHE PATH "") + +set(HDF5_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/tuolumne-cce-20-rocm-6.4.3_tpls/cce-20.0.0/hdf5-1.14.6-b55srpmbowvfsql65n2652uh5xj3n3b5" CACHE PATH "") + +set(CONDUIT_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/tuolumne-cce-20-rocm-6.4.3_tpls/cce-20.0.0/conduit-0.9.5-74psmq2xghvj4rfuqymomncufbxjxb7b" CACHE PATH "") + +set(SILO_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/tuolumne-cce-20-rocm-6.4.3_tpls/cce-20.0.0/silo-4.12.0-dvjbdqytwnsndxfskcpkdodgj6zr7k5n" CACHE PATH "") + +set(PUGIXML_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/tuolumne-cce-20-rocm-6.4.3_tpls/cce-20.0.0/pugixml-1.13-o2jle7fb6idvyr32ibcsvm552yq5xqbe" CACHE PATH "") + +set(VTK_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/tuolumne-cce-20-rocm-6.4.3_tpls/cce-20.0.0/vtk-9.4.2-ztzvsmp6mlmtyk5o3rpqbgn7phg7ervu" CACHE PATH "") + +set(FMT_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/tuolumne-cce-20-rocm-6.4.3_tpls/cce-20.0.0/fmt-11.0.2-x7b5m6zdgekxl3mmjyampxc2pmt4lgur" CACHE PATH "") + +#-------------------------------------------------------------------------------- +# System Math Libraries +#-------------------------------------------------------------------------------- + +set(BLAS_LIBRARIES /usr/lib64/libblas.so CACHE STRING "") + +set(LAPACK_LIBRARIES /usr/lib64/liblapack.so CACHE STRING "") + +#-------------------------------------------------------------------------------- +# Math TPLs +#-------------------------------------------------------------------------------- + +set(METIS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/tuolumne-cce-20-rocm-6.4.3_tpls/cce-20.0.0/metis-5.1.0-oo45sjxzdfx4e4z3qgrmnudzvwfboi7n" CACHE PATH "") + +set(PARMETIS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/tuolumne-cce-20-rocm-6.4.3_tpls/cce-20.0.0/parmetis-4.0.3-onkwfgqwdwkund4tmpvzo3gif3cewf7y" CACHE PATH "") + +set(SCOTCH_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/tuolumne-cce-20-rocm-6.4.3_tpls/cce-20.0.0/scotch-7.0.8-wphygatd54wcwziiuvi63jzkzx3pvrp7" CACHE PATH "") + +set(SUPERLU_DIST_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/tuolumne-cce-20-rocm-6.4.3_tpls/cce-20.0.0/superlu-dist-9.2.1-t3fmcjdkmgtbi3il5fji6t4mihzrxzni" CACHE PATH "") + +set(SUITESPARSE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/tuolumne-cce-20-rocm-6.4.3_tpls/cce-20.0.0/suite-sparse-5.10.1-x3vbz2scbieouiqnnqxoirfsvrx7fj5t" CACHE PATH "") + +set(ENABLE_TRILINOS OFF CACHE BOOL "") + +set(HYPRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/tuolumne-cce-20-rocm-6.4.3_tpls/cce-20.0.0/hypre-git.8b0093306228fef1b92384d9face7fbe5a63b460_master-bwdj6fuiqwuyd25pegpk3s6zu6bfzvju" CACHE PATH "") + +set(ENABLE_HYPRE_DEVICE "HIP" CACHE STRING "") + +set(ENABLE_PETSC OFF CACHE BOOL "") + +set(ENABLE_CALIPER_HYPRE ON CACHE BOOL "") + +set(GEOS_LA_INTERFACE "Hypre" CACHE STRING "") + +#-------------------------------------------------------------------------------- +# Python +#-------------------------------------------------------------------------------- + +set(Python3_ROOT_DIR "/usr/tce/packages/python/python-3.9.12" CACHE PATH "") + +set(Python3_EXECUTABLE "/usr/tce/packages/python/python-3.9.12/bin/python3" CACHE PATH "") + +set(ENABLE_PYGEOSX OFF CACHE BOOL "") + +#-------------------------------------------------------------------------------- +# Documentation +#-------------------------------------------------------------------------------- + +set(ENABLE_DOCS OFF CACHE BOOL "") + +set(ENABLE_DOXYGEN OFF CACHE BOOL "") + +set(ENABLE_SPHINX OFF CACHE BOOL "") + +#-------------------------------------------------------------------------------- +# Development tools +#-------------------------------------------------------------------------------- + +set(ENABLE_UNCRUSTIFY ON CACHE BOOL "") + +set(UNCRUSTIFY_EXECUTABLE "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/tuolumne-cce-20-rocm-6.4.3_tpls/cce-20.0.0/uncrustify-git.401a4098bce9dcc47e024987403f2d59d9ba7bd2_0.70.1-git.319-6hvpggvwvhbhd322pnqivylw2ywdkhaq/bin/uncrustify" CACHE PATH "") + +#-------------------------------------------------------------------------------- +# addr2line +#-------------------------------------------------------------------------------- + +set(ENABLE_ADDR2LINE ON CACHE BOOL "") + +set(ADDR2LINE_EXEC "/usr/bin/addr2line" CACHE PATH "") + +#-------------------------------------------------------------------------------- +# Other +#-------------------------------------------------------------------------------- + +set(ENABLE_MATHPRESSO ON CACHE BOOL "") + +set(MATHPRESSO_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/tuolumne-cce-20-rocm-6.4.3_tpls/cce-20.0.0/mathpresso-geos-w3ssu5ocek533pxesneyk3urbxhnhgmw" CACHE PATH "") + +set(ENABLE_XML_UPDATES ON CACHE BOOL "") + +set(ENABLE_GRPC OFF CACHE BOOL "") + +set(GEOS_BUILD_SHARED_LIBS ON CACHE BOOL "") + diff --git a/host-configs/LLNL/tuolumne-toss_4_x86_64_ib_cray-llvm-amdgpu@6.4.3-rocm@6.4.3.cmake b/host-configs/LLNL/tuolumne-toss_4_x86_64_ib_cray-llvm-amdgpu@6.4.3-rocm@6.4.3.cmake new file mode 100644 index 00000000000..2667ff33165 --- /dev/null +++ b/host-configs/LLNL/tuolumne-toss_4_x86_64_ib_cray-llvm-amdgpu@6.4.3-rocm@6.4.3.cmake @@ -0,0 +1,193 @@ +################################################################################# +# Generated host-config - Edit at own risk! +################################################################################# +#-------------------------------------------------------------------------------- +# SYS_TYPE: toss_4_x86_64_ib_cray +# Compiler Spec: llvm-amdgpu@6.4.3/saipjvhhes22pxj5rnkjw46erthbkkln +# CMake executable path: /usr/tce/backend/installations/linux-rhel8-x86_64/gcc-8.3.1/cmake-3.24.2-ywx52e32uh6gkxzuyubpwkulzgdvxyh6/bin/cmake +#-------------------------------------------------------------------------------- + +#-------------------------------------------------------------------------------- +# Compilers +#-------------------------------------------------------------------------------- + +set(CMAKE_C_COMPILER "/opt/rocm-6.4.3/llvm/bin/amdclang" CACHE PATH "") + +set(CMAKE_CXX_COMPILER "/opt/rocm-6.4.3/llvm/bin/amdclang++" CACHE PATH "") + +set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG -march=native -mtune=native" CACHE STRING "") + +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -DNDEBUG" CACHE STRING "") + +set(CMAKE_CXX_FLAGS_DEBUG "-g" CACHE STRING "") + +#-------------------------------------------------------------------------------- +# CMake Standard +#-------------------------------------------------------------------------------- + +set(BLT_CXX_STD "c++17" CACHE STRING "") + +#-------------------------------------------------------------------------------- +# MPI +#-------------------------------------------------------------------------------- + +set(ENABLE_MPI ON CACHE BOOL "") + +set(MPI_C_COMPILER "/opt/cray/pe/mpich/9.0.1/ofi/amd/6.0/bin/mpicc" CACHE PATH "") + +set(MPI_CXX_COMPILER "/opt/cray/pe/mpich/9.0.1/ofi/amd/6.0/bin/mpicxx" CACHE PATH "") + +set(MPIEXEC "srun" CACHE PATH "") + +set(MPIEXEC_NUMPROC_FLAG "-n" CACHE PATH "") + +#-------------------------------------------------------------------------------- +# OpenMP +#-------------------------------------------------------------------------------- + +set(ENABLE_OPENMP ON CACHE BOOL "") + +#-------------------------------------------------------------------------------- +# Cuda +#-------------------------------------------------------------------------------- + +set(ENABLE_CUDA OFF CACHE BOOL "") + +#-------------------------------------------------------------------------------- +# ROCm/HIP +#-------------------------------------------------------------------------------- + +set(ENABLE_HIP ON CACHE BOOL "") + +set(CMAKE_HIP_STANDARD "17" CACHE STRING "") + +set(CMAKE_HIP_COMPILER "/opt/rocm-6.4.3/bin/hipcc" CACHE PATH "") + +set(CMAKE_HIP_ARCHITECTURES "gfx942" CACHE STRING "") + +set(ROCM_PATH "/opt/rocm-6.4.3" CACHE PATH "") + +#-------------------------------------------------------------------------------- +# Performance Portability TPLs +#-------------------------------------------------------------------------------- + +set(ENABLE_CHAI ON CACHE BOOL "") + +set(CHAI_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/tuolumne-llvm-amdgpu-6.4.3_tpls/llvm-amdgpu-6.4.3/chai-2025.12.0-bui2qjacbspelk7pwk3ap474padtsriy" CACHE PATH "") + +set(RAJA_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/tuolumne-llvm-amdgpu-6.4.3_tpls/llvm-amdgpu-6.4.3/raja-2025.12.0-phw2uaei64dmmcxcle5ct3jsso262eny" CACHE PATH "") + +set(ENABLE_UMPIRE ON CACHE BOOL "") + +set(UMPIRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/tuolumne-llvm-amdgpu-6.4.3_tpls/llvm-amdgpu-6.4.3/umpire-2025.12.0-7nyetx7q5rljh7z2bcchdutu7ugkxpas" CACHE PATH "") + +set(CAMP_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/tuolumne-llvm-amdgpu-6.4.3_tpls/llvm-amdgpu-6.4.3/camp-2025.12.0-n4t7sxktutnfffuwc2e6z2hya4dbxiti" CACHE PATH "") + +#-------------------------------------------------------------------------------- +# IO TPLs +#-------------------------------------------------------------------------------- + +set(ENABLE_CALIPER ON CACHE BOOL "") + +set(CALIPER_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/tuolumne-llvm-amdgpu-6.4.3_tpls/llvm-amdgpu-6.4.3/caliper-2.14.0-nchdbsxkkfwgrezu5azi4iaiwnjx6zy3" CACHE PATH "") + +set(ADIAK_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/tuolumne-llvm-amdgpu-6.4.3_tpls/llvm-amdgpu-6.4.3/adiak-0.4.0-x7wwsvhjq2ehtw4r7jvzjecdpcxiwfl7" CACHE PATH "") + +set(ZLIB_DIR "/usr" CACHE PATH "") + +set(HDF5_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/tuolumne-llvm-amdgpu-6.4.3_tpls/llvm-amdgpu-6.4.3/hdf5-1.14.6-qqfx3gxy555optxhwmffsjtwuo7wpwlo" CACHE PATH "") + +set(CONDUIT_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/tuolumne-llvm-amdgpu-6.4.3_tpls/llvm-amdgpu-6.4.3/conduit-0.9.5-qqbspejhqzbjqxr7antnfuedgxehjysl" CACHE PATH "") + +set(SILO_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/tuolumne-llvm-amdgpu-6.4.3_tpls/llvm-amdgpu-6.4.3/silo-4.12.0-ale723hmqzp6vwhbqp3r7xnslpj73pww" CACHE PATH "") + +set(PUGIXML_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/tuolumne-llvm-amdgpu-6.4.3_tpls/llvm-amdgpu-6.4.3/pugixml-1.13-yo2g6mdyjdcz3saiq6cewsmilagincwn" CACHE PATH "") + +set(VTK_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/tuolumne-llvm-amdgpu-6.4.3_tpls/llvm-amdgpu-6.4.3/vtk-9.4.2-7rwq4ausmeiweksccifubmdxgb6kmgjw" CACHE PATH "") + +set(FMT_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/tuolumne-llvm-amdgpu-6.4.3_tpls/llvm-amdgpu-6.4.3/fmt-11.0.2-vjwb72ugeomwqz4kcgt64id6mnkgqzhp" CACHE PATH "") + +#-------------------------------------------------------------------------------- +# System Math Libraries +#-------------------------------------------------------------------------------- + +set(BLAS_LIBRARIES /usr/lib64/libblas.so CACHE STRING "") + +set(LAPACK_LIBRARIES /usr/lib64/liblapack.so CACHE STRING "") + +#-------------------------------------------------------------------------------- +# Math TPLs +#-------------------------------------------------------------------------------- + +set(METIS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/tuolumne-llvm-amdgpu-6.4.3_tpls/llvm-amdgpu-6.4.3/metis-5.1.0-fah7yojtygjosrxaywxuhy6arel2a5o3" CACHE PATH "") + +set(PARMETIS_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/tuolumne-llvm-amdgpu-6.4.3_tpls/llvm-amdgpu-6.4.3/parmetis-4.0.3-ztyzko3dlrcb5mfhkvxdwvgoyyq7wbl3" CACHE PATH "") + +set(SCOTCH_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/tuolumne-llvm-amdgpu-6.4.3_tpls/llvm-amdgpu-6.4.3/scotch-7.0.8-5t6uibtbtbfdbkisch7rgxvy44pgw6pm" CACHE PATH "") + +set(SUPERLU_DIST_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/tuolumne-llvm-amdgpu-6.4.3_tpls/llvm-amdgpu-6.4.3/superlu-dist-9.2.1-m66d72gxlkboj7tdkfmuxww2auhzraii" CACHE PATH "") + +set(SUITESPARSE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/tuolumne-llvm-amdgpu-6.4.3_tpls/llvm-amdgpu-6.4.3/suite-sparse-5.10.1-iwxia6d76g2r6dwnto2iajidfws2j3ts" CACHE PATH "") + +set(ENABLE_TRILINOS OFF CACHE BOOL "") + +set(HYPRE_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/tuolumne-llvm-amdgpu-6.4.3_tpls/llvm-amdgpu-6.4.3/hypre-git.8b0093306228fef1b92384d9face7fbe5a63b460_master-jiobpmxaz3fp5dp6wt5tyqewmzv3a3q6" CACHE PATH "") + +set(ENABLE_HYPRE_DEVICE "HIP" CACHE STRING "") + +set(ENABLE_PETSC OFF CACHE BOOL "") + +set(ENABLE_CALIPER_HYPRE ON CACHE BOOL "") + +set(GEOS_LA_INTERFACE "Hypre" CACHE STRING "") + +#-------------------------------------------------------------------------------- +# Python +#-------------------------------------------------------------------------------- + +set(Python3_ROOT_DIR "/usr/tce/packages/python/python-3.9.12" CACHE PATH "") + +set(Python3_EXECUTABLE "/usr/tce/packages/python/python-3.9.12/bin/python3" CACHE PATH "") + +set(ENABLE_PYGEOSX OFF CACHE BOOL "") + +#-------------------------------------------------------------------------------- +# Documentation +#-------------------------------------------------------------------------------- + +set(ENABLE_DOCS OFF CACHE BOOL "") + +set(ENABLE_DOXYGEN OFF CACHE BOOL "") + +set(ENABLE_SPHINX OFF CACHE BOOL "") + +#-------------------------------------------------------------------------------- +# Development tools +#-------------------------------------------------------------------------------- + +set(ENABLE_UNCRUSTIFY ON CACHE BOOL "") + +set(UNCRUSTIFY_EXECUTABLE "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/tuolumne-llvm-amdgpu-6.4.3_tpls/llvm-amdgpu-6.4.3/uncrustify-git.401a4098bce9dcc47e024987403f2d59d9ba7bd2_0.70.1-git.319-b7rjjhdbf6yqcn5br6rzvsngyvb2i4ha/bin/uncrustify" CACHE PATH "") + +#-------------------------------------------------------------------------------- +# addr2line +#-------------------------------------------------------------------------------- + +set(ENABLE_ADDR2LINE ON CACHE BOOL "") + +set(ADDR2LINE_EXEC "/usr/bin/addr2line" CACHE PATH "") + +#-------------------------------------------------------------------------------- +# Other +#-------------------------------------------------------------------------------- + +set(ENABLE_MATHPRESSO ON CACHE BOOL "") + +set(MATHPRESSO_DIR "/usr/WS1/GEOS/GEOSX/TPLs_2026-03-02/tuolumne-llvm-amdgpu-6.4.3_tpls/llvm-amdgpu-6.4.3/mathpresso-geos-nolryyeptxklghofeiszkkyyhd6don35" CACHE PATH "") + +set(ENABLE_XML_UPDATES ON CACHE BOOL "") + +set(ENABLE_GRPC OFF CACHE BOOL "") + +set(GEOS_BUILD_SHARED_LIBS ON CACHE BOOL "") +