Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions apptainer/libmesh.def
Original file line number Diff line number Diff line change
Expand Up @@ -112,8 +112,14 @@ Fingerprints: 0CFFCAB55E806363601C442D211817B01E0911DB
IFS=' ' read -r -a LIBMESH_ARR_OPTIONS <<< "{{ LIBMESH_OPTIONS }}"
if [ -n "$CUDA_DIR" ]; then
LIBMESH_ARR_OPTIONS+=("--with-nvtx=${CUDA_DIR}" "--enable-perflog")
# The build environment lacks libnvidia-ml.so.1, so we use -Wl,--as-needed to drop that
# dependency, which is inherited from PETSc, when linking the simple program that netCDF
# uses to check the compiler during configuration so that the dynamic linker does not
# complain when configure subsequently runs it.
SUB_LDFLAGS=-Wl,--as-needed
fi

SUB_LDFLAGS=${SUB_LDFLAGS} \
LIBMESH_SRC_DIR=${LIBMESH_SRC_DIR} LIBMESH_DIR=${LIBMESH_DIR} MOOSE_JOBS=${MOOSE_JOBS} METHODS=${METHODS} ./scripts/{{ LIBMESH_BUILD_SCRIPT }} \
"${LIBMESH_ARR_OPTIONS[@]}" --skip-submodule-update 2>&1 | tee ${LIBMESH_DIR}/logs/build.log
cp ${LIBMESH_SRC_DIR}/build/config.log ${LIBMESH_DIR}/logs/
Expand Down
5 changes: 5 additions & 0 deletions apptainer/moose-dev.def
Original file line number Diff line number Diff line change
Expand Up @@ -232,6 +232,8 @@ Fingerprints: 0CFFCAB55E806363601C442D211817B01E0911DB
PYTORCH_CONDA_ENV=pytorch_build
conda create -yq -n ${PYTORCH_CONDA_ENV} python=3.14
source activate ${MINIFORGE_DIR}/envs/${PYTORCH_CONDA_ENV}
# Make sure that pip matches the python version we requested above
conda install -yq pip
pip3 install --no-cache -r ${PYTORCH_DIR}/requirements.txt

# Require CUDA if we have cuda available
Expand Down Expand Up @@ -330,6 +332,9 @@ Fingerprints: 0CFFCAB55E806363601C442D211817B01E0911DB
if [ -n "$CUDA_DIR" ]; then
# Additional options with cuda
MFEM_OPTIONS+=("-DMFEM_USE_CUDA=ON" "-DCUDA_ARCH=sm_80")
# The build environment lacks libnvidia-ml.so.1, which PETSc needs, so we bypass the test that
# MFEM uses to check PETSc's installation during CMake configuration.
MFEM_OPTIONS+=("-DPETSC_EXECUTABLE_RUNS=YES")
# Expose the compat libraries if we haven't already
if [[ "$LD_LIBRARY_PATH" != *"${CUDA_DIR}/compat"* ]]; then
export LD_LIBRARY_PATH=${CUDA_DIR}/compat:${LD_LIBRARY_PATH}
Expand Down
10 changes: 10 additions & 0 deletions apptainer/petsc.def
Original file line number Diff line number Diff line change
Expand Up @@ -83,10 +83,20 @@ Fingerprints: 0CFFCAB55E806363601C442D211817B01E0911DB
if [ -n "$CUDA_DIR" ]; then
# Additional options with cuda
PETSC_OPTIONS+=("--with-cuda" "--with-cuda-dir=${CUDA_DIR}" "--with-cuda-arch=80" "--download-slate" "--download-hypre-configure-arguments='--enable-gpu-aware-mpi'")
# The build environment lacks libnvidia-ml.so.1, so we use -Wl,--as-needed to drop that
# dependency, which is inherited from PETSc, when linking the simple program that SLATE
# uses to check the compiler during CMake configuration so that the dynamic linker does
# not complain when CMake subsequently runs it.
PETSC_OPTIONS+=("--download-slate-cmake-arguments='-DCMAKE_EXE_LINKER_FLAGS=-Wl,--as-needed'")
# Expose the compat libraries that can be linked to during configure for building without a GPU present
export LD_LIBRARY_PATH=${CUDA_DIR}/compat:${LD_LIBRARY_PATH}
fi

if [ -n "$ONEAPI_ROOT" ]; then
# OpenBLAS fails to correctly detect mpif90(ifx), so we override relevant variables
PETSC_OPTIONS+=("--download-openblas-make-options=DYNAMIC_ARCH=1 NOFORTRAN=0 F_COMPILER=INTEL FEXTRALIB=")
fi

# Build PETSc
umask 022
cd ${ROOT_BUILD_DIR}
Expand Down
8 changes: 4 additions & 4 deletions conda/libmesh/meta.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
# As well as any directions pertaining to modifying those files.
# ALSO: Follow the directions in scripts/tests/versioner_hashes.yaml
{% set build = 0 %}
{% set version = "2026.04.13_0185b8b" %}
{% set version = "2026.05.01_870e4eb" %}

package:
name: moose-libmesh
Expand All @@ -30,7 +30,7 @@ build:
# things that depend on this moose-libmesh must use the
# exact moose-petsc and moose-libmesh-vtk that this was
# built with
- moose-petsc 3.24.6 {{ mpi }}_0
- moose-petsc 3.25.1 {{ mpi }}_0
- moose-libmesh-vtk 9.6.1 {{ mpi }}_0

requirements:
Expand All @@ -45,7 +45,7 @@ requirements:
- pkg-config
host:
- {{ mpi }} {{ mpi_version }}
- moose-petsc 3.24.6 {{ mpi }}_0
- moose-petsc 3.25.1 {{ mpi }}_0
- moose-libmesh-vtk 9.6.1 {{ mpi }}_0
- _openmp_mutex # [linux]
- hdf5 {{ hdf5 }}
Expand All @@ -58,7 +58,7 @@ requirements:
- llvm-openmp # [osx]
- zlib
run:
- moose-petsc 3.24.6 {{ mpi }}_0
- moose-petsc 3.25.1 {{ mpi }}_0
- moose-libmesh-vtk 9.6.1 {{ mpi }}_0

test:
Expand Down
6 changes: 3 additions & 3 deletions conda/moose-dev/meta.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# REMEMBER TO UPDATE the .yaml files for the following packages:
# moose/conda_build_config.yaml
# As well as any directions pertaining to modifying those files.
{% set version = "2026.04.21" %}
{% set version = "2026.05.01" %}

package:
name: moose-dev
Expand All @@ -20,14 +20,14 @@ build:
# things that depend on this moose-dev must use the
# exact moose-* packages that this was built with
- moose-build 2026.04.21 {{ mpi }}
- moose-libmesh 2026.04.13_0185b8b {{ mpi }}_0
- moose-libmesh 2026.05.01_870e4eb {{ mpi }}_0
- moose-wasp 2025.09.19_02960f1 build_6
- moose-tools 2026.04.21

requirements:
run:
- moose-build 2026.04.21 {{ mpi }}
- moose-libmesh 2026.04.13_0185b8b {{ mpi }}_0
- moose-libmesh 2026.05.01_870e4eb {{ mpi }}_0
- moose-wasp 2025.09.19_02960f1 build_6
- moose-tools 2026.04.21
run_constrained:
Expand Down
6 changes: 3 additions & 3 deletions conda/moose/meta.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ requirements:
- {{ compiler('fortran') }}
- {{ stdlib('c') }}
# for libmesh libtool
- moose-libmesh 2026.04.13_0185b8b {{ mpi }}_0
- moose-libmesh 2026.05.01_870e4eb {{ mpi }}_0
# build utilities
- make
- packaging
Expand All @@ -46,12 +46,12 @@ requirements:
- libfabric {{ libfabric }} # [linux]
{% endif %}
- libpng
- moose-libmesh 2026.04.13_0185b8b {{ mpi }}_0
- moose-libmesh 2026.05.01_870e4eb {{ mpi }}_0
- moose-wasp 2025.09.19_02960f1 build_6
- zlib
run:
- {{ mpi }} {{ mpi_version }}
- moose-libmesh 2026.04.13_0185b8b {{ mpi }}_0
- moose-libmesh 2026.05.01_870e4eb {{ mpi }}_0
- moose-wasp 2025.09.19_02960f1 build_6
# c++ compiler for jit
- gxx_linux-64 {{ cxx_compiler_version }}.* # [linux]
Expand Down
9 changes: 8 additions & 1 deletion conda/petsc/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,14 @@ done
# Strip GCC runtime libs on mac
if [[ $(uname) == Darwin ]]; then
echo "Stripping GCC runtime libs"
sed -i '' 's/-lemutls_w//g; s/-lheapt_w//g; s/-lgcc_s\.1[^ ]*//g' "$PREFIX"/lib/pkgconfig/PETSc.pc "$PREFIX"/lib/petsc/conf/petscvariables
sed -i '' 's/-lemutls_w//g; s/-lheapt_w//g; s/-lgcc_s\.1[^ ]*//g' \
"$PREFIX"/lib/pkgconfig/PETSc.pc \
"$PREFIX"/lib/petsc/conf/petscvariables \
"$PREFIX"/lib/cmake/scalapack-*/scalapack-targets.cmake
# scalapack-targets.cmake also embeds absolute paths from the CI build machine
# that conda relocation doesn't reach; strip any -rpath/-L not under $PREFIX
perl -i -pe "s|-Wl,-rpath,(?!\Q${PREFIX}\E)\S+||g; s|-L(?!\Q${PREFIX}\E)/\S+||g" \
"$PREFIX"/lib/cmake/scalapack-*/scalapack-targets.cmake
fi

echo "Removing example files"
Expand Down
2 changes: 1 addition & 1 deletion conda/petsc/meta.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
# As well as any directions pertaining to modifying those files.
# ALSO: Follow the directions in scripts/tests/versioner_hashes.yaml
{% set build = 0 %}
{% set version = "3.24.6" %}
{% set version = "3.25.1" %}

package:
name: moose-petsc
Expand Down
2 changes: 1 addition & 1 deletion framework/contrib/conduit
Submodule conduit updated 224 files
2 changes: 1 addition & 1 deletion framework/contrib/mfem
48 changes: 0 additions & 48 deletions framework/include/mfem/solvers/MFEMHyprePatch.h

This file was deleted.

1 change: 0 additions & 1 deletion framework/include/mfem/solvers/MFEMSolverBase.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
#pragma once

#include "MFEMObject.h"
#include "MFEMHyprePatch.h"

/**
* Base class for wrapping mfem::Solver-derived classes.
Expand Down
2 changes: 1 addition & 1 deletion framework/src/mfem/solvers/MFEMHypreGMRES.C
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ MFEMHypreGMRES::MFEMHypreGMRES(const InputParameters & parameters) : MFEMSolverB
void
MFEMHypreGMRES::constructSolver()
{
auto solver = std::make_unique<mfem::patched::HypreGMRES>(getMFEMProblem().getComm());
auto solver = std::make_unique<mfem::HypreGMRES>(getMFEMProblem().getComm());
solver->SetTol(getParam<mfem::real_t>("l_tol"));
solver->SetAbsTol(getParam<mfem::real_t>("l_abs_tol"));
solver->SetMaxIter(getParam<int>("l_max_its"));
Expand Down
2 changes: 1 addition & 1 deletion framework/src/mfem/solvers/MFEMHyprePCG.C
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ MFEMHyprePCG::MFEMHyprePCG(const InputParameters & parameters) : MFEMSolverBase(
void
MFEMHyprePCG::constructSolver()
{
auto solver = std::make_unique<mfem::patched::HyprePCG>(getMFEMProblem().getComm());
auto solver = std::make_unique<mfem::HyprePCG>(getMFEMProblem().getComm());
solver->SetTol(getParam<mfem::real_t>("l_tol"));
solver->SetAbsTol(getParam<mfem::real_t>("l_abs_tol"));
solver->SetMaxIter(getParam<int>("l_max_its"));
Expand Down
3 changes: 0 additions & 3 deletions framework/src/mfem/solvers/MFEMSolverBase.C
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,6 @@ template void MFEMSolverBase::setPreconditioner(mfem::HypreFGMRES &);
template void MFEMSolverBase::setPreconditioner(mfem::HypreGMRES &);
template void MFEMSolverBase::setPreconditioner(mfem::HyprePCG &);

template void MFEMSolverBase::setPreconditioner(mfem::patched::HypreGMRES &);
template void MFEMSolverBase::setPreconditioner(mfem::patched::HyprePCG &);

void
MFEMSolverBase::checkSpectralEquivalence(mfem::ParBilinearForm & blf) const
{
Expand Down
2 changes: 1 addition & 1 deletion petsc
Submodule petsc updated from 146745 to 14aaa9
3 changes: 3 additions & 0 deletions scripts/configure_petsc.sh
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,7 @@ function configure_petsc()
cd "$PETSC_DIR" || exit 1
python3 ./configure --with-64-bit-indices \
--with-cxx-dialect=C++17 \
--ignoreCxxBoundCheck=1 \
--with-debugging=no \
--with-fortran-bindings=0 \
--with-mpi=1 \
Expand All @@ -128,7 +129,9 @@ function configure_petsc()
--download-strumpack=1 \
--download-superlu_dist=1 \
--download-kokkos=1 \
--download-kokkos-commit=4.7.04 \
--download-kokkos-kernels=1 \
--download-kokkos-kernels-commit=4.7.04 \
--download-libceed=1 \
--download-umpire \
--download-umpire-commit=v2025.12.0 \
Expand Down
34 changes: 34 additions & 0 deletions scripts/tests/versioner_hashes.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1764,3 +1764,37 @@ d41b47a41b7edac3875e308fb77df6069de32269: # 32404
wasp:
full_version: 2025.09.19_02960f1_5
hash: 9ce59ea
bc090e25230b4b632541b1f26c83330d732930e4: # 32757
build:
full_version: 2026.04.21
hash: ae2c988
libmesh:
full_version: 2026.05.01_870e4eb_0
hash: 583f3ed
libmesh-vtk:
full_version: 9.6.1_0
hash: de4f8ad
moose-dev:
full_version: 2026.05.01
hash: cc067d7
mpi:
full_version: 2026.04.21
hash: f6f315e
petsc:
full_version: 3.25.1_0
hash: b035b4c
pprof:
full_version: 2026.03.01_a15ffb7
hash: '4869696'
pyhit:
full_version: 2026.04.21
hash: 1528d6d
seacas:
full_version: 2025.10.14_3
hash: 2115cf6
tools:
full_version: 2026.04.21
hash: eef89ae
wasp:
full_version: 2025.09.19_02960f1_6
hash: 4b8a7ec
6 changes: 3 additions & 3 deletions scripts/versioner.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ packages:
- conda/libmesh-vtk
# dependers: libmesh, moose-dev
petsc:
version: 3.24.6
version: 3.25.1
build_number: 0
conda: conda/petsc
templates:
Expand All @@ -62,7 +62,7 @@ packages:
- scripts/apple-silicon-hdf5-autogen.patch
# dependers: moose-dev
libmesh:
version: 2026.04.13_0185b8b
version: 2026.05.01_870e4eb
build_number: 0
conda: conda/libmesh
templates:
Expand Down Expand Up @@ -111,7 +111,7 @@ packages:
conda/pyhit/meta.yaml.template: conda/pyhit/meta.yaml
# dependers: none
moose-dev:
version: 2026.04.21
version: 2026.05.01
conda: conda/moose-dev
templates:
conda/moose-dev/meta.yaml.template: conda/moose-dev/meta.yaml
Expand Down
3 changes: 1 addition & 2 deletions unit/src/TestNonLinearIntegrators.C
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

#include "gtest/gtest.h"
#include "Moose.h"
#include "MFEMHyprePatch.h"

class VectorPowerLawNLFIntegrator : public mfem::NonlinearFormIntegrator
{
Expand Down Expand Up @@ -218,7 +217,7 @@ TEST(CheckData, NonlinearIntegratorTest)
// Solver for the Jacobian solve in the Newton method
mfem::Solver * jacobian_solver;
// Set up the Jacobian solver
mfem::patched::HyprePCG j_pcg(h_curl_fe_space.GetComm());
mfem::HyprePCG j_pcg(h_curl_fe_space.GetComm());
mfem::HypreAMS ams(&h_curl_fe_space);
ams.SetPrintLevel(1);
j_pcg.SetTol(1e-7);
Expand Down