Skip to content

Commit

Permalink
feat(PRT): support particle tracking
Browse files Browse the repository at this point in the history
* add particle tracking (PRT) model type
* add Fortran unit test harness & minimal tests
* add generic routine to disable development feature
* add autotests for PRT simulations and example models
  • Loading branch information
wpbonelli committed Sep 27, 2023
1 parent 173dc50 commit ec45eaf
Show file tree
Hide file tree
Showing 149 changed files with 22,056 additions and 130 deletions.
26 changes: 22 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ on:
- master
- develop
- ci-diagnose*
- PRT
paths-ignore:
- '**.md'
- '**.pdf'
Expand All @@ -23,6 +24,7 @@ on:
branches:
- master
- develop
- PRT
paths-ignore:
- '**.md'
- '**.pdf'
Expand Down Expand Up @@ -216,7 +218,8 @@ jobs:
- name: Checkout modflow6-examples
uses: actions/checkout@v4
with:
repository: MODFLOW-USGS/modflow6-examples
repository: w-bonelli/modflow6-examples
ref: PRT
path: modflow6-examples

- name: Setup GNU Fortran ${{ matrix.gcc_v }}
Expand Down Expand Up @@ -316,11 +319,18 @@ jobs:
matrix:
include:
### ifx
## 2023.x autotests disabled for same reasons as below
- {os: ubuntu-22.04, compiler: intel, version: 2023.2, test: false}
## 2023.[0,1] fail with internal compiler error
# - {os: ubuntu-22.04, compiler: intel, version: 2023.1, test: false}
# - {os: ubuntu-22.04, compiler: intel, version: "2023.0", test: false}
## 2022.2.x autotests disabled
# - mf5to6 test_evt: failure to converge
# - mf6 Keating_[disu_]dev: bad head comparison
- {os: ubuntu-22.04, compiler: intel, version: 2022.2.1, test: false}
- {os: ubuntu-22.04, compiler: intel, version: 2022.2, test: false}
## 2022.2.x fails to compile testdrive.F90 due to...
# https://community.intel.com/t5/Intel-Fortran-Compiler/ifx-error-5533-in-simple-subroutine-call/m-p/1420685
# - {os: ubuntu-22.04, compiler: intel, version: 2022.2.1, test: false}
# - {os: ubuntu-22.04, compiler: intel, version: 2022.2, test: false}
## 2021.1 segfault in meson serial sim test
# - {os: ubuntu-22.04, compiler: intel, version: 2022.1, test: false}
## 2022.0 & 2021.[1,2,4] segfault at compile time
Expand All @@ -333,7 +343,8 @@ jobs:
## 2023.[0,1] fail to compile
# - {os: windows-2022, compiler: intel, version: 2023.1, test: false}
# - {os: windows-2022, compiler: intel, version: "2023.0", test: false}
- {os: windows-2022, compiler: intel, version: 2022.2, test: false}
## 2022.2 fails to compile testdrive.F90 for same reason as above
# - {os: windows-2022, compiler: intel, version: 2022.2, test: false}
## 2022.1 fail to link
# - {os: windows-2022, compiler: intel, version: 2022.1, test: false}

Expand Down Expand Up @@ -370,6 +381,13 @@ jobs:
with:
repository: MODFLOW-USGS/modflow6-testmodels
path: modflow6-testmodels

- name: Checkout modflow6-examples
uses: actions/checkout@v3
with:
repository: w-bonelli/modflow6-examples
ref: PRT
path: modflow6-examples

- name: Setup Micromamba
uses: mamba-org/setup-micromamba@v1
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,14 @@ on:
- master
- develop
- ci-diagnose*
- PRT
paths-ignore:
- '.github/workflows/release.yml'
pull_request:
branches:
- master
- develop
- PRT
paths-ignore:
- '.github/workflows/release.yml'
jobs:
Expand Down
124 changes: 124 additions & 0 deletions .github/workflows/prt.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
name: MODFLOW 6 PRT dev build
# Only permit one development build to run at once.
# If a new build is triggered the previous cancels.
concurrency:
group: dev-dist
cancel-in-progress: true
on:
push:
branches:
- PRT
paths-ignore:
- '**.md'
- 'doc/**'
pull_request:
branches:
- PRT
paths-ignore:
- '**.md'
- 'doc/**'
schedule:
- cron: '0 2 * * *'
jobs:
set_options:
name: Set release options
if: github.ref_name != 'master'
runs-on: ubuntu-22.04
defaults:
run:
shell: bash -l {0}
outputs:
version: ${{ steps.set_version.outputs.version }}
steps:

- name: Checkout modflow6
uses: actions/checkout@v3
with:
repository: ${{ github.repository_owner }}/modflow6
ref: PRT

- name: Set version
id: set_version
run: |
ver=$(cat version.txt | xargs)
echo "version=$ver" >> $GITHUB_OUTPUT
make_dist:
name: Make distribution
needs: set_options
# don't make distribution if triggering event is pull request
if: github.event_name == 'push' || github.event_name == 'schedule'
uses: MODFLOW-USGS/modflow6/.github/workflows/release.yml@develop
with:
approve: false
branch: PRT
developmode: true
full: false
linux_version: ubuntu-20.04
run_tests: false
version: ${{ needs.set_options.outputs.version }}+prt

release:
name: Create release
needs: make_dist
runs-on: ubuntu-22.04
defaults:
run:
shell: bash
# don't create a release post if triggering event is pull request
if: github.event_name == 'push' || github.event_name == 'schedule'
steps:

- name: Delete Older Releases
uses: dev-drprasad/[email protected]
with:
keep_latest: 10
delete_tags: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Download artifacts
uses: actions/download-artifact@v3
with:
path: nightly

- name: List artifacts
working-directory: nightly
run: |
echo "artifacts include:"
ls -lR .
- name: Prune artifacts
working-directory: nightly
run: |
echo "pruning artifacts"
for f in mf*/mf*; do mv -- "$f" "$(basename $f)"; done
for f in *.zip; do mv -- "$f" "${f##mf*prt_}"; done
find mf* -type d -delete
rm -rf bin-*
rm -rf release_notes
echo "release assets include:"
ls -lR .
- name: Get date
uses: josStorer/get-current-time@v2
id: current-time
with:
format: YYYYMMDD

- name: Show time
env:
TIME: "${{ steps.current-time.outputs.time }}"
F_TIME: "${{ steps.current-time.outputs.formattedTime }}"
run: echo $TIME $F_TIME

- name: Create release
uses: ncipollo/release-action@v1
with:
tag: ${{ steps.current-time.outputs.formattedTime }}
name: ${{ steps.current-time.outputs.formattedTime }} PRT development build
body: "MODFLOW 6 PRT development build, compiled with Intel Fortran."
draft: false
allowUpdates: true
token: ${{ secrets.GITHUB_TOKEN }}
artifacts: "nightly/*.zip,nightly/doc/*.pdf"
Loading

0 comments on commit ec45eaf

Please sign in to comment.