Skip to content

Commit

Permalink
Merge pull request #213 from precice/develop
Browse files Browse the repository at this point in the history
Release ASTE version v3.3.0
  • Loading branch information
davidscn authored Nov 7, 2024
2 parents 1d07437 + 8237082 commit abcdc68
Show file tree
Hide file tree
Showing 20 changed files with 626 additions and 86 deletions.
1 change: 1 addition & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
* [ ] I used the [`pre-commit` hook](https://precice.org/dev-docs-dev-tooling.html#setting-up-pre-commit) and used `pre-commit run --all` to apply all available hooks.
* [ ] I added a test to cover the proposed changes in our test suite.
* [ ] I updated the documentation in `docs/README.md`.
* [ ] I added a changelog entry in `./changelog-entries/` (create if necessary).
* [ ] I updated potential breaking changes in the tutorial [`precice/tutorials/aste-turbine`](https://github.com/precice/tutorials/tree/develop/aste-turbine).

<!-- add more questions/tasks if necessary -->
110 changes: 70 additions & 40 deletions .github/workflows/aste_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,63 +13,93 @@ concurrency:
cancel-in-progress: ${{github.event_name == 'pull_request'}}

jobs:
vtk:
name: Build VTK from source
runs-on: ubuntu-latest
container:
image: precice/precice:nightly
options: --shm-size=2gb
env:
CMAKE_BUILD_PARALLEL_LEVEL: 4
steps:
- name: Check VTK cache
id: cache-vtk
uses: actions/cache@v4
with:
key: ${{ runner.os }}-aste-vtk
path: |
/usr/local/include/vtk-*/
/usr/local/lib/libvtk*
/usr/local/lib/cmake/vtk-*/
/usr/local/bin/vtk*
/usr/local/bin/pvtkpython
/usr/local/lib/python*/site-packages/vtk.py
/usr/local/lib/python*/site-packages/vtkmodules/*
/etc/profile.d/99-vtk.sh
- name: Build VTK
if: steps.cache-vtk.outputs.cache-hit != 'true'
run: |
git clone https://gitlab.kitware.com/vtk/vtk.git && cd vtk
git checkout v9.3.0
mkdir build && cd build
cmake -DVTK_WRAP_PYTHON="ON" -DVTK_USE_MPI="ON" -DCMAKE_BUILD_TYPE=Release ..
cmake --build . && cmake --install .
echo 'export PYTHONPATH="${PYTHONPATH}:/usr/local/lib/python3.10/site-packages/"' > /etc/profile.d/99-vtk.sh
build:
needs: vtk
name: ${{ format('{0} {1}', matrix.CXX, matrix.TYPE) }}
runs-on: ubuntu-latest
container: precice/precice:nightly
timeout-minutes: 80
container:
image: precice/precice:nightly
options: --shm-size=2gb
defaults:
run:
shell: "bash --login -eo pipefail {0}"
strategy:
fail-fast: false
matrix:
CXX: ["clang++", "g++"]
TYPE: ["Debug", "Release"]
env:
CXX: ${{ matrix.CXX }}
CXX_FLAGS: "-Werror -Wall -Wextra -Wno-unused-parameter"
CTEST_OUTPUT_ON_FAILURE: "Yes"
CMAKE_BUILD_PARALLEL_LEVEL: 4
steps:
- name: Restore VTK from cache
uses: actions/cache@v4
with:
fail-on-cache-miss: true
key: ${{ runner.os }}-aste-vtk
path: |
/usr/local/include/vtk-*/
/usr/local/lib/libvtk*
/usr/local/lib/cmake/vtk-*/
/usr/local/bin/vtk*
/usr/local/bin/pvtkpython
/usr/local/lib/python*/site-packages/vtk.py
/usr/local/lib/python*/site-packages/vtkmodules/*
/etc/profile.d/99-vtk.sh
- name: setup system
run: |
apt-get -y update && apt-get -y upgrade
apt-get install -y python3-pip pkg-config time
pip3 install --upgrade pip
- name: install VTK
run: |
git clone https://gitlab.kitware.com/vtk/vtk.git && cd vtk
git checkout v9.3.0
mkdir build && cd build
cmake -DVTK_WRAP_PYTHON="ON" -DVTK_USE_MPI="ON" -DCMAKE_BUILD_TYPE=Release ..
cmake --build . -j 2 && cmake --install .
echo "PYTHONPATH=/usr/local/lib/python3.10/site-packages/:${PYTHONPATH}" >> $GITHUB_ENV
cd
apt-get install -qq -y python3-pip python3-jinja2 python3-scipy python3-sympy libmetis-dev time clang
- uses: actions/checkout@v4
- name: install example dependencies
run: |
python3 -m pip install -r requirements.txt
- name: prepare directories
run: |
mkdir build_gcc build_clang
- name: build aste gcc
working-directory: build_gcc
env:
CC: gcc
CXX: g++
run: |
cmake ..
cmake --build .
- name: Adjust user rights
run: chown -R precice .
- name: run test gcc
working-directory: build_gcc
run: |
su -c "ctest" precice
- name: install clang
- name: prepare build directory
run: |
apt-get -y install clang
- name: build aste clang
working-directory: build_clang
env:
CC: clang
CXX: clang++
mkdir build
- name: build aste
working-directory: build
run: |
cmake ..
cmake -DCMAKE_BUILD_TYPE=${{ matrix.TYPE }} ..
cmake --build .
- name: Adjust user rights
run: chown -R precice .
- name: run test clang
working-directory: build_clang
- name: run test
working-directory: build
run: |
su -c "ctest" precice
73 changes: 73 additions & 0 deletions .github/workflows/aste_ci_mac.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
name: ASTE macOS CI

on:
push:
branches: [master, develop]
pull_request:
branches: [master, develop]
schedule:
- cron: '0 8 * * 2' # run once in a week (here Tue at 8am)

concurrency:
group: ${ {github.event_name }}-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{github.event_name == 'pull_request'}}

jobs:
build-macos:
runs-on: macos-latest
timeout-minutes: 20
env:
CXX_FLAGS: "-Werror -Wall -Wextra -Wno-unused-parameter"
CTEST_OUTPUT_ON_FAILURE: "Yes"
steps:
- name: Setup system
run: |
brew update
brew install cmake eigen boost openmpi pkg-config ninja gnu-time vtk
- name: Install preCICE
run: |
git clone https://github.com/precice/precice.git
cd precice
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DPRECICE_FEATURE_MPI_COMMUNICATION=ON \
-DPRECICE_FEATURE_PETSC_MAPPING=OFF \
-DPRECICE_FEATURE_PYTHON_ACTIONS=OFF \
-DBUILD_TESTING=OFF \
-G Ninja ..
ninja
sudo ninja install
cd ../..
- uses: actions/checkout@v4
- name: Setup python
uses: actions/setup-python@v5
with:
python-version: '3.12'
check-latest: true

- name: Set up environment and install dependencies
run: |
python3 -m venv --system-site-packages venv
source venv/bin/activate
python3 -m pip install --upgrade pip
pip install -r requirements.txt
pip install numpy polars vtk
echo "VIRTUAL_ENV=$(pwd)/venv" >> $GITHUB_ENV
echo "$VIRTUAL_ENV/bin" >> $GITHUB_PATH
- name: Prepare build directory
run: mkdir build
- name: Build project with clang
working-directory: build
env:
CC: clang
CXX: clang++
run: |
cmake ..
cmake --build .
- name: Run tests
working-directory: build
run: |
source ${{ env.VIRTUAL_ENV }}/bin/activate
ctest
4 changes: 2 additions & 2 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,6 @@ repos:
rev: v0.39.0
hooks:
- id: markdownlint
exclude: changelog-entries
exclude: 'changelog-entries|^CHANGELOG\.md$'
- id: markdownlint-fix
exclude: changelog-entries
exclude: 'changelog-entries|^CHANGELOG\.md$'
129 changes: 129 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
# ASTE Change Log

All notable changes to this project will be documented in this file.

## [v3.3.0] - 2024-11-07

### Added

- Added a code of conduct from Covenant (see `CODE_OF_CONDUCT.md`). [#205](https://github.com/precice/aste/pull/205)
- Added contributing guidelines (see `docs/CONTRIBUTING.md`). [#205](https://github.com/precice/aste/pull/205)
- Added documentation to the mapping tester. [#209](https://github.com/precice/aste/pull/209)
- Added scoping support to gathering events. [#207](https://github.com/precice/aste/pull/207)
- Added macOS continuous integration support for ASTE. [#202](https://github.com/precice/aste/pull/202)
- Added a cached VTK build in ASTE CI for faster build times. [#211](https://github.com/precice/aste/pull/211)

### Changed

- Changed CMake to always find Boost using its CMake Config. [#194](https://github.com/precice/aste/pull/194)
- Highlighted ASTE's dependency on preCICE more clearly in the documentation. [#206](https://github.com/precice/aste/pull/206)
- Made `run-all` script for examples more robust. [#201](https://github.com/precice/aste/pull/201)

### Fixed

- Fixed linker errors when FindBoost uses the CMake Config. [#194](https://github.com/precice/aste/pull/194)
- Fixed SEGFAULT in `precice-aste-run` if no mesh is found for the given name. [#196](https://github.com/precice/aste/pull/196)

## [v3.2.0] - 2024-07-31

### Fixed

- Fixed CMake installation for VTK 9 and higher. [#184](https://github.com/precice/aste/pull/184)

### Changed

- Updated documentation for current VTK issues. [#185](https://github.com/precice/aste/pull/185)
- Updated CI to use manual installation of VTK. [#187](https://github.com/precice/aste/pull/187)
- Cleaned up Python requirements. [#193](https://github.com/precice/aste/pull/193)

## [v3.1.0] - 2024-03-22

### Added

- Introduced a Halton Mesh Generator for improved mesh sampling. [#155](https://github.com/precice/aste/pull/155)
- Added a unit grid generator. [#154](https://github.com/precice/aste/pull/154)
- Added connectivity to the Halton Mesh Generator using Delaunay Triangulation. [#157](https://github.com/precice/aste/pull/157)
- Set up Dependabot for dependency updates. [#164](https://github.com/precice/aste/pull/164)
- Added pre-commit hooks for website linting. [#183](https://github.com/precice/aste/pull/183)

### Changed

- Updated codebase from C++14 to C++17 standard. [#138](https://github.com/precice/aste/pull/138)
- Replaced `boost::filesystem` with `std::filesystem`. [#160](https://github.com/precice/aste/pull/160)
- Updated ASTE for compatibility with preCICE version 3. [#161](https://github.com/precice/aste/pull/161)
- Merged `initialize` and `initializeData` functions. [#158](https://github.com/precice/aste/pull/158)
- Renamed test executable from `test` to `precice-aste-test`. [#175](https://github.com/precice/aste/pull/175)
- Updated preCICE packages in continuous integration. [#167](https://github.com/precice/aste/pull/167)

### Fixed

- Improved handling of ASTE and preCICE logging. [#136](https://github.com/precice/aste/pull/136)
- Fixed wrong variable in Franke3D function. [#173](https://github.com/precice/aste/pull/173)
- Fixed vertex resolution in partitioner and joiner. [#180](https://github.com/precice/aste/pull/180)
- Changed scripts to use `env time` to bypass built-in `time`. [#178](https://github.com/precice/aste/pull/178)

### Released

- Released ASTE version compatible with preCICE v3. [#182](https://github.com/precice/aste/pull/182)

## [v3.0.0] - 2022-09-28

### Added

- Fully ported ASTE to the VTK library, eliminating custom data structures.
- Unified user interface for the main C++ core (`precice-aste-run`) and Python tools.
- Introduced replay-mode to emulate participants in coupled simulations.
- Added support for `nearest-neighbor-gradient` and `linear-cell` interpolation mappings.
- Supported processing of tetrahedral meshes and gradient data.
- Created dedicated ASTE documentation and tutorial resources.

### Changed

- Improved logging for the C++ executable and Python tools.
- Renamed executables for consistency.
- Updated VTK version requirements and improved component detection.
- Switched to pre-commit hooks for code formatting.
- Refactored codebase for better performance and maintainability.

### Fixed

- Resolved compiler warnings and code style issues.
- Fixed MPI linking issues for test executables.
- Corrected logger names and typos in documentation.
- Fixed issues with `vtk_calculator` removing `diffdata` in diff mode.

### Removed

- Removed obsolete scripts and deprecated functions.

## [v2.0.0] - 2020-02-10

### Added

- Support for preCICE v2, including migration to the single-step setup.

### Changed

- Updated configuration files to be compatible with preCICE v2.

## [v1.1.0] - 2019-11-20

### Added

- Connectivity information to mesh creation and partition tools.
- Filter for cell types in mesh handling.

### Changed

- Sped up edge generation using `boost::flat_map` for better performance.
- Modernized CMake configurations for improved build process.
- Migrated `preciceMap`, `aste`, and `visualize_partition` tools to the new system.

### Fixed

- Issues with connectivity output ensuring correct data representation.
- Build issues in CMake configuration.

### Removed

- Dependency on the `prettyprint` library to reduce external dependencies.
Loading

0 comments on commit abcdc68

Please sign in to comment.