Skip to content

Commit

Permalink
Merge pull request #280 from LLNL/rc-v2024.06.0
Browse files Browse the repository at this point in the history
v2024.06.0 Release
  • Loading branch information
mdavis36 authored Jun 30, 2024
2 parents ffd0e97 + f16b258 commit cdd7c1d
Show file tree
Hide file tree
Showing 227 changed files with 8,230 additions and 2,753 deletions.
2 changes: 1 addition & 1 deletion .gitlab/os.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
.sys_config:
variables:
LLNL_SERVICE_USER: sphapp
UPSTREAM_DIR: /usr/WS2/wciuser/Spheral/spheral-spack-tpls
UPSTREAM_DIR: /usr/WS2/sduser/Spheral/spack_upstream/0.22
DISPLAY: ':0.0'

.on_toss_3_x86:
Expand Down
1 change: 0 additions & 1 deletion .gitlab/scripts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
- cd $CI_BUILD_DIR
- echo $SPEC

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

.build_and_test:
Expand Down
2 changes: 1 addition & 1 deletion .uberenv_config.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"package_version" : "develop",
"package_source_dir" : "../../..",
"spack_url" : "https://github.com/spack/spack",
"spack_commit" : "5e0d2107348eed6cbe6deca43a30f5b06c5e40af",
"spack_commit" : "5fe93fee1eec46a0750bd340198bffcb92ff9eec",
"spack_configs_path" : "scripts/spack/configs",
"spack_packages_path" : "scripts/spack/packages"
}
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ ARG HOST_CONFIG=docker-$SPEC
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update -y
RUN apt-get upgrade -y
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
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

# Setup system locale for pip package encoding/decoding
RUN locale-gen en_US.UTF-8
Expand Down
42 changes: 40 additions & 2 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,34 @@
Version v2024.06.0 -- Release date 2024-06-27
==============================================
* Important Notes:
* 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.

Notable changes include:

* New features / API changes:
* Added MFV hydro from Hopkins 2015 with extension for ALE options.
* Adding optional user specified smoothing scale method for SPH, FSISPH, and CRKSPH.

* Build changes / improvements:
* PYBind11 libraries no longer depend on the structure of the PYB11 source directory.
* CMake interface for adding PYBind11 target libraries is modified to more closely match how C++ libraries are created.
* Multiple Spheral Python modules / CMake targets can be specified for a single directory.
* KernelIntegrator and FieldList directories are divided into 2 modules / targets.
* 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.
* Spack version is increased from 0.19 to 0.22.
* Spack upstream is updated.
* Removed the python 3 module load for the Gitlab CI to fix an issue with pkg-config changing.
* Zlib target and TPL cmake file is removed.
* PYB11Generator repo is updated.
* Spack config and package files inside Spheral are updated to accommodate Spack 0.22.
* Package recipes for py-numpy-stl, py-pillow, py-pipreqs, td, and tk are removed.
* Versions for python dependencies in the Spheral spack recipe are fixed and updated (in some cases).

* Bug Fixes / improvements:
* 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
* 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
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.

Version v2024.01.1 -- Release date 2024-02-17
==============================================
* Important Notes:
Expand All @@ -9,15 +40,22 @@ Notable changes include:
* Adding an optional second-stage problem start-up hook to the Physics package interface: Physics::initializeProblemStartupDependencies. The idea is to keep basic sizing
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
State and StateDerivatives object).

* DEM
* new field list to track max particle overlap
* user can optional turn off fast time stepping

* Build changes / improvements:
*
* Improved the target export functionality.

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

Version v2024.01.00 -- Release date 2024-01-19
==============================================
Expand Down
2 changes: 1 addition & 1 deletion cmake/CMakeDefinitions.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -73,5 +73,5 @@ if (ENABLE_TIMER)
endif()

if (ENABLE_MPI)
add_definitions(-DUSE_MPI=1)
add_definitions(-DUSE_MPI=1)
endif()
19 changes: 0 additions & 19 deletions cmake/FindSphinx.cmake

This file was deleted.

4 changes: 3 additions & 1 deletion cmake/InstallTPLs.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ if (NOT ENABLE_CXXONLY)
# Find the appropriate Python
find_package(Python3 COMPONENTS Interpreter Development)
set(PYTHON_EXE ${Python3_EXECUTABLE})
set(SPHERAL_SITE_PACKAGES_PATH "lib/python${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}/site-packages" )
list(APPEND SPHERAL_BLT_DEPENDS Python3::Python)

# Set the PYB11Generator path
Expand Down Expand Up @@ -88,7 +89,7 @@ foreach(_comp ${AXOM_COMPONENTS_ENABLED})
endforeach()

# TPLs that must be imported
list(APPEND SPHERAL_EXTERN_LIBS zlib boost eigen qhull silo hdf5 polytope)
list(APPEND SPHERAL_EXTERN_LIBS boost eigen qhull silo hdf5 polytope)

blt_list_append( TO SPHERAL_EXTERN_LIBS ELEMENTS aneos IF ENABLE_ANEOS)
blt_list_append( TO SPHERAL_EXTERN_LIBS ELEMENTS opensubdiv IF ENABLE_OPENSUBDIV)
Expand All @@ -107,6 +108,7 @@ endforeach()
if (EXISTS ${EXTERNAL_SPHERAL_TPL_CMAKE})
include(${EXTERNAL_SPHERAL_TPL_CMAKE})
endif()

# Copied from serac, needed to bypass generator expression issue during export
set(_props)
if( ${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.13.0" )
Expand Down
4 changes: 1 addition & 3 deletions cmake/SetupSpheral.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ include(ExternalProject)
#-------------------------------------------------------------------------------
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_EXPORT_COMPILE_COMMANDS On)
set(CMAKE_EXPORT_COMPILE_COMMANDS On)

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

set(ENABLE_MPI ON CACHE BOOL "")
set(ENABLE_OPENMP ON CACHE BOOL "")
set(BLT_DOCS_TARGET_NAME "blt_docs" CACHE STRING "")

if(NOT SPHERAL_BLT_DIR)
set (SPHERAL_BLT_REL_DIR "${SPHERAL_ROOT_DIR}/cmake/blt" CACHE PATH "")
Expand Down Expand Up @@ -83,8 +83,6 @@ if(ENABLE_CUDA)
list(APPEND SPHERAL_CXX_DEPENDS cuda)
endif()

option(BOOST_HEADER_ONLY "only use the header only components of Boost" OFF)

#-------------------------------------------------------------------------------#
# Set a default build type if none was specified
#-------------------------------------------------------------------------------#
Expand Down
2 changes: 1 addition & 1 deletion cmake/SpheralVersion.cmake
Original file line number Diff line number Diff line change
@@ -1 +1 @@
set(SPHERAL_VERSION 2024.01.1)
set(SPHERAL_VERSION 2024.06.0)
2 changes: 1 addition & 1 deletion cmake/blt
Submodule blt updated 183 files
2 changes: 1 addition & 1 deletion cmake/spheral/InstantiateCXX.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ function(instantiate _inst_var _source_var)
# Uses BLT's python for instantiations to work when building CXX_ONLY as well as with python
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${_inst_file}
DEPENDS ${_inst_py}
COMMAND ${PYTHON_EXECUTABLE} ${SPHERAL_ROOT_DIR}/src/helpers/InstantiationGenerator.py ${_inst_py} ${_inst_file} ${_dim}
COMMAND ${Python3_EXECUTABLE} ${SPHERAL_ROOT_DIR}/src/helpers/InstantiationGenerator.py ${_inst_py} ${_inst_file} ${_dim}
BYPRODUCTS ${_inst_file}
COMMENT "Generating instantiation ${_inst_file}..."
)
Expand Down
56 changes: 31 additions & 25 deletions cmake/spheral/SpheralAddLibs.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -123,26 +123,35 @@ function(spheral_add_cxx_library package_name _cxx_obj_list)
set_target_properties(Spheral_${package_name} PROPERTIES INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
endfunction()

#----------------------------------------------------------------------------------------
# spheral_add_pybin11_library_package
#----------------------------------------------------------------------------------------
# -------------------------------------------
# VARIABLES THAT NEED TO BE PREVIOUSLY DEFINED
# -------------------------------------------
# SPHERAL_BLT_DEPENDS : REQUIRED : List of external dependencies
# EXTRA_PYB11_SPHERAL_ENV_VARS : OPTIONAL : Additional directories containing python filed, used by LLNLSpheral
# <package_name>_headers : OPTIONAL : List of necessary headers to include
# <package_name>_sources : OPTIONAL : List of necessary source files to include
# SPHERAL_SUBMOD_DEPENDS : REQUIRED : List of submodule dependencies
# ----------------------
# INPUT-OUTPUT VARIABLES
# ----------------------
# package_name : REQUIRED : Desired package name
# module_list_name : REQUIRED : The NAME of the global variable that is the list of
# Spheral python modules (not the list itself)
# INCLUDES : OPTIONAL : Target specific includes
# DEPENDS : OPTIONAL : Target specific dependencies
# SOURCE : OPTIONAL : Target specific sources
# -----------------------
# OUTPUT VARIABLES TO USE - Made available implicitly after function call
# -----------------------
# Spheral<package_name> : Target for a given Spheral python module
# Spheral<package_name>_src : Target for the PYB11Generated source code for a given Spheral module
# <module_list_name> : List of Spheral python modules, appended with current module name
#----------------------------------------------------------------------------------------

#-----------------------------------------------------------------------------------
# spheral_add_pybind11_library
# - Generate the python friendly Spheral package lib
#
# Args:
# package_name : *name* of spheral package to make into a library
# INCLUDES : optional, any additional include paths
# SOURCES : optional, any additional source files to compile into the library
# DEPENDS : optional, extra dependencies
#
# Variables that must be set before calling spheral_add_obj_library:
# spheral_depends
# - List of targets the library depends on
# SPHERAL_BLT_DEPENDS
# - List of blt/libs the library depends on
#
#-----------------------------------------------------------------------------------

function(spheral_add_pybind11_library package_name)
function(spheral_add_pybind11_library package_name module_list_name)

# Define our arguments
set(options )
Expand Down Expand Up @@ -205,8 +214,6 @@ function(spheral_add_pybind11_library package_name)

# Get the TPL dependencies
get_property(SPHERAL_BLT_DEPENDS GLOBAL PROPERTY SPHERAL_BLT_DEPENDS)
get_property(spheral_tpl_includes GLOBAL PROPERTY spheral_tpl_includes)
get_property(spheral_tpl_libraries GLOBAL PROPERTY spheral_tpl_libraries)
# If building shared libraries, use the SPHERAL_OBJ_LIBS global list
# Note, LLNLSpheral has appended any local targets to this list as well
if(ENABLE_DEV_BUILD)
Expand All @@ -222,8 +229,7 @@ function(spheral_add_pybind11_library package_name)
SOURCE ${package_name}_PYB11.py
DEPENDS ${SPHERAL_BLT_DEPENDS} ${SPHERAL_CXX_DEPENDS} ${EXTRA_CXX_DEPENDS} ${SPHERAL_DEPENDS}
PYTHONPATH ${PYTHON_ENV_STR}
INCLUDES ${CMAKE_CURRENT_SOURCE_DIR} ${SPHERAL_INCLUDES} ${${package_name}_INCLUDES} ${spheral_tpl_includes} ${PYBIND11_ROOT_DIR}/include
LINKS ${spheral_tpl_libraries}
INCLUDES ${CMAKE_CURRENT_SOURCE_DIR} ${${package_name}_INCLUDES} ${PYBIND11_ROOT_DIR}/include
COMPILE_OPTIONS ${SPHERAL_PYB11_TARGET_FLAGS}
USE_BLT ON
EXTRA_SOURCE ${${package_name}_SOURCES}
Expand All @@ -233,9 +239,9 @@ function(spheral_add_pybind11_library package_name)
target_compile_options(${MODULE_NAME} PRIVATE ${SPHERAL_PYB11_TARGET_FLAGS})

install(TARGETS ${MODULE_NAME}
DESTINATION Spheral
DESTINATION ${SPHERAL_SITE_PACKAGES_PATH}/Spheral
)

set_property(GLOBAL APPEND PROPERTY ${module_list_name} ${package_name})
# Set the r-path of the C++ lib such that it is independent of the build dir when installed
set_target_properties(${MODULE_NAME} PROPERTIES INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")

Expand Down
5 changes: 3 additions & 2 deletions cmake/spheral/SpheralInstallPythonFiles.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,14 @@
# Note, if ENABLE_CXXONLY is set, this function does nothing
#-----------------------------------------------------------------------------------


function(spheral_install_python_files)

if (NOT ENABLE_CXXONLY)
install(FILES ${ARGV}
DESTINATION Spheral)
DESTINATION ${SPHERAL_SITE_PACKAGES_PATH}/Spheral)
install(CODE "execute_process( \
COMMAND ${PYTHON_EXE} -m compileall Spheral \
COMMAND ${PYTHON_EXE} -m compileall DESTINATION ${SPHERAL_SITE_PACKAGES_PATH}/Spheral \
WORKING_DIRECTORY ${CMAKE_INSTALL_PREFIX})")
endif()

Expand Down
56 changes: 43 additions & 13 deletions cmake/spheral_cxx-config.cmake.in
Original file line number Diff line number Diff line change
@@ -1,17 +1,47 @@

@PACKAGE_INIT@

if(NOT axom_DIR)
set(axom_DIR "@axom_DIR@" CACHE PATH "")
endif()
set(SPHERAL_BLT_DIR "@SPHERAL_BLT_DIR@")
set(SPHERAL_CXX_INSTALL_PREFIX "@CMAKE_INSTALL_PREFIX@")
set(SPHERAL_CXX_INCLUDE_DIRS "${SPHERAL_CXX_INSTALL_PREFIX}/include")
if(NOT TARGET axom)
find_package(axom REQUIRED QUIET NO_DEFAULT_PATH PATHS ${axom_DIR} ${axom_DIR}/lib ${axom_DIR}/lib/cmake)
endif()
include("${SPHERAL_CXX_INSTALL_PREFIX}/lib/cmake/spheral_cxx-targets.cmake")
if(NOT SPHERAL_FOUND)
#----------------------------------------------------------------------------
# Set user configuration options and features
#----------------------------------------------------------------------------

# Language features
set(SPHERAL_ENABLE_MPI "@ENABLE_MPI@")
set(SPHERAL_ENABLE_OPENMP "@ENABLE_OPENMP@")
set(SPHERAL_ENABLE_CUDA "@ENABLE_CUDA@")
if(NOT axom_DIR)
set(axom_DIR "@axom_DIR@" CACHE PATH "")
endif()

set_property(TARGET Spheral_CXX
APPEND PROPERTY
INTERFACE_INCLUDE_DIRECTORIES ${SPHERAL_CXX_INCLUDE_DIRS})
set(SPHERAL_CXX_INSTALL_PREFIX "@CMAKE_INSTALL_PREFIX@")
set(SPHERAL_CXX_INCLUDE_DIRS "${SPHERAL_CXX_INSTALL_PREFIX}/include")
if(NOT @ENABLE_CXXONLY@ AND NOT TARGET Python3)
set(python_DIR "@python_DIR@")
set(Python_EXECUTABLE ${python_DIR}/bin/python3)
set(Python3_EXECUTABLE ${python_DIR}/bin/python3)
find_package(Python3 COMPONENTS Interpreter Development)
set(PYTHON_EXE ${Python3_EXECUTABLE})
endif()

if(NOT TARGET axom)
find_package(axom REQUIRED QUIET NO_DEFAULT_PATH PATHS ${axom_DIR} ${axom_DIR}/lib ${axom_DIR}/lib/cmake)
endif()
if(SPHERALC_STANDALONE)
set(CMAKE_C_COMPILER "@CMAKE_C_COMPILER@" CACHE PATH "Spheral C compiler path")
set(CMAKE_CXX_COMPILER "@CMAKE_CXX_COMPILER@" CACHE PATH "Spheral C++ compiler path")
set(CMAKE_Fortran_COMPILER "@CMAKE_Fortran_COMPILER@" CACHE PATH "Spheral C++ compiler path")
set(ENABLE_MPI @ENABLE_MPI@ CACHE BOOL "")
if(SPHERAL_ENABLE_MPI)
set(MPI_C_COMPILER "@MPI_C_COMPILER@" CACHE PATH "")
set(MPI_CXX_COMPILER "@MPI_CXX_COMPILER@" CACHE PATH "")
set(MPI_Fortran_COMPILER "@MPI_Fortran_COMPILER@" CACHE PATH "")
endif()
endif()
include("${SPHERAL_CXX_INSTALL_PREFIX}/lib/cmake/spheral_cxx-targets.cmake")

set_property(TARGET Spheral_CXX
APPEND PROPERTY
INTERFACE_INCLUDE_DIRECTORIES ${SPHERAL_CXX_INCLUDE_DIRS})
set(SPHERAL_FOUND TRUE)
endif()
5 changes: 0 additions & 5 deletions cmake/tpl/zlib.cmake

This file was deleted.

13 changes: 3 additions & 10 deletions docs/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,4 @@
#find_package(Sphinx)
set(SPHINX_FOUND true)
if (NOT DEFINED SPHINX_EXEC)
set(SPHINX_EXEC "${sphinx_DIR}/bin/sphinx-build" CACHE STRING "Path to sphinx documentation generator")
endif()
message("-- Sphinx ${SPHINX_EXEC}")

if(ENABLE_DOCS AND NOT SPHINX_EXEC STREQUAL "SPHINX_EXEC-NOTFOUND")
if(ENABLE_DOCS)
if(NOT DEFINED SPHINX_THEME)
set(SPHINX_THEME sphinx_rtd_theme)
endif()
Expand All @@ -28,8 +21,8 @@ if(ENABLE_DOCS AND NOT SPHINX_EXEC STREQUAL "SPHINX_EXEC-NOTFOUND")
"${BINARY_BUILD_DIR}/conf.py"
@ONLY)

add_custom_target(Spheral_docs ALL
${CMAKE_COMMAND} -E env PYTHONPATH=${SPACK_PYTHONPATH} ${PYTHON_EXE} -m sphinx
add_custom_target(docs ALL
env PYTHONPATH=${SPACK_PYTHONPATH} ${PYTHON_EXE} -m sphinx
-q -b html
-c "${BINARY_BUILD_DIR}"
-d "${SPHINX_CACHE_DIR}"
Expand Down
2 changes: 1 addition & 1 deletion docs/build_guide/external/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ This guide is designed to help external users build and install Spheral on non L
:caption: External Building Guide:

quickstart.rst
ubuntu_update.rst
system_packages.rst
cloning.rst
updating.rst
tpls.rst
Expand Down
Loading

0 comments on commit cdd7c1d

Please sign in to comment.