From d07862209be1313d93fcdf0ce095e6da681ad155 Mon Sep 17 00:00:00 2001 From: Cameron Smith Date: Sun, 19 Apr 2026 14:52:01 -0400 Subject: [PATCH 1/8] new modelbuilder api, WIP [skip-ci] --- gmi_sim/gmi_sim.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gmi_sim/gmi_sim.cc b/gmi_sim/gmi_sim.cc index e79b25d6b..c795dbf5a 100644 --- a/gmi_sim/gmi_sim.cc +++ b/gmi_sim/gmi_sim.cc @@ -493,8 +493,14 @@ struct gmi_model* gmi_sim_load(const char* nativefile, const char* smdfile) if (NM_isAssemblyModel(nm)) { pGModel am = GAM_createFromNativeModel(nm, NULL); NM_release(nm); +#if SIMMODSUITE_MAJOR_VERSION < 2026 sm = GM_createFromAssemblyModel(am, NULL, NULL); GM_release(am); +#else + pModelBuilder mb = ModelBuilder_new(am); + ModelBuilder_setOperation(mb, ModelBuilder_unite); + sm = ModelBuilder_execute(mb, NULL); +#endif nm = GM_nativeModel(sm); } else sm = GM_createFromNativeModel(nm, NULL); From 330ec29dd2836f774e3adf12ded9c98f7fb15f48 Mon Sep 17 00:00:00 2001 From: Cameron Smith Date: Sun, 19 Apr 2026 15:30:10 -0400 Subject: [PATCH 2/8] wip - cc modifications, needs review --- CMakeLists.txt | 13 +++++++++++++ apf_cap/pkg_tribits.cmake | 4 ++-- apf_sim/CMakeLists.txt | 18 ------------------ apf_sim/apfSIM.cc | 2 +- apf_sim/pkg_tribits.cmake | 12 +----------- gmi_sim/gmi_sim.cc | 1 + phasta/phAttrib.cc | 2 +- ...pf_simConfig.h.in => simModSuiteConfig.h.in | 0 test/generate.cc | 2 +- test/rm_extrusion.cc | 2 +- test/simTranslate.cc | 2 +- 11 files changed, 22 insertions(+), 36 deletions(-) rename apf_sim/apf_simConfig.h.in => simModSuiteConfig.h.in (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7a2ad4c00..acf5a20f3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -174,6 +174,19 @@ endif() configure_file(SCOREC_config.h.in SCOREC_config.h) install(FILES "${CMAKE_BINARY_DIR}/SCOREC_config.h" DESTINATION include) + +if(ENABLE_SIMMETRIX) + option(ENABLE_FIELDSIM "Enable use of FieldSim from Simmetrix SimModSuite" FALSE) + message(STATUS "ENABLE_FIELDSIM: ${ENABLE_FIELDSIM}") + set(USE_FIELDSIM FALSE) + if(SIMMODSUITE_SimField_FOUND AND ENABLE_FIELDSIM) + set(USE_FIELDSIM TRUE) + endif() + set(USE_SIM_ADVMESHING ${SIMMODSUITE_SimAdvMeshing_FOUND}) + configure_file(simModSuiteConfig.h.in simModSuiteConfig.h) + install(FILES "${CMAKE_BINARY_DIR}/simModSuiteConfig.h" DESTINATION include) +endif() + include_directories(PUBLIC "$") # Include the SCOREC project packages diff --git a/apf_cap/pkg_tribits.cmake b/apf_cap/pkg_tribits.cmake index 595337175..62f84e0a7 100644 --- a/apf_cap/pkg_tribits.cmake +++ b/apf_cap/pkg_tribits.cmake @@ -2,8 +2,8 @@ tribits_package(SCORECapf_cap) include_directories(${CMAKE_CURRENT_SOURCE_DIR}) -#directory containing apf_simConfig.h -include_directories("${CMAKE_CURRENT_BINARY_DIR}") +#directory containing simModSuiteConfig.h +include_directories("${PROJECT_BINARY_DIR}") #Sources & Headers set(SOURCES apfCAP.cc) diff --git a/apf_sim/CMakeLists.txt b/apf_sim/CMakeLists.txt index 7606ef720..dd6abc499 100644 --- a/apf_sim/CMakeLists.txt +++ b/apf_sim/CMakeLists.txt @@ -21,24 +21,6 @@ target_include_directories(apf_sim PUBLIC $ ) -option(ENABLE_FIELDSIM "Enable use of FieldSim from Simmetrix SimModSuite" FALSE) -message(STATUS "ENABLE_FIELDSIM: ${ENABLE_FIELDSIM}") -set(USE_FIELDSIM FALSE) -if( ${SIMMODSUITE_SimField_FOUND} AND ENABLE_FIELDSIM ) - set(USE_FIELDSIM TRUE) -endif() -set(USE_SIM_ADVMESHING ${HAVE_SIMADVMESHING}) - -configure_file( - "${CMAKE_CURRENT_SOURCE_DIR}/apf_simConfig.h.in" - "${CMAKE_CURRENT_BINARY_DIR}/apf_simConfig.h") -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/apf_simConfig.h - DESTINATION include) -#directory containing apf_simConfig.h -target_include_directories(apf_sim PUBLIC - $) - - scorec_export_library(apf_sim) bob_end_subdir() diff --git a/apf_sim/apfSIM.cc b/apf_sim/apfSIM.cc index 09a447a19..4f6e3219f 100644 --- a/apf_sim/apfSIM.cc +++ b/apf_sim/apfSIM.cc @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/apf_sim/pkg_tribits.cmake b/apf_sim/pkg_tribits.cmake index 7661a479d..6b073fb9b 100644 --- a/apf_sim/pkg_tribits.cmake +++ b/apf_sim/pkg_tribits.cmake @@ -2,23 +2,13 @@ tribits_package(SCORECapf_sim) include_directories(${CMAKE_CURRENT_SOURCE_DIR}) -if(SCORECapf_sim_ENABLE_SimField) - add_definitions(-DUSE_FIELDSIM) -endif() - -configure_file( - "${CMAKE_CURRENT_SOURCE_DIR}/apf_simConfig.h.in" - "${PROJECT_BINARY_DIR}/apf_simConfig.h") -#directory containing apf_simConfig.h -include_directories("${CMAKE_CURRENT_BINARY_DIR}") - #Sources & Headers set(SOURCES apfSIM.cc) set(HEADERS apfSIM.h) #Library tribits_add_library( - apf_sim + apf_sim HEADERS ${HEADERS} SOURCES ${SOURCES}) diff --git a/gmi_sim/gmi_sim.cc b/gmi_sim/gmi_sim.cc index c795dbf5a..fe7f2e49e 100644 --- a/gmi_sim/gmi_sim.cc +++ b/gmi_sim/gmi_sim.cc @@ -16,6 +16,7 @@ #include #include "gmi_sim_config.h" +#include //simmodsuite version #ifdef SIM_PARASOLID #include "SimParasolidKrnl.h" diff --git a/phasta/phAttrib.cc b/phasta/phAttrib.cc index 5c98a63f5..fe6872e59 100644 --- a/phasta/phAttrib.cc +++ b/phasta/phAttrib.cc @@ -6,7 +6,7 @@ #include #include #include -#include "apf_simConfig.h" +#include typedef ph::BC* (*BCFactory)(pAttribute a, pGEntity ge); typedef std::map BCFactories; diff --git a/apf_sim/apf_simConfig.h.in b/simModSuiteConfig.h.in similarity index 100% rename from apf_sim/apf_simConfig.h.in rename to simModSuiteConfig.h.in diff --git a/test/generate.cc b/test/generate.cc index 5e76958e5..94d5b114e 100644 --- a/test/generate.cc +++ b/test/generate.cc @@ -9,7 +9,7 @@ #include #include #include -#include +#include #include "gmi_sim_config.h" #include #include diff --git a/test/rm_extrusion.cc b/test/rm_extrusion.cc index 701c7ab85..977ef4a62 100644 --- a/test/rm_extrusion.cc +++ b/test/rm_extrusion.cc @@ -3,7 +3,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/test/simTranslate.cc b/test/simTranslate.cc index 3f9ad3e59..ba4223b67 100644 --- a/test/simTranslate.cc +++ b/test/simTranslate.cc @@ -18,7 +18,7 @@ #include #include -#include +#include /* cheap hackish way to get SIM_PARASOLID and SIM_ACIS */ #include "gmi_sim_config.h" #include From 1dea17a4e6d64352bf120b00e43e6a766741ad28 Mon Sep 17 00:00:00 2001 From: Cameron Smith Date: Sun, 19 Apr 2026 21:57:06 -0400 Subject: [PATCH 3/8] all tests pass --- test/simSpjToSmd.cc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/test/simSpjToSmd.cc b/test/simSpjToSmd.cc index aef78648e..29237c33d 100644 --- a/test/simSpjToSmd.cc +++ b/test/simSpjToSmd.cc @@ -2,6 +2,7 @@ #include "SimAttribute.h" #include "AttributeTypes.h" #include "SimParasolidKrnl.h" +#include "simModSuiteConfig.h" #include "string.h" #include #include @@ -37,8 +38,14 @@ int main(int argc, char* argv[]) if(NM_isAssemblyModel(pnModel)) { pGModel amodel = GAM_createFromNativeModel(pnModel, prog); NM_release(pnModel); +#if SIMMODSUITE_MAJOR_VERSION < 2026 model = GM_createFromAssemblyModel(amodel, NULL, prog); GM_release(amodel); +#else + pModelBuilder mb = ModelBuilder_new(amodel); + ModelBuilder_setOperation(mb, ModelBuilder_unite); + model = ModelBuilder_execute(mb, NULL); +#endif pnModel = GM_nativeModel(model); } else From 828f7037364be58dafc6eee2957587f35e1e2dfb Mon Sep 17 00:00:00 2001 From: Cameron Smith Date: Sun, 19 Apr 2026 22:19:46 -0400 Subject: [PATCH 4/8] increase max simmodsuite version --- cmake/FindSimModSuite.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/FindSimModSuite.cmake b/cmake/FindSimModSuite.cmake index a41b9dbc5..6fdbe5ecd 100644 --- a/cmake/FindSimModSuite.cmake +++ b/cmake/FindSimModSuite.cmake @@ -84,7 +84,7 @@ string(REGEX REPLACE "${SIM_VERSION}") set(MIN_VALID_SIM_VERSION 15.0.191017) -set(MAX_VALID_SIM_VERSION 2025.0.250108) +set(MAX_VALID_SIM_VERSION 2026.0.260411) if( ${SKIP_SIMMETRIX_VERSION_CHECK} ) message(STATUS "Skipping Simmetrix SimModSuite version check." " This may result in undefined behavior") From 6f3e6b63f84de338ef429312571c34131f4497fe Mon Sep 17 00:00:00 2001 From: Cameron Smith Date: Mon, 20 Apr 2026 09:41:40 -0400 Subject: [PATCH 5/8] restore old header, mark deprecated --- apf_sim/CMakeLists.txt | 2 +- apf_sim/apf_simConfig.h | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 apf_sim/apf_simConfig.h diff --git a/apf_sim/CMakeLists.txt b/apf_sim/CMakeLists.txt index dd6abc499..17fba445c 100644 --- a/apf_sim/CMakeLists.txt +++ b/apf_sim/CMakeLists.txt @@ -10,7 +10,7 @@ endif() #Sources & Headers set(SOURCES apfSIM.cc) -set(HEADERS apfSIM.h) +set(HEADERS apfSIM.h apf_simConfig.h) #Library add_library(apf_sim ${SOURCES}) diff --git a/apf_sim/apf_simConfig.h b/apf_sim/apf_simConfig.h new file mode 100644 index 000000000..9161494a3 --- /dev/null +++ b/apf_sim/apf_simConfig.h @@ -0,0 +1,8 @@ +#include + +#if defined(__GNUC__) || defined(__clang__) || defined(__INTEL_COMPILER) || defined(__INTEL_LLVM_COMPILER) + #warning "apf_simConfig.h is deprecated. Please use simModSuiteConfig.h instead." +#elif defined(_MSC_VER) + #pragma message("warning: apf_simConfig.h is deprecated. Please use simModSuiteConfig.h instead.") +#endif + From 1405d90d5a0dbf3c63a5f2227fd87e892a491160 Mon Sep 17 00:00:00 2001 From: Cameron Smith Date: Mon, 20 Apr 2026 10:00:05 -0400 Subject: [PATCH 6/8] prefix header with pumi_ --- CMakeLists.txt | 4 ++-- apf_sim/apfSIM.cc | 2 +- apf_sim/apf_simConfig.h | 6 +++--- phasta/phAttrib.cc | 2 +- simModSuiteConfig.h.in => pumi_simModSuiteConfig.h.in | 0 test/generate.cc | 2 +- test/rm_extrusion.cc | 2 +- test/simTranslate.cc | 2 +- 8 files changed, 10 insertions(+), 10 deletions(-) rename simModSuiteConfig.h.in => pumi_simModSuiteConfig.h.in (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index acf5a20f3..0925c1e84 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -183,8 +183,8 @@ if(ENABLE_SIMMETRIX) set(USE_FIELDSIM TRUE) endif() set(USE_SIM_ADVMESHING ${SIMMODSUITE_SimAdvMeshing_FOUND}) - configure_file(simModSuiteConfig.h.in simModSuiteConfig.h) - install(FILES "${CMAKE_BINARY_DIR}/simModSuiteConfig.h" DESTINATION include) + configure_file(pumi_simModSuiteConfig.h.in pumi_simModSuiteConfig.h) + install(FILES "${CMAKE_BINARY_DIR}/pumi_simModSuiteConfig.h" DESTINATION include) endif() include_directories(PUBLIC "$") diff --git a/apf_sim/apfSIM.cc b/apf_sim/apfSIM.cc index 4f6e3219f..6b501ef45 100644 --- a/apf_sim/apfSIM.cc +++ b/apf_sim/apfSIM.cc @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/apf_sim/apf_simConfig.h b/apf_sim/apf_simConfig.h index 9161494a3..a41955fca 100644 --- a/apf_sim/apf_simConfig.h +++ b/apf_sim/apf_simConfig.h @@ -1,8 +1,8 @@ -#include +#include #if defined(__GNUC__) || defined(__clang__) || defined(__INTEL_COMPILER) || defined(__INTEL_LLVM_COMPILER) - #warning "apf_simConfig.h is deprecated. Please use simModSuiteConfig.h instead." + #warning "apf_simConfig.h is deprecated. Please use pumi_simModSuiteConfig.h instead." #elif defined(_MSC_VER) - #pragma message("warning: apf_simConfig.h is deprecated. Please use simModSuiteConfig.h instead.") + #pragma message("warning: apf_simConfig.h is deprecated. Please use pumi_simModSuiteConfig.h instead.") #endif diff --git a/phasta/phAttrib.cc b/phasta/phAttrib.cc index fe6872e59..11d509ba5 100644 --- a/phasta/phAttrib.cc +++ b/phasta/phAttrib.cc @@ -6,7 +6,7 @@ #include #include #include -#include +#include typedef ph::BC* (*BCFactory)(pAttribute a, pGEntity ge); typedef std::map BCFactories; diff --git a/simModSuiteConfig.h.in b/pumi_simModSuiteConfig.h.in similarity index 100% rename from simModSuiteConfig.h.in rename to pumi_simModSuiteConfig.h.in diff --git a/test/generate.cc b/test/generate.cc index 94d5b114e..50da46516 100644 --- a/test/generate.cc +++ b/test/generate.cc @@ -9,7 +9,7 @@ #include #include #include -#include +#include #include "gmi_sim_config.h" #include #include diff --git a/test/rm_extrusion.cc b/test/rm_extrusion.cc index 977ef4a62..ab7132f60 100644 --- a/test/rm_extrusion.cc +++ b/test/rm_extrusion.cc @@ -3,7 +3,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/test/simTranslate.cc b/test/simTranslate.cc index ba4223b67..4d7ed1b48 100644 --- a/test/simTranslate.cc +++ b/test/simTranslate.cc @@ -18,7 +18,7 @@ #include #include -#include +#include /* cheap hackish way to get SIM_PARASOLID and SIM_ACIS */ #include "gmi_sim_config.h" #include From 144dc84ef9b177f303783abfab89fe4ae32fba22 Mon Sep 17 00:00:00 2001 From: Cameron Smith Date: Wed, 22 Apr 2026 10:46:23 -0400 Subject: [PATCH 7/8] v4.2.0 --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0925c1e84..99a80b291 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,7 +6,7 @@ endif() # This is the top level CMake file for the SCOREC build cmake_minimum_required(VERSION 3.12) -project(SCOREC VERSION 4.1.0 LANGUAGES CXX C) +project(SCOREC VERSION 4.2.0 LANGUAGES CXX C) include(cmake/bob.cmake) include(cmake/xsdk.cmake) From 7b3c5a5b33ec6b17248455fba2f93b8af1348ffb Mon Sep 17 00:00:00 2001 From: Cameron Smith Date: Wed, 22 Apr 2026 10:53:15 -0400 Subject: [PATCH 8/8] missed prefix --- apf_cap/pkg_tribits.cmake | 2 +- gmi_sim/gmi_sim.cc | 2 +- test/simSpjToSmd.cc | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apf_cap/pkg_tribits.cmake b/apf_cap/pkg_tribits.cmake index 62f84e0a7..8738e6bbe 100644 --- a/apf_cap/pkg_tribits.cmake +++ b/apf_cap/pkg_tribits.cmake @@ -2,7 +2,7 @@ tribits_package(SCORECapf_cap) include_directories(${CMAKE_CURRENT_SOURCE_DIR}) -#directory containing simModSuiteConfig.h +#directory containing pumi_simModSuiteConfig.h include_directories("${PROJECT_BINARY_DIR}") #Sources & Headers diff --git a/gmi_sim/gmi_sim.cc b/gmi_sim/gmi_sim.cc index fe7f2e49e..2d58c1fe6 100644 --- a/gmi_sim/gmi_sim.cc +++ b/gmi_sim/gmi_sim.cc @@ -16,7 +16,7 @@ #include #include "gmi_sim_config.h" -#include //simmodsuite version +#include //simmodsuite version #ifdef SIM_PARASOLID #include "SimParasolidKrnl.h" diff --git a/test/simSpjToSmd.cc b/test/simSpjToSmd.cc index 29237c33d..5887b1f96 100644 --- a/test/simSpjToSmd.cc +++ b/test/simSpjToSmd.cc @@ -2,7 +2,7 @@ #include "SimAttribute.h" #include "AttributeTypes.h" #include "SimParasolidKrnl.h" -#include "simModSuiteConfig.h" +#include "pumi_simModSuiteConfig.h" #include "string.h" #include #include