Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
HarrisSheetinX-development merge 22-04-29 (#90)
* CI: Fix Small Issue w/ Langmuir Plots (ECP-WarpX#3010) * Release 22.04 (ECP-WarpX#3018) * AMReX: 22.04 * PICSAR: 22.04 * WarpX: 22.04 * Switch test to use common build with openPMD enabled (ECP-WarpX#2988) * Switch test to use common build with OpenPMD enabled * Match GNU make to CMake change Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Allow process signals to trigger checkpoint or break behavior (ECP-WarpX#2896) * Beginnings of signal handling machinery * Add tentative logic to make checkpoint call * Adapt formatting slightly * Add calls to read signals and set up signal handlers * Initialize signal flag array * Add parsing of signal names, and fix some whitespace issues * Skip signal setup on Windows * added checkpoint and break signal inputs to picmi.py * Address initial review requests * Correct comment to match changed code * Convert maximum signal number to a symbolic name * Always parse signal input, and error out on Windows or wherever it may be unsupported * Typo fix * Add missing reset of checkpoint signal flag * Add reset of break signal, in support of Python or library usage * Test for a configured checkpoint diag when asked to checkpoint on a signal * Fix typo in Linux code path * Clean up MPI support * Use symbolic name for maximum signal number * Fix unused variable in the no-MPI case * Add missing header inclusions * Switch signal parsing to an enumerated table * Test signal handling for Linux, not GNU C library * Avoid another magic number * Update MPI_Ibcast call to match symbolic array length * Update loop over signal flags to use symbolic limit * Match #includes to usage * Add omitted C++ std <atomic> header include * Guard entire set of signal definitions as *nix-only, not for Windows * Broaden Windows exclusion to avoid zero-length array that displeases MSVC++ * Check return value from sigaction() * Convert conditional calls to Abort() to assertions * Move check for platform support to input parsing * Shift signal handling code over toward ABLASTR to share with ImpactX and Hipace++ * Minor cleanup * A bit more cleanup * Fix formatting nits * Add AMReX error handling on MPI calls * Add ABLASTR signal handling code to GNU makefile too * Document new input parameters * Use ABLASTR assertion macros in ABLASTR code * Convert requests limit value to a requests array size * Generalize signal handling to an arbitrary set of potential actions * Rename class to match usage and file name * Stick stuff in ABLASTR namespace * Indent conditional includes as requested Co-authored-by: Roelof <roelof.groenewald@modernelectron.com> * Moving Frame Field Probe Functionality (ECP-WarpX#2996) * DRAFT for Moving Frame * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Adds m_last_compute_step * Generalized SetParticlePosition, semicolons and formatting * Update Source/Diagnostics/ReducedDiags/FieldProbe.H Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Moved particle push before calculations. Condensed stuff. * Fixed Velocity, added start and stop time functionality * Documentation * Apply suggestions from code review Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Empty-Commit * Fixed ParallelFor from review * FP moving window in laser_acceleration 1d, 2d, 3d test * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Line detector instead of point Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Refactoring: More General Interfaces (ECP-WarpX#2991) * Refactoring: More General Interfaces (J, rho) * Refactoring: More General Interfaces (E, B) * Refactoring: More General Interfaces (rho) * Fix const Correctness * Fix const Correctness (continued) * Fix Bugs * Refactoring: More General Interfaces (averaged E, averaged B) * LoadBalanceCosts: num_cells & num_macro_particles (ECP-WarpX#3019) * Examples: LBC in Laser-Ion Example * LoadBalanceCosts: num_cells & num_macro_particles * Fix Script: Wrong Header Counting Spliced out the first to columns twice. * Fix Script: Blocking Factor The script did not work if a direction only had one block * Fix Script: 2D/3D There is no generic way from the data we write to find this out, without breaking corner cases such as one-block in one direction. * LoadBalanceCosts: Fix Unused Vars in Script Leftover to ECP-WarpX#3019 * Semicoarsening in electrostatic solvers (ECP-WarpX#3024) * Semicoarsening in electrostatic solvers Enable semicoarsening in electrostatic solvers if the problem is anisotropic due to relativistic beam and/or anisotropic cell spacing. * Update relativistic_space_charge_initialization benchmark * AMReX: Update to latest commit (ECP-WarpX#3021) * Added PlasmaLens class to PICMI (ECP-WarpX#3025) * Added PlasmaLens class to PICMI * Added CI test * Added PICMI input file * Fixed the output dir for the CI test * Add `_plt` to Output File Prefix Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Minor fixes removing warnings from MSVC C++ (ECP-WarpX#3022) * Fix MPI Signal Handling on Perlmutter (ECP-WarpX#3029) * Fix: `MPI_CXX_BOOL` -> `MPI_BYTE` C99 types were aded in MPI-2.2, while Cray's MPICH fork in version 8.1.13 defines `MPI_CXX_BOOL` to `MPI_DATATYPE_NULL` on Perlmutter. We could use `MPI_C_BOOL`, which is technically a `_Bool` from [<cstdbool>](https://en.cppreference.com/w/cpp/header/cstdbool) (deprecated: C++17; removed: C++20) - or we simply do a static assert on `sizeof(bool)` and communicate as a `MPI_BYTE` or `MPI_CHAR`. * Signals: Do no MPI Comms if none is configured * Docs: Link and Explain Allowed Signal Values * Review Comments & Style * Extend `do_pml_Lo/Hi` to MR Levels (ECP-WarpX#2890) * Vay Deposition: Fix SyncCurrent, FFTs (ECP-WarpX#3012) * Implemented the BCK fallback for the ECT solver (ECP-WarpX#3016) * Implemented the BCK fallback for the ECT solver * Ignored an unused variable * Bug fix * Fix issue with preprocessor directive * Added comments * Implemented suggestions from code review * Fixed tilebox * Improved warning * Using WarpX::RecordWarning instead of amrex::Print() * Ignoring RZ * Improving comment * Bug Fix * Lowered warning priority * Ignoring low priority warnings in ECT tests Co-authored-by: lgiacome <lorenzo.giacome@cern.ch> * Signal: Cleanup (Simplify) (ECP-WarpX#3031) Simplify the logic by fusing a loop. * Fix Bug in `WarpX::MoveWindow` (ECP-WarpX#3034) * [pre-commit.ci] pre-commit autoupdate (ECP-WarpX#3039) updates: - [github.com/pre-commit/pre-commit-hooks: v4.1.0 → v4.2.0](pre-commit/pre-commit-hooks@v4.1.0...v4.2.0) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * AMReX: Update to latest commit (ECP-WarpX#3037) * RZ + openPMD : don't transpose data, save data with shape (Nm, Nz, Nr) (ECP-WarpX#3030) * part_per_grid/cell : cartesian diag in RZ/openPMD * RZ+openPMD : flexible ZR or RZ order * fix logic if not in RZ * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fix regression test, remove transpose and refactor * Update Source/Diagnostics/WarpXOpenPMD.cpp * Fix: Doxygen, Consistent Naming, Comments, Style Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Remi Lehe <remi.lehe@normalesup.org> Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Remove Nodal Synchronization of J and Rho (ECP-WarpX#3038) * Remove Nodal Sync of J and Rho * Reset Benchmark of reduced_diags_single_precision * Avoid unnecessary construction of CopyParticleAttribs (ECP-WarpX#3042) If it's not used there is no reason to construct a CopyParticleAttribs object. In fact, it could result in a runtime `std::out_of_range` error in `std::map::at()` because `tmp_particle_data` is used in the CopyParticleAttribs constructor, but in `PhysicalParticleContainer::Evolve`, `tmp_particle_data` is properly prepared only when doing back transformed diagnostics. * AMReX/PICSAR: Weekly Update (ECP-WarpX#3046) * [pre-commit.ci] pre-commit autoupdate (ECP-WarpX#3049) updates: - [github.com/hadialqattan/pycln: v1.2.5 → v1.3.1](hadialqattan/pycln@v1.2.5...v1.3.1) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * Summit: Prepend Hostname & Mapping (ECP-WarpX#3040) Add an additional `jsrun` command on Summit so that one can easier map the run output to a hostname. Write a `task_host_mapping.txt` file for each run. * Fix a bug about particle weight. (ECP-WarpX#3052) Co-authored-by: Yinjian Zhao <yin@Yinjians-MacBook-Air.local> * add after diagnostic python callback (ECP-WarpX#3043) * Current Deposition Interfaces: Always Pass `dt` & `relative_time` (ECP-WarpX#2937) * Current Deposition Interfaces: Always Pass `dt` & `relative_time` * Fix CI Failures * Fix 1D/RZ Warnings * Fix RZ Bug * Fix Bugs * Minimize Changes, Fix Roundoff Errors * Cleaning * Remove dt From doDepositionShapeN * Cleaning Esirkepov Deposition * Cleaning Vay Deposition * Fix Roundoff Errors * Fix Roundoff Errors (continued) * Fix Bug (RZ) * `Stencil.py`: Follow PEP 8 Coding Style (ECP-WarpX#3055) * `Stencil.py`: Follow PEP 8 Coding Style * Commit Suggestion by @dpgrote * Perlmutter: Boost Software Module (QED) (ECP-WarpX#3053) * Perlmutter: Boost Document a compatible Boost module on Perlmutter. This is needed for detailed table generation for the QED module (`WarpX_QED_TABLE_GEN=ON`). * CMake: Update PICSAR Include a fix for a compile error on CPU for QED table gen. * Docs: Ascent 0.8.0 on Summit (ECP-WarpX#3057) Update the Ascent installation location to use Cyrus' new install for us. * AMReX: Weekly Update (ECP-WarpX#3059) * Doc: PICMI HPC System Update Requirements (ECP-WarpX#3060) Since these requirements (i.e., PICMI) change quite rapidly, document the line close to the `pip` install line. * Add profiling to ParticleBoundaryBuffer::gatherParticles (ECP-WarpX#3061) This turned out to be a major portion of a particle-heavy simulation, and was being entirely attributed to WarpX::Evolve(). * Update CUDA repo key (ECP-WarpX#3069) Nvidia has made changes in the signing keys. https://forums.developer.nvidia.com/t/notice-cuda-linux-repository-key-rotation/212771 Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> Co-authored-by: Phil Miller <unmobile+gh@gmail.com> Co-authored-by: Roelof <roelof.groenewald@modernelectron.com> Co-authored-by: Tiberius Rheaume <35204125+TiberiusRheaume@users.noreply.github.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Weiqun Zhang <WeiqunZhang@lbl.gov> Co-authored-by: David Grote <grote1@llnl.gov> Co-authored-by: Lorenzo Giacomel <47607756+lgiacome@users.noreply.github.com> Co-authored-by: lgiacome <lorenzo.giacome@cern.ch> Co-authored-by: Ryan Sandberg <RSandberg@lbl.gov> Co-authored-by: Remi Lehe <remi.lehe@normalesup.org> Co-authored-by: Yinjian Zhao <yinjianzhao@lbl.gov> Co-authored-by: Yinjian Zhao <yin@Yinjians-MacBook-Air.local> Co-authored-by: Roelof Groenewald <40245517+roelof-groenewald@users.noreply.github.com> Co-authored-by: Phil Miller <phil@intensecomputing.com>
- Loading branch information