Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
dea3add
Added larger structures for testing timings and robustness
lukaswittmann Aug 23, 2025
20911e4
Woops, i should rename everything
lukaswittmann Aug 23, 2025
04f5e19
Revert "Woops, i should rename everything"
lukaswittmann Aug 23, 2025
7d36469
Woops, i should rename everything
lukaswittmann Aug 23, 2025
d280020
Fix cmake build
lukaswittmann Aug 23, 2025
5ef801e
Possible gcc ubuntu-latest fix
lukaswittmann Aug 23, 2025
c1485dc
Added mindless molecule with atoms Fr to Lr
lukaswittmann Aug 25, 2025
3ff751d
Updated intel job to use ubuntu-latest and bumped actions to supporte…
lukaswittmann Aug 25, 2025
1587bc3
Possible fix for the intel build still sticking to ifort
lukaswittmann Aug 25, 2025
a344dbf
Possible fix for the intel CI
lukaswittmann Aug 25, 2025
9defbf3
Possible fix for intel build (local build working)
lukaswittmann Aug 25, 2025
0b7cc59
meson: detect and link libunwind for Fortran traceback
lukaswittmann Aug 25, 2025
3eafae4
CI: install libunwind-dev on intel Ubuntu runners
lukaswittmann Aug 25, 2025
6d97188
meson: only probe libunwind when a C compiler is present
lukaswittmann Aug 25, 2025
c0559ba
Revert "CI: install libunwind-dev on intel Ubuntu runners"
lukaswittmann Aug 25, 2025
0d4161c
Revert "meson: detect and link libunwind for Fortran traceback"
lukaswittmann Aug 25, 2025
6bfde10
CI: update MSYS2 packages on Windows runner (enable update)
lukaswittmann Aug 25, 2025
b32ce39
Added systematic alanine and amylose chains. Removed old large struct…
lukaswittmann Dec 23, 2025
2031247
Fix trailing whitespace
lukaswittmann Dec 23, 2025
28616b8
Fix typo
lukaswittmann Dec 23, 2025
2bb53b3
Fix cmake build
lukaswittmann Dec 23, 2025
af29241
Switch macos runner
lukaswittmann Dec 23, 2025
7a7fe5b
gcc bin to path, set env variables, removed symlinks, export gh env
lukaswittmann Dec 23, 2025
7355ee8
set env vars
lukaswittmann Dec 23, 2025
3715d12
use gcc13
lukaswittmann Dec 23, 2025
e810455
update meson version
lukaswittmann Dec 23, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 41 additions & 27 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,16 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-13]
os: [ubuntu-latest, macos-15-intel]
include:
- os: ubuntu-latest
gcc_v: 10
- os: macos-15-intel
gcc_v: 13

env:
FC: gfortran
GCC_V: 10
GCC_V: ${{ matrix.gcc_v }}
PYTHON_V: 3.8

steps:
Expand All @@ -47,24 +52,35 @@ jobs:
if: contains(matrix.os, 'macos')
run: |
brew install gcc@${{ env.GCC_V }}
ln -s /usr/local/bin/gfortran-${{ env.GCC_V }} /usr/local/bin/gfortran
ln -s /usr/local/bin/gcc-${{ env.GCC_V }} /usr/local/bin/gcc
ln -s /usr/local/bin/g++-${{ env.GCC_V }} /usr/local/bin/g++
which gfortran
echo "$(brew --prefix gcc@${{ env.GCC_V }})/bin" >> $GITHUB_PATH
echo "FC=$(brew --prefix gcc@${{ env.GCC_V }})/bin/gfortran-${{ env.GCC_V }}" >> $GITHUB_ENV
echo "CC=$(brew --prefix gcc@${{ env.GCC_V }})/bin/gcc-${{ env.GCC_V }}" >> $GITHUB_ENV
echo "CXX=$(brew --prefix gcc@${{ env.GCC_V }})/bin/g++-${{ env.GCC_V }}" >> $GITHUB_ENV

- name: Install GCC (Linux)
if: contains(matrix.os, 'ubuntu')
run: |
sudo update-alternatives \
--install /usr/bin/gcc gcc /usr/bin/gcc-${GCC_V} 100 \
--slave /usr/bin/gfortran gfortran /usr/bin/gfortran-${GCC_V} \
--slave /usr/bin/gcov gcov /usr/bin/gcov-${GCC_V}
if [[ -x "/usr/bin/gcc-${GCC_V}" && -x "/usr/bin/gfortran-${GCC_V}" ]]; then
echo "Using GCC ${GCC_V} via update-alternatives"
sudo update-alternatives \
--install /usr/bin/gcc gcc /usr/bin/gcc-${GCC_V} 100 \
--slave /usr/bin/gfortran gfortran /usr/bin/gfortran-${GCC_V} \
--slave /usr/bin/gcov gcov /usr/bin/gcov-${GCC_V}
else
echo "GCC ${GCC_V} not found; using default system compilers"
gcc --version
gfortran --version
fi

- name: Install meson/cmake
run: pip3 install meson==0.57.2 ninja cmake
run: pip3 install meson==1.4.1 ninja cmake

- name: Configure meson build
run: meson setup ${{ env.M_BUILD_DIR }}
run: |
export FC="${FC:-gfortran}"
export CC="${CC:-gcc}"
export CXX="${CXX:-g++}"
meson setup ${{ env.M_BUILD_DIR }}

- name: Build library (meson)
run: meson compile -C ${{ env.M_BUILD_DIR }}
Expand Down Expand Up @@ -103,7 +119,7 @@ jobs:
uses: msys2/setup-msys2@v2
with:
msystem: ${{ matrix.msystem }}
update: false
update: true
install: >-
git
mingw-w64-${{ matrix.arch }}-gcc-fortran
Expand Down Expand Up @@ -147,17 +163,17 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-20.04]
os: [ubuntu-latest]

env:
FC: ifort
FC: ifx
OMP_NUM_THREADS: 2,1

steps:
- name: Checkout code
uses: actions/checkout@v2
uses: actions/checkout@v3

- uses: actions/setup-python@v1
- uses: actions/setup-python@v4
with:
python-version: '3.x'

Expand All @@ -171,28 +187,26 @@ jobs:

- name: Install Intel oneAPI compiler
run: |
sudo apt-get install intel-oneapi-compiler-fortran
source /opt/intel/oneapi/setvars.sh
printenv >> $GITHUB_ENV
sudo apt-get install -y intel-oneapi-compiler-fortran
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can use the setup-fortran action to take care of all the compiler setup (see here)


- name: Install meson/cmake
run: pip3 install meson==0.56.2 ninja cmake
run: pip3 install meson==1.4.1 ninja cmake
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If it doesn't break we can also update to the current meson version (about 1.8.x)


- name: Configure meson build
run: meson setup ${{ env.M_BUILD_DIR }}
run: . /opt/intel/oneapi/setvars.sh && meson setup ${{ env.M_BUILD_DIR }}

- name: Build library (meson)
run: meson compile -C ${{ env.M_BUILD_DIR }}
run: . /opt/intel/oneapi/setvars.sh && meson compile -C ${{ env.M_BUILD_DIR }}

- name: Run unit tests (meson)
run: meson test -C ${{ env.M_BUILD_DIR }} --print-errorlogs --no-rebuild
run: . /opt/intel/oneapi/setvars.sh && meson test -C ${{ env.M_BUILD_DIR }} --print-errorlogs --no-rebuild

- name: Configure cmake build
run: cmake -B ${{ env.C_BUILD_DIR }} -G Ninja
run: . /opt/intel/oneapi/setvars.sh && cmake -B ${{ env.C_BUILD_DIR }} -G Ninja

- name: Build library (CMake)
run: cmake --build ${{ env.C_BUILD_DIR }}
run: . /opt/intel/oneapi/setvars.sh && cmake --build ${{ env.C_BUILD_DIR }}

- name: Run unit tests (CTest)
run: ctest
run: . /opt/intel/oneapi/setvars.sh && ctest
working-directory: ${{ env.C_BUILD_DIR }}
7 changes: 7 additions & 0 deletions config/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,13 @@ if fc_id == 'gcc'
)
elif fc_id == 'intel'
add_project_arguments(
'-fpp',
'-traceback',
language: 'fortran',
)
elif fc_id == 'intel-llvm'
add_project_arguments(
'-fpp',
'-traceback',
language: 'fortran',
)
Expand Down
4 changes: 4 additions & 0 deletions src/mstore.f90
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ module mstore
use mstore_il16, only : get_il16_records
use mstore_mb16_43, only : get_mb16_43_records
use mstore_upu23, only : get_upu23_records
use mstore_amylose, only : get_amylose_records
use mstore_polyalanine, only : get_polyalanine_records
use mstore_x23, only : get_x23_records
use mstore_f_block, only : get_f_block_records
implicit none
Expand Down Expand Up @@ -136,6 +138,8 @@ subroutine get_mstore_collections(collections)
new_collection("IL16", get_il16_records), &
new_collection("MB16-43", get_mb16_43_records), &
new_collection("UPU23", get_upu23_records), &
new_collection("AMYLOSE", get_amylose_records), &
new_collection("POLYALANINE", get_polyalanine_records), &
new_collection("X23", get_x23_records) &
]

Expand Down
2 changes: 2 additions & 0 deletions src/mstore/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ list(
"${dir}/mb16_43.f90"
"${dir}/upu23.f90"
"${dir}/x23.f90"
"${dir}/amylose.f90"
"${dir}/polyalanine.f90"
)

set(srcs "${srcs}" PARENT_SCOPE)
Loading
Loading