Skip to content

Commit cdd7c1d

Browse files
authored
Merge pull request #280 from LLNL/rc-v2024.06.0
v2024.06.0 Release
2 parents ffd0e97 + f16b258 commit cdd7c1d

File tree

227 files changed

+8230
-2753
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

227 files changed

+8230
-2753
lines changed

.gitlab/os.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
.sys_config:
55
variables:
66
LLNL_SERVICE_USER: sphapp
7-
UPSTREAM_DIR: /usr/WS2/wciuser/Spheral/spheral-spack-tpls
7+
UPSTREAM_DIR: /usr/WS2/sduser/Spheral/spack_upstream/0.22
88
DISPLAY: ':0.0'
99

1010
.on_toss_3_x86:

.gitlab/scripts.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
- cd $CI_BUILD_DIR
1313
- echo $SPEC
1414

15-
- ml load python/3
1615
- $BUILD_ALLOC ./$SCRIPT_DIR/gitlab/build_and_install.py --spec="$SPEC" --extra-cmake-args="$EXTRA_CMAKE_ARGS"
1716

1817
.build_and_test:

.uberenv_config.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"package_version" : "develop",
44
"package_source_dir" : "../../..",
55
"spack_url" : "https://github.com/spack/spack",
6-
"spack_commit" : "5e0d2107348eed6cbe6deca43a30f5b06c5e40af",
6+
"spack_commit" : "5fe93fee1eec46a0750bd340198bffcb92ff9eec",
77
"spack_configs_path" : "scripts/spack/configs",
88
"spack_packages_path" : "scripts/spack/packages"
99
}

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ ARG HOST_CONFIG=docker-$SPEC
3131
ENV DEBIAN_FRONTEND=noninteractive
3232
RUN apt-get update -y
3333
RUN apt-get upgrade -y
34-
RUN apt-get install -y build-essential git gfortran mpich autotools-dev autoconf sqlite pkg-config uuid gettext cmake libncurses-dev libgdbm-dev libffi-dev libssl-dev libexpat-dev libreadline-dev liblapack-dev libbz2-dev locales python python3 unzip libtool wget curl tk-dev
34+
RUN apt-get install -y build-essential git gfortran mpich autotools-dev autoconf sqlite pkg-config uuid gettext cmake libncurses-dev libgdbm-dev libffi-dev libssl-dev libexpat-dev libreadline-dev libbz2-dev locales python python3 unzip libtool wget curl tk-dev
3535

3636
# Setup system locale for pip package encoding/decoding
3737
RUN locale-gen en_US.UTF-8

RELEASE_NOTES.md

Lines changed: 40 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,34 @@
1+
Version v2024.06.0 -- Release date 2024-06-27
2+
==============================================
3+
* Important Notes:
4+
* External users of the code will need to supply config files for tpl-manager to find system libraries correctly. Steps to do this are detailed in the external user build guide.
5+
6+
Notable changes include:
7+
8+
* New features / API changes:
9+
* Added MFV hydro from Hopkins 2015 with extension for ALE options.
10+
* Adding optional user specified smoothing scale method for SPH, FSISPH, and CRKSPH.
11+
12+
* Build changes / improvements:
13+
* PYBind11 libraries no longer depend on the structure of the PYB11 source directory.
14+
* CMake interface for adding PYBind11 target libraries is modified to more closely match how C++ libraries are created.
15+
* Multiple Spheral Python modules / CMake targets can be specified for a single directory.
16+
* KernelIntegrator and FieldList directories are divided into 2 modules / targets.
17+
* tpl-manager.py will no longer use generic x86_64 configs for non LC systems. Users will be required to supply their own configs for pointing spack at external packages.
18+
* Spack version is increased from 0.19 to 0.22.
19+
* Spack upstream is updated.
20+
* Removed the python 3 module load for the Gitlab CI to fix an issue with pkg-config changing.
21+
* Zlib target and TPL cmake file is removed.
22+
* PYB11Generator repo is updated.
23+
* Spack config and package files inside Spheral are updated to accommodate Spack 0.22.
24+
* Package recipes for py-numpy-stl, py-pillow, py-pipreqs, td, and tk are removed.
25+
* Versions for python dependencies in the Spheral spack recipe are fixed and updated (in some cases).
26+
27+
* Bug Fixes / improvements:
28+
* Corrected an erroneous VERIFY in the P-alpha porosity constructor (with Fields of porosity and sound speed) that forced runs to stop even with correct input parameters
29+
* Fixed a bug in the standard ASPH hydros (ASPH, SolidASPH, and RZ varieties) that gave incorrect results. FSI ad CRK models with ASPH smoothing scales were OK, but standard
30+
SPH using ASPH smoothing scales were simply incorrect for non-unit aspect ratio H's. Also added ATS tests to help catch such errors going forward.
31+
132
Version v2024.01.1 -- Release date 2024-02-17
233
==============================================
334
* Important Notes:
@@ -9,15 +40,22 @@ Notable changes include:
940
* Adding an optional second-stage problem start-up hook to the Physics package interface: Physics::initializeProblemStartupDependencies. The idea is to keep basic sizing
1041
of arrays and such in the first stage (Physics::initializeProblemStartup), while this new hook is used for updating any initial Physics state (and therefore provides a
1142
State and StateDerivatives object).
12-
43+
* DEM
44+
* new field list to track max particle overlap
45+
* user can optional turn off fast time stepping
46+
1347
* Build changes / improvements:
14-
*
48+
* Improved the target export functionality.
1549

1650
* Bug Fixes / improvements:
1751
* Fixed bug with ConstantBoundary in the presence of porosity with the new porosity models introduced in v2024.01.00.
1852
* Updating header lists for including Spheral modules in external projects.
1953
* Adding effective viscous pressure back to FSISPH.
2054
* Initial volumes for damage models were incorrectly not taking into account pore space when computing failure statistics for seeding flaws. Fixed.
55+
* DEM
56+
* fixed bug in solid boundary unique indices that causes particle sticking
57+
* fixed bug in solid boundary update policies
58+
* fixed solid boundary restartability for moving bcs
2159

2260
Version v2024.01.00 -- Release date 2024-01-19
2361
==============================================

cmake/CMakeDefinitions.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,5 +73,5 @@ if (ENABLE_TIMER)
7373
endif()
7474

7575
if (ENABLE_MPI)
76-
add_definitions(-DUSE_MPI=1)
76+
add_definitions(-DUSE_MPI=1)
7777
endif()

cmake/FindSphinx.cmake

Lines changed: 0 additions & 19 deletions
This file was deleted.

cmake/InstallTPLs.cmake

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ if (NOT ENABLE_CXXONLY)
1919
# Find the appropriate Python
2020
find_package(Python3 COMPONENTS Interpreter Development)
2121
set(PYTHON_EXE ${Python3_EXECUTABLE})
22+
set(SPHERAL_SITE_PACKAGES_PATH "lib/python${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}/site-packages" )
2223
list(APPEND SPHERAL_BLT_DEPENDS Python3::Python)
2324

2425
# Set the PYB11Generator path
@@ -88,7 +89,7 @@ foreach(_comp ${AXOM_COMPONENTS_ENABLED})
8889
endforeach()
8990

9091
# TPLs that must be imported
91-
list(APPEND SPHERAL_EXTERN_LIBS zlib boost eigen qhull silo hdf5 polytope)
92+
list(APPEND SPHERAL_EXTERN_LIBS boost eigen qhull silo hdf5 polytope)
9293

9394
blt_list_append( TO SPHERAL_EXTERN_LIBS ELEMENTS aneos IF ENABLE_ANEOS)
9495
blt_list_append( TO SPHERAL_EXTERN_LIBS ELEMENTS opensubdiv IF ENABLE_OPENSUBDIV)
@@ -107,6 +108,7 @@ endforeach()
107108
if (EXISTS ${EXTERNAL_SPHERAL_TPL_CMAKE})
108109
include(${EXTERNAL_SPHERAL_TPL_CMAKE})
109110
endif()
111+
110112
# Copied from serac, needed to bypass generator expression issue during export
111113
set(_props)
112114
if( ${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.13.0" )

cmake/SetupSpheral.cmake

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ include(ExternalProject)
55
#-------------------------------------------------------------------------------
66
set(CMAKE_CXX_STANDARD 17)
77
set(CMAKE_EXPORT_COMPILE_COMMANDS On)
8-
set(CMAKE_EXPORT_COMPILE_COMMANDS On)
98

109
if (NOT SPHERAL_CMAKE_MODULE_PATH)
1110
set(SPHERAL_CMAKE_MODULE_PATH "${SPHERAL_ROOT_DIR}/cmake")
@@ -27,6 +26,7 @@ set(Python3_EXECUTABLE ${python_DIR}/bin/python3)
2726

2827
set(ENABLE_MPI ON CACHE BOOL "")
2928
set(ENABLE_OPENMP ON CACHE BOOL "")
29+
set(BLT_DOCS_TARGET_NAME "blt_docs" CACHE STRING "")
3030

3131
if(NOT SPHERAL_BLT_DIR)
3232
set (SPHERAL_BLT_REL_DIR "${SPHERAL_ROOT_DIR}/cmake/blt" CACHE PATH "")
@@ -83,8 +83,6 @@ if(ENABLE_CUDA)
8383
list(APPEND SPHERAL_CXX_DEPENDS cuda)
8484
endif()
8585

86-
option(BOOST_HEADER_ONLY "only use the header only components of Boost" OFF)
87-
8886
#-------------------------------------------------------------------------------#
8987
# Set a default build type if none was specified
9088
#-------------------------------------------------------------------------------#

cmake/SpheralVersion.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
set(SPHERAL_VERSION 2024.01.1)
1+
set(SPHERAL_VERSION 2024.06.0)

cmake/blt

Submodule blt updated 183 files

cmake/spheral/InstantiateCXX.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ function(instantiate _inst_var _source_var)
4040
# Uses BLT's python for instantiations to work when building CXX_ONLY as well as with python
4141
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${_inst_file}
4242
DEPENDS ${_inst_py}
43-
COMMAND ${PYTHON_EXECUTABLE} ${SPHERAL_ROOT_DIR}/src/helpers/InstantiationGenerator.py ${_inst_py} ${_inst_file} ${_dim}
43+
COMMAND ${Python3_EXECUTABLE} ${SPHERAL_ROOT_DIR}/src/helpers/InstantiationGenerator.py ${_inst_py} ${_inst_file} ${_dim}
4444
BYPRODUCTS ${_inst_file}
4545
COMMENT "Generating instantiation ${_inst_file}..."
4646
)

cmake/spheral/SpheralAddLibs.cmake

Lines changed: 31 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -123,26 +123,35 @@ function(spheral_add_cxx_library package_name _cxx_obj_list)
123123
set_target_properties(Spheral_${package_name} PROPERTIES INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
124124
endfunction()
125125

126+
#----------------------------------------------------------------------------------------
127+
# spheral_add_pybin11_library_package
128+
#----------------------------------------------------------------------------------------
129+
# -------------------------------------------
130+
# VARIABLES THAT NEED TO BE PREVIOUSLY DEFINED
131+
# -------------------------------------------
132+
# SPHERAL_BLT_DEPENDS : REQUIRED : List of external dependencies
133+
# EXTRA_PYB11_SPHERAL_ENV_VARS : OPTIONAL : Additional directories containing python filed, used by LLNLSpheral
134+
# <package_name>_headers : OPTIONAL : List of necessary headers to include
135+
# <package_name>_sources : OPTIONAL : List of necessary source files to include
136+
# SPHERAL_SUBMOD_DEPENDS : REQUIRED : List of submodule dependencies
137+
# ----------------------
138+
# INPUT-OUTPUT VARIABLES
139+
# ----------------------
140+
# package_name : REQUIRED : Desired package name
141+
# module_list_name : REQUIRED : The NAME of the global variable that is the list of
142+
# Spheral python modules (not the list itself)
143+
# INCLUDES : OPTIONAL : Target specific includes
144+
# DEPENDS : OPTIONAL : Target specific dependencies
145+
# SOURCE : OPTIONAL : Target specific sources
146+
# -----------------------
147+
# OUTPUT VARIABLES TO USE - Made available implicitly after function call
148+
# -----------------------
149+
# Spheral<package_name> : Target for a given Spheral python module
150+
# Spheral<package_name>_src : Target for the PYB11Generated source code for a given Spheral module
151+
# <module_list_name> : List of Spheral python modules, appended with current module name
152+
#----------------------------------------------------------------------------------------
126153

127-
#-----------------------------------------------------------------------------------
128-
# spheral_add_pybind11_library
129-
# - Generate the python friendly Spheral package lib
130-
#
131-
# Args:
132-
# package_name : *name* of spheral package to make into a library
133-
# INCLUDES : optional, any additional include paths
134-
# SOURCES : optional, any additional source files to compile into the library
135-
# DEPENDS : optional, extra dependencies
136-
#
137-
# Variables that must be set before calling spheral_add_obj_library:
138-
# spheral_depends
139-
# - List of targets the library depends on
140-
# SPHERAL_BLT_DEPENDS
141-
# - List of blt/libs the library depends on
142-
#
143-
#-----------------------------------------------------------------------------------
144-
145-
function(spheral_add_pybind11_library package_name)
154+
function(spheral_add_pybind11_library package_name module_list_name)
146155

147156
# Define our arguments
148157
set(options )
@@ -205,8 +214,6 @@ function(spheral_add_pybind11_library package_name)
205214

206215
# Get the TPL dependencies
207216
get_property(SPHERAL_BLT_DEPENDS GLOBAL PROPERTY SPHERAL_BLT_DEPENDS)
208-
get_property(spheral_tpl_includes GLOBAL PROPERTY spheral_tpl_includes)
209-
get_property(spheral_tpl_libraries GLOBAL PROPERTY spheral_tpl_libraries)
210217
# If building shared libraries, use the SPHERAL_OBJ_LIBS global list
211218
# Note, LLNLSpheral has appended any local targets to this list as well
212219
if(ENABLE_DEV_BUILD)
@@ -222,8 +229,7 @@ function(spheral_add_pybind11_library package_name)
222229
SOURCE ${package_name}_PYB11.py
223230
DEPENDS ${SPHERAL_BLT_DEPENDS} ${SPHERAL_CXX_DEPENDS} ${EXTRA_CXX_DEPENDS} ${SPHERAL_DEPENDS}
224231
PYTHONPATH ${PYTHON_ENV_STR}
225-
INCLUDES ${CMAKE_CURRENT_SOURCE_DIR} ${SPHERAL_INCLUDES} ${${package_name}_INCLUDES} ${spheral_tpl_includes} ${PYBIND11_ROOT_DIR}/include
226-
LINKS ${spheral_tpl_libraries}
232+
INCLUDES ${CMAKE_CURRENT_SOURCE_DIR} ${${package_name}_INCLUDES} ${PYBIND11_ROOT_DIR}/include
227233
COMPILE_OPTIONS ${SPHERAL_PYB11_TARGET_FLAGS}
228234
USE_BLT ON
229235
EXTRA_SOURCE ${${package_name}_SOURCES}
@@ -233,9 +239,9 @@ function(spheral_add_pybind11_library package_name)
233239
target_compile_options(${MODULE_NAME} PRIVATE ${SPHERAL_PYB11_TARGET_FLAGS})
234240

235241
install(TARGETS ${MODULE_NAME}
236-
DESTINATION Spheral
242+
DESTINATION ${SPHERAL_SITE_PACKAGES_PATH}/Spheral
237243
)
238-
244+
set_property(GLOBAL APPEND PROPERTY ${module_list_name} ${package_name})
239245
# Set the r-path of the C++ lib such that it is independent of the build dir when installed
240246
set_target_properties(${MODULE_NAME} PROPERTIES INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
241247

cmake/spheral/SpheralInstallPythonFiles.cmake

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,14 @@
77
# Note, if ENABLE_CXXONLY is set, this function does nothing
88
#-----------------------------------------------------------------------------------
99

10+
1011
function(spheral_install_python_files)
1112

1213
if (NOT ENABLE_CXXONLY)
1314
install(FILES ${ARGV}
14-
DESTINATION Spheral)
15+
DESTINATION ${SPHERAL_SITE_PACKAGES_PATH}/Spheral)
1516
install(CODE "execute_process( \
16-
COMMAND ${PYTHON_EXE} -m compileall Spheral \
17+
COMMAND ${PYTHON_EXE} -m compileall DESTINATION ${SPHERAL_SITE_PACKAGES_PATH}/Spheral \
1718
WORKING_DIRECTORY ${CMAKE_INSTALL_PREFIX})")
1819
endif()
1920

cmake/spheral_cxx-config.cmake.in

Lines changed: 43 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,47 @@
11

22
@PACKAGE_INIT@
33

4-
if(NOT axom_DIR)
5-
set(axom_DIR "@axom_DIR@" CACHE PATH "")
6-
endif()
7-
set(SPHERAL_BLT_DIR "@SPHERAL_BLT_DIR@")
8-
set(SPHERAL_CXX_INSTALL_PREFIX "@CMAKE_INSTALL_PREFIX@")
9-
set(SPHERAL_CXX_INCLUDE_DIRS "${SPHERAL_CXX_INSTALL_PREFIX}/include")
10-
if(NOT TARGET axom)
11-
find_package(axom REQUIRED QUIET NO_DEFAULT_PATH PATHS ${axom_DIR} ${axom_DIR}/lib ${axom_DIR}/lib/cmake)
12-
endif()
13-
include("${SPHERAL_CXX_INSTALL_PREFIX}/lib/cmake/spheral_cxx-targets.cmake")
4+
if(NOT SPHERAL_FOUND)
5+
#----------------------------------------------------------------------------
6+
# Set user configuration options and features
7+
#----------------------------------------------------------------------------
8+
9+
# Language features
10+
set(SPHERAL_ENABLE_MPI "@ENABLE_MPI@")
11+
set(SPHERAL_ENABLE_OPENMP "@ENABLE_OPENMP@")
12+
set(SPHERAL_ENABLE_CUDA "@ENABLE_CUDA@")
13+
if(NOT axom_DIR)
14+
set(axom_DIR "@axom_DIR@" CACHE PATH "")
15+
endif()
1416

15-
set_property(TARGET Spheral_CXX
16-
APPEND PROPERTY
17-
INTERFACE_INCLUDE_DIRECTORIES ${SPHERAL_CXX_INCLUDE_DIRS})
17+
set(SPHERAL_CXX_INSTALL_PREFIX "@CMAKE_INSTALL_PREFIX@")
18+
set(SPHERAL_CXX_INCLUDE_DIRS "${SPHERAL_CXX_INSTALL_PREFIX}/include")
19+
if(NOT @ENABLE_CXXONLY@ AND NOT TARGET Python3)
20+
set(python_DIR "@python_DIR@")
21+
set(Python_EXECUTABLE ${python_DIR}/bin/python3)
22+
set(Python3_EXECUTABLE ${python_DIR}/bin/python3)
23+
find_package(Python3 COMPONENTS Interpreter Development)
24+
set(PYTHON_EXE ${Python3_EXECUTABLE})
25+
endif()
26+
27+
if(NOT TARGET axom)
28+
find_package(axom REQUIRED QUIET NO_DEFAULT_PATH PATHS ${axom_DIR} ${axom_DIR}/lib ${axom_DIR}/lib/cmake)
29+
endif()
30+
if(SPHERALC_STANDALONE)
31+
set(CMAKE_C_COMPILER "@CMAKE_C_COMPILER@" CACHE PATH "Spheral C compiler path")
32+
set(CMAKE_CXX_COMPILER "@CMAKE_CXX_COMPILER@" CACHE PATH "Spheral C++ compiler path")
33+
set(CMAKE_Fortran_COMPILER "@CMAKE_Fortran_COMPILER@" CACHE PATH "Spheral C++ compiler path")
34+
set(ENABLE_MPI @ENABLE_MPI@ CACHE BOOL "")
35+
if(SPHERAL_ENABLE_MPI)
36+
set(MPI_C_COMPILER "@MPI_C_COMPILER@" CACHE PATH "")
37+
set(MPI_CXX_COMPILER "@MPI_CXX_COMPILER@" CACHE PATH "")
38+
set(MPI_Fortran_COMPILER "@MPI_Fortran_COMPILER@" CACHE PATH "")
39+
endif()
40+
endif()
41+
include("${SPHERAL_CXX_INSTALL_PREFIX}/lib/cmake/spheral_cxx-targets.cmake")
42+
43+
set_property(TARGET Spheral_CXX
44+
APPEND PROPERTY
45+
INTERFACE_INCLUDE_DIRECTORIES ${SPHERAL_CXX_INCLUDE_DIRS})
46+
set(SPHERAL_FOUND TRUE)
47+
endif()

cmake/tpl/zlib.cmake

Lines changed: 0 additions & 5 deletions
This file was deleted.

docs/CMakeLists.txt

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,4 @@
1-
#find_package(Sphinx)
2-
set(SPHINX_FOUND true)
3-
if (NOT DEFINED SPHINX_EXEC)
4-
set(SPHINX_EXEC "${sphinx_DIR}/bin/sphinx-build" CACHE STRING "Path to sphinx documentation generator")
5-
endif()
6-
message("-- Sphinx ${SPHINX_EXEC}")
7-
8-
if(ENABLE_DOCS AND NOT SPHINX_EXEC STREQUAL "SPHINX_EXEC-NOTFOUND")
1+
if(ENABLE_DOCS)
92
if(NOT DEFINED SPHINX_THEME)
103
set(SPHINX_THEME sphinx_rtd_theme)
114
endif()
@@ -28,8 +21,8 @@ if(ENABLE_DOCS AND NOT SPHINX_EXEC STREQUAL "SPHINX_EXEC-NOTFOUND")
2821
"${BINARY_BUILD_DIR}/conf.py"
2922
@ONLY)
3023

31-
add_custom_target(Spheral_docs ALL
32-
${CMAKE_COMMAND} -E env PYTHONPATH=${SPACK_PYTHONPATH} ${PYTHON_EXE} -m sphinx
24+
add_custom_target(docs ALL
25+
env PYTHONPATH=${SPACK_PYTHONPATH} ${PYTHON_EXE} -m sphinx
3326
-q -b html
3427
-c "${BINARY_BUILD_DIR}"
3528
-d "${SPHINX_CACHE_DIR}"

docs/build_guide/external/index.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ This guide is designed to help external users build and install Spheral on non L
99
:caption: External Building Guide:
1010

1111
quickstart.rst
12-
ubuntu_update.rst
12+
system_packages.rst
1313
cloning.rst
1414
updating.rst
1515
tpls.rst

0 commit comments

Comments
 (0)