git: 8f69fdb69749 - main - science/serac: move to science/smith
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 04 Oct 2026 09:21:17 UTC
The branch main has been updated by yuri:
URL: https://cgit.FreeBSD.org/ports/commit/?id=8f69fdb697495a9875842df13ff9e5a771fdeb15
commit 8f69fdb697495a9875842df13ff9e5a771fdeb15
Author: Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2026-10-02 07:39:50 +0000
Commit: Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2026-10-04 09:20:48 +0000
science/serac: move to science/smith
---
MOVED | 1 +
science/Makefile | 2 +-
science/serac/distinfo | 11 ------
science/serac/pkg-descr | 5 ---
science/{serac => smith}/Makefile | 20 +++++-----
science/smith/distinfo | 11 ++++++
.../files/patch-cmake_SmithConfigHeader.cmake | 6 +--
...tch-cmake_thirdparty_SetupSmithThirdParty.cmake | 11 +++---
.../patch-gretl_cmake_GretlConfigHeader.cmake | 6 +--
...th_numerics_functional_element__restriction.cpp | 44 ++++++++++++++++++++++
...rc_smith_physics_solid__mechanics__contact.hpp} | 6 +--
science/smith/pkg-descr | 4 ++
science/{serac => smith}/pkg-plist | 1 +
13 files changed, 87 insertions(+), 41 deletions(-)
diff --git a/MOVED b/MOVED
index 36f92994a823..a14ecf05a41f 100644
--- a/MOVED
+++ b/MOVED
@@ -5717,3 +5717,4 @@ www/qt5-webengine||2026-10-01|Has expired: Based on outdated Chromium
devel/py-importlib-metadata6|devel/py-importlib-metadata7|2026-10-01|Has expired: No consumers left use devel/py-importlib-metadata7
sysutils/py-appjail-gui||2026-10-02|Has expired: Upstream repo archived on Sep 02, 2026
multimedia/ffmpeg6||2026-10-04|Removed: no consumers left
+science/serac|science/smith|2026-10-04|Project renamed upstream
diff --git a/science/Makefile b/science/Makefile
index f76ab3afb588..a5bbc34d10e9 100644
--- a/science/Makefile
+++ b/science/Makefile
@@ -509,7 +509,6 @@
SUBDIR += sciplot
SUBDIR += seacas
SUBDIR += segyio
- SUBDIR += serac
SUBDIR += shelxle
SUBDIR += siconos
SUBDIR += siesta
@@ -525,6 +524,7 @@
SUBDIR += simple-dftd3
SUBDIR += simsmith
SUBDIR += sirius
+ SUBDIR += smith
SUBDIR += smoldyn
SUBDIR += sparta
SUBDIR += spglib
diff --git a/science/serac/distinfo b/science/serac/distinfo
deleted file mode 100644
index 87b850670028..000000000000
--- a/science/serac/distinfo
+++ /dev/null
@@ -1,11 +0,0 @@
-TIMESTAMP = 1775014358
-SHA256 (LLNL-smith-g20260327-887c1cb_GH0.tar.gz) = 9b19aeea5594784e0ea505f80f35ddc55d560951def640dc5a9e4f359016a759
-SIZE (LLNL-smith-g20260327-887c1cb_GH0.tar.gz) = 6509986
-SHA256 (LLNL-blt-2bf714a56d64b9b66b2a2b20207587af052efc36_GH0.tar.gz) = 063ed35850013c4c976d6682c5515efe4893946d5404fe0d2c2cef8da288ea22
-SIZE (LLNL-blt-2bf714a56d64b9b66b2a2b20207587af052efc36_GH0.tar.gz) = 1333676
-SHA256 (LLNL-gretl-fbbbee58b3d3b97771b107ca6e015a40dcf5e0f6_GH0.tar.gz) = 16590736c279916c86e05eafa8724ff9bddfeafead7c2c81f925383e3bb69d6f
-SIZE (LLNL-gretl-fbbbee58b3d3b97771b107ca6e015a40dcf5e0f6_GH0.tar.gz) = 52210
-SHA256 (LLNL-uberenv-bf2f438fc1fe97bb8290a11e5d4f2d56085b4ee3_GH0.tar.gz) = 1101084c247c4797d28346ebd8b7939b930e5396dae304835c0c149f7a3ca65e
-SIZE (LLNL-uberenv-bf2f438fc1fe97bb8290a11e5d4f2d56085b4ee3_GH0.tar.gz) = 43503
-SHA256 (LLNL-serac_tests-75d838c69f48a0f263ad68a81d963a0615bed37f_GH0.tar.gz) = 739a5734ddaa6981eaa028ce2fa8db1bc7b7aa3033eacc27b57e7f0e80dda6bb
-SIZE (LLNL-serac_tests-75d838c69f48a0f263ad68a81d963a0615bed37f_GH0.tar.gz) = 20788
diff --git a/science/serac/pkg-descr b/science/serac/pkg-descr
deleted file mode 100644
index 1bfa896f9bb6..000000000000
--- a/science/serac/pkg-descr
+++ /dev/null
@@ -1,5 +0,0 @@
-Serac is a 3D implicit nonlinear thermal-structural simulation code. Its primary
-purpose is to investigate multiphysics abstraction strategies and implicit
-finite element-based algorithm development for emerging computing architectures.
-It also serves as a proxy-app for LLNL's Smith code and heavily leverages the
-MFEM finite element library.
diff --git a/science/serac/Makefile b/science/smith/Makefile
similarity index 71%
rename from science/serac/Makefile
rename to science/smith/Makefile
index 924696ffb333..bcf25fe175e1 100644
--- a/science/serac/Makefile
+++ b/science/smith/Makefile
@@ -1,5 +1,6 @@
-PORTNAME= serac
-PORTVERSION= g20260327
+PORTNAME= smith
+DISTVERSIONPREFIX= v
+DISTVERSION= 0.1.0
CATEGORIES= science
MAINTAINER= yuri@FreeBSD.org
@@ -12,7 +13,6 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
LIB_DEPENDS= libaxom_core.so:science/axom \
libcamp.so:devel/camp \
libconduit.so:science/conduit \
- libgcc_s.so.1:lang/gcc14 \
libhdf5.so:science/hdf5 \
libHYPRE.so:science/hypre \
libmetis.so:math/metis \
@@ -26,19 +26,19 @@ USE_LDCONFIG= yes
USE_GITHUB= yes
GH_ACCOUNT= LLNL
GH_PROJECT= smith
-GH_TAGNAME= 887c1cb
-GH_TUPLE= LLNL:blt:2bf714a56d64b9b66b2a2b20207587af052efc36:LLNL_blt/cmake/blt \
- LLNL:gretl:fbbbee58b3d3b97771b107ca6e015a40dcf5e0f6:LLNL_gretl/gretl \
+GH_TUPLE= LLNL:blt:837a2630cc321573ac780befe2dfda1958095597:LLNL_blt/cmake/blt \
+ LLNL:gretl:772a66663e532d9f458d855f043283a9211f61d5:LLNL_gretl/gretl \
LLNL:uberenv:bf2f438fc1fe97bb8290a11e5d4f2d56085b4ee3:LLNL_uberenv/scripts/uberenv \
LLNL:serac_tests:75d838c69f48a0f263ad68a81d963a0615bed37f:LLNL_serac_tests/tests
-CMAKE_TESTING_ON= ENABLE_TESTS # tests fail to compile, see https://github.com/LLNL/serac/issues/786
+CMAKE_TESTING_ON= ENABLE_TESTS
CMAKE_ON= BUILD_SHARED_LIBS
-CMAKE_OFF= ENABLE_TESTS SMITH_ENABLE_CONTINUATION
+CMAKE_OFF= ENABLE_TESTS SMITH_ENABLE_CONTINUATION SMITH_ENABLE_TRIBOL
CMAKE_ARGS= -DAXOM_DIR=${LOCALBASE} \
-DCONDUIT_DIR=${LOCALBASE} \
- -DMFEM_DIR=${LOCALBASE}
+ -DMFEM_DIR=${LOCALBASE} \
+ -DHDF5_DIR=${LOCALBASE}
OPTIONS_SINGLE= MPI
OPTIONS_SINGLE_MPI= MPICH OPENMPI
@@ -56,4 +56,6 @@ OPENMPI_CMAKE_ON= -DENABLE_MPI=ON \
-DMPI_CXX_COMPILER=${MPICXX}
OPENMPI_BROKEN= mixes OpenMPI and MPICH when both are installed, see https://github.com/LLNL/serac/issues/787
+# tests as of 0.1.0: 72% tests passed, 27 tests failed out of 95 (most/all failures are SEGVs caused by the bug in math/superlu-dist, I narrowed it to this: https://github.com/xiaoyeli/superlu_dist/issues/227)
+
.include <bsd.port.mk>
diff --git a/science/smith/distinfo b/science/smith/distinfo
new file mode 100644
index 000000000000..b8f0af8c2b76
--- /dev/null
+++ b/science/smith/distinfo
@@ -0,0 +1,11 @@
+TIMESTAMP = 1791088152
+SHA256 (LLNL-smith-v0.1.0_GH0.tar.gz) = 72ed0f139afbed18ca3454b00e2ec57a58fc36c29d04501a1e60521e2a8c540f
+SIZE (LLNL-smith-v0.1.0_GH0.tar.gz) = 6520395
+SHA256 (LLNL-blt-837a2630cc321573ac780befe2dfda1958095597_GH0.tar.gz) = 08e134c8313d2f4a8254d94fcf64ddb777aaff45acb8e5b8d38ab7a54fe1839b
+SIZE (LLNL-blt-837a2630cc321573ac780befe2dfda1958095597_GH0.tar.gz) = 1347688
+SHA256 (LLNL-gretl-772a66663e532d9f458d855f043283a9211f61d5_GH0.tar.gz) = 39fb84a635e0055a4f6f9b1a771638ec174788d232698ee55f98f9dcbadd5c73
+SIZE (LLNL-gretl-772a66663e532d9f458d855f043283a9211f61d5_GH0.tar.gz) = 54024
+SHA256 (LLNL-uberenv-bf2f438fc1fe97bb8290a11e5d4f2d56085b4ee3_GH0.tar.gz) = 1101084c247c4797d28346ebd8b7939b930e5396dae304835c0c149f7a3ca65e
+SIZE (LLNL-uberenv-bf2f438fc1fe97bb8290a11e5d4f2d56085b4ee3_GH0.tar.gz) = 43503
+SHA256 (LLNL-serac_tests-75d838c69f48a0f263ad68a81d963a0615bed37f_GH0.tar.gz) = 739a5734ddaa6981eaa028ce2fa8db1bc7b7aa3033eacc27b57e7f0e80dda6bb
+SIZE (LLNL-serac_tests-75d838c69f48a0f263ad68a81d963a0615bed37f_GH0.tar.gz) = 20788
diff --git a/science/serac/files/patch-cmake_SmithConfigHeader.cmake b/science/smith/files/patch-cmake_SmithConfigHeader.cmake
similarity index 67%
rename from science/serac/files/patch-cmake_SmithConfigHeader.cmake
rename to science/smith/files/patch-cmake_SmithConfigHeader.cmake
index a3b49919c694..2896a45f6d65 100644
--- a/science/serac/files/patch-cmake_SmithConfigHeader.cmake
+++ b/science/smith/files/patch-cmake_SmithConfigHeader.cmake
@@ -1,6 +1,6 @@
---- cmake/SmithConfigHeader.cmake.orig 2026-03-31 21:26:15.628537000 -0700
-+++ cmake/SmithConfigHeader.cmake 2026-03-31 21:26:45.170889000 -0700
-@@ -117,5 +117,5 @@
+--- cmake/SmithConfigHeader.cmake.orig 2026-09-30 18:18:35 UTC
++++ cmake/SmithConfigHeader.cmake
+@@ -87,5 +87,5 @@ install(
${SMITH_INSTALL_CMAKE_MODULE_DIR}
)
diff --git a/science/serac/files/patch-cmake_thirdparty_SetupSmithThirdParty.cmake b/science/smith/files/patch-cmake_thirdparty_SetupSmithThirdParty.cmake
similarity index 67%
rename from science/serac/files/patch-cmake_thirdparty_SetupSmithThirdParty.cmake
rename to science/smith/files/patch-cmake_thirdparty_SetupSmithThirdParty.cmake
index 10f2194cd7b7..f5cdc37c121a 100644
--- a/science/serac/files/patch-cmake_thirdparty_SetupSmithThirdParty.cmake
+++ b/science/smith/files/patch-cmake_thirdparty_SetupSmithThirdParty.cmake
@@ -1,6 +1,6 @@
---- cmake/thirdparty/SetupSmithThirdParty.cmake.orig 2026-03-30 15:30:35.531584000 -0700
-+++ cmake/thirdparty/SetupSmithThirdParty.cmake 2026-03-30 15:32:30.484066000 -0700
-@@ -54,14 +54,8 @@
+--- cmake/thirdparty/SetupSmithThirdParty.cmake.orig 2026-09-30 18:18:35 UTC
++++ cmake/thirdparty/SetupSmithThirdParty.cmake
+@@ -77,13 +77,7 @@ if (NOT SMITH_THIRD_PARTY_LIBRARIES_FOUND)
#------------------------------------------------------------------------------
# Camp
#------------------------------------------------------------------------------
@@ -9,10 +9,9 @@
- endif()
-
- smith_assert_is_directory(DIR_VARIABLE CAMP_DIR)
+-
+- find_dependency(camp REQUIRED PATHS "${CAMP_DIR}")
+ find_dependency(camp REQUIRED)
-- find_dependency(camp REQUIRED PATHS "${CAMP_DIR}")
--
smith_assert_find_succeeded(PROJECT_NAME Camp
TARGET camp
- DIR_VARIABLE CAMP_DIR)
diff --git a/science/serac/files/patch-gretl_cmake_GretlConfigHeader.cmake b/science/smith/files/patch-gretl_cmake_GretlConfigHeader.cmake
similarity index 65%
rename from science/serac/files/patch-gretl_cmake_GretlConfigHeader.cmake
rename to science/smith/files/patch-gretl_cmake_GretlConfigHeader.cmake
index 266257aa50be..0c00f2888b26 100644
--- a/science/serac/files/patch-gretl_cmake_GretlConfigHeader.cmake
+++ b/science/smith/files/patch-gretl_cmake_GretlConfigHeader.cmake
@@ -1,6 +1,6 @@
---- gretl/cmake/GretlConfigHeader.cmake.orig 2026-03-31 22:10:13.885368000 -0700
-+++ gretl/cmake/GretlConfigHeader.cmake 2026-03-31 22:11:01.296363000 -0700
-@@ -106,5 +106,5 @@
+--- gretl/cmake/GretlConfigHeader.cmake.orig 2026-08-13 02:48:06 UTC
++++ gretl/cmake/GretlConfigHeader.cmake
+@@ -106,5 +106,5 @@ install(
${GRETL_INSTALL_CMAKE_MODULE_DIR}
)
diff --git a/science/smith/files/patch-src_smith_numerics_functional_element__restriction.cpp b/science/smith/files/patch-src_smith_numerics_functional_element__restriction.cpp
new file mode 100644
index 000000000000..5e6c6b1c3510
--- /dev/null
+++ b/science/smith/files/patch-src_smith_numerics_functional_element__restriction.cpp
@@ -0,0 +1,44 @@
+-- Explicitly cast memcpy() arguments to void*/const void* when copying raw
+-- bytes of the non-trivially-copyable `DoF` struct (it has a user-defined
+-- copy constructor), since newer Clang (21.x, as used on current FreeBSD)
+-- turns this into a hard error (-Werror,-Wnontrivial-memcall) instead of a
+-- warning; the raw byte copy itself is safe/intentional since DoF is a
+-- simple wrapper around a single uint64_t with no virtual members.
+--- src/smith/numerics/functional/element_restriction.cpp.orig 2026-10-01 19:09:44 UTC
++++ src/smith/numerics/functional/element_restriction.cpp
+@@ -280,7 +280,7 @@ axom::Array<DoF, 2, smith::detail::host_memory_space>
+ } else {
+ uint64_t dofs_per_elem = elem_dofs.size() / n;
+ axom::Array<DoF, 2, smith::detail::host_memory_space> output(n, dofs_per_elem);
+- std::memcpy(output.data(), elem_dofs.data(), sizeof(DoF) * n * dofs_per_elem);
++ std::memcpy(static_cast<void*>(output.data()), static_cast<const void*>(elem_dofs.data()), sizeof(DoF) * n * dofs_per_elem);
+ return output;
+ }
+ }
+@@ -346,7 +346,7 @@ axom::Array<DoF, 2, smith::detail::host_memory_space>
+ } else {
+ uint64_t dofs_per_elem = elem_dofs.size() / n;
+ axom::Array<DoF, 2, smith::detail::host_memory_space> output(n, dofs_per_elem);
+- std::memcpy(output.data(), elem_dofs.data(), sizeof(DoF) * n * dofs_per_elem);
++ std::memcpy(static_cast<void*>(output.data()), static_cast<const void*>(elem_dofs.data()), sizeof(DoF) * n * dofs_per_elem);
+ return output;
+ }
+ }
+@@ -461,7 +461,7 @@ axom::Array<DoF, 2, smith::detail::host_memory_space>
+ } else {
+ uint64_t dofs_per_face = face_dofs.size() / n;
+ axom::Array<DoF, 2, smith::detail::host_memory_space> output(n, dofs_per_face);
+- std::memcpy(output.data(), face_dofs.data(), sizeof(DoF) * n * dofs_per_face);
++ std::memcpy(static_cast<void*>(output.data()), static_cast<const void*>(face_dofs.data()), sizeof(DoF) * n * dofs_per_face);
+ return output;
+ }
+ }
+@@ -634,7 +634,7 @@ axom::Array<DoF, 2, smith::detail::host_memory_space>
+ } else {
+ uint64_t dofs_per_face = face_dofs.size() / n;
+ axom::Array<DoF, 2, smith::detail::host_memory_space> output(n, dofs_per_face);
+- std::memcpy(output.data(), face_dofs.data(), sizeof(DoF) * n * dofs_per_face);
++ std::memcpy(static_cast<void*>(output.data()), static_cast<const void*>(face_dofs.data()), sizeof(DoF) * n * dofs_per_face);
+ return output;
+ }
+ }
diff --git a/science/serac/files/patch-src_smith_physics_solid_mechanics_contact.hpp b/science/smith/files/patch-src_smith_physics_solid__mechanics__contact.hpp
similarity index 79%
rename from science/serac/files/patch-src_smith_physics_solid_mechanics_contact.hpp
rename to science/smith/files/patch-src_smith_physics_solid__mechanics__contact.hpp
index 261e879c7ff2..e6cc73d3ddd3 100644
--- a/science/serac/files/patch-src_smith_physics_solid_mechanics_contact.hpp
+++ b/science/smith/files/patch-src_smith_physics_solid__mechanics__contact.hpp
@@ -1,6 +1,6 @@
---- src/smith/physics/solid_mechanics_contact.hpp.orig 2026-03-31 21:05:46.118045000 -0700
-+++ src/smith/physics/solid_mechanics_contact.hpp 2026-03-31 21:06:54.640503000 -0700
-@@ -331,10 +331,14 @@
+--- src/smith/physics/solid_mechanics_contact.hpp.orig 2026-09-30 18:18:35 UTC
++++ src/smith/physics/solid_mechanics_contact.hpp
+@@ -493,10 +493,14 @@ class SolidMechanicsContact<order, dim, Parameters<par
amgf_prec->SetFilteredSubspaceTransferOperator(*(contact_dof_prolongation_.get()));
// set the filteredsubspace solver component of AMGF
// better solution: retrieve print level from .preconditioner_print_level from linear_solver_options
diff --git a/science/smith/pkg-descr b/science/smith/pkg-descr
new file mode 100644
index 000000000000..d65abe128b1a
--- /dev/null
+++ b/science/smith/pkg-descr
@@ -0,0 +1,4 @@
+Smith is a 3D implicit nonlinear thermal-structural simulation code. Its primary
+purpose is to investigate abstraction strategies and implicit finite
+element-based algorithm development for emerging computing architectures. It
+also heavily leverages the MFEM finite element library.
diff --git a/science/serac/pkg-plist b/science/smith/pkg-plist
similarity index 99%
rename from science/serac/pkg-plist
rename to science/smith/pkg-plist
index 7cbced314bed..2cf282740b4b 100644
--- a/science/serac/pkg-plist
+++ b/science/smith/pkg-plist
@@ -46,6 +46,7 @@ include/smith/infrastructure/accelerator.hpp
include/smith/infrastructure/application_manager.hpp
include/smith/infrastructure/cli.hpp
include/smith/infrastructure/debug_print.hpp
+include/smith/infrastructure/format.hpp
include/smith/infrastructure/git_sha.hpp
include/smith/infrastructure/input.hpp
include/smith/infrastructure/logger.hpp