Skip to content

Commit 3a59c69

Browse files
KZhu-MERemiLeheax3llucafedeli88amadou38
authored
Remerge upstream/development and gradient descent (#182)
* Apply shift in BTD for zmax different than 0 (BLAST-WarpX#3091) * Include shift in t_lab when `zmax` is different than 0 * Revert "Include shift in t_lab when `zmax` is different than 0" This reverts commit 5f786f2. * Apply shift in BTD for zmax > 0 * AMReX: Weekly Update (BLAST-WarpX#3095) * Fix miscellaneous issues found with clang tidy (BLAST-WarpX#3083) * fix miscellaneous issues found with clang tidy * fix miscellaneous issues found with clang tidy * moved default constructors and destructors to header * fix issue * Use default again * Add a python script to generate timestep duration plots (BLAST-WarpX#3036) * add script to generate timestep duration plots * disable transparent background * fix bugs * fix bug in doc * Update plot_timestep_duration.rst * add permissions * using argparse * using if __name__ == __main__: * add page in workflows * Update Docs/source/usage/workflows.rst * added missing file * Formatting * Apply shift for zmax>0 in old BTD (BLAST-WarpX#3094) * Apply shift for zmax>0 in old BTD * BTD: also shift t_slice_lab * Use uniform error message formatting for all the amrex::Abort() calls in WarpX.cpp (BLAST-WarpX#2952) * use WARPX_ALWAYS_ASSERT_WITH_MESSAGE instead of Abort() * fix bug * Update Source/WarpX.cpp * fixed bug * fixed bug * Update Source/WarpX.cpp * Update Source/WarpX.cpp Co-authored-by: Axel Huebl <[email protected]> * Use queryWithParser to Parse v_particle_pml (BLAST-WarpX#3096) Use queryWithParser, instead of query, to parse v_particle_pml, in order to support functions like sin, cos, sqrt, etc. * Fix Wrong Abort Message for PSATD w/ Time Averaging (BLAST-WarpX#3098) * Doc: Improve Doxygen Links (BLAST-WarpX#3099) * Doc: Improve Doxygen Links - download also openPMD-api tag files & link them - improve developer page: clearer links * Update: .gitignore * Fix Mirrors for RZ (NullifyMF) (BLAST-WarpX#3101) * Fix Breaking Pip 22.1 Logic (BLAST-WarpX#3106) * CI: Fix Windows Pip's `--no-build-isolation` says we have to have build-deps pre-installed. But Pip does offer no option to install those from `pyproject.toml`. * Pip 22.1: in-tree-build default And dropped the old option with a fatal error... classic. * Pip no-build isolation: pre-install build tools not installed in non-isolated builds - we want isolated builds, because they have a derministic path that we can cache with ccache * fix bug (BLAST-WarpX#3110) * Fix Laser Injection in RZ (BLAST-WarpX#3104) * Add STL files support in pywarpx (BLAST-WarpX#3089) * Added STL files support in pywarpx * Add new EB bucket * Added name to file headers * Fixing year in file headers * Checking that stl file and imp function are not both specified * Renamed EB bucket to EB2 * Adding STL documentation * Implement suggestions from code review Co-authored-by: lgiacome <[email protected]> * Stricter Tolerance for 3D Langmuir Tests (BLAST-WarpX#3097) * CI: HIP with https (BLAST-WarpX#3111) Small update in HIP docs: now supports HTTPS: https://rocmdocs.amd.com/en/latest/Installation_Guide/Installation-Guide.html#ubuntu * Add Headers to Input File Written by PICMI (BLAST-WarpX#3093) * Add Headers to Input File Written by PICMI * Commit Suggestion by @dpgrote * Add Comment * Add Empty Line * Slightly Better Readable with a newline * AMReX/PICSAR: Weekly Update (BLAST-WarpX#3112) * AMReX: Weekly Update * PICSAR: Weekly Update * [pre-commit.ci] pre-commit autoupdate (BLAST-WarpX#3113) updates: - [github.com/Lucas-C/pre-commit-hooks: v1.1.13 → v1.1.14](Lucas-C/pre-commit-hooks@v1.1.13...v1.1.14) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * Use uniform error message formatting in more source files (BLAST-WarpX#2964) * use WARPX_ALWAYS_ASSERT_WITH_MESSAGE instead of Abort() * fix bug * Update Source/WarpX.cpp Co-authored-by: Axel Huebl <[email protected]> * use more uniform text formatting * fixed bug * fixed bug * using Utils::TextMsg in more files * fixed bug * use Utils::TextMsg in more files * fixed bug * use Utils::TextMsg in more files * fixed last merge conflict * fixed bug * fix indentation Co-authored-by: Axel Huebl <[email protected]> * Avoid resizing ParticleBoundaryBuffer allocation to total particle count (BLAST-WarpX#3068) * Avoid resizing ParticleBoundaryBuffer allocation to total particle count * Switch atomic increments over to reductions * Lassen (LLNL): ADIOS2, BLAS++ & LAPACK++ (BLAST-WarpX#3071) * Lassen (LLNL): ADIOS2, BLAS++ & LAPACK++ Document how to install ADIOS2 (for openPMD `.bp`) and BLAS++/LAPACK++ (for PSATD in RZ) on Lassen at LLNL. * Update: ADIOS2~SST, BLAS++/LAPACK++ w/ ESSL * Add workaround for Libfabric bug on Crusher to job script. (BLAST-WarpX#3114) * Add workaround for Libfabric bug on Crusher to job script. * add known issues section for Crusher * ABLASTR: localIDtoGlobal (BLAST-WarpX#3115) * ABLASTR: localIDtoGlobal Move the control of `localIDtoGlobal` to ABLASTR for particle IDs. * WarpX: Use ABLASTR now * Clarify error messages when parsing diagnostics input (BLAST-WarpX#3122) * Add `do_average` option to the particle fields diagnostic (BLAST-WarpX#3067) * Added do_average option to the particle fields diagnostic * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Updated CI benchmark files * Updated CI benchmark files * Fix ParticleReductionFunctor comment * Changed maps to vector for code simplification * Change do_average to bool Co-authored-by: Hannah Klion <[email protected]> Co-authored-by: Edoardo Zoni <[email protected]> * Fix from the merge Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Hannah Klion <[email protected]> Co-authored-by: Edoardo Zoni <[email protected]> * fix unnecessary double promotions (BLAST-WarpX#3120) * use fwd declaration for WarpXFaceInfoBox (BLAST-WarpX#3125) * remove unused enum (BLAST-WarpX#3124) * AMReX/PICSAR: Weekly Update (BLAST-WarpX#3126) * AMReX: Weekly Update * PICSAR: Weekly Update * [pre-commit.ci] pre-commit autoupdate (BLAST-WarpX#3128) updates: - [github.com/Lucas-C/pre-commit-hooks: v1.1.14 → v1.2.0](Lucas-C/pre-commit-hooks@v1.1.14...v1.2.0) - [github.com/hadialqattan/pycln: v1.3.2 → v1.3.3](hadialqattan/pycln@v1.3.2...v1.3.3) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * Add new class `NamedComponentParticleContainer` (BLAST-WarpX#3100) * Add new class `NamedComponentParticleContainer` * Update docstrings * Fix compilation * Address review comments * Update Doxygen Co-authored-by: Axel Huebl <[email protected]> * Fold Python tests into their corresponding base configurations, to better exploit ccache (BLAST-WarpX#3107) * Fold Python tests into their corresponding base configurations, to better exploit ccache * Align 1D Python tests with rest of 1D tests * Remove archaic test exclusions * Reintroduce exclusion of Python_Langmuir test, since it currently fails * Docs: New Perlmutter Default Env, Microarch (BLAST-WarpX#3127) * Docs: New Perlmutter Default Env The default environment on Perlmutter is now the one we already used, `PrgEnv-gnu`. Thus, we don't need to switch anymore. * Perlmutter: Build Microarch Tuned for Zen3, which is used on Login and Compute nodes alike: https://docs.nersc.gov/systems/perlmutter/system_details/ * Keep PrgEnv-gnu ... in case it changes again * Comment microarch flags * CMake Pip: Unique Custom Targets (BLAST-WarpX#3116) Add a prefix to custom targets so we do not collide if used as a CMake subproject, e.g., in ARTEMIS. * Simplify the function computePhi (BLAST-WarpX#3026) * Simplify the function computePhi * Allow to compile RZ without EB * Allow to compile RZ without EB * Deactivate semi-coarsening when both EB and RZ are used * Update Source/FieldSolver/ElectrostaticSolver.cpp Co-authored-by: Edoardo Zoni <[email protected]> Co-authored-by: Axel Huebl <[email protected]> * Specify particle precision (BLAST-WarpX#3065) * Add precision to printed PIC parameters * Added WarpX_PARTICLE_PRECISION as a build option * Update types to ParticleReal * Updated libwarpx to inject particles with correct ParticleReal type * Fix syntax error * Add logic to avoid duplicate definitions * Use correct ParticleReal type in add_particles * Cleaned up code, addressed comments * Update Python/pywarpx/_libwarpx.py Co-authored-by: Peter Scherpelz <[email protected]> * Removed redundant functions, fixed some typing * Modified template functions * Cast d_w to Real * Fixed failing tests * Cast types to be consistent * removed in-tree-build from pip command * Added GPU device macros to PDim3 methods * rerun tests * Removed unecessary casting, update calls to use PDim3 instead of XDim3 * Refactored comments * Added mcc fields double precision, particles single precision test * Updated casting and formatting * Removed cast, updated declaration Co-authored-by: Peter Scherpelz <[email protected]> Co-authored-by: Peter Scherpelz <[email protected]> * Test Filter: Include Python Langmuir (BLAST-WarpX#3129) * Test Filter: Include Python Langmuir * Reset Benchmarks (Python Langmuir) Co-authored-by: Tools <[email protected]> * Reactivate Multi-J RZ PSATD Checksums (BLAST-WarpX#2459) * Try to reactivate Multi-J RZ PSATD checksums * Reduce size of test and add debug prints * No MPI in test * Revert "Reduce size of test and add debug prints" This reverts commit c865671. * Revert "No MPI in test" This reverts commit 1a0a682. * Remove close to zero values from field outputs * Update benchmarks * PML.cpp: missing util include (BLAST-WarpX#3138) fix a missing include for `PML.cpp` * Fix: Field Probe no-MPI Gather (BLAST-WarpX#3134) In AMReX, Gather without MPI was implemented as a no-OP. This applies a work-around so we can patch already released WarpX versions. * SpectralFieldDataRZ: Missing Utils Include (BLAST-WarpX#3140) * Fix: Install ABLASTR (BLAST-WarpX#3141) Since ABLASTR is a proper library now, we need to install it as well. * Write Inputs to `warpx_used_inputs` (BLAST-WarpX#3132) Write a general file `warpx_used_inputs` that contains all inputs of a simulation. This is needed, since we add & overwrite the inputs parameters in the inputs file with command-line options regularly. Writing the actually used inputs increases reproducibility of such workflows, especially in unsupervised scripted runs/optimizations. * Docs: Improve `collision_name>.species` (BLAST-WarpX#3143) ... for `background_stopping` we also just use one species. * Remove Extraneous `WARPX_DIM_RZ` in Gaussian Laser Init (BLAST-WarpX#3144) * move serialization to ablastr (BLAST-WarpX#3145) * Use Utils::TextMsg::Err and WARPX_ALWAYS_ASSERT_WITH_MESSAGE in more files (BLAST-WarpX#3117) * use formatted error messages * fixed bug * fixed bug * fixed bugs * fixed bug * Move MsgLogger to ablastr (BLAST-WarpX#3148) * move Msg Logger to ablastr * fixed bug * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fixed bug Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * AMReX: Weekly Update (BLAST-WarpX#3147) * Docs: Science Highlights (BLAST-WarpX#3139) * Docs: Science Highlights Document science papers of ours and users that use WarpX. * Add: More LWFA Preprints 🚀 * Use Ordered (Numbered) Lists * Add 3D tests for proton boron fusion (BLAST-WarpX#2450) * Add 3D tests for proton boron fusion * Add execute permission to analysis script * Fix Checksum path * Increase tolerance for energy check * Update benchmarks * Specify type of exception in try expect block * Apply suggestions from code review Co-authored-by: Axel Huebl <[email protected]> * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Add review suggestions Co-authored-by: Remi Lehe <[email protected]> * Safe Runtime: <species>.do_not_deposit = 1 Co-authored-by: Remi Lehe <[email protected]> * Remove division by zero warning in python analysis script * Update cross-section in the E > 3.5 MeV range * Increase some tolerances * Update benchmark Co-authored-by: Remi Lehe <[email protected]> Co-authored-by: Axel Huebl <[email protected]> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * Revert ""Gradient descent" convergence to steady-state (#176)" This reverts commit e31338f. * update changelog and version * Gradient Descent (#181) * Added ArbitraryDistributionVolumeEmitter * Updated particle weight calculation * renamed thermionic_emission test directory to emission * arbitrary seed from uniform distribution * Bug fixes and changes to test * add test for arbitrary seeding * Changed position sampling, added test * Removed unused imports and code * revert traceback printout * Added comments for binning particle positions * increased rtol for test * Allow input of any 2d array, add interpolation of 2d array onto current simulation grid * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Updated changelog * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Updated changelog * update version * created steady_state_descent.py file * Added coarsening algorithm * Added ability to read numpy data and coarsen grid * Added regression function calculation * Solve system of equations rather than curve fit * Use skimage block_reduce * Hard coded inverse exponential solve * take mean if exponential equation can't be solved * Added special cases to use linear regression * Update docstring * Added command line arguments * Modified linear regression logic and added main function * Added entry point * Change output file name * Change output file name * Fixed interpolate grid * updated arbitrary distribution emitter test * Fix interpolation logic * Changed to take in exact prediction timestep rather than a multiple * Added ability to specify save directory * Updated docstrings, removed unneeded files * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Added gradient descent test, refactored code * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Changed test parameters * Increase rtol of arbitrary seed test by 0.01 * Update mewarpx/mewarpx/utils_store/plasma_density_oracle.py Co-authored-by: Roelof Groenewald <[email protected]> * Update changelog * Update version * Add controller for plasma density oracle * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * WIP oracle control * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Allow oracle control bins to be overridden * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Added command line arguments * Fixed bugs, added info logging * added ability to modify run_script * removed unnecessary code * Cleaned up code * Refactored code to be clearer * Update docstrings * Added test * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Added documentation about oracle_control * Updated changelog * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Fixed TOTAL_TIME calculation * update wheel in docker build * change numpy to oldest-supported-numpy for docker * Updated formatting and documentation Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Remi Lehe <[email protected]> Co-authored-by: Axel Huebl <[email protected]> Co-authored-by: Luca Fedeli <[email protected]> Co-authored-by: amadou38 <[email protected]> Co-authored-by: Edoardo Zoni <[email protected]> Co-authored-by: David Grote <[email protected]> Co-authored-by: Lorenzo Giacomel <[email protected]> Co-authored-by: lgiacome <[email protected]> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Phil Miller <[email protected]> Co-authored-by: Andrew Myers <[email protected]> Co-authored-by: Hannah Klion <[email protected]> Co-authored-by: Phil Miller <[email protected]> Co-authored-by: Peter Scherpelz <[email protected]> Co-authored-by: Peter Scherpelz <[email protected]> Co-authored-by: Tools <[email protected]> Co-authored-by: Neïl Zaim <[email protected]> Co-authored-by: Ryan Sandberg <[email protected]>
2 parents e31338f + cc6f6d7 commit 3a59c69

File tree

97 files changed

+2324
-846
lines changed

Some content is hidden

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

97 files changed

+2324
-846
lines changed

.azure-pipelines.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,6 @@ jobs:
3131
WARPX_CI_REGULAR_CARTESIAN_2D: 'TRUE'
3232
cartesian3d:
3333
WARPX_CI_REGULAR_CARTESIAN_3D: 'TRUE'
34-
python:
35-
WARPX_CI_PYTHON_MAIN: 'TRUE'
3634
single_precision:
3735
WARPX_CI_SINGLE_PRECISION: 'TRUE'
3836
rz_or_nompi:
@@ -100,7 +98,7 @@ jobs:
10098
-DopenPMD_USE_PYTHON=OFF -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF -DBUILD_CLI_TOOLS=OFF
10199
python3 -m pip install --upgrade openpmd-api
102100
fi
103-
if [[ "${WARPX_CI_RZ_OR_NOMPI:-FALSE}" == "TRUE" || "${WARPX_CI_PYTHON_MAIN:-FALSE}" == "TRUE" ]]; then
101+
if [[ "${WARPX_CI_RZ_OR_NOMPI:-FALSE}" == "TRUE" ]]; then
104102
cmake-easyinstall --prefix=/usr/local git+https://bitbucket.org/icl/blaspp.git \
105103
-DCMAKE_CXX_COMPILER_LAUNCHER=$(which ccache) \
106104
-DCMAKE_CXX_STANDARD=17 \

.github/workflows/cuda.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ jobs:
106106
which nvcc || echo "nvcc not in PATH!"
107107
108108
git clone https://github.com/AMReX-Codes/amrex.git ../amrex
109-
cd amrex && git checkout --detach 843a7dff266273a0f5b7b9f6cc9233a278f41fe1 && cd -
109+
cd amrex && git checkout --detach b78921a2d80d95add9ff3ec9b498a96299ec4ed7 && cd -
110110
make COMP=gcc QED=FALSE USE_MPI=TRUE USE_GPU=TRUE USE_OMP=FALSE USE_PSATD=TRUE USE_CCACHE=TRUE -j 2
111111
112112
build_nvhpc21-11-nvcc:

.github/workflows/source/test_ci_matrix.sh

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@ WARPX_CI_REGULAR_CARTESIAN_2D=TRUE python prepare_file_ci.py
1919
grep "\[" ci-tests.ini >> ci_matrix_elements.txt
2020
WARPX_CI_REGULAR_CARTESIAN_3D=TRUE python prepare_file_ci.py
2121
grep "\[" ci-tests.ini >> ci_matrix_elements.txt
22-
WARPX_CI_PYTHON_MAIN=TRUE python prepare_file_ci.py
23-
grep "\[" ci-tests.ini >> ci_matrix_elements.txt
2422
WARPX_CI_SINGLE_PRECISION=TRUE python prepare_file_ci.py
2523
grep "\[" ci-tests.ini >> ci_matrix_elements.txt
2624
WARPX_CI_RZ_OR_NOMPI=TRUE python prepare_file_ci.py

.pre-commit-config.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ repos:
4848

4949
# Changes tabs to spaces
5050
- repo: https://github.com/Lucas-C/pre-commit-hooks
51-
rev: v1.1.14
51+
rev: v1.2.0
5252
hooks:
5353
- id: remove-tabs
5454
exclude: 'Make.WarpX|Make.package|Makefile|GNUmake'
@@ -67,7 +67,7 @@ repos:
6767

6868
# Autoremoves unused Python imports
6969
- repo: https://github.com/hadialqattan/pycln
70-
rev: v1.3.2
70+
rev: v1.3.3
7171
hooks:
7272
- id: pycln
7373
name: pycln (python)

CMakeLists.txt

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,13 @@ if(NOT WarpX_PRECISION IN_LIST WarpX_PRECISION_VALUES)
8686
message(FATAL_ERROR "WarpX_PRECISION (${WarpX_PRECISION}) must be one of ${WarpX_PRECISION_VALUES}")
8787
endif()
8888

89+
set(WarpX_PARTICLE_PRECISION_VALUES SINGLE DOUBLE)
90+
set(WarpX_PARTICLE_PRECISION ${WarpX_PRECISION} CACHE STRING "Particle floating point precision (SINGLE/DOUBLE)")
91+
set_property(CACHE WarpX_PARTICLE_PRECISION PROPERTY STRINGS ${WarpX_PARTICLE_PRECISION_VALUES})
92+
if(NOT WarpX_PARTICLE_PRECISION IN_LIST WarpX_PARTICLE_PRECISION_VALUES)
93+
message(FATAL_ERROR "WarpX_PARTICLE_PRECISION (${WarpX_PARTICLE_PRECISION}) must be one of ${WarpX_PARTICLE_PRECISION_VALUES}")
94+
endif()
95+
8996
set(WarpX_COMPUTE_VALUES NOACC OMP CUDA SYCL HIP)
9097
set(WarpX_COMPUTE OMP CACHE STRING "On-node, accelerated computing backend (NOACC/OMP/CUDA/SYCL/HIP)")
9198
set_property(CACHE WarpX_COMPUTE PROPERTY STRINGS ${WarpX_COMPUTE_VALUES})
@@ -358,7 +365,7 @@ configure_file(
358365
# Installs ####################################################################
359366
#
360367
# headers, libraries and executables
361-
set(WarpX_INSTALL_TARGET_NAMES)
368+
set(WarpX_INSTALL_TARGET_NAMES ablastr)
362369
if(WarpX_APP)
363370
list(APPEND WarpX_INSTALL_TARGET_NAMES app)
364371
endif()
@@ -418,8 +425,17 @@ if(WarpX_LIB)
418425
set(PYINSTALLOPTIONS "" CACHE STRING
419426
"Additional parameters to pass to `pip install`")
420427

428+
# add a prefix to custom targets so we do not collide if used as a subproject
429+
if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
430+
set(_WarpX_CUSTOM_TARGET_PREFIX_DEFAULT "")
431+
else()
432+
set(_WarpX_CUSTOM_TARGET_PREFIX_DEFAULT "warpx_")
433+
endif()
434+
set(WarpX_CUSTOM_TARGET_PREFIX "${_WarpX_CUSTOM_TARGET_PREFIX_DEFAULT}"
435+
CACHE STRING "Prefix for custom targets")
436+
421437
# build the wheel by re-using the shared library we build
422-
add_custom_target(pip_wheel
438+
add_custom_target(${WarpX_CUSTOM_TARGET_PREFIX}pip_wheel
423439
${CMAKE_COMMAND} -E rm -f ${WarpX_BINARY_DIR}/pywarpx*whl
424440
COMMAND
425441
${CMAKE_COMMAND} -E env PYWARPX_LIB_DIR=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
@@ -431,7 +447,7 @@ if(WarpX_LIB)
431447
)
432448

433449
# this will also upgrade/downgrade dependencies, e.g., when the version of picmistandard changes
434-
add_custom_target(pip_install_requirements
450+
add_custom_target(${WarpX_CUSTOM_TARGET_PREFIX}pip_install_requirements
435451
python3 -m pip install ${PYINSTALLOPTIONS} -r ${WarpX_SOURCE_DIR}/requirements.txt
436452
WORKING_DIRECTORY
437453
${WarpX_BINARY_DIR}
@@ -440,13 +456,13 @@ if(WarpX_LIB)
440456
# We force-install because in development, it is likely that the version of
441457
# the package does not change, but the code did change. We need --no-deps,
442458
# because otherwise pip would also force reinstall all dependencies.
443-
add_custom_target(pip_install
459+
add_custom_target(${WarpX_CUSTOM_TARGET_PREFIX}pip_install
444460
${CMAKE_COMMAND} -E env WARPX_MPI=${WarpX_MPI}
445461
python3 -m pip install --force-reinstall --no-deps ${PYINSTALLOPTIONS} ${WarpX_BINARY_DIR}/pywarpx*whl
446462
WORKING_DIRECTORY
447463
${WarpX_BINARY_DIR}
448464
DEPENDS
449-
shared pip_wheel pip_install_requirements
465+
shared ${WarpX_CUSTOM_TARGET_PREFIX}pip_wheel ${WarpX_CUSTOM_TARGET_PREFIX}pip_install_requirements
450466
)
451467
endif()
452468

Docs/source/acknowledge_us.rst

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
.. _acknowledge_warpx:
2+
13
Acknowledge WarpX
24
=================
35

@@ -32,6 +34,8 @@ Please add the following sentence to your publications, it helps contributors ke
3234
Primary WarpX contributors are with LBNL, LLNL, CEA-LIDYL, SLAC, DESY, CERN, and Modern Electron.
3335
We acknowledge all WarpX contributors.
3436

37+
.. _acknowledge_warpx_ref:
38+
3539
Latest WarpX reference
3640
**********************
3741

@@ -41,14 +45,18 @@ If your project leads to a scientific publication, please consider citing the pa
4145
**Porting WarpX to GPU-accelerated platforms**. *Parallel Computing*. 2021 Sep, 108:102833.
4246
https://doi.org/10.1016/j.parco.2021.102833
4347

48+
.. _acknowledge_warpx_all_refs:
49+
4450
Prior WarpX references
4551
----------------------
4652

4753
If your project uses the specific algorithms, please consider citing the respective publications in addition.
4854

4955
- Fedeli L, Zaim N, Sainte-Marie A, Thevenet M, Huebl A, Myers A, Vay J-L, Vincenti H.
50-
**PICSAR-QED: a Monte Carlo module to simulate Strong-Field Quantum Electrodynamics in Particle-In-Cell codes for exascale architectures**. *New Journal of Physics*. in-press, 2022.
51-
https://arxiv.org/abs/2110.00256
56+
**PICSAR-QED: a Monte Carlo module to simulate Strong-Field Quantum Electrodynamics in Particle-In-Cell codes for exascale architectures**.
57+
*New Journal of Physics* **24** 025009, 2022.
58+
`arXiv:2110.00256 <https://arxiv.org/abs/2110.00256>`__,
59+
`DOI:10.1088/1367-2630/ac4ef1 <https://doi.org/10.1088/1367-2630/ac4ef1>
5260

5361
- Zoni E, Lehe R, Shapoval O, Belkin D, Zaim N, Fedeli L, Vincenti H, Vay J-L.
5462
**A Hybrid Nodal-Staggered Pseudo-Spectral Electromagnetic Particle-In-Cell Method with Finite-Order Centering**. under review, 2022.

Docs/source/highlights.rst

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
.. _highlights:
2+
3+
Science Highlights
4+
==================
5+
6+
WarpX can be used in many domains of laser-plasma science, plasma physics, accelerator physics and beyond.
7+
Below, we collect a series of scientific publications that used WarpX.
8+
Please :ref:`acknowledge WarpX in your works`, so we can find your works.
9+
10+
Is your publication missing? :ref:`Contact us <contact>` or edit this page via a pull request.
11+
12+
Plasma-Based Acceleration
13+
*************************
14+
15+
Scientific works in laser-plasma and beam-plasma acceleration.
16+
17+
#. Wang J, Zeng M, Li D, Wang X, Lu W, Gao J.
18+
**Injection induced by coaxial laser interference in laser wakefield accelerators**.
19+
*preprint*. under review, 2022.
20+
`arXiv:2205.12083 <https://arxiv.org/abs/2205.12083>`__
21+
22+
#. Levy D, Andriyash IA, Haessler S, Ouille M, Kaur J, Flacco A, Kroupp E, Malka V, Lopez-Martens R.
23+
**Low-divergence MeV-class proton beams from kHz-driven laser-solid interactions**.
24+
*preprint*. under review, 2021.
25+
`arXiv:2112.12581 <https://arxiv.org/abs/2112.12581>`__
26+
27+
#. Miao B, Shrock JE, Feder L, Hollinger RC, Morrison J, Nedbailo R, Picksley A, Song H, Wang S, Rocca JJ, Milchberg HM.
28+
**Multi-GeV electron bunches from an all-optical laser wakefield accelerator**.
29+
*preprint*. under review, 2021.
30+
`arXiv:2112.03489 <https://arxiv.org/abs/2112.03489>`__
31+
32+
#. Mirani F, Calzolari D, Formenti A, Passoni M.
33+
**Superintense laser-driven photon activation analysis**.
34+
Nature Communications Physics volume **4**.185, 2021
35+
`DOI:10.1038/s42005-021-00685-2 <https://doi.org/10.1038/s42005-021-00685-2>`__
36+
37+
38+
Laser-Plasma Interaction
39+
************************
40+
41+
Scientific works in laser-ion acceleration and laser-matter interaction.
42+
43+
#. Hakimi S, Obst-Huebl L, Huebl A, Nakamura K, Bulanov SS, Steinke S, Leemans WP, Kober Z, Ostermayr TM, Schenkel T, Gonsalves AJ, Vay J-L, Tilborg Jv, Toth C, Schroeder CB, Esarey E, Geddes CGR.
44+
**Laser-solid interaction studies enabled by the new capabilities of the iP2 BELLA PW beamline**.
45+
under review, 2022
46+
47+
48+
Particle Accelerator & Beam Physics
49+
***********************************
50+
51+
Scientific works in particle and beam modeling.
52+
53+
54+
Microelectronics
55+
****************
56+
57+
.. note::
58+
59+
Link ARTEMIS publications.
60+
61+
62+
High-Performance Computing and Numerics
63+
***************************************
64+
65+
Scientific works in High-Performance Computing, applied mathematics and numerics.
66+
67+
Please see :ref:`this section <acknowledge_warpx_all_refs>`.

Docs/source/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ We also have a `discussion page <https://github.com/ECP-WarpX/WarpX/discussions>
5151

5252
coc
5353
acknowledge_us
54+
highlights
5455

5556
Installation
5657
------------

Docs/source/install/cmake.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ CMake Option Default & Values Descr
9595
``WarpX_MPI_THREAD_MULTIPLE`` **ON**/OFF MPI thread-multiple support, i.e. for ``async_io``
9696
``WarpX_OPENPMD`` **ON**/OFF openPMD I/O (HDF5, ADIOS)
9797
``WarpX_PRECISION`` SINGLE/**DOUBLE** Floating point precision (single/double)
98+
``WarpX_PARTICLE_PRECISION`` SINGLE/**DOUBLE** Particle floating point precision (single/double), defaults to WarpX_PRECISION value if not set
9899
``WarpX_PSATD`` ON/**OFF** Spectral solver
99100
``WarpX_QED`` **ON**/OFF QED support (requires PICSAR)
100101
``WarpX_QED_TABLE_GEN`` ON/**OFF** QED table generation support (requires PICSAR and Boost)
@@ -266,6 +267,7 @@ Environment Variable Default & Values Descr
266267
``WARPX_MPI`` ON/**OFF** Multi-node support (message-passing)
267268
``WARPX_OPENPMD`` **ON**/OFF openPMD I/O (HDF5, ADIOS)
268269
``WARPX_PRECISION`` SINGLE/**DOUBLE** Floating point precision (single/double)
270+
``WARPX_PARTICLE_PRECISION`` SINGLE/**DOUBLE** Particle floating point precision (single/double), defaults to WarpX_PRECISION value if not set
269271
``WARPX_PSATD`` ON/**OFF** Spectral solver
270272
``WARPX_QED`` **ON**/OFF PICSAR QED (requires PICSAR)
271273
``WARPX_QED_TABLE_GEN`` ON/**OFF** QED table generation (requires PICSAR and Boost)

Docs/source/usage/how_to_run.rst

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,3 +92,15 @@ On an :ref:`HPC system <install-hpc>`, you would instead submit the :ref:`job sc
9292
.. code-block:: bash
9393
9494
mpirun -np 4 ./warpx <input_file> max_step=10 warpx.numprocs=1 2 2
95+
96+
5. Outputs
97+
----------
98+
99+
By default, WarpX will write a status update to the terminal (``stdout``).
100+
On :ref:`HPC systems <install-hpc>`, we usually store a copy of this in a file called ``outputs.txt``.
101+
102+
We also store by default an exact copy of all explicitly and implicitly used inputs parameters in a file called ``warpx_used_inputs``.
103+
This is important for reproducibility, since as we wrote in the previous paragraph, the options in the input file can be extended and overwritten from the command line.
104+
105+
:ref:`Further configured diagnostics <running-cpp-parameters-diagnostics>` are explained in the next sections.
106+
By default, they are written to a subdirectory in ``diags/`` and can use various :ref:`output formats <dataanalysis-formats>`.

0 commit comments

Comments
 (0)