Skip to content

Commit f5c8e25

Browse files
committed
Merge branch 'development' into custom_coef_solver
2 parents ba5fb06 + a0f983e commit f5c8e25

File tree

753 files changed

+16599
-7683
lines changed

Some content is hidden

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

753 files changed

+16599
-7683
lines changed

.azure-pipelines.yml

+39-35
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ pr:
1313
paths:
1414
exclude:
1515
- Docs
16+
- '**/*.rst'
1617

1718
jobs:
1819
- job:
@@ -38,7 +39,6 @@ jobs:
3839
# Cartesian 3D
3940
cartesian_3d:
4041
WARPX_CMAKE_FLAGS: -DWarpX_DIMS=3 -DWarpX_FFT=ON -DWarpX_PYTHON=ON
41-
WARPX_HEFFTE: 'TRUE'
4242
# Cylindrical RZ
4343
cylindrical_rz:
4444
WARPX_CMAKE_FLAGS: -DWarpX_DIMS=RZ -DWarpX_FFT=ON -DWarpX_PYTHON=ON
@@ -66,18 +66,8 @@ jobs:
6666
cacheHitVar: CCACHE_CACHE_RESTORED
6767
displayName: Cache Ccache Objects
6868

69-
- task: Cache@2
70-
continueOnError: true
71-
inputs:
72-
key: 'Python3 | "$(System.JobName)" | .azure-pipelines.yml'
73-
restoreKeys: |
74-
Python3 | "$(System.JobName)" | .azure-pipelines.yml
75-
path: /home/vsts/.local/lib/python3.8
76-
cacheHitVar: PYTHON38_CACHE_RESTORED
77-
displayName: Cache Python Libraries
78-
7969
- bash: |
80-
set -eu -o pipefail
70+
set -o nounset errexit pipefail
8171
cat /proc/cpuinfo | grep "model name" | sort -u
8272
df -h
8373
echo 'Acquire::Retries "3";' | sudo tee /etc/apt/apt.conf.d/80-retries
@@ -121,17 +111,6 @@ jobs:
121111
-DCMAKE_CXX_STANDARD=17 \
122112
-Duse_cmake_find_lapack=ON -Dbuild_tests=OFF -DCMAKE_VERBOSE_MAKEFILE=ON
123113
fi
124-
if [ "${WARPX_HEFFTE:-FALSE}" == "TRUE" ]; then
125-
cmake-easyinstall --prefix=/usr/local git+https://github.com/icl-utk-edu/heffte.git@v2.4.0 \
126-
-DCMAKE_CXX_COMPILER_LAUNCHER=$(which ccache) \
127-
-DCMAKE_CXX_STANDARD=17 -DHeffte_ENABLE_DOXYGEN=OFF \
128-
-DHeffte_ENABLE_FFTW=ON -DHeffte_ENABLE_TESTING=OFF \
129-
-DHeffte_ENABLE_CUDA=OFF -DHeffte_ENABLE_ROCM=OFF \
130-
-DHeffte_ENABLE_ONEAPI=OFF -DHeffte_ENABLE_MKL=OFF \
131-
-DHeffte_ENABLE_PYTHON=OFF -DHeffte_ENABLE_FORTRAN=OFF \
132-
-DHeffte_ENABLE_MAGMA=OFF \
133-
-DCMAKE_VERBOSE_MAKEFILE=ON
134-
fi
135114
# Python modules required for test analysis
136115
python3 -m pip install --upgrade -r Regression/requirements.txt
137116
python3 -m pip cache purge
@@ -146,25 +125,50 @@ jobs:
146125
displayName: 'Install dependencies'
147126
148127
- bash: |
149-
set -eu -o pipefail
128+
# set options
129+
set -o nounset errexit pipefail
130+
# display disk space usage
150131
df -h
151-
152132
# configure
153133
export AMReX_CMAKE_FLAGS="-DAMReX_ASSERTIONS=ON -DAMReX_TESTING=ON"
154-
cmake -S . -B build \
155-
${AMReX_CMAKE_FLAGS} \
156-
${WARPX_CMAKE_FLAGS} \
157-
-DWarpX_TEST_CLEANUP=ON \
158-
-DWarpX_TEST_FPETRAP=ON
159-
134+
export WARPX_TEST_FLAGS="-DWarpX_TEST_CLEANUP=ON -DWarpX_TEST_FPETRAP=ON -DWarpX_BACKTRACE_INFO=ON"
135+
cmake -S . -B build \
136+
${AMReX_CMAKE_FLAGS} \
137+
${WARPX_CMAKE_FLAGS} \
138+
${WARPX_TEST_FLAGS}
160139
# build
161140
cmake --build build -j 2
141+
# display disk space usage
162142
df -h
163143
displayName: 'Build'
164144
165145
- bash: |
166-
set -eu -o pipefail
167-
168-
# run tests (exclude pytest.AMReX when running Python tests)
169-
ctest --test-dir build --output-on-failure -E AMReX
146+
# set options
147+
set -o nounset errexit pipefail
148+
# determine if the build was triggered by a push to the development branch
149+
if [[ "$(Build.SourceBranch)" == "refs/heads/development" ]]; then
150+
# run tests (exclude pytest.AMReX when running Python tests)
151+
# and submit results to CDash as Experimental
152+
ctest --test-dir build --output-on-failure -E AMReX \
153+
-D ExperimentalTest -D ExperimentalSubmit
154+
else
155+
# run tests (exclude pytest.AMReX when running Python tests)
156+
ctest --test-dir build --output-on-failure -E AMReX
157+
fi
170158
displayName: 'Test'
159+
160+
- bash: |
161+
# set options
162+
set -o nounset errexit pipefail
163+
# find and print backtrace
164+
find build/bin/ -type f -name "Backtrace*" \
165+
-exec echo -e "\nBacktrace\n---------\n{}\n---------" \; \
166+
-exec cat {} \;
167+
displayName: 'Logs'
168+
condition: always()
169+
170+
- bash: |
171+
# clean out so the Post-job Cache "tar" command has more disk space available
172+
rm -rf build
173+
displayName: 'Clean Build Directory'
174+
condition: always()

.clang-tidy

+6-1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ Checks: '
1919
-cppcoreguidelines-avoid-non-const-global-variables,
2020
-cppcoreguidelines-init-variables,
2121
-cppcoreguidelines-macro-usage,
22+
-cppcoreguidelines-missing-std-forward,
2223
-cppcoreguidelines-narrowing-conversions,
2324
-cppcoreguidelines-non-private-member-variables-in-classes,
2425
-cppcoreguidelines-owning-memory,
@@ -29,6 +30,7 @@ Checks: '
2930
misc-*,
3031
-misc-no-recursion,
3132
-misc-non-private-member-variables-in-classes,
33+
-misc-include-cleaner,
3234
modernize-*,
3335
-modernize-avoid-c-arrays,
3436
-modernize-return-braced-init-list,
@@ -55,6 +57,9 @@ CheckOptions:
5557
value: "H,"
5658
- key: modernize-pass-by-value.ValuesOnly
5759
value: "true"
58-
60+
- key: misc-use-anonymous-namespace.HeaderFileExtensions
61+
value: "H,"
62+
- key: performance-move-const-arg.CheckTriviallyCopyableMove
63+
value: "false"
5964

6065
HeaderFilterRegex: 'Source[a-z_A-Z0-9\/]+\.H$'

.github/ISSUE_TEMPLATE/blank_issue.md

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
---
2+
name: Blank issue
3+
about: Ask us a question
4+
labels: [question]
5+
---
6+
7+
Are you here because you have something to report that is neither a bug, a new feature, nor an installation problem?
8+
9+
Before opening this issue, consider opening a [discussion](https://github.com/ECP-WarpX/WarpX/discussions) instead!
10+
11+
Issues are used to report bugs, installation problems or to request new features.
12+
Discussions are used to ask more open-ended questions, brainstorm, ask our feedback, etc.
13+
14+
You can find more details on how to use issues and discussions [here](https://github.com/ECP-WarpX/WarpX/blob/development/CONTRIBUTING.rst).

.github/ISSUE_TEMPLATE/bug_report.md

+58
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
---
2+
name: Bug report
3+
about: Report a bug or unexpected behavior.
4+
labels: [bug]
5+
---
6+
7+
_Please remove any sensitive information (e.g., passwords, API keys) from your submission.
8+
Please check the relevant boxes and fill in the specific versions or details for the relevant items.
9+
Thank you for taking the time to report this issue. We will respond as soon as possible._
10+
11+
## Description
12+
A clear and concise description of the bug.
13+
14+
## Expected behavior
15+
What did you expect to happen when you encountered the issue?
16+
17+
## How to reproduce
18+
Please provide (if available):
19+
- WarpX inputs files
20+
- PICMI Python files
21+
- Python post-processing scripts
22+
23+
If you are unable to provide certain files or scripts, please describe the steps you took to encounter the issue.
24+
25+
Please minimize your inputs/scripts to be concise and focused on the issue.
26+
For instance, make the simulation scripts as small and fast to run as possible.
27+
28+
## System information
29+
Please check all relevant boxes and provide details.
30+
31+
- Operating system (name and version):
32+
- [ ] Linux: e.g., Ubuntu 22.04 LTS
33+
- [ ] macOS: e.g., macOS Monterey 12.4
34+
- [ ] Windows: e.g., Windows 11 Pro
35+
- Version of WarpX: e.g., latest, 24.10, etc.
36+
- Installation method:
37+
- [ ] Conda
38+
- [ ] Spack
39+
- [ ] PyPI
40+
- [ ] Brew
41+
- [ ] From source with CMake
42+
- [ ] Module system on an HPC cluster
43+
- Other dependencies: yes/no, describe
44+
- Computational resources:
45+
- [ ] MPI: e.g., 2 MPI processes
46+
- [ ] OpenMP: e.g., 2 OpenMP threads
47+
- [ ] CPU: e.g., 2 CPUs
48+
- [ ] GPU: e.g., 2 GPUs (NVIDIA, AMD, etc.)
49+
50+
If you encountered the issue on an HPC cluster, please check our [HPC documentation](https://warpx.readthedocs.io/en/latest/install/hpc.html) to see if your HPC cluster is already supported.
51+
52+
## Steps taken so far
53+
What troubleshooting steps have you taken so far, and what were the results?
54+
55+
Have you tried debugging the code, following the instructions in our [debugging documentation](https://warpx.readthedocs.io/en/latest/usage/workflows/debugging.html)?
56+
57+
## Additional information
58+
If applicable, please add any additional information that may help explain the issue, such as log files (e.g., build logs, error logs, etc.), error messages (e.g., compiler errors, runtime errors, etc.), screenshots, or other relevant details.

.github/ISSUE_TEMPLATE/config.yml

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
blank_issues_enabled: false
+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
---
2+
name: Feature request
3+
about: Suggest a new feature or enhancement.
4+
labels: [enhancement]
5+
---
6+
7+
_Please remove any sensitive information (e.g., passwords, API keys) from your submission.
8+
Please check the relevant boxes and fill in the specific versions or details for the relevant items.
9+
Thank you for taking the time to report this issue. We will respond as soon as possible._
10+
11+
## Context and motivation
12+
Please provide a clear and concise description of the context that is prompting you to request a new feature. What problem are you trying to solve, and how will this feature help you achieve your goals?
13+
14+
## Proposed feature
15+
Describe the feature you would like to add to WarpX in detail. Please include:
16+
- A clear and concise description of the feature
17+
- Any relevant technical requirements or specifications
18+
- How you envision the feature being used
19+
20+
## Alternative solutions
21+
Have you considered any alternative solutions or features that could achieve the same goal? If so, please describe them and explain why you believe the proposed feature is the best solution.
22+
23+
## Additional information
24+
If applicable, please provide any additional information that may be relevant to the feature request, such as:
25+
- Links to existing codes or implementations
26+
- References to relevant publications or research
27+
- Any specific use cases or scenarios where the feature would be particularly useful
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
---
2+
name: Installation issue
3+
about: Report an issue with installing or setting up WarpX.
4+
labels: [install]
5+
---
6+
7+
_Please remove any sensitive information (e.g., passwords, API keys) from your submission.
8+
Please check the relevant boxes and fill in the specific versions or details for the relevant items.
9+
Thank you for taking the time to report this issue. We will respond as soon as possible._
10+
11+
## Description
12+
A clear and concise description of the issue.
13+
14+
## System information
15+
- Operating system (name and version):
16+
- [ ] Linux: e.g., Ubuntu 22.04 LTS
17+
- [ ] macOS: e.g., macOS Monterey 12.4
18+
- [ ] Windows: e.g., Windows 11 Pro
19+
- Version of WarpX: e.g., latest, 24.10, etc.
20+
- Installation method:
21+
- [ ] Conda
22+
- [ ] Spack
23+
- [ ] PyPI
24+
- [ ] Brew
25+
- [ ] From source with CMake
26+
- [ ] Module system on an HPC cluster
27+
- Other dependencies: yes/no, describe
28+
- Computational resources:
29+
- [ ] CPU
30+
- [ ] GPU: e.g., NVIDIA, AMD, etc.
31+
32+
If you encountered the issue on an HPC cluster, please check our [HPC documentation](https://warpx.readthedocs.io/en/latest/install/hpc.html) to see if your HPC cluster is already supported.
33+
34+
If you encountered the issue installing from source with CMake, please provide the output of the following steps:
35+
1. buildsystem generation: output of `cmake --fresh -S . -B build` (include your specific build options, e.g., `-DWarpX_DIMS=3`)
36+
2. project build: output of `cmake --build build` (include your specific build options, e.g., `-j 4`)
37+
38+
If applicable, please add any additional information about your software environment:
39+
- [ ] CMake: e.g., 3.24.0
40+
- [ ] C++ compiler: e.g., GNU 11.3 with NVCC 12.0.76
41+
- [ ] Python: e.g., CPython 3.12
42+
- [ ] MPI: e.g., OpenMPI 4.1.1
43+
- [ ] FFTW: e.g., 3.3.10
44+
- [ ] HDF5: e.g., 1.14.0
45+
- [ ] ADIOS2: e.g., 2.10.0
46+
- Other dependencies: yes/no, describe
47+
48+
## Additional information
49+
If applicable, please add any additional information that may help explain the issue, such as log files (e.g., build logs, error logs, etc.), error messages (e.g., compiler errors, runtime errors, etc.), screenshots, or other relevant details.

.github/workflows/clang_sanitizers.yml

+7-15
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ on:
77
pull_request:
88
paths-ignore:
99
- "Docs/**"
10+
- "**.rst"
1011

1112
concurrency:
1213
group: ${{ github.ref }}-${{ github.head_ref }}-clangsanitizers
@@ -15,8 +16,7 @@ concurrency:
1516
jobs:
1617
build_UB_sanitizer:
1718
name: Clang UB sanitizer
18-
runs-on: ubuntu-22.04
19-
container: ubuntu:23.10
19+
runs-on: ubuntu-24.04
2020
if: github.event.pull_request.draft == false
2121
env:
2222
CC: clang
@@ -27,7 +27,7 @@ jobs:
2727
- uses: actions/checkout@v4
2828
- name: install dependencies
2929
run: |
30-
.github/workflows/dependencies/clang17.sh
30+
.github/workflows/dependencies/clang.sh 17
3131
- name: CCache Cache
3232
uses: actions/cache@v4
3333
with:
@@ -65,10 +65,6 @@ jobs:
6565
- name: run with UB sanitizer
6666
run: |
6767
68-
# We need these two lines because these tests run inside a docker container
69-
export OMPI_ALLOW_RUN_AS_ROOT=1
70-
export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
71-
7268
export OMP_NUM_THREADS=2
7369
7470
#MPI implementations often leak memory
@@ -81,9 +77,9 @@ jobs:
8177
8278
build_thread_sanitizer:
8379
name: Clang thread sanitizer
84-
runs-on: ubuntu-22.04
85-
container: ubuntu:23.10
86-
if: github.event.pull_request.draft == false
80+
runs-on: ubuntu-24.04
81+
# TODO Fix data race conditions and re-enable job
82+
if: 0 #github.event.pull_request.draft == false
8783
env:
8884
CC: clang
8985
CXX: clang++
@@ -93,7 +89,7 @@ jobs:
9389
- uses: actions/checkout@v4
9490
- name: install dependencies
9591
run: |
96-
.github/workflows/dependencies/clang17.sh
92+
.github/workflows/dependencies/clang.sh 17
9793
- name: CCache Cache
9894
uses: actions/cache@v4
9995
with:
@@ -149,10 +145,6 @@ jobs:
149145
export TSAN_OPTIONS='ignore_noninstrumented_modules=1'
150146
export ARCHER_OPTIONS="verbose=1"
151147
152-
# We need these two lines because these tests run inside a docker container
153-
export OMPI_ALLOW_RUN_AS_ROOT=1
154-
export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
155-
156148
export OMP_NUM_THREADS=2
157149
158150
mpirun -n 2 ./build/bin/warpx.rz Examples/Physics_applications/laser_acceleration/inputs_base_rz warpx.serialize_initial_conditions = 0

0 commit comments

Comments
 (0)