Skip to content

Commit 27206c4

Browse files
roelof-groenewaldatmyersax3lEZoniElisaRheaume
authored
Update memaster with latest upstream/development (#144)
* Use signed distance instead of imp. func when computing distance to EB. (BLAST-WarpX#2682) * Docs: Add Crusher-OLCF (BLAST-WarpX#2741) Document on how to compile and run on Crusher (OLCF). This is the new Pre-Frontier MI250X machine at Oak Ridge. Tested :) Requires BLAST-WarpX#2742 * CI: Reduce Runtime of Some PSATD Tests (BLAST-WarpX#2704) * Run Tests on 2 MPI Procs. * Reset Benchmarks * Make pml_psatd_dive_divb_cleaning Smaller * Field probe line detector (BLAST-WarpX#2513) * FieldProbe using Particle Update FieldProbe.cpp Update FieldProbeParticleContainer.H Updates FieldProbe and FieldProbeParticleContainer * Make <diag>.integrate optional The param parser query keeps te default value if no entry is found. * Fixed number particle needed for AddNParticles * Removing unnecessary type definition * Added Doxygen-style comments to FieldProbe.cpp Corrected Poynting calculation by implementing vacuum permeability * Added Doxygen comments * Implement virtual function ReducedDiags::AllocData() + comments * InitData implemented * Fixed Doxygen commenting. * Now uses WarpX physics constant for vaccuum permeability * forgotton comments to MultiReducedDiags * Update Source/Diagnostics/ReducedDiags/FieldProbe.H Co-authored-by: Axel Huebl <[email protected]> * Update Source/Diagnostics/ReducedDiags/FieldProbe.H Co-authored-by: Axel Huebl <[email protected]> * Update Source/Diagnostics/ReducedDiags/FieldProbe.H Co-authored-by: Axel Huebl <[email protected]> * Update Source/Diagnostics/ReducedDiags/FieldProbe.H Co-authored-by: Axel Huebl <[email protected]> * Update Source/Diagnostics/ReducedDiags/FieldProbe.cpp Co-authored-by: Axel Huebl <[email protected]> * Update FieldProbe.H * Update FieldProbe.cpp * Update Source/Diagnostics/ReducedDiags/ReducedDiags.H Co-authored-by: Axel Huebl <[email protected]> * Update Source/Diagnostics/ReducedDiags/MultiReducedDiags.H Co-authored-by: Axel Huebl <[email protected]> * Update Source/Diagnostics/ReducedDiags/MultiReducedDiags.H Co-authored-by: Axel Huebl <[email protected]> * Update Source/Diagnostics/ReducedDiags/FieldProbe.cpp Co-authored-by: Axel Huebl <[email protected]> * Update FieldProbeParticleContainer.H * Update Source/Diagnostics/ReducedDiags/FieldProbeParticleContainer.H Co-authored-by: Axel Huebl <[email protected]> * Update FieldProbeParticleContainer.cpp * Update FieldProbe.cpp * Update FieldProbe.H * Update Source/Diagnostics/ReducedDiags/FieldProbeParticleContainer.H Co-authored-by: Axel Huebl <[email protected]> * Update Source/Diagnostics/ReducedDiags/FieldProbeParticleContainer.H Co-authored-by: Axel Huebl <[email protected]> * Update FieldProbeParticleContainer.cpp * Update Source/Diagnostics/ReducedDiags/FieldProbe.cpp Co-authored-by: Axel Huebl <[email protected]> * Update Source/Diagnostics/ReducedDiags/FieldProbe.cpp Co-authored-by: Axel Huebl <[email protected]> * Update Source/Diagnostics/ReducedDiags/FieldProbe.cpp Co-authored-by: Axel Huebl <[email protected]> * Update Source/Diagnostics/ReducedDiags/FieldProbe.cpp Co-authored-by: Axel Huebl <[email protected]> * Update Source/Diagnostics/ReducedDiags/FieldProbe.cpp Co-authored-by: Axel Huebl <[email protected]> * Update Source/Diagnostics/ReducedDiags/FieldProbe.cpp Co-authored-by: Axel Huebl <[email protected]> * Update Source/Diagnostics/ReducedDiags/FieldProbe.cpp Co-authored-by: Axel Huebl <[email protected]> * Update Source/Diagnostics/ReducedDiags/FieldProbe.cpp Co-authored-by: Axel Huebl <[email protected]> * Update Source/Diagnostics/ReducedDiags/FieldProbe.cpp Co-authored-by: Axel Huebl <[email protected]> * Update Source/Diagnostics/ReducedDiags/FieldProbe.cpp Co-authored-by: Axel Huebl <[email protected]> * Update Source/Diagnostics/ReducedDiags/FieldProbe.cpp Co-authored-by: Axel Huebl <[email protected]> * Update Source/Diagnostics/ReducedDiags/ReducedDiags.cpp Co-authored-by: Axel Huebl <[email protected]> * Update Source/Diagnostics/ReducedDiags/FieldProbe.cpp Co-authored-by: Axel Huebl <[email protected]> * Update Source/Diagnostics/ReducedDiags/FieldProbe.cpp Co-authored-by: Axel Huebl <[email protected]> * Update Source/Diagnostics/ReducedDiags/FieldProbe.cpp Co-authored-by: Axel Huebl <[email protected]> * Update Source/Diagnostics/ReducedDiags/FieldProbe.cpp Co-authored-by: Axel Huebl <[email protected]> * Update Source/Diagnostics/ReducedDiags/FieldProbe.cpp Co-authored-by: Axel Huebl <[email protected]> * Update Source/Diagnostics/ReducedDiags/FieldProbe.cpp Co-authored-by: Axel Huebl <[email protected]> * Update Source/Diagnostics/ReducedDiags/FieldProbe.cpp Co-authored-by: Axel Huebl <[email protected]> * Update Source/Diagnostics/ReducedDiags/FieldProbe.cpp Co-authored-by: Axel Huebl <[email protected]> * Update Source/Diagnostics/ReducedDiags/FieldProbe.cpp Co-authored-by: Axel Huebl <[email protected]> * Update Source/Diagnostics/ReducedDiags/FieldProbe.cpp Co-authored-by: Axel Huebl <[email protected]> * Update Source/Diagnostics/ReducedDiags/FieldProbe.cpp Co-authored-by: Axel Huebl <[email protected]> * Update Source/Diagnostics/ReducedDiags/FieldProbe.cpp Co-authored-by: Axel Huebl <[email protected]> * Changed enumerated class to struct w/ enumeration. Can remove "static_cast<int>" * FieldProbeParticleContainer::iterator implemented * Cleaned up output += operator, fixed output comments * style fix * Replaces Tabs with 4 spaces * Defined modes and interp order to avoid GPU compilation errors * 1 more tab fix * EoL white spaces * fixed a typoX * Explicitly capturing "this" in parallel for to combat error saying "error BLAST-WarpX#3223-D: Implicit capture of 'this' in extended lambda expression" * removed unncessacesy double define * moved output out of ParallelFor. temp variable for integrate * Parse integrate, integrate all time steps, output setup for integrate and regular * Fixed integrate bug. * ammend header. integreate variable name change. * Integrate values in input file * updates to timing for integrate * Update Source/Diagnostics/ReducedDiags/FieldProbeParticleContainer.cpp Co-authored-by: Axel Huebl <[email protected]> * whitespace * Update Source/Diagnostics/ReducedDiags/FieldProbeParticleContainer.cpp Co-authored-by: Axel Huebl <[email protected]> * Update Source/Diagnostics/ReducedDiags/FieldProbeParticleContainer.cpp Co-authored-by: Axel Huebl <[email protected]> * Functionality to create 2D line of particles. Input included. No output yet * ammend compiler errors * Apply suggestions from code review - Style Co-authored-by: Axel Huebl <[email protected]> * Update reduce_diag_names * 2D array setup- not complete * field_probe_integrate change * review amends * Apply suggestions from code review - Style Co-authored-by: Axel Huebl <[email protected]> * Vectors + AddNParticles Co-authored-by: Axel Huebl <[email protected]> * Update FieldProbe.cpp * Update FieldProbe.H * bug fix and inputs * reintroduce raw_fields functionality * docs update and correction * whitespaces * Fix GPU Compile (raw_fields) * changed f_probe to m_probe apropriately * Typos Co-authored-by: David Grote <[email protected]> Co-authored-by: Axel Huebl <[email protected]> * Better name for ParticleVal * used map for observables and units * Apply suggestions from code review Co-authored-by: Axel Huebl <[email protected]> * Simplified output. Fixed double integration error * Update FieldProbe.H Removed unneeded variable * comments and fixed rawFields * white spaces * Apply suggestions from code review Co-authored-by: Axel Huebl <[email protected]> * Update FieldProbe.H * Guard on write * Update Source/Diagnostics/ReducedDiags/FieldProbe.cpp Co-authored-by: Axel Huebl <[email protected]> * Fix Syntax Error in Write * Fix Init: Only 1 Particle (MPI) Only one MPI rank adds a particle, which we done distribute into the right rank. * Fix MPI Deadlock: No Early Return We just want to skip the write to `m_data`, not the rest of the logic. * Vector storage, Add N particle, debugging * Fix Probe in Domain Logic General global check, not only on a single rank. * comments * Container: Add `const_iterator` * Fix MPI Comms * Cleaning * Remove PrintAll Leftover * 1-D Output vector * Reduced Diags: Support LoadBalance * Cleaning of "Definitions ()" * Updating inputs for testing Line * data type specification * IO * Update inputs * Update inputs * error in header. Send to IO CPU * Apply suggestions from code review Co-authored-by: Axel Huebl <[email protected]> * moved rank communication out of tile loop * change m_data_vector. IO particle count * Fixed input for rename. Gather particle number * Apply suggestions from code review Co-authored-by: Axel Huebl <[email protected]> * Gather * Changed data output method to pushing values on vector MPI Gather and Gatherv for data Tell Evolve to run Load Balance Tell InitData to run Load Balance Define output method by printing valid particles NOTE! Needs cleaning, commenting, removing some debugging tools * Apply suggestions from code review Co-authored-by: Axel Huebl <[email protected]> * Suggestions from review * defensive programming on if / if else added comments throughout removed temporary debugging lines * Documentation for line detector option * Whitespaces * MPI_Gather -> amrex::ParallelDescriptor::Gather * ParallelDiscriptor, vectors at the end, no more 1990's malloc for capacity allocation * whitespaces * output optimized for CSV * Python notebook for reference * Input file for current test on CORI * 2D plane functionality * Regression test * Delete DoubleSlit_2021_11_17.ipynb * Whitespace fix * pandas * Error set to 2.5%, fixed source * style * zenodo orcid * Apply suggestions from code review Co-authored-by: Axel Huebl <[email protected]> * Review changes and swapped MPI direct call for Amrex::ParallelDescriptor * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update WarpX-tests.ini Fix Regression Test * Update WarpX-tests.ini Open PMD in cmakeSetupOpts * Update dependencies.rst * Update analysis_field_probe.py * Update WarpX-tests.ini * Analysis Script: Executable ``` chmod a+x scriptname.py ``` and use explicitly `python3` * openPMD: optional for this test * Inputs: add `geometry.dims = 2` * Remove: diag1.write_species = 0 - segfaults for plotfiles (bug?) - not needed, since we have no particles anyway * Fix: typo in analysis * test requirements: pandas * Fix: Types * as string: `<red_diag>.probe_geometry` change this to a string, which is more user-friendly * Python Script: Simplify + Style * C++: Clean Up * Azure: Run `apt update` Co-authored-by: Axel Huebl <[email protected]> Co-authored-by: David Grote <[email protected]> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * Fix ASSERT for Hybrid Scheme & MR (BLAST-WarpX#2744) * CI: Use New "verbose" mode (BLAST-WarpX#2747) repeat captured errors to stderr, e.g., for CI runs * Set geometry earlier in picmi (BLAST-WarpX#2745) * Set geometry earlier in Python * Fix comment typos * CI: Use new "archive_output = 0" mode (BLAST-WarpX#2749) Avoid `.tgz`-ing the output files, so we can interact directly with plotfiles with our benchmark scripts. Implementation proposed in: AMReX-Codes/regression_testing#117 * .editorconfig: add missing newline pretty sections * Python: Fix UB in Inputs Passing (BLAST-WarpX#2726) Trying to fix the macOS PyPy 3.7 error seen in conda-forge/warpx-feedstock#37 Testing in conda-forge/warpx-feedstock#38 After googling for a while, the original implementation was likely based on https://code.activestate.com/lists/python-list/704158, which contains bugs. 1) Bug: `create_string_buffer` Allocating new, null-terminated char arrays with `ctypes.create_string_buffer` does lead to scrambled arrays in pypy3.7. As far as I can see, this [should have also worked](https://docs.python.org/3/library/ctypes.html), but maybe there is a bug in the upstream implementation or the original code created some kind of use-after-free on a temporary while the new implementation just shares the existing byte address. This leads to errors such as the ones here: conda-forge/warpx-feedstock#38 (comment) The call `argvC[i] = ctypes.c_char_p(enc_arg)` is equivalent in creating a `NULL`-terminated char array. 2) Bug: Last Argv Argument The last argument in the array of char arrays `argv` in ANSII C needs to be a plain `NULL` ptr. Before this PR, this has been allocated but never initialized, leading to undefined behavior (read as: crashes). Reference: https://stackoverflow.com/a/39096006/2719194 3) Cleanup: there is a pre-defined `ctypes.c_char_p` we can use for pointer of char. * Do Not Read/Use Centering Info if do_nodal=1 (BLAST-WarpX#2754) * Docs: Python Dev Install `--no-deps` (BLAST-WarpX#2750) `--force-reinstall` will also re-install all dependencies, unless `--no-deps` is also passed. In the case of re-installing developer builds, this is what we want with pre-configured environments. Using `--no-build-isolation` with the same flag does not achieve the same effect. * Refactor python callback handling (BLAST-WarpX#2703) * added support to uninstall an external Poisson solver and return to using the default MLMG solver; also updated some callbacks.py calls to Python3 * refactor callback handling - use a map to handle all the different callbacks * warpx_callback_py_map does not need to link to C * Apply suggestions from code review Co-authored-by: Axel Huebl <[email protected]> * further suggested changes from code review * added function ExecutePythonCallback to reduce code duplication * moved ExecutePythonCallback to WarpX_py * added function IsPythonCallbackInstalled Co-authored-by: Axel Huebl <[email protected]> * RZ: Do Not Add geometry.coord_sys (BLAST-WarpX#2759) * CI: Run `initial_distribution` on 1 MPI Process (BLAST-WarpX#2760) * Fix override default particle tiling (BLAST-WarpX#2762) * Override the default tiling option for particles *before* WarpX is initialized. * bump AMReX version to see if tests pass. * fix typo * style * use queryAdd * namespace * RigidInjection_BTD: Specify H5 Backend (BLAST-WarpX#2761) We default to `.bp` files when available. This results for this test in: ``` amrex::Abort::0:: Currently BackTransformed diagnostics type does not support species output for ADIOS backend. Please select h5 as openpmd backend !!! ``` * Docs: Reorder HPC Profiles + Batch Scripts (BLAST-WarpX#2757) * Docs: Reorder Summit Files * Docs: Reorder Spock Files * Docs: Reorder Cori Files * Docs: Reorder Perlmutter Files * Docs: Reorder Juwels Files * Docs: Reorder Lassen Files * Docs: Reorder Quartz Files * Docs: Reorder Ookami Files * Docs: Also Move Summit Profile Script * Listing Captions: Location in Source * Sphinx: Clean Warnings/Formatting (BLAST-WarpX#2758) * Sphinx: Clean Warnings/Formatting Remove formatting errors in Sphinx that caused warnings/ill-formed formatting. * Move `boundary.reflect_all_velocities` Co-authored-by: Neïl Zaim <[email protected]> * Fix: character after verbatim Not allowed and does render broken. * Fix broken `.. directive::` Co-authored-by: Neïl Zaim <[email protected]> * Fix unstable Python_particle_attr_access CI tests (BLAST-WarpX#2766) * explicitly set the numpy random seed in Python_particle_attr_access tests * also shrink boundaries in which particles are injected for good measure * also explicitly set the numpy random seed in Python_restart_runtime_components CI test * Docs: Clang 7+ (BLAST-WarpX#2763) Seen in openPMD/openPMD-api#1164 for `<variant>`, clang 6 is not to be recommended for C++17 compilation unless by expert users that know how to change the stdlib. Thus, let's only recommend Clang 7+. Ubuntu 18.04 (bionic/oldstable) ships clang 6 by default, but Ubuntu 20.04 (focal/stable) is already at clang 10. * Doc: Perlmutter Note `_g` Batch Script (BLAST-WarpX#2767) Add one more note. * Implement PML for the outer RZ boundary with PSATD (BLAST-WarpX#2211) * Initial version of RZ PSATD PML BCs * Cleaned up some bugs * Add support of do_pml_in_domain option * Cleaned up stuff for building * Fix PMLPsatdAlgorithm macro * Removed unneeded variable from SpectralSolverRZ * Change length 3 arrays to length 2 (for 2D) * Cleanup around DampPML * Added more checks of pml[lev] * Added CI test for RZ PML * Added code to update the corner guard cells * Further updates * Added CI test * Fixed EOL space * Updated CI benchmarks, removing round off fields * Changes to CI missed on previous commit * Various fixes for clean up * More fixes for clean up * Further cleanup * Updated benchmark * Fixed benchmarks file * Minor cleanup * Added round off benchmark values * Fixed testname in analysis_pml_psatd_rz.py * Update comment in analysis file * Put pml_rz code in RZ and PSATD macro blocks * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Add geometry.dims input to CI test input file, inputs_rz * Cleanup to match recent changes Co-authored-by: Remi Lehe <[email protected]> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * AMReX: Update latest (BLAST-WarpX#2752) * Access species specific charge density from python (BLAST-WarpX#2710) * added python wrapper function to deposit a specific species density in rho_fp * added 1D ES input file with MCC that uses the charge deposition functionality * reset rho_fp[lev] before depositing * updated documentation * switch to using simulation.extension in Poisson solver * Apply suggestion from code review Co-authored-by: Phil Miller <[email protected]> * suggested changes from code review * add comment explaining why a direct Poisson solver is used * removed direct solver in 1D example since it is actually slower than the MLMG solver * Apply suggestions from code review Co-authored-by: Axel Huebl <[email protected]> * added docstring for warpx_depositChargeDensity * fixed order of imports in new PICMI input file Co-authored-by: Phil Miller <[email protected]> Co-authored-by: Axel Huebl <[email protected]> * update reference values for CI test; add SyncRho call to deposit rho Co-authored-by: Andrew Myers <[email protected]> Co-authored-by: Axel Huebl <[email protected]> Co-authored-by: Edoardo Zoni <[email protected]> Co-authored-by: Tiberius Rheaume <[email protected]> Co-authored-by: David Grote <[email protected]> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: David Grote <[email protected]> Co-authored-by: Neïl Zaim <[email protected]> Co-authored-by: Remi Lehe <[email protected]> Co-authored-by: Phil Miller <[email protected]>
2 parents e0e3dc4 + 9b7dca5 commit 27206c4

File tree

117 files changed

+2812
-1010
lines changed

Some content is hidden

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

117 files changed

+2812
-1010
lines changed

.azure-pipelines.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,11 @@ jobs:
7676
set -eu -o pipefail
7777
cat /proc/cpuinfo | grep "model name" | sort -u
7878
df -h
79+
sudo apt update
7980
sudo apt install -y ccache curl gcc gfortran git g++ ninja-build \
8081
openmpi-bin libopenmpi-dev \
8182
libfftw3-dev libfftw3-mpi-dev libhdf5-openmpi-dev pkg-config make \
82-
python3 python3-pip python3-venv python3-setuptools libblas-dev liblapack-dev
83+
python3 python3-pandas python3-pip python3-venv python3-setuptools libblas-dev liblapack-dev
8384
ccache --set-config=max_size=10.0G
8485
python3 -m pip install --upgrade pip
8586
python3 -m pip install --upgrade setuptools

.editorconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ trim_trailing_whitespace = false
3131
indent_style = tab
3232
indent_size = unset
3333

34+
3435
[*.py]
3536
# isort config
3637
force_sort_within_sections = true

.pre-commit-config.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,14 @@ repos:
3333
# - id: fix-encoding-pragma
3434
# exclude: ^noxfile.py$
3535

36+
# documentation files: .rst
37+
- repo: https://github.com/pre-commit/pygrep-hooks
38+
rev: v1.9.0
39+
hooks:
40+
# - id: rst-backticks
41+
- id: rst-directive-colons
42+
- id: rst-inline-touching-normal
43+
3644
#- repo: https://github.com/asottile/pyupgrade
3745
# rev: v2.29.0
3846
# hooks:

.zenodo.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,11 @@
103103
"name": "Myers, Andrew",
104104
"orcid": "0000-0001-8427-8330"
105105
},
106+
{
107+
"affiliation": "Lawrence Berkeley National Laboratory",
108+
"name": "Rheaume, Tiberius",
109+
"orcid": "0000-0002-6710-0650"
110+
},
106111
{
107112
"affiliation": "Lawrence Berkeley National Laboratory",
108113
"name": "Rowan, Michael E.",

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -402,7 +402,7 @@ set(PYINSTALLOPTIONS "" CACHE STRING "Additional parameters to pass to `pip inst
402402
add_custom_target(install_pip
403403
${CMAKE_COMMAND} -E env PYWARPX_LIB_DIR=${CMAKE_LIBRARY_OUTPUT_DIRECTORY} python3 -m pip wheel -v --use-feature=in-tree-build ${WarpX_SOURCE_DIR}
404404
COMMAND
405-
python3 -m pip install --force-reinstall -v ${PYINSTALLOPTIONS} ${CMAKE_BINARY_DIR}/*whl
405+
python3 -m pip install --force-reinstall --no-deps -v ${PYINSTALLOPTIONS} ${CMAKE_BINARY_DIR}/*whl
406406
WORKING_DIRECTORY
407407
${CMAKE_BINARY_DIR}
408408
DEPENDS

CONTRIBUTING.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ Periodically commit your changes with
113113
The commit message (between quotation marks) is super important in order to follow the developments during code-review and identify bugs.
114114
A typical format is:
115115

116-
.. code-block::
116+
.. code-block:: text
117117
118118
This is a short, 40-character title
119119

Docs/source/developers/fields.rst

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,6 @@ This is mostly implemented in ``Source/Parallelization``, see the following func
9696

9797
.. doxygenfunction:: WarpX::SyncCurrent
9898

99-
.. doxygenfunction:: interpolateCurrentFineToCoarse
100-
10199
.. doxygenfunction:: WarpX::RestrictCurrentFromFineToCoarsePatch
102100

103101
.. doxygenfunction:: WarpX::AddCurrentFromFineLevelandSumBoundary
@@ -112,11 +110,7 @@ General functions for filtering can be found in ``Source/Filter/``, where the ma
112110
Bilinear filter
113111
~~~~~~~~~~~~~~~
114112

115-
The multi-pass bilinear filter (applied on the current density) is implemented in ``Source/Filter/``, and class ``WarpX`` holds an instance of this class in member variable ``WarpX::bilinear_filter``. For performance reasons (to avoid creating too many guard cells), this filter is directly applied in communication routines, see
116-
117-
.. doxygenfunction:: WarpX::AddCurrentFromFineLevelandSumBoundary
118-
119-
and
113+
The multi-pass bilinear filter (applied on the current density) is implemented in ``Source/Filter/``, and class ``WarpX`` holds an instance of this class in member variable ``WarpX::bilinear_filter``. For performance reasons (to avoid creating too many guard cells), this filter is directly applied in communication routines, see ``WarpX::AddCurrentFromFineLevelandSumBoundary`` above and
120114

121115
.. doxygenfunction:: WarpX::ApplyFilterandSumBoundaryJ
122116

Docs/source/install/cmake.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -216,20 +216,20 @@ Python Bindings (Developers)
216216

217217
.. code-block:: bash
218218
219-
python3 -m pip install --force-reinstall -v .
219+
python3 -m pip install --force-reinstall --no-deps -v .
220220
221221
Some Developers like to code directly against a local copy of AMReX, changing both code-bases at a time:
222222

223223
.. code-block:: bash
224224
225-
WARPX_AMREX_SRC=$PWD/../amrex python3 -m pip install --force-reinstall -v .
225+
WARPX_AMREX_SRC=$PWD/../amrex python3 -m pip install --force-reinstall --no-deps -v .
226226
227227
Additional environment control as common for CMake (:ref:`see above <building-cmake-intro>`) can be set as well, e.g. ``CC``, `CXX``, and ``CMAKE_PREFIX_PATH`` hints.
228228
So another sophisticated example might be: use Clang as the compiler, build with local source copies of PICSAR and AMReX, support the PSATD solver, MPI and openPMD, hint a parallel HDF5 installation in ``$HOME/sw/hdf5-parallel-1.10.4``, and only build 3D geometry:
229229

230230
.. code-block:: bash
231231
232-
CC=$(which clang) CXX=$(which clang++) WARPX_AMREX_SRC=$PWD/../amrex WARPX_PICSAR_SRC=$PWD/../picsar WARPX_PSATD=ON WARPX_MPI=ON WARPX_DIMS=3 CMAKE_PREFIX_PATH=$HOME/sw/hdf5-parallel-1.10.4:$CMAKE_PREFIX_PATH python3 -m pip install --force-reinstall -v .
232+
CC=$(which clang) CXX=$(which clang++) WARPX_AMREX_SRC=$PWD/../amrex WARPX_PICSAR_SRC=$PWD/../picsar WARPX_PSATD=ON WARPX_MPI=ON WARPX_DIMS=3 CMAKE_PREFIX_PATH=$HOME/sw/hdf5-parallel-1.10.4:$CMAKE_PREFIX_PATH python3 -m pip install --force-reinstall --no-deps -v .
233233
234234
Here we wrote this all in one line, but one can also set all environment variables in a development environment and keep the pip call nice and short as in the beginning.
235235
Note that you need to use absolute paths for external source trees, because pip builds in a temporary directory, e.g. ``export WARPX_AMREX_SRC=$HOME/src/amrex``.

Docs/source/install/dependencies.rst

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Dependencies
66
WarpX depends on the following popular third party software.
77
Please see installation instructions below.
88

9-
- a mature `C++17 <https://en.wikipedia.org/wiki/C%2B%2B17>`__ compiler, e.g., GCC 7, Clang 6, NVCC 11.0, MSVC 19.15 or newer
9+
- a mature `C++17 <https://en.wikipedia.org/wiki/C%2B%2B17>`__ compiler, e.g., GCC 7, Clang 7, NVCC 11.0, MSVC 19.15 or newer
1010
- `CMake 3.18.0+ <https://cmake.org>`__
1111
- `Git 2.18+ <https://git-scm.com>`__
1212
- `AMReX <https://amrex-codes.github.io>`__: we automatically download and compile a copy of AMReX
@@ -74,7 +74,7 @@ If you also want to run runtime tests and added Python (``spack add python`` and
7474

7575
.. code-block:: bash
7676
77-
python3 -m pip install matplotlib yt scipy numpy openpmd-api virtualenv
77+
python3 -m pip install matplotlib yt scipy pandas numpy openpmd-api virtualenv
7878
7979
If you want to run the ``./run_test.sh`` :ref:`test script <developers-testing>`, which uses our legacy GNUmake build system, you need to set the following environment hints after ``spack env activate warpx-dev`` for dependent software:
8080

@@ -125,7 +125,7 @@ Without MPI:
125125

126126
.. code-block:: bash
127127
128-
conda create -n warpx-dev -c conda-forge blaspp ccache cmake compilers git lapackpp openpmd-api python numpy scipy yt fftw matplotlib mamba ninja pip virtualenv
128+
conda create -n warpx-dev -c conda-forge blaspp ccache cmake compilers git lapackpp openpmd-api python numpy pandas scipy yt fftw matplotlib mamba ninja pip virtualenv
129129
source activate warpx-dev
130130
131131
# compile WarpX with -DWarpX_MPI=OFF
@@ -134,7 +134,7 @@ With MPI (only Linux/macOS):
134134

135135
.. code-block:: bash
136136
137-
conda create -n warpx-dev -c conda-forge blaspp ccache cmake compilers git lapackpp "openpmd-api=*=mpi_openmpi*" python numpy scipy yt "fftw=*=mpi_openmpi*" matplotlib mamba ninja openmpi pip virtualenv
137+
conda create -n warpx-dev -c conda-forge blaspp ccache cmake compilers git lapackpp "openpmd-api=*=mpi_openmpi*" python numpy pandas scipy yt "fftw=*=mpi_openmpi*" matplotlib mamba ninja openmpi pip virtualenv
138138
source activate warpx-dev
139139
140140
For legacy ``GNUmake`` builds, after each ``source activate warpx-dev``, you also need to set:
@@ -152,7 +152,7 @@ Apt (Debian/Ubuntu)
152152
.. code-block:: bash
153153
154154
sudo apt update
155-
sudo apt install build-essential ccache cmake g++ git libfftw3-mpi-dev libfftw3-dev libhdf5-openmpi-dev libopenmpi-dev pkg-config python3 python3-matplotlib python3-numpy python3-pip python3-scipy python3-venv
155+
sudo apt install build-essential ccache cmake g++ git libfftw3-mpi-dev libfftw3-dev libhdf5-openmpi-dev libopenmpi-dev pkg-config python3 python3-matplotlib python3-numpy python3-pandas python3-pip python3-scipy python3-venv
156156
157157
# optional:
158158
# for CUDA, either install

Docs/source/install/hpc.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ HPC Systems
2828
hpc/perlmutter
2929
hpc/summit
3030
hpc/spock
31+
hpc/crusher
3132
hpc/juwels
3233
hpc/lassen
3334
hpc/quartz

0 commit comments

Comments
 (0)