From c7da2593b1d13bf39a13a361aad0900bad51c2a0 Mon Sep 17 00:00:00 2001 From: "Timothy A. Smith" Date: Fri, 6 May 2022 13:38:25 -0600 Subject: [PATCH] STK: Snapshot 05-06-22 13:38 --- .../Akri_DeleteSmallElementsMain.cpp | 11 +- packages/percept/src/ngp/example.cpp | 184 ------------------ packages/percept/src/percept/FieldTypes.hpp | 2 +- packages/percept/src/percept/PerceptMesh.cpp | 35 ++-- packages/percept/src/percept/PerceptMesh.hpp | 10 +- .../percept/src/percept/RebalanceMesh.cpp | 2 +- .../src/percept/mesh/gen/SweepMesher.cpp | 12 +- .../src/percept/mesh/gen/SweepMesher.hpp | 10 +- .../stk_geom/3D/FitGregoryPatchesPBGL.cpp | 5 +- .../stk_tools/scripts/trilinos_snapshot.sh | 25 ++- .../stk_unit_test_utils/CMakeLists.txt | 1 + .../UnitTestDiagnosticsContainer.cpp | 14 +- .../stk_util/registry/ProductRegistry.cpp | 2 +- 13 files changed, 71 insertions(+), 242 deletions(-) delete mode 100644 packages/percept/src/ngp/example.cpp diff --git a/packages/krino/delete_small_elements/Akri_DeleteSmallElementsMain.cpp b/packages/krino/delete_small_elements/Akri_DeleteSmallElementsMain.cpp index 1a5fd03eaabc..34aec55776d8 100644 --- a/packages/krino/delete_small_elements/Akri_DeleteSmallElementsMain.cpp +++ b/packages/krino/delete_small_elements/Akri_DeleteSmallElementsMain.cpp @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -105,14 +106,14 @@ bool read_command_line( int argc, char *argv[], DeleteSmallElementsInputData & i static bool delete_small_elements(const DeleteSmallElementsInputData& inputData, const stk::ParallelMachine comm) { - stk::mesh::MetaData meta; - stk::mesh::BulkData bulk(meta, comm); + std::shared_ptr bulk = stk::mesh::MeshBuilder(comm).create(); + stk::mesh::MetaData& meta = bulk->mesh_meta_data(); - stk::io::fill_mesh_with_auto_decomp(inputData.meshIn, bulk); + stk::io::fill_mesh_with_auto_decomp(inputData.meshIn, *bulk); // delete infinitesimal elements double minEdgeLength, maxEdgeLength, minElementVolume, maxElementVolume; - compute_element_quality(bulk, minEdgeLength, maxEdgeLength, minElementVolume, maxElementVolume); + compute_element_quality(*bulk, minEdgeLength, maxEdgeLength, minElementVolume, maxElementVolume); sierra::Env::outputP0() << "Overall mesh size results: minEdgeLength=" << minEdgeLength << ", maxEdgeLength=" << maxEdgeLength << ", minElementVolume=" << minElementVolume << ", maxElementVolume=" << maxElementVolume << std::endl; stk::mesh::Selector blockSelector = meta.universal_part(); @@ -129,7 +130,7 @@ static bool delete_small_elements(const DeleteSmallElementsInputData& inputData, const double minRetainedElementVolume = inputData.minNodalVolumeSpecified ? inputData.minNodalVolume : (inputData.minRelativeNodalVolume*maxElementVolume); if (minElementVolume < minRetainedElementVolume) - delete_all_entities_using_nodes_with_nodal_volume_below_threshold(bulk, blockSelector, minRetainedElementVolume); + delete_all_entities_using_nodes_with_nodal_volume_below_threshold(*bulk, blockSelector, minRetainedElementVolume); else sierra::Env::outputP0() << "All nodes already have nodal volume larger than " << minRetainedElementVolume << "." << std::endl; diff --git a/packages/percept/src/ngp/example.cpp b/packages/percept/src/ngp/example.cpp deleted file mode 100644 index c22e8abebf06..000000000000 --- a/packages/percept/src/ngp/example.cpp +++ /dev/null @@ -1,184 +0,0 @@ -#include -#include - -#include - -typedef Kokkos::View ViewVectorType; -typedef Kokkos::View ViewMatrixType; - -struct TestKernel { - int S = 4194304, M = 1024, N = 4096, nrepeat = 100; - - ViewVectorType y; - ViewVectorType x; - ViewMatrixType A; - - TestKernel() - { - S = pow( 2, 22); - M = 1024; - N = S/N; - nrepeat = 100; - - y = ViewVectorType("y", N); - x = ViewVectorType("x", M); - A = ViewMatrixType("A", N, M); - - printf(" Initialize\n"); - initialize (); - } - - void initialize () - { - // Initialize y vector - Kokkos::parallel_for(N, KOKKOS_LAMBDA (int i){ - y( i ) = 1; - }); - - printf(" first pfor\n"); - // Initialize x vector - Kokkos::parallel_for(M, KOKKOS_LAMBDA (int i){ - x( i ) = 1; - }); - - // Initialize A matrix, note 2D indexing - Kokkos::parallel_for(N, KOKKOS_LAMBDA (int j){ - for ( int i = 0 ; i < M ; ++i ) { - A( j , i ) = 1; - } - }); - } - - void run () - { - const double solution = (double)N *(double)M; - - // Timer products - struct timeval begin,end; - - gettimeofday(&begin,NULL); - - for ( int repeat = 0; repeat < nrepeat; repeat++) { - - //Application: = y^T*A*x - double result = 0; - Kokkos::parallel_reduce(N, KOKKOS_LAMBDA ( int j, double &update ) { - double temp2 = 0; - for ( int i = 0 ; i < M ; ++i ) { - temp2 += A( j , i ) * x( i ); - } - update += y( j ) * temp2; - }, result ); - - EXPECT_NEAR(result, solution, 1.e-12); - } - - gettimeofday(&end,NULL); - - // Calculate time - double time = 1.0*(end.tv_sec-begin.tv_sec) + - 1.0e-6*(end.tv_usec-begin.tv_usec); - - // Calculate bandwidth. - // Each matrix A row (each of length M) is read once. - // The x vector (of length M) is read N times. - // The y vector (of length N) is read once. - // double Gbytes = 1.0e-9 * double(sizeof(double) * ( 2 * M * N + N )); - double Gbytes = 1.0e-9 * double(sizeof(double) * ( M + M * N + N )) ; - - // Print results (problem size, time and bandwidth in GB/s) - printf(" M( %d ) N( %d ) nrepeat ( %d ) problem( %g MB ) time( %g s ) bandwidth( %g GB/s )\n", - M , N, nrepeat, Gbytes * 1000, time, Gbytes * nrepeat / time ); - } -}; - -TEST(test,foo) -{ - TestKernel().run(); -} - -void parallel_reduce_and_modify_array() -{ - const int N=3; - ViewVectorType x = ViewVectorType("x", N); - - Kokkos::parallel_for(N, KOKKOS_LAMBDA (int i){ - x(i) = i; - }); - - int sum=0; - - Kokkos::parallel_reduce(N, KOKKOS_LAMBDA (int i, int &local_sum) { - local_sum += x(i); - x(i) *= 2; - }, sum); - - EXPECT_EQ(sum, 0+1+2); -} - -TEST(test,parallel_reduce_and_modify_array) -{ - parallel_reduce_and_modify_array(); -} - -KOKKOS_INLINE_FUNCTION -double metric(const double x, bool& valid) -{ - double val = 0.0; - valid = true; - for (unsigned i=0; i<100; i++) - val += std::sin(M_PI*i*x); - if (val<0) valid = false; - return val; -} - -void test_metric() { - - int nrepeat = 500; - - unsigned M = 10000; - ViewVectorType x = ViewVectorType("x", M); - - Kokkos::parallel_for(M, KOKKOS_LAMBDA (int i){ - x(i) = (double)i/(double)M; - }); - - // Timer products - struct timeval begin,end; - - gettimeofday(&begin,NULL); - - for ( int repeat = 0; repeat < nrepeat; repeat++) { - - double total_metric = 0; - Kokkos::parallel_reduce(M, KOKKOS_LAMBDA (int i, double &local_metric){ - bool valid; - local_metric += metric(x(i),valid); - }, total_metric); - - if (repeat==nrepeat-1) - std::cout << "total_metric = " << total_metric << std::endl; - } - - gettimeofday(&end,NULL); - - // Calculate time - double time = 1.0*(end.tv_sec-begin.tv_sec) + - 1.0e-6*(end.tv_usec-begin.tv_usec); - - // Calculate bandwidth. - // Each matrix A row (each of length M) is read once. - // The x vector (of length M) is read N times. - // The y vector (of length N) is read once. - // double Gbytes = 1.0e-9 * double(sizeof(double) * ( 2 * M * N + N )); - double Gbytes = 1.0e-9 * double(sizeof(double) * ( M )) ; - - // Print results (problem size, time and bandwidth in GB/s) - printf(" M( %d ) nrepeat ( %d ) problem( %g MB ) time( %g s ) bandwidth( %g GB/s )\n", - M , nrepeat, Gbytes * 1000, time, Gbytes * nrepeat / time ); -} - -TEST(foo, metric) -{ - test_metric(); -} diff --git a/packages/percept/src/percept/FieldTypes.hpp b/packages/percept/src/percept/FieldTypes.hpp index 304f1cc11528..a7f4459e6424 100644 --- a/packages/percept/src/percept/FieldTypes.hpp +++ b/packages/percept/src/percept/FieldTypes.hpp @@ -16,7 +16,7 @@ namespace percept { - typedef stk::mesh::Field GenericFieldType; + typedef stk::mesh::Field GenericFieldType; typedef stk::mesh::Field ScalarFieldType ; typedef stk::mesh::Field ScalarIntFieldType ; diff --git a/packages/percept/src/percept/PerceptMesh.cpp b/packages/percept/src/percept/PerceptMesh.cpp index 17d5ebf14e0e..76cb6a53a36c 100644 --- a/packages/percept/src/percept/PerceptMesh.cpp +++ b/packages/percept/src/percept/PerceptMesh.cpp @@ -80,6 +80,7 @@ #include #include #include +#include // FIXME @@ -115,7 +116,6 @@ m_isOpen(false), m_isInitialized(false), m_isAdopted(false), - m_needsDelete(false), m_dontCheckState(false), m_outputActiveChildrenOnly(false), m_filename(), @@ -192,9 +192,10 @@ entity_rank_names.push_back("FAMILY_TREE"); #endif - m_metaData = new stk::mesh::MetaData(); + stk::mesh::MeshBuilder builder(m_comm); + m_bulkData = builder.create(); + m_metaData = std::shared_ptr(&m_bulkData->mesh_meta_data(),[](auto ptrWeWontDelete){}); m_metaData->initialize(m_spatialDim, entity_rank_names); - m_bulkData = new stk::mesh::BulkData(*m_metaData, m_comm); const unsigned p_rank = stk::parallel_machine_rank( m_comm ); @@ -217,7 +218,6 @@ } m_isOpen = true; m_filename = ""; - m_needsDelete = true; } void PerceptMesh:: @@ -291,8 +291,6 @@ setProperty("in_filename", in_filename); setProperty("file_type", type); - m_needsDelete = false; - if (m_isOpen) { throw std::runtime_error("percept::Mesh::open: mesh is already opened. Please close() before trying open, or use reopen()."); @@ -1776,8 +1774,8 @@ // ctor constructor PerceptMesh::PerceptMesh(const stk::mesh::MetaData* metaData, stk::mesh::BulkData* bulkData, bool isCommitted) : - m_metaData(const_cast(metaData)), - m_bulkData(bulkData), + m_metaData(std::shared_ptr(const_cast(metaData),[](auto ptrWeWontDelete){})), + m_bulkData(std::shared_ptr(bulkData,[](auto ptrWeWontDelete){})), m_output_file_index(0), m_iossMeshDataDidPopulate(false), m_sync_io_regions(false), @@ -1789,7 +1787,6 @@ m_isOpen(true), m_isInitialized(true), m_isAdopted(true), - m_needsDelete(false), m_dontCheckState(false), m_outputActiveChildrenOnly(false), m_filename(), @@ -1842,7 +1839,7 @@ void PerceptMesh::set_bulk_data(stk::mesh::BulkData *bulkData) { - m_bulkData = bulkData; + m_bulkData = std::shared_ptr(bulkData,[](auto ptrWeWontDelete){}); m_comm = bulkData->parallel(); if (!Teuchos::is_null(m_iossMeshData) && m_iossMeshData->is_bulk_data_null()) m_iossMeshData->set_bulk_data(*bulkData); @@ -1896,13 +1893,8 @@ m_geometry_parts = 0; m_iossMeshData = Teuchos::null; m_iossMeshDataOut = Teuchos::null; - if (m_needsDelete) - { - if (m_bulkData) delete m_bulkData; - if (m_metaData) delete m_metaData; - m_metaData = 0; - m_bulkData = 0; - } + m_bulkData.reset(); + m_metaData.reset(); } PerceptMesh::~PerceptMesh() @@ -2365,13 +2357,13 @@ switch (m_searchType) { case FieldFunction::SIMPLE_SEARCH: - m_searcher = new SimpleSearcher(m_bulkData); + m_searcher = new SimpleSearcher(m_bulkData.get()); break; case FieldFunction::STK_SEARCH: { //int spDim = last_dimension(input_phy_points); if (get_spatial_dim() == 3) - m_searcher = new STKSearcher(m_bulkData); + m_searcher = new STKSearcher(m_bulkData.get()); else { //m_searcher = new STKSearcher<2>(this); @@ -2460,7 +2452,7 @@ // The coordinates field will be set to the correct dimension. // this call creates the MetaData mesh_data->create_input_mesh(); - m_metaData = &mesh_data->meta_data(); + m_metaData = mesh_data->meta_data_ptr(); // This defines all fields found on the input mesh as stk fields if (!m_avoid_add_all_mesh_fields_as_input_fields) @@ -2594,7 +2586,6 @@ //---------------------------------- // Process Bulkdata for all Entity Types. Subsetting is possible. - //stk::mesh::BulkData bulk_data(meta_data, comm); // Read the model (topology, coordinates, attributes, etc) // from the mesh-file into the mesh bulk data. @@ -2603,7 +2594,7 @@ { mesh_data->populate_bulk_data(); m_iossMeshDataDidPopulate = true; - m_bulkData = &mesh_data->bulk_data(); + m_bulkData = mesh_data->bulk_data_ptr(); } int timestep_count = mesh_data->get_input_io_region()->get_property("state_count").get_int(); diff --git a/packages/percept/src/percept/PerceptMesh.hpp b/packages/percept/src/percept/PerceptMesh.hpp index 6bb852d0f88f..c4e99b2d10b1 100644 --- a/packages/percept/src/percept/PerceptMesh.hpp +++ b/packages/percept/src/percept/PerceptMesh.hpp @@ -278,10 +278,10 @@ void dump_elements_compact(const std::string& partName = "", bool include_family_tree=false); /// get the low-level bulk data pointer from stk_mesh - inline stk::mesh::BulkData * get_bulk_data() { return m_bulkData; } + inline stk::mesh::BulkData * get_bulk_data() { return m_bulkData.get(); } /// get the low-level meta data pointer from stk_mesh - inline stk::mesh::MetaData * get_fem_meta_data() { return m_metaData; } + inline stk::mesh::MetaData * get_fem_meta_data() { return m_metaData.get(); } /// get a pointer to a stk_mesh Part with the given name - if @param partial_string_match_ok, allow a /// partial match of the part_name with any part found, in the sense that @param part_name can @@ -1093,9 +1093,8 @@ Teuchos::RCP get_ioss_mesh_data_output() { return m_iossMeshDataOut; } size_t get_output_file_index() { return m_output_file_index;} private: - //stk::mesh::MetaData * m_fem_meta_data; - stk::mesh::MetaData * m_metaData; - stk::mesh::BulkData * m_bulkData; + std::shared_ptr m_metaData; + std::shared_ptr m_bulkData; Teuchos::RCP m_iossMeshData; Teuchos::RCP m_iossMeshDataOut; @@ -1114,7 +1113,6 @@ bool m_isOpen; bool m_isInitialized; bool m_isAdopted; - bool m_needsDelete; bool m_dontCheckState; bool m_outputActiveChildrenOnly; std::string m_filename; diff --git a/packages/percept/src/percept/RebalanceMesh.cpp b/packages/percept/src/percept/RebalanceMesh.cpp index ca5b31876a27..007bb982d1fb 100644 --- a/packages/percept/src/percept/RebalanceMesh.cpp +++ b/packages/percept/src/percept/RebalanceMesh.cpp @@ -57,7 +57,7 @@ namespace percept { // FIXME bool found_shared = (eMesh.shared(root) || !eMesh.owned(root)) - || eMesh.get_bulk_data()->in_send_ghost(eMesh.key(root)); + || eMesh.get_bulk_data()->in_send_ghost(root); if (!found_shared) { continue; diff --git a/packages/percept/src/percept/mesh/gen/SweepMesher.cpp b/packages/percept/src/percept/mesh/gen/SweepMesher.cpp index c5a855ce0fc7..4726dc1eeac9 100644 --- a/packages/percept/src/percept/mesh/gen/SweepMesher.cpp +++ b/packages/percept/src/percept/mesh/gen/SweepMesher.cpp @@ -32,6 +32,7 @@ #include #include #include +#include namespace percept { @@ -84,10 +85,11 @@ namespace percept void SweepMesher::stkMeshCreateMetaNoCommit(stk::ParallelMachine& comm) { - //m_metaData = new stk::mesh::MetaData(3); // stk::mesh::fem_entity_rank_names() ); // FAMILY_TREE search - m_metaData = new stk::mesh::MetaData(3, get_entity_rank_names(3u) ); // stk::mesh::fem_entity_rank_names() ); - //m_metaData = & stk::mesh::MetaData::get_meta_data(*m_metaData); - m_bulkData = new stk::mesh::BulkData( *m_metaData, comm ); + stk::mesh::MeshBuilder builder(comm); + builder.set_spatial_dimension(3); + builder.set_entity_rank_names(get_entity_rank_names(3u)); + m_bulkData = builder.create(); + m_metaData = std::shared_ptr(&m_bulkData->mesh_meta_data(), [](auto ptrWeWontDelete){}); m_parts.resize(NUM_ELEM_TYPES); for (unsigned ieletype = 0; ieletype < NUM_ELEM_TYPES; ieletype++) @@ -182,7 +184,7 @@ namespace percept const std::string out_filename(filename); stk::io::StkMeshIoBroker mesh; - mesh.set_bulk_data(*m_bulkData); + mesh.set_bulk_data(m_bulkData); size_t result_file_index = mesh.create_output_mesh(out_filename, stk::io::WRITE_RESULTS); mesh.write_output_mesh(result_file_index); } diff --git a/packages/percept/src/percept/mesh/gen/SweepMesher.hpp b/packages/percept/src/percept/mesh/gen/SweepMesher.hpp index 0f8c308c6fdc..a907b1f1184e 100644 --- a/packages/percept/src/percept/mesh/gen/SweepMesher.hpp +++ b/packages/percept/src/percept/mesh/gen/SweepMesher.hpp @@ -167,8 +167,6 @@ SHARDS_ARRAY_DIM_TAG_SIMPLE_DECLARATION( Tag1 ) ~SweepMesher() { - delete m_bulkData; - delete m_metaData; } void initialize() @@ -192,14 +190,14 @@ SHARDS_ARRAY_DIM_TAG_SIMPLE_DECLARATION( Tag1 ) m_elems[i] = source.m_elems[i]; } - stk::mesh::BulkData * get_bulk_data() { return m_bulkData;} - stk::mesh::MetaData * getMetaData() { return m_metaData; } + stk::mesh::BulkData * get_bulk_data() { return m_bulkData.get();} + stk::mesh::MetaData * getMetaData() { return m_metaData.get(); } private: bool m_dump; unsigned m_spatial_dimension; - stk::mesh::MetaData * m_metaData; - stk::mesh::BulkData * m_bulkData; + std::shared_ptr m_metaData; + std::shared_ptr m_bulkData; std::vector m_parts; stk::mesh::Part *m_block_hex; stk::mesh::Part *m_block_wedge; diff --git a/packages/percept/src/percept/mesh/geometry/stk_geom/3D/FitGregoryPatchesPBGL.cpp b/packages/percept/src/percept/mesh/geometry/stk_geom/3D/FitGregoryPatchesPBGL.cpp index 5c0426b189a3..e9b7efd8a6b8 100644 --- a/packages/percept/src/percept/mesh/geometry/stk_geom/3D/FitGregoryPatchesPBGL.cpp +++ b/packages/percept/src/percept/mesh/geometry/stk_geom/3D/FitGregoryPatchesPBGL.cpp @@ -7,7 +7,7 @@ // license that can be found in the LICENSE file. #if HAVE_BOOST_GRAPH - + // common interface //#include "FitGregoryPatchesPBGLDeclCommon.hpp" #include "FitGregoryPatches.hpp" @@ -40,6 +40,9 @@ #undef OMPI_SKIP_MPICXX #include + +#define BOOST_BIND_GLOBAL_PLACEHOLDERS 1 + #include #include #include diff --git a/packages/stk/stk_tools/stk_tools/scripts/trilinos_snapshot.sh b/packages/stk/stk_tools/stk_tools/scripts/trilinos_snapshot.sh index 560a514cde0a..1ef4a772d2f6 100755 --- a/packages/stk/stk_tools/stk_tools/scripts/trilinos_snapshot.sh +++ b/packages/stk/stk_tools/stk_tools/scripts/trilinos_snapshot.sh @@ -31,9 +31,15 @@ set_stk_version() { exe "sed -i 's/$SEARCH_LINE/$REPLACE_LINE/' $STK_FILE" } -export SIERRA=${SIERRA:-/scratch/$USER/trilinos-snapshot/code} +update_package() { + exe rm -rf packages/$1 + exe cp -r $SIERRA/$1 packages/$1 + exe git add --all packages/$1 +} + +export SIERRA=${SIERRA:-/fgs/$USER/trilinos-snapshot/code} export SIERRA_BRANCH=master -export TRILINOS=${TRILINOS:-/scratch/$USER/trilinos-snapshot/Trilinos} +export TRILINOS=${TRILINOS:-/fgs/$USER/trilinos-snapshot/Trilinos} export TRILINOS_BRANCH=develop export COMMIT_MESSAGE="STK: Snapshot $(date +'%m-%d-%y %H:%M')" @@ -59,9 +65,18 @@ exe git pull exe git checkout $SNAPSHOT_BRANCH exe git reset --hard $TRILINOS_BRANCH -exe rm -rf packages/stk -exe cp -r $SIERRA/stk packages/stk -exe git add --all packages/stk + +update_package stk +if [[ -v UPDATE_PERCEPT ]]; then + update_package percept/src + exe git restore --staged *percept*CMakeLists.txt + exe git restore *percept*CMakeLists.txt +fi +if [[ -v UPDATE_KRINO ]]; then + update_package krino + exe git rm -rf packages/krino/krino_sierra packages/krino/Jamfile packages/krino/.clang-format +fi + set_stk_version $STK_VERSION_STRING exe git commit -am '"'$COMMIT_MESSAGE'"' exe git push --force origin $SNAPSHOT_BRANCH diff --git a/packages/stk/stk_unit_test_utils/stk_unit_test_utils/CMakeLists.txt b/packages/stk/stk_unit_test_utils/stk_unit_test_utils/CMakeLists.txt index 3344b47cf2dd..ddd1c121973f 100644 --- a/packages/stk/stk_unit_test_utils/stk_unit_test_utils/CMakeLists.txt +++ b/packages/stk/stk_unit_test_utils/stk_unit_test_utils/CMakeLists.txt @@ -43,6 +43,7 @@ SET(SOURCES_NEED_IO ) SET(HEADERS_NEED_MESH_BUT_NOT_IO + BuildMesh.hpp BucketTester.hpp MeshFixture.hpp MeshFileFixture.hpp diff --git a/packages/stk/stk_unit_tests/stk_balance/UnitTestDiagnosticsContainer.cpp b/packages/stk/stk_unit_tests/stk_balance/UnitTestDiagnosticsContainer.cpp index e6db3d84fc42..1ddc614940da 100644 --- a/packages/stk/stk_unit_tests/stk_balance/UnitTestDiagnosticsContainer.cpp +++ b/packages/stk/stk_unit_tests/stk_balance/UnitTestDiagnosticsContainer.cpp @@ -66,10 +66,13 @@ TEST_F(UnitTestDiagnosticsContainer, registration) diagContainer.register_diagnostic(); diagContainer.register_diagnostic(); - ASSERT_NE(diagContainer.get(), nullptr); - ASSERT_NE(diagContainer.get(), nullptr); - EXPECT_EQ(typeid(*diagContainer.get()), typeid(UnsignedDiagnosticTester)); - EXPECT_EQ(typeid(*diagContainer.get()), typeid(UnsignedDiagnosticTester2)); + auto retrievedUnsignedDiagnosticTester = diagContainer.get(); + auto retrievedUnsignedDiagnosticTester2 = diagContainer.get(); + + ASSERT_NE(retrievedUnsignedDiagnosticTester, nullptr); + ASSERT_NE(retrievedUnsignedDiagnosticTester2, nullptr); + EXPECT_EQ(typeid(*retrievedUnsignedDiagnosticTester), typeid(UnsignedDiagnosticTester)); + EXPECT_EQ(typeid(*retrievedUnsignedDiagnosticTester2), typeid(UnsignedDiagnosticTester2)); } TEST_F(UnitTestDiagnosticsContainer, duplicateRegistration) @@ -90,7 +93,8 @@ TEST_F(UnitTestDiagnosticsContainer, iterateDiagnostics) unsigned index = 0; for (auto it = diagContainer.begin(); it != diagContainer.end(); ++it, ++index) { - EXPECT_EQ(typeid(**it), *expectedTypes[index]); + auto diagContainerEntry = *it; + EXPECT_EQ(typeid(*diagContainerEntry), *expectedTypes[index]); } } diff --git a/packages/stk/stk_util/stk_util/registry/ProductRegistry.cpp b/packages/stk/stk_util/stk_util/registry/ProductRegistry.cpp index c6e2718c180a..7bdb05e005cc 100644 --- a/packages/stk/stk_util/stk_util/registry/ProductRegistry.cpp +++ b/packages/stk/stk_util/stk_util/registry/ProductRegistry.cpp @@ -42,7 +42,7 @@ //In Sierra, STK_VERSION_STRING is provided on the compile line by bake. //For Trilinos stk snapshots, the following macro definition gets populated with //the real version string by the trilinos_snapshot.sh script. -#define STK_VERSION_STRING "5.7.1-472-g4e6ace8b" +#define STK_VERSION_STRING "5.7.1-554-gc83e8fe2" #endif namespace stk {