diff --git a/.github/workflows/unittest-arm64.yml b/.github/workflows/unittest-arm64.yml new file mode 100644 index 00000000000..094c5fb0c12 --- /dev/null +++ b/.github/workflows/unittest-arm64.yml @@ -0,0 +1,81 @@ +# GitHub action to build LAMMPS on Linux with ARM64 and run standard unit tests +name: "Unittest for Linux on ARM64" + +on: + push: + branches: [develop] + + workflow_dispatch: + +concurrency: + group: ${{ github.event_name }}-${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{github.event_name == 'pull_request'}} + +jobs: + build: + name: Linux ARM64 Unit Test + if: ${{ github.repository == 'lammps/lammps' }} + runs-on: ubuntu-22.04-arm + env: + CCACHE_DIR: ${{ github.workspace }}/.ccache + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 2 + + - name: Install extra packages + run: | + sudo apt-get update + sudo apt-get install -y ccache \ + libeigen3-dev \ + libcurl4-openssl-dev \ + mold \ + ninja-build \ + python3-dev + + - name: Create Build Environment + run: mkdir build + + - name: Set up ccache + uses: actions/cache@v4 + with: + path: ${{ env.CCACHE_DIR }} + key: linux-unit-ccache-${{ github.sha }} + restore-keys: linux-unit-ccache- + + - name: Building LAMMPS via CMake + shell: bash + run: | + ccache -z + python3 -m venv linuxenv + source linuxenv/bin/activate + python3 -m pip install numpy + python3 -m pip install pyyaml + cmake -S cmake -B build \ + -C cmake/presets/gcc.cmake \ + -C cmake/presets/most.cmake \ + -D CMAKE_CXX_COMPILER_LAUNCHER=ccache \ + -D CMAKE_C_COMPILER_LAUNCHER=ccache \ + -D BUILD_SHARED_LIBS=on \ + -D DOWNLOAD_POTENTIALS=off \ + -D ENABLE_TESTING=on \ + -D MLIAP_ENABLE_ACE=on \ + -D MLIAP_ENABLE_PYTHON=off \ + -D PKG_MANIFOLD=on \ + -D PKG_ML-PACE=on \ + -D PKG_ML-RANN=on \ + -D PKG_RHEO=on \ + -D PKG_PTM=on \ + -D PKG_PYTHON=on \ + -D PKG_QTB=on \ + -D PKG_SMTBQ=on \ + -G Ninja + cmake --build build + ccache -s + + - name: Run Tests + working-directory: build + shell: bash + run: ctest -V -LE unstable diff --git a/unittest/force-styles/tests/atomic-pair-lepton_sphere.yaml b/unittest/force-styles/tests/atomic-pair-lepton_sphere.yaml index 222aa8b93c3..0e00e418a19 100644 --- a/unittest/force-styles/tests/atomic-pair-lepton_sphere.yaml +++ b/unittest/force-styles/tests/atomic-pair-lepton_sphere.yaml @@ -1,6 +1,7 @@ --- lammps_version: 28 Mar 2023 date_generated: Fri Apr 7 18:04:29 2023 +tags: unstable epsilon: 7.5e-13 skip_tests: single prerequisites: ! | diff --git a/unittest/force-styles/tests/atomic-pair-lj_cut_sphere.yaml b/unittest/force-styles/tests/atomic-pair-lj_cut_sphere.yaml index 3a5122a896b..193a65122e7 100644 --- a/unittest/force-styles/tests/atomic-pair-lj_cut_sphere.yaml +++ b/unittest/force-styles/tests/atomic-pair-lj_cut_sphere.yaml @@ -1,6 +1,7 @@ --- lammps_version: 28 Mar 2023 date_generated: Thu Mar 30 14:38:22 2023 +tags: unstable epsilon: 7.5e-13 skip_tests: single prerequisites: ! | diff --git a/unittest/force-styles/tests/atomic-pair-lj_expand_sphere.yaml b/unittest/force-styles/tests/atomic-pair-lj_expand_sphere.yaml index 24a17a275c8..d929544809d 100644 --- a/unittest/force-styles/tests/atomic-pair-lj_expand_sphere.yaml +++ b/unittest/force-styles/tests/atomic-pair-lj_expand_sphere.yaml @@ -1,6 +1,7 @@ --- lammps_version: 28 Mar 2023 date_generated: Fri Apr 7 18:07:13 2023 +tags: unstable epsilon: 7.5e-13 skip_tests: single prerequisites: ! | diff --git a/unittest/force-styles/tests/bond-harmonic_restrain.yaml b/unittest/force-styles/tests/bond-harmonic_restrain.yaml index 07546775ab0..485dbfeafc7 100644 --- a/unittest/force-styles/tests/bond-harmonic_restrain.yaml +++ b/unittest/force-styles/tests/bond-harmonic_restrain.yaml @@ -1,7 +1,7 @@ --- lammps_version: 8 Feb 2023 date_generated: Tue Mar 7 21:07:27 2023 -epsilon: 2.5e-13 +epsilon: 5.0e-13 skip_tests: extract prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/dihedral-cosine_squared_restricted.yaml b/unittest/force-styles/tests/dihedral-cosine_squared_restricted.yaml index c2c2b8cc6ba..0e43bc1741c 100644 --- a/unittest/force-styles/tests/dihedral-cosine_squared_restricted.yaml +++ b/unittest/force-styles/tests/dihedral-cosine_squared_restricted.yaml @@ -1,8 +1,7 @@ --- lammps_version: 7 Feb 2024 -tags: date_generated: Sat Apr 13 11:41:16 2024 -epsilon: 5.0e-11 +epsilon: 2.0e-10 skip_tests: prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-recenter-coords.yaml b/unittest/force-styles/tests/fix-timestep-recenter-coords.yaml index 31c682fc07e..9fff99f8b00 100644 --- a/unittest/force-styles/tests/fix-timestep-recenter-coords.yaml +++ b/unittest/force-styles/tests/fix-timestep-recenter-coords.yaml @@ -1,7 +1,7 @@ --- lammps_version: 29 Aug 2024 date_generated: Tue Oct 1 12:45:25 2024 -epsilon: 2e-13 +epsilon: 1.0e-11 skip_tests: prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-recenter-init.yaml b/unittest/force-styles/tests/fix-timestep-recenter-init.yaml index ca539aa9118..16784050741 100644 --- a/unittest/force-styles/tests/fix-timestep-recenter-init.yaml +++ b/unittest/force-styles/tests/fix-timestep-recenter-init.yaml @@ -1,7 +1,7 @@ --- lammps_version: 29 Aug 2024 date_generated: Tue Oct 1 12:45:46 2024 -epsilon: 1e-12 +epsilon: 2.5e-11 skip_tests: prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-spring_rg.yaml b/unittest/force-styles/tests/fix-timestep-spring_rg.yaml index a6c5844b6c6..bfd9310012a 100644 --- a/unittest/force-styles/tests/fix-timestep-spring_rg.yaml +++ b/unittest/force-styles/tests/fix-timestep-spring_rg.yaml @@ -1,7 +1,7 @@ --- lammps_version: 17 Feb 2022 date_generated: Thu Mar 17 19:43:17 2022 -epsilon: 2e-14 +epsilon: 5.0e-14 skip_tests: prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-wall_harmonic_const.yaml b/unittest/force-styles/tests/fix-timestep-wall_harmonic_const.yaml index 57f38b4c37e..58065829295 100644 --- a/unittest/force-styles/tests/fix-timestep-wall_harmonic_const.yaml +++ b/unittest/force-styles/tests/fix-timestep-wall_harmonic_const.yaml @@ -1,7 +1,7 @@ --- lammps_version: 17 Feb 2022 date_generated: Fri Mar 18 22:18:01 2022 -epsilon: 4e-14 +epsilon: 5.0e-14 skip_tests: prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-wall_lepton_const.yaml b/unittest/force-styles/tests/fix-timestep-wall_lepton_const.yaml index 947bc6a95ad..079383e04c6 100644 --- a/unittest/force-styles/tests/fix-timestep-wall_lepton_const.yaml +++ b/unittest/force-styles/tests/fix-timestep-wall_lepton_const.yaml @@ -1,7 +1,7 @@ --- lammps_version: 8 Feb 2023 date_generated: Thu Feb 23 00:40:51 2023 -epsilon: 4e-14 +epsilon: 5.0e-14 skip_tests: prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-wall_lj93_const.yaml b/unittest/force-styles/tests/fix-timestep-wall_lj93_const.yaml index 5431a8e0a89..590ed1f103f 100644 --- a/unittest/force-styles/tests/fix-timestep-wall_lj93_const.yaml +++ b/unittest/force-styles/tests/fix-timestep-wall_lj93_const.yaml @@ -1,7 +1,7 @@ --- lammps_version: 27 Jun 2024 date_generated: Fri Aug 2 23:56:34 2024 -epsilon: 2e-14 +epsilon: 1.0e-13 skip_tests: prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-wall_morse_const.yaml b/unittest/force-styles/tests/fix-timestep-wall_morse_const.yaml index 391070609f9..08080a6274d 100644 --- a/unittest/force-styles/tests/fix-timestep-wall_morse_const.yaml +++ b/unittest/force-styles/tests/fix-timestep-wall_morse_const.yaml @@ -1,7 +1,7 @@ --- lammps_version: 8 Feb 2023 date_generated: Thu Feb 23 15:26:55 2023 -epsilon: 4e-14 +epsilon: 1.0e-13 skip_tests: prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-wall_table_linear.yaml b/unittest/force-styles/tests/fix-timestep-wall_table_linear.yaml index 6291de136af..ee860262167 100644 --- a/unittest/force-styles/tests/fix-timestep-wall_table_linear.yaml +++ b/unittest/force-styles/tests/fix-timestep-wall_table_linear.yaml @@ -1,7 +1,7 @@ --- lammps_version: 8 Feb 2023 date_generated: Thu Feb 23 00:56:30 2023 -epsilon: 4e-14 +epsilon: 2.0e-13 skip_tests: prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-wall_table_spline.yaml b/unittest/force-styles/tests/fix-timestep-wall_table_spline.yaml index 6c6c674342b..7f27c59e329 100644 --- a/unittest/force-styles/tests/fix-timestep-wall_table_spline.yaml +++ b/unittest/force-styles/tests/fix-timestep-wall_table_spline.yaml @@ -1,7 +1,7 @@ --- lammps_version: 8 Feb 2023 date_generated: Thu Feb 23 00:56:30 2023 -epsilon: 4e-14 +epsilon: 2.0e-13 skip_tests: prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/manybody-pair-pace_product.yaml b/unittest/force-styles/tests/manybody-pair-pace_product.yaml index 6db9f4220a5..fe4cde6dac6 100644 --- a/unittest/force-styles/tests/manybody-pair-pace_product.yaml +++ b/unittest/force-styles/tests/manybody-pair-pace_product.yaml @@ -1,7 +1,7 @@ --- lammps_version: 17 Feb 2022 date_generated: Fri Mar 18 22:17:48 2022 -epsilon: 7.5e-09 +epsilon: 1.5e-08 skip_tests: prerequisites: ! | pair pace diff --git a/unittest/force-styles/tests/manybody-pair-pace_recursive.yaml b/unittest/force-styles/tests/manybody-pair-pace_recursive.yaml index 61f7ce0ac95..3740718675b 100644 --- a/unittest/force-styles/tests/manybody-pair-pace_recursive.yaml +++ b/unittest/force-styles/tests/manybody-pair-pace_recursive.yaml @@ -1,7 +1,7 @@ --- lammps_version: 10 Mar 2021 date_generated: Wed Apr 7 19:30:07 2021 -epsilon: 7.5e-09 +epsilon: 1.5e-08 prerequisites: ! | pair pace pre_commands: ! | diff --git a/unittest/force-styles/tests/mol-pair-lepton.yaml b/unittest/force-styles/tests/mol-pair-lepton.yaml index 33576e81c2a..c0e26b34f6b 100644 --- a/unittest/force-styles/tests/mol-pair-lepton.yaml +++ b/unittest/force-styles/tests/mol-pair-lepton.yaml @@ -1,7 +1,7 @@ --- lammps_version: 21 Nov 2023 date_generated: Thu Jan 18 11:01:50 2024 -epsilon: 5e-14 +epsilon: 1e-13 skip_tests: intel prerequisites: ! | atom full