Skip to content

New Implicit Solver interface with options to select Picard or Newton (JFNK) for the nonlinear solver. #17856

New Implicit Solver interface with options to select Picard or Newton (JFNK) for the nonlinear solver.

New Implicit Solver interface with options to select Picard or Newton (JFNK) for the nonlinear solver. #17856

Workflow file for this run

name: 🐧 OpenMP
on: [push, pull_request]
concurrency:
group: ${{ github.ref }}-${{ github.head_ref }}-ubuntu
cancel-in-progress: true
jobs:
build_cxxminimal:
name: GCC Minimal w/o MPI
runs-on: ubuntu-20.04
if: github.event.pull_request.draft == false
env:
CXXFLAGS: "-Werror"
steps:
- uses: actions/checkout@v4
- name: install dependencies
run: |
.github/workflows/dependencies/gcc.sh
- name: CCache Cache
uses: actions/cache@v4
with:
path: ~/.cache/ccache
key: ccache-${{ github.workflow }}-${{ github.job }}-git-${{ github.sha }}
restore-keys: |
ccache-${{ github.workflow }}-${{ github.job }}-git-
- name: build WarpX
run: |
export CCACHE_COMPRESS=1
export CCACHE_COMPRESSLEVEL=10
export CCACHE_MAXSIZE=100M
ccache -z
cmake -S . -B build \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DWarpX_DIMS="RZ;3" \
-DWarpX_EB=OFF \
-DWarpX_MPI=OFF \
-DWarpX_QED=OFF
cmake --build build -j 4
./build/bin/warpx.3d Examples/Physics_applications/laser_acceleration/inputs_3d
./build/bin/warpx.rz Examples/Physics_applications/laser_acceleration/inputs_rz
ccache -s
du -hs ~/.cache/ccache
build_1D_2D:
name: GCC 1D & 2D w/ MPI
runs-on: ubuntu-22.04
if: github.event.pull_request.draft == false
env:
CXXFLAGS: "-Werror"
CXX: "g++-12"
CC: "gcc-12"
steps:
- uses: actions/checkout@v4
- name: install dependencies
run: |
.github/workflows/dependencies/gcc12.sh
- name: CCache Cache
uses: actions/cache@v4
with:
path: ~/.cache/ccache
key: ccache-${{ github.workflow }}-${{ github.job }}-git-${{ github.sha }}
restore-keys: |
ccache-${{ github.workflow }}-${{ github.job }}-git-
- name: build WarpX
run: |
export CCACHE_COMPRESS=1
export CCACHE_COMPRESSLEVEL=10
export CCACHE_MAXSIZE=100M
ccache -z
cmake -S . -B build \
-GNinja \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DWarpX_DIMS="1;2" \
-DWarpX_EB=OFF \
-DWarpX_PSATD=ON \
-DWarpX_QED_TABLE_GEN=ON
cmake --build build -j 4
./build/bin/warpx.1d Examples/Physics_applications/laser_acceleration/inputs_1d
./build/bin/warpx.2d Examples/Physics_applications/laser_acceleration/inputs_2d
ccache -s
du -hs ~/.cache/ccache
build_3D_sp:
name: GCC 3D & RZ w/ MPI, single precision
runs-on: ubuntu-22.04
if: github.event.pull_request.draft == false
env:
CXX: "g++-12"
CC: "gcc-12"
steps:
- uses: actions/checkout@v4
- name: install dependencies
run: |
.github/workflows/dependencies/gcc12_blaspp_lapackpp.sh
- name: CCache Cache
uses: actions/cache@v4
with:
path: ~/.cache/ccache
key: ccache-${{ github.workflow }}-${{ github.job }}-git-${{ github.sha }}
restore-keys: |
ccache-${{ github.workflow }}-${{ github.job }}-git-
- name: build WarpX
run: |
export CCACHE_COMPRESS=1
export CCACHE_COMPRESSLEVEL=10
export CCACHE_MAXSIZE=200M
ccache -z
# we need to define this *after* having installed the dependencies,
# because the compilation of blaspp raises warnings.
export CXXFLAGS="-Werror"
cmake -S . -B build \
-GNinja \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DWarpX_DIMS="RZ;3" \
-DWarpX_EB=OFF \
-DWarpX_PSATD=ON \
-DWarpX_PRECISION=SINGLE \
-DWarpX_PARTICLE_PRECISION=SINGLE \
-DWarpX_QED_TABLE_GEN=ON
cmake --build build -j 4
./build/bin/warpx.3d Examples/Physics_applications/laser_acceleration/inputs_3d
./build/bin/warpx.rz Examples/Physics_applications/laser_acceleration/inputs_rz
ccache -s
du -hs ~/.cache/ccache
build_gcc_ablastr:
name: GCC ABLASTR w/o MPI
runs-on: ubuntu-20.04
if: github.event.pull_request.draft == false
env:
CMAKE_GENERATOR: Ninja
CXXFLAGS: "-Werror"
steps:
- uses: actions/checkout@v4
- name: install dependencies
run: |
.github/workflows/dependencies/gcc.sh
sudo apt-get install -y libopenmpi-dev openmpi-bin
- name: CCache Cache
uses: actions/cache@v4
with:
path: ~/.cache/ccache
key: ccache-${{ github.workflow }}-${{ github.job }}-git-${{ github.sha }}
restore-keys: |
ccache-${{ github.workflow }}-${{ github.job }}-git-
- name: build WarpX
run: |
export CCACHE_COMPRESS=1
export CCACHE_COMPRESSLEVEL=10
export CCACHE_MAXSIZE=100M
ccache -z
cmake -S . -B build \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DWarpX_APP=OFF \
-DWarpX_LIB=OFF
cmake --build build -j 4
ccache -s
du -hs ~/.cache/ccache
build_pyfull:
name: Clang pywarpx
runs-on: ubuntu-20.04
if: github.event.pull_request.draft == false
env:
CC: clang
CXX: clang++
# On CI for this test, Ninja is slower than the default:
#CMAKE_GENERATOR: Ninja
steps:
- uses: actions/checkout@v4
- name: install dependencies
run: |
.github/workflows/dependencies/pyfull.sh
- name: CCache Cache
uses: actions/cache@v4
with:
path: ~/.cache/ccache
key: ccache-${{ github.workflow }}-${{ github.job }}-git-${{ github.sha }}
restore-keys: |
ccache-${{ github.workflow }}-${{ github.job }}-git-
- name: build WarpX
run: |
export CCACHE_COMPRESS=1
export CCACHE_COMPRESSLEVEL=10
export CCACHE_MAXSIZE=100M
ccache -z
python3 -m pip install --upgrade pip
python3 -m pip install --upgrade build packaging setuptools wheel
export CXXFLAGS="-Werror -Wno-error=pass-failed"
cmake -S . -B build \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DWarpX_APP=OFF \
-DWarpX_PSATD=ON \
-DWarpX_PYTHON=ON \
-DWarpX_QED_TABLE_GEN=ON
cmake --build build -j 4 --target pip_install
ccache -s
du -hs ~/.cache/ccache
- name: run pywarpx
run: |
export OMP_NUM_THREADS=1
mpirun -n 2 Examples/Physics_applications/laser_acceleration/PICMI_inputs_3d.py
save_pr_number:
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
steps:
- name: Save PR number
env:
PR_NUMBER: ${{ github.event.number }}
run: |
echo $PR_NUMBER > pr_number.txt
- uses: actions/upload-artifact@v4
with:
name: pr_number
path: pr_number.txt
retention-days: 1