From 0905d0b1f8cd9d6bc76e4f43adf9630926bc09cf Mon Sep 17 00:00:00 2001 From: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> Date: Mon, 2 Dec 2024 16:04:29 -0800 Subject: [PATCH 1/8] Update Perlmutter profiles to fix Boost dependency (#5477) Update the Boost module to use the latest E4S (23.08) GCC/12.3.0 stack on Perlmutter. This should fix #5471. --- .../perlmutter-nersc/perlmutter_cpu_warpx.profile.example | 2 +- .../perlmutter-nersc/perlmutter_gpu_warpx.profile.example | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Tools/machines/perlmutter-nersc/perlmutter_cpu_warpx.profile.example b/Tools/machines/perlmutter-nersc/perlmutter_cpu_warpx.profile.example index 99817924ad6..488d53c6af9 100644 --- a/Tools/machines/perlmutter-nersc/perlmutter_cpu_warpx.profile.example +++ b/Tools/machines/perlmutter-nersc/perlmutter_cpu_warpx.profile.example @@ -11,7 +11,7 @@ module load cmake/3.24.3 module load cray-fftw/3.3.10.6 # optional: for QED support with detailed tables -export BOOST_ROOT=/global/common/software/spackecp/perlmutter/e4s-23.05/default/spack/opt/spack/linux-sles15-zen3/gcc-11.2.0/boost-1.82.0-ow5r5qrgslcwu33grygouajmuluzuzv3 +export BOOST_ROOT=/global/common/software/spackecp/perlmutter/e4s-23.08/default/spack/opt/spack/linux-sles15-zen3/gcc-12.3.0/boost-1.83.0-nxqk3hnci5g3wqv75wvsmuke3w74mzxi # optional: for openPMD and PSATD+RZ support module load cray-hdf5-parallel/1.12.2.9 diff --git a/Tools/machines/perlmutter-nersc/perlmutter_gpu_warpx.profile.example b/Tools/machines/perlmutter-nersc/perlmutter_gpu_warpx.profile.example index 1e5325e29b9..7e76d1366a3 100644 --- a/Tools/machines/perlmutter-nersc/perlmutter_gpu_warpx.profile.example +++ b/Tools/machines/perlmutter-nersc/perlmutter_gpu_warpx.profile.example @@ -15,7 +15,7 @@ module load cudatoolkit module load cmake/3.24.3 # optional: for QED support with detailed tables -export BOOST_ROOT=/global/common/software/spackecp/perlmutter/e4s-23.05/default/spack/opt/spack/linux-sles15-zen3/gcc-11.2.0/boost-1.82.0-ow5r5qrgslcwu33grygouajmuluzuzv3 +export BOOST_ROOT=/global/common/software/spackecp/perlmutter/e4s-23.08/default/spack/opt/spack/linux-sles15-zen3/gcc-12.3.0/boost-1.83.0-nxqk3hnci5g3wqv75wvsmuke3w74mzxi # optional: for openPMD and PSATD+RZ support module load cray-hdf5-parallel/1.12.2.9 From 780a584f447f9f7750eddd6e87367e112617bf3e Mon Sep 17 00:00:00 2001 From: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> Date: Tue, 3 Dec 2024 09:20:16 -0800 Subject: [PATCH 2/8] CI: fix Clang UB sanitizer, disable Clang thread sanitizer (#5474) I started seeing this error from the Clang sanitizer workflow in several PRs: ```console E: The repository 'http://archive.ubuntu.com/ubuntu mantic Release' does not have a Release file. E: The repository 'http://archive.ubuntu.com/ubuntu mantic-updates Release' does not have a Release file. E: The repository 'http://archive.ubuntu.com/ubuntu mantic-backports Release' does not have a Release file. E: The repository 'http://security.ubuntu.com/ubuntu mantic-security Release' does not have a Release file. ``` The Ubuntu 23.10 container was introduced in #5181 when `ubuntu-24.04` was pre-release as GitHub-hosted runner. I think we can try to move to `ubuntu-24.04` now and see if this is enough to fix the issue above. --- .github/workflows/clang_sanitizers.yml | 17 ++++------------- .github/workflows/dependencies/clang17.sh | 5 ----- 2 files changed, 4 insertions(+), 18 deletions(-) diff --git a/.github/workflows/clang_sanitizers.yml b/.github/workflows/clang_sanitizers.yml index e89cb676a03..d63a329bf64 100644 --- a/.github/workflows/clang_sanitizers.yml +++ b/.github/workflows/clang_sanitizers.yml @@ -15,8 +15,7 @@ concurrency: jobs: build_UB_sanitizer: name: Clang UB sanitizer - runs-on: ubuntu-22.04 - container: ubuntu:23.10 + runs-on: ubuntu-24.04 if: github.event.pull_request.draft == false env: CC: clang @@ -65,10 +64,6 @@ jobs: - name: run with UB sanitizer run: | - # We need these two lines because these tests run inside a docker container - export OMPI_ALLOW_RUN_AS_ROOT=1 - export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1 - export OMP_NUM_THREADS=2 #MPI implementations often leak memory @@ -81,9 +76,9 @@ jobs: build_thread_sanitizer: name: Clang thread sanitizer - runs-on: ubuntu-22.04 - container: ubuntu:23.10 - if: github.event.pull_request.draft == false + runs-on: ubuntu-24.04 + # TODO Fix data race conditions and re-enable job + if: 0 #github.event.pull_request.draft == false env: CC: clang CXX: clang++ @@ -149,10 +144,6 @@ jobs: export TSAN_OPTIONS='ignore_noninstrumented_modules=1' export ARCHER_OPTIONS="verbose=1" - # We need these two lines because these tests run inside a docker container - export OMPI_ALLOW_RUN_AS_ROOT=1 - export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1 - export OMP_NUM_THREADS=2 mpirun -n 2 ./build/bin/warpx.rz Examples/Physics_applications/laser_acceleration/inputs_base_rz warpx.serialize_initial_conditions = 0 diff --git a/.github/workflows/dependencies/clang17.sh b/.github/workflows/dependencies/clang17.sh index d208a9f3f3b..fb04e2a5914 100755 --- a/.github/workflows/dependencies/clang17.sh +++ b/.github/workflows/dependencies/clang17.sh @@ -7,11 +7,6 @@ set -eu -o pipefail -# This dependency file is currently used within a docker container, -# which does not come with sudo. -apt-get -qqq update -apt-get -y install sudo - # `man apt.conf`: # Number of retries to perform. If this is non-zero APT will retry # failed files the given number of times. From 4be253988c25e8cd5d39f9cba8410cac86086d5a Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 3 Dec 2024 19:53:59 +0000 Subject: [PATCH 3/8] [pre-commit.ci] pre-commit autoupdate (#5486) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/astral-sh/ruff-pre-commit: v0.7.4 → v0.8.1](https://github.com/astral-sh/ruff-pre-commit/compare/v0.7.4...v0.8.1) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 16a23ada3b5..e196a7b3187 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -69,7 +69,7 @@ repos: # Python: Ruff linter & formatter # https://docs.astral.sh/ruff/ - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.7.4 + rev: v0.8.1 hooks: # Run the linter - id: ruff From 99a90a4d8e174ba77ea785de28e511f437a152d0 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 3 Dec 2024 13:47:29 -0800 Subject: [PATCH 4/8] [pre-commit.ci] pre-commit autoupdate (#5486) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/astral-sh/ruff-pre-commit: v0.7.4 → v0.8.1](https://github.com/astral-sh/ruff-pre-commit/compare/v0.7.4...v0.8.1) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> From 9e5346e350ce88310d4e99b85a64ab9e8961a98e Mon Sep 17 00:00:00 2001 From: David Grote Date: Wed, 4 Dec 2024 13:08:26 -0800 Subject: [PATCH 5/8] Add reduced_diags general input (#5479) This PR adds the `reduced_diags` input parameter group that allows setting of parameters common to all reduced diagnostics. For example 'reduced_diags.intervals` can be set once rather than having to set it for each individual reduced diagnostic. --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- Docs/source/usage/parameters.rst | 21 ++++++++----- .../inputs_test_2d_laser_ion_acc_picmi.py | 10 ++----- .../inputs_test_1d_semi_implicit_picard | 3 +- .../inputs_test_1d_theta_implicit_picard | 3 +- .../inputs_test_2d_theta_implicit_jfnk_vandb | 3 +- ...test_2d_theta_implicit_jfnk_vandb_filtered | 3 +- ...inputs_test_2d_theta_implicit_strang_psatd | 3 +- Python/pywarpx/picmi.py | 30 ++++++++++++++++++- .../Diagnostics/ReducedDiags/ReducedDiags.cpp | 8 ++++- 9 files changed, 57 insertions(+), 27 deletions(-) diff --git a/Docs/source/usage/parameters.rst b/Docs/source/usage/parameters.rst index 31c3ca947fb..c3756d44d96 100644 --- a/Docs/source/usage/parameters.rst +++ b/Docs/source/usage/parameters.rst @@ -3589,22 +3589,27 @@ This shifts analysis from post-processing to runtime calculation of reduction op * ``Timestep`` This type outputs the simulation's physical timestep (in seconds) at each mesh refinement level. -* ``.intervals`` (`string`) +* ``reduced_diags.intervals`` (`string`) Using the `Intervals Parser`_ syntax, this string defines the timesteps at which reduced - diagnostics are written to file. + diagnostics are written to the file. + This can also be specified for the specific diagnostic by setting ``.intervals``. -* ``.path`` (`string`) optional (default `./diags/reducedfiles/`) - The path that the output file will be stored. +* ``reduced_diags.path`` (`string`) optional (default `./diags/reducedfiles/`) + The path where the output file will be stored. + This can also be specified for the specific diagnostic by setting ``.path``. -* ``.extension`` (`string`) optional (default `txt`) - The extension of the output file. +* ``reduced_diags.extension`` (`string`) optional (default `txt`) + The extension of the output file (the suffix). + This can also be specified for the specific diagnostic by setting ``.extension``. -* ``.separator`` (`string`) optional (default a `whitespace`) +* ``reduced_diags.separator`` (`string`) optional (default a `whitespace`) The separator between row values in the output file. The default separator is a whitespace. + This can also be specified for the specific diagnostic by setting ``.separator``. -* ``.precision`` (`integer`) optional (default `14`) +* ``reduced_diags.precision`` (`integer`) optional (default `14`) The precision used when writing out the data to the text files. + This can also be specified for the specific diagnostic by setting ``.precision``. Lookup tables and other settings for QED modules ------------------------------------------------ diff --git a/Examples/Physics_applications/laser_ion/inputs_test_2d_laser_ion_acc_picmi.py b/Examples/Physics_applications/laser_ion/inputs_test_2d_laser_ion_acc_picmi.py index 66ba5f64091..c869c770b99 100755 --- a/Examples/Physics_applications/laser_ion/inputs_test_2d_laser_ion_acc_picmi.py +++ b/Examples/Physics_applications/laser_ion/inputs_test_2d_laser_ion_acc_picmi.py @@ -196,7 +196,6 @@ histuH_rdiag = picmi.ReducedDiagnostic( diag_type="ParticleHistogram", name="histuH", - period=100, species=hydrogen, bin_number=1000, bin_min=0.0, @@ -208,7 +207,6 @@ histue_rdiag = picmi.ReducedDiagnostic( diag_type="ParticleHistogram", name="histue", - period=100, species=electrons, bin_number=1000, bin_min=0.0, @@ -222,7 +220,6 @@ histuzAll_rdiag = picmi.ReducedDiagnostic( diag_type="ParticleHistogram", name="histuzAll", - period=100, species=hydrogen, bin_number=1000, bin_min=-0.474, @@ -233,7 +230,6 @@ field_probe_z_rdiag = picmi.ReducedDiagnostic( diag_type="FieldProbe", name="FieldProbe_Z", - period=100, integrate=0, probe_geometry="Line", x_probe=0.0, @@ -246,7 +242,6 @@ field_probe_scat_point_rdiag = picmi.ReducedDiagnostic( diag_type="FieldProbe", name="FieldProbe_ScatPoint", - period=1, integrate=0, probe_geometry="Point", x_probe=0.0, @@ -256,7 +251,6 @@ field_probe_scat_line_rdiag = picmi.ReducedDiagnostic( diag_type="FieldProbe", name="FieldProbe_ScatLine", - period=100, integrate=1, probe_geometry="Line", x_probe=-2.5e-6, @@ -267,7 +261,8 @@ ) load_balance_costs_rdiag = picmi.ReducedDiagnostic( - diag_type="LoadBalanceCosts", name="LBC", period=100 + diag_type="LoadBalanceCosts", + name="LBC", ) # Set up simulation @@ -278,6 +273,7 @@ particle_shape="cubic", warpx_numprocs=[1, 2], # deactivate `numprocs` for dynamic load balancing warpx_use_filter=1, + warpx_reduced_diags_intervals=100, warpx_load_balance_intervals=100, warpx_load_balance_costs_update="heuristic", ) diff --git a/Examples/Tests/implicit/inputs_test_1d_semi_implicit_picard b/Examples/Tests/implicit/inputs_test_1d_semi_implicit_picard index 8ef0304bebb..39df05ff72c 100644 --- a/Examples/Tests/implicit/inputs_test_1d_semi_implicit_picard +++ b/Examples/Tests/implicit/inputs_test_1d_semi_implicit_picard @@ -85,7 +85,6 @@ diag1.electrons.variables = z w ux uy uz diag1.protons.variables = z w ux uy uz warpx.reduced_diags_names = particle_energy field_energy +reduced_diags.intervals = 1 particle_energy.type = ParticleEnergy -particle_energy.intervals = 1 field_energy.type = FieldEnergy -field_energy.intervals = 1 diff --git a/Examples/Tests/implicit/inputs_test_1d_theta_implicit_picard b/Examples/Tests/implicit/inputs_test_1d_theta_implicit_picard index 2ed4d746708..80e4e7033fc 100644 --- a/Examples/Tests/implicit/inputs_test_1d_theta_implicit_picard +++ b/Examples/Tests/implicit/inputs_test_1d_theta_implicit_picard @@ -85,7 +85,6 @@ diag1.electrons.variables = z w ux uy uz diag1.protons.variables = z w ux uy uz warpx.reduced_diags_names = particle_energy field_energy +reduced_diags.intervals = 1 particle_energy.type = ParticleEnergy -particle_energy.intervals = 1 field_energy.type = FieldEnergy -field_energy.intervals = 1 diff --git a/Examples/Tests/implicit/inputs_test_2d_theta_implicit_jfnk_vandb b/Examples/Tests/implicit/inputs_test_2d_theta_implicit_jfnk_vandb index 0cdf2ebe40d..bab9a03878c 100644 --- a/Examples/Tests/implicit/inputs_test_2d_theta_implicit_jfnk_vandb +++ b/Examples/Tests/implicit/inputs_test_2d_theta_implicit_jfnk_vandb @@ -109,7 +109,6 @@ diag1.electrons.variables = x z w ux uy uz diag1.protons.variables = x z w ux uy uz warpx.reduced_diags_names = particle_energy field_energy +reduced_diags.intervals = 1 particle_energy.type = ParticleEnergy -particle_energy.intervals = 1 field_energy.type = FieldEnergy -field_energy.intervals = 1 diff --git a/Examples/Tests/implicit/inputs_test_2d_theta_implicit_jfnk_vandb_filtered b/Examples/Tests/implicit/inputs_test_2d_theta_implicit_jfnk_vandb_filtered index 4849a5e30a3..c7457e02af8 100644 --- a/Examples/Tests/implicit/inputs_test_2d_theta_implicit_jfnk_vandb_filtered +++ b/Examples/Tests/implicit/inputs_test_2d_theta_implicit_jfnk_vandb_filtered @@ -109,7 +109,6 @@ diag1.electrons.variables = x z w ux uy uz diag1.protons.variables = x z w ux uy uz warpx.reduced_diags_names = particle_energy field_energy +reduced_diags.intervals = 1 particle_energy.type = ParticleEnergy -particle_energy.intervals = 1 field_energy.type = FieldEnergy -field_energy.intervals = 1 diff --git a/Examples/Tests/implicit/inputs_test_2d_theta_implicit_strang_psatd b/Examples/Tests/implicit/inputs_test_2d_theta_implicit_strang_psatd index f68d1d324ac..46bc6b3d301 100644 --- a/Examples/Tests/implicit/inputs_test_2d_theta_implicit_strang_psatd +++ b/Examples/Tests/implicit/inputs_test_2d_theta_implicit_strang_psatd @@ -92,7 +92,6 @@ diag1.electrons.variables = x z w ux uy uz diag1.protons.variables = x z w ux uy uz warpx.reduced_diags_names = particle_energy field_energy +reduced_diags.intervals = 1 particle_energy.type = ParticleEnergy -particle_energy.intervals = 1 field_energy.type = FieldEnergy -field_energy.intervals = 1 diff --git a/Python/pywarpx/picmi.py b/Python/pywarpx/picmi.py index afd28851f70..c5946376d52 100644 --- a/Python/pywarpx/picmi.py +++ b/Python/pywarpx/picmi.py @@ -2770,6 +2770,21 @@ class Simulation(picmistandard.PICMI_Simulation): warpx_used_inputs_file: string, optional The name of the text file that the used input parameters is written to, + + warpx_reduced_diags_path: string, optional + Sets the default path for reduced diagnostic output files + + warpx_reduced_diags_extension: string, optional + Sets the default extension for reduced diagnostic output files + + warpx_reduced_diags_intervals: string, optional + Sets the default intervals for reduced diagnostic output files + + warpx_reduced_diags_separator: string, optional + Sets the default separator for reduced diagnostic output files + + warpx_reduced_diags_precision: integer, optional + Sets the default precision for reduced diagnostic output files """ # Set the C++ WarpX interface (see _libwarpx.LibWarpX) as an extension to @@ -2836,6 +2851,12 @@ def init(self, kw): self.checkpoint_signals = kw.pop("warpx_checkpoint_signals", None) self.numprocs = kw.pop("warpx_numprocs", None) + self.reduced_diags_path = kw.pop("warpx_reduced_diags_path", None) + self.reduced_diags_extension = kw.pop("warpx_reduced_diags_extension", None) + self.reduced_diags_intervals = kw.pop("warpx_reduced_diags_intervals", None) + self.reduced_diags_separator = kw.pop("warpx_reduced_diags_separator", None) + self.reduced_diags_precision = kw.pop("warpx_reduced_diags_precision", None) + self.inputs_initialized = False self.warpx_initialized = False @@ -2902,6 +2923,13 @@ def initialize_inputs(self): pywarpx.warpx.numprocs = self.numprocs + reduced_diags = pywarpx.warpx.get_bucket("reduced_diags") + reduced_diags.path = self.reduced_diags_path + reduced_diags.extension = self.reduced_diags_extension + reduced_diags.intervals = self.reduced_diags_intervals + reduced_diags.separator = self.reduced_diags_separator + reduced_diags.precision = self.reduced_diags_precision + particle_shape = self.particle_shape for s in self.species: if s.particle_shape is not None: @@ -3943,7 +3971,7 @@ def __init__( self, diag_type, name=None, - period=1, + period=None, path=None, extension=None, separator=None, diff --git a/Source/Diagnostics/ReducedDiags/ReducedDiags.cpp b/Source/Diagnostics/ReducedDiags/ReducedDiags.cpp index ec31d9de81c..a3529cd305d 100644 --- a/Source/Diagnostics/ReducedDiags/ReducedDiags.cpp +++ b/Source/Diagnostics/ReducedDiags/ReducedDiags.cpp @@ -28,12 +28,15 @@ m_rd_name{rd_name} { BackwardCompatibility(); + const ParmParse pp_rd("reduced_diags"); const ParmParse pp_rd_name(m_rd_name); // read path + pp_rd.query("path", m_path); pp_rd_name.query("path", m_path); // read extension + pp_rd.query("extension", m_extension); pp_rd_name.query("extension", m_extension); // check if it is a restart run @@ -61,13 +64,16 @@ m_rd_name{rd_name} // read reduced diags intervals std::vector intervals_string_vec = {"1"}; - pp_rd_name.getarr("intervals", intervals_string_vec); + pp_rd.queryarr("intervals", intervals_string_vec); + pp_rd_name.queryarr("intervals", intervals_string_vec); m_intervals = utils::parser::IntervalsParser(intervals_string_vec); // read separator + pp_rd.query("separator", m_sep); pp_rd_name.query("separator", m_sep); // precision of data in the output file + utils::parser::queryWithParser(pp_rd, "precision", m_precision); utils::parser::queryWithParser(pp_rd_name, "precision", m_precision); } // end constructor From 4f2b3b6a6110e3260f0acfda0a0afc26dc2fd872 Mon Sep 17 00:00:00 2001 From: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> Date: Wed, 4 Dec 2024 15:59:02 -0800 Subject: [PATCH 6/8] Release 24.12 (#5496) Prepare the December release of WarpX, following the documentation at https://warpx.readthedocs.io/en/latest/maintenance/release.html: 1. Update to latest AMReX release: ```console ./Tools/Release/updateAMReX.py ``` 2. Update to latest pyAMReX release: ```console ./Tools/Release/updatepyAMReX.py ``` 3. Update to latest PICSAR release (no changes, still 24.09): ```console ./Tools/Release/updatePICSAR.py ``` 4. Update WarpX version number: ```console ./Tools/Release/newVersion.sh ``` --- .github/workflows/cuda.yml | 2 +- CMakeLists.txt | 2 +- Docs/source/conf.py | 4 ++-- Python/setup.py | 2 +- cmake/dependencies/AMReX.cmake | 4 ++-- cmake/dependencies/pyAMReX.cmake | 4 ++-- setup.py | 2 +- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/cuda.yml b/.github/workflows/cuda.yml index 8d40aba553c..0a68d850e7e 100644 --- a/.github/workflows/cuda.yml +++ b/.github/workflows/cuda.yml @@ -126,7 +126,7 @@ jobs: which nvcc || echo "nvcc not in PATH!" git clone https://github.com/AMReX-Codes/amrex.git ../amrex - cd ../amrex && git checkout --detach 456c93c7d9512f1cdffac0574973d7df41417898 && cd - + cd ../amrex && git checkout --detach 24.12 && cd - make COMP=gcc QED=FALSE USE_MPI=TRUE USE_GPU=TRUE USE_OMP=FALSE USE_FFT=TRUE USE_CCACHE=TRUE -j 4 ccache -s diff --git a/CMakeLists.txt b/CMakeLists.txt index da62c943e19..c7a889633da 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ # Preamble #################################################################### # cmake_minimum_required(VERSION 3.24.0) -project(WarpX VERSION 24.11) +project(WarpX VERSION 24.12) include(${WarpX_SOURCE_DIR}/cmake/WarpXFunctions.cmake) diff --git a/Docs/source/conf.py b/Docs/source/conf.py index e081a490ee8..e54a6cc23ba 100644 --- a/Docs/source/conf.py +++ b/Docs/source/conf.py @@ -107,9 +107,9 @@ def __init__(self, *args, **kwargs): # built documents. # # The short X.Y version. -version = "24.11" +version = "24.12" # The full version, including alpha/beta/rc tags. -release = "24.11" +release = "24.12" # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/Python/setup.py b/Python/setup.py index 5ac5a950d99..8080b62acf4 100644 --- a/Python/setup.py +++ b/Python/setup.py @@ -65,7 +65,7 @@ setup( name="pywarpx", - version="24.11", + version="24.12", packages=["pywarpx"], package_dir={"pywarpx": "pywarpx"}, description="""Wrapper of WarpX""", diff --git a/cmake/dependencies/AMReX.cmake b/cmake/dependencies/AMReX.cmake index 491e333d712..152a2618dee 100644 --- a/cmake/dependencies/AMReX.cmake +++ b/cmake/dependencies/AMReX.cmake @@ -271,7 +271,7 @@ macro(find_amrex) endif() set(COMPONENT_PRECISION ${WarpX_PRECISION} P${WarpX_PARTICLE_PRECISION}) - find_package(AMReX 456c93c7d9512f1cdffac0574973d7df41417898 CONFIG REQUIRED COMPONENTS ${COMPONENT_ASCENT} ${COMPONENT_CATALYST} ${COMPONENT_DIMS} ${COMPONENT_EB} ${COMPONENT_FFT} PARTICLES ${COMPONENT_PIC} ${COMPONENT_PRECISION} ${COMPONENT_SENSEI} LSOLVERS) + find_package(AMReX 24.12 CONFIG REQUIRED COMPONENTS ${COMPONENT_ASCENT} ${COMPONENT_CATALYST} ${COMPONENT_DIMS} ${COMPONENT_EB} ${COMPONENT_FFT} PARTICLES ${COMPONENT_PIC} ${COMPONENT_PRECISION} ${COMPONENT_SENSEI} LSOLVERS) # note: TINYP skipped because user-configured and optional # AMReX CMake helper scripts @@ -294,7 +294,7 @@ set(WarpX_amrex_src "" set(WarpX_amrex_repo "https://github.com/AMReX-Codes/amrex.git" CACHE STRING "Repository URI to pull and build AMReX from if(WarpX_amrex_internal)") -set(WarpX_amrex_branch "456c93c7d9512f1cdffac0574973d7df41417898" +set(WarpX_amrex_branch "24.12" CACHE STRING "Repository branch for WarpX_amrex_repo if(WarpX_amrex_internal)") diff --git a/cmake/dependencies/pyAMReX.cmake b/cmake/dependencies/pyAMReX.cmake index 8e0e26e55db..6f0e07bf79e 100644 --- a/cmake/dependencies/pyAMReX.cmake +++ b/cmake/dependencies/pyAMReX.cmake @@ -59,7 +59,7 @@ function(find_pyamrex) endif() elseif(NOT WarpX_pyamrex_internal) # TODO: MPI control - find_package(pyAMReX 24.11 CONFIG REQUIRED) + find_package(pyAMReX 24.12 CONFIG REQUIRED) message(STATUS "pyAMReX: Found version '${pyAMReX_VERSION}'") endif() endfunction() @@ -74,7 +74,7 @@ option(WarpX_pyamrex_internal "Download & build pyAMReX" ON) set(WarpX_pyamrex_repo "https://github.com/AMReX-Codes/pyamrex.git" CACHE STRING "Repository URI to pull and build pyamrex from if(WarpX_pyamrex_internal)") -set(WarpX_pyamrex_branch "66fc71fecf77eee903e9c60100f1243f9e157744" +set(WarpX_pyamrex_branch "24.12" CACHE STRING "Repository branch for WarpX_pyamrex_repo if(WarpX_pyamrex_internal)") diff --git a/setup.py b/setup.py index cdb8a6d844e..0feb0a710d4 100644 --- a/setup.py +++ b/setup.py @@ -280,7 +280,7 @@ def build_extension(self, ext): setup( name="pywarpx", # note PEP-440 syntax: x.y.zaN but x.y.z.devN - version="24.11", + version="24.12", packages=["pywarpx"], package_dir={"pywarpx": "Python/pywarpx"}, author="Jean-Luc Vay, David P. Grote, Maxence Thévenet, Rémi Lehe, Andrew Myers, Weiqun Zhang, Axel Huebl, et al.", From 7f2fee5156047393d462437c975a5276b3895a67 Mon Sep 17 00:00:00 2001 From: David Grote Date: Wed, 4 Dec 2024 18:47:45 -0800 Subject: [PATCH 7/8] Fix read_raw_data.py script (#5490) The numpy routine `product` has been obsoleted, replaced by `prod`. --- Tools/PostProcessing/read_raw_data.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Tools/PostProcessing/read_raw_data.py b/Tools/PostProcessing/read_raw_data.py index a180cad18e0..bc63b43f3cf 100644 --- a/Tools/PostProcessing/read_raw_data.py +++ b/Tools/PostProcessing/read_raw_data.py @@ -202,7 +202,7 @@ def _read_field(raw_file, field_name): f.seek(offset) if header.version == 1: f.readline() # skip the first line - arr = np.fromfile(f, "float64", np.product(shape)) + arr = np.fromfile(f, "float64", np.prod(shape)) arr = arr.reshape(shape, order="F") box_shape = [slice(low, hig + 1) for low, hig in zip(lo, hi)] if header.ncomp > 1: @@ -225,7 +225,7 @@ def _read_buffer(snapshot, header_fn, _component_names): lo = box[0] - dom_lo hi = box[1] - dom_lo shape = hi - lo + 1 - size = np.product(shape) + size = np.prod(shape) with open(snapshot + "/Level_0/" + fn, "rb") as f: f.seek(offset) if header.version == 1: From a31030912a256a0e0da112fa24d738f73276882c Mon Sep 17 00:00:00 2001 From: Revathi Jambunathan <41089244+RevathiJambunathan@users.noreply.github.com> Date: Wed, 4 Dec 2024 19:22:30 -0800 Subject: [PATCH 8/8] Remove unused function `ScrapeParticles` (#5491) --- Source/WarpX.H | 2 -- 1 file changed, 2 deletions(-) diff --git a/Source/WarpX.H b/Source/WarpX.H index 574478f4774..aa8c42715d3 100644 --- a/Source/WarpX.H +++ b/Source/WarpX.H @@ -1597,8 +1597,6 @@ private: */ void HandleParticlesAtBoundaries (int step, amrex::Real cur_time, int num_moved); - void ScrapeParticles (); - /** Update the E and B fields in the explicit em PIC scheme. * * At the beginning, we have B^{n} and E^{n}.