Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Y1 #350

Closed
wants to merge 657 commits into from
Closed

Y1 #350

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
657 commits
Select commit Hold shift + click to select a range
635ad49
Merge branch 'y1-update-cfl-dt' into y1-merge-cfl-dt
MTCam Jul 13, 2021
b32d7e6
Bring up-to-date with CFL/DT
MTCam Jul 13, 2021
2fe8e90
Update CFL reporting - report nodal max
MTCam Jul 13, 2021
5f13102
Merge branch 'enable-cfl-and-dt' into y1-merge-cfl-dt
MTCam Jul 13, 2021
8024d2b
Sync with cfl/dt
MTCam Jul 13, 2021
c4f8419
Add gitattributes
MTCam Jul 13, 2021
cf7e5cb
Bring up-to-date with main.
MTCam Jul 13, 2021
901b265
Merge branch 'main' into y1-production
MTCam Jul 14, 2021
8ea0727
Merge branch 'main' into mrg-main-to-y1
MTCam Jul 14, 2021
e4485e6
Merge branch 'navier-stokes' into mrg-ns-to-y1
MTCam Jul 14, 2021
441b24e
Correct whitespace in vortex example?
MTCam Jul 14, 2021
dcb906a
Merge remote-tracking branch 'origin/main' into y1-production
majosm Jul 14, 2021
493767e
fix CURRENT_FORK_OWNER
majosm Jul 14, 2021
fc278bb
Move the CURRENT_FORK_OWNER back to illinois-ceesd
MTCam Jul 14, 2021
257f18d
Update production testing setup to be slightly more robust against wi…
MTCam Jul 14, 2021
d92fc90
update production testing scripts
MTCam Jul 14, 2021
50a6778
Merge branch 'robustify-production-testing' into y1-production
MTCam Jul 14, 2021
5c631f2
Retain my (y1) copy of the production testing script - forever.
MTCam Jul 14, 2021
a4799cc
Merge main into y1
MTCam Jul 15, 2021
cc1d0c0
Merge branch 'main' into memoize-dv-main
MTCam Jul 15, 2021
d61e435
Use y1-production proper
MTCam Jul 15, 2021
ac3b155
Use y1 proper
MTCam Jul 15, 2021
eb15f5d
Update to memoization
MTCam Jul 15, 2021
eb19e95
Use y1-memoize branch for production
MTCam Jul 15, 2021
4f35ed3
Merge branch 'memoize-dv-main' into y1-memoize
MTCam Jul 15, 2021
330da96
Merge branch 'main' into memoize-dv-main
MTCam Jul 15, 2021
4005f6f
Use better names for the getters.
MTCam Jul 15, 2021
7c31144
Merged current memoize
MTCam Jul 15, 2021
daf98f1
Use y1 proper
MTCam Jul 16, 2021
700f3ad
Merge branch 'main' into mrgmn
MTCam Jul 16, 2021
6b62a3c
Merge branch 'main' into y1-production
MTCam Jul 16, 2021
9321865
Merge branch 'main' into y1-production
MTCam Jul 17, 2021
3b5d5f9
Laxify the examples in production (#441)
MTCam Jul 17, 2021
ad0e105
Merge branch 'main' into y1-production
MTCam Jul 17, 2021
0194703
Use array context comparison in init
MTCam Jul 18, 2021
ef9798c
Merge branch 'main' into mrgmn
MTCam Jul 18, 2021
1665ad0
Merge branch 'main' into mrgmn
MTCam Jul 19, 2021
aedbb43
Merge branch 'main' into y1-production
MTCam Jul 19, 2021
6e225de
Merge branch 'main' into y1-production
MTCam Jul 20, 2021
f1cd591
Pick up VTK requirement
MTCam Jul 20, 2021
0b07a5c
Merge branch 'main' into y1-production
MTCam Jul 20, 2021
6544c7d
Merge branch 'main' into y1-production
MTCam Jul 20, 2021
20dd0b7
Bring back time arg to init
MTCam Jul 21, 2021
763d7af
Merge branch 'add-av-to-ns-actx' into av-to-mrgns
MTCam Jul 21, 2021
c23e5ad
Merged up to y1-production
MTCam Jul 21, 2021
3f0ea39
Merged AV, current Euler, NS
MTCam Jul 21, 2021
dfcb4b5
Remove VTK from reqs
MTCam Jul 21, 2021
59e7afb
Remove jump operator, prefer built-in
MTCam Jul 21, 2021
b652906
Merge branch 'main' into mrgmn
MTCam Jul 21, 2021
ba3e59c
recover gmsh
MTCam Jul 21, 2021
ddd960e
Add local maximum species diffusivity calculation (#420)
jlevine18 Jul 22, 2021
927f6b2
Fix up the diffusivity presence check
MTCam Jul 22, 2021
47f70d1
Merge main
MTCam Jul 23, 2021
c13591e
Merge branch 'main' into y1-production
MTCam Jul 23, 2021
3586065
Merge branch 'main' into y1-production
MTCam Jul 23, 2021
0aabcf0
Merge branch 'navier-stokes' into remerge-ns
MTCam Jul 26, 2021
2ac137b
Fixed missing raise.
MTCam Jul 26, 2021
90505b3
Merge branch 'main' into mrgmn
MTCam Jul 26, 2021
71d7d0a
Merge branch 'main' into mrgmn
MTCam Jul 27, 2021
5acba88
Add exact soln to Poiseuille case
MTCam Jul 27, 2021
cfc7149
Correct initialization code in Poiseuille test.
MTCam Jul 27, 2021
4a2d590
Evict gmsh from requirements.txt (#461)
MTCam Jul 28, 2021
5e52d5f
Merge branch 'main' into y1-production
MTCam Jul 28, 2021
d54c7b1
Merge branch 'product-rule-grads' into mrgup
MTCam Jul 29, 2021
92626ab
Merge branch 'main' into y1-production
MTCam Jul 29, 2021
1ddeefe
Add a blurb to limit species mass fraction.
MTCam Jul 29, 2021
40f2f10
Merge branch 'spec-limit' into y1-production
MTCam Jul 29, 2021
6e94b7d
Merge branch 'main' into y1-production
MTCam Jul 30, 2021
32e47fc
Merge branch 'main' into y1-production
MTCam Jul 30, 2021
a25d80a
Merge branch 'main' into y1-production
MTCam Jul 31, 2021
39c5d81
Merge branch 'main' into y1-production
MTCam Aug 3, 2021
77ccb3e
Merge branch 'navier-stokes' into mrgup
MTCam Aug 3, 2021
dc9abbd
Switch temporarily to test
MTCam Aug 3, 2021
0bc1354
Undo production switch
MTCam Aug 3, 2021
70c2ccf
Fix up viscous timestep estimate for non-DOFArray diffusivities
MTCam Aug 3, 2021
57d771c
Fix up initializers with new EOS API
MTCam Aug 3, 2021
ba73afa
Fix up viscous timestep to deal with non DOFArrays
MTCam Aug 3, 2021
cd0f517
Merge branch 'main' into y1-production
MTCam Aug 3, 2021
f1c9938
Fix per new transport API
MTCam Aug 4, 2021
0c0701c
Merge branch 'main' into y1-production
MTCam Aug 4, 2021
f4655b6
Merge branch 'main' into y1-production
MTCam Aug 5, 2021
361cdec
Split inviscid/euler tests.
MTCam Aug 5, 2021
369fa01
Merge branch 'main' into y1-production
MTCam Aug 5, 2021
f2c9780
Fix misplaced rank check
MTCam Aug 13, 2021
993f901
Merge branch 'main' into y1-production
MTCam Aug 16, 2021
ae70244
Merge upstream
MTCam Aug 21, 2021
8830bb1
Update from upstream
MTCam Aug 21, 2021
660de61
Merge branch 'navier-stokes' into add-av-to-ns-actx
MTCam Aug 21, 2021
2cdf5b9
Add back gmsh to requirements
MTCam Aug 21, 2021
bdd9b8c
Merge branch 'add-disc-init-to-ns-actx' into build-y1
MTCam Aug 21, 2021
3ea4cae
Update from upstream
MTCam Aug 21, 2021
9caa2ec
Y1 production update (#487)
MTCam Aug 21, 2021
d10d059
Remove gmsh from requirements
MTCam Aug 21, 2021
bde93b9
Merge branch 'y1-production-update' into y1-production
MTCam Aug 21, 2021
913eea9
Fix up power law transport to be functional.
MTCam Aug 22, 2021
e2a6a55
Merge branch 'navier-stokes' into add-av-to-ns-actx
MTCam Aug 22, 2021
ed57e7b
Merge branch 'navier-stokes' into build-y1
MTCam Aug 22, 2021
ed4b28c
Merge branch 'add-av-to-ns-actx' into build-y1
MTCam Aug 22, 2021
409d31d
Merge branch 'add-disc-init-to-ns-actx' into build-y1
MTCam Aug 22, 2021
4b6ea9f
Merge branch 'build-y1' into y1-production
MTCam Aug 22, 2021
448e72e
Merge branch 'navier-stokes' into add-av-to-ns-actx
MTCam Aug 23, 2021
7d945a5
Merge branch 'navier-stokes' into build-y1
MTCam Aug 23, 2021
fcf6e4d
Merge branch 'add-av-to-ns-actx' into build-y1
MTCam Aug 23, 2021
e5c8db1
Merge branch 'add-disc-init-to-ns-actx' into build-y1
MTCam Aug 23, 2021
422ec67
Merge branch 'build-y1' into y1-production
MTCam Aug 23, 2021
954348d
Update doublemach example with developments from upstream
MTCam Aug 23, 2021
df9cd98
Merge branch 'navier-stokes' into add-av-to-ns-actx
MTCam Aug 23, 2021
d5fd42d
Merge branch 'navier-stokes' into build-y1
MTCam Aug 23, 2021
b32f544
Merge branch 'add-av-to-ns-actx' into build-y1
MTCam Aug 23, 2021
345c4e7
Merge branch 'add-disc-init-to-ns-actx' into build-y1
MTCam Aug 23, 2021
5b15475
Merge branch 'build-y1' into y1-production
MTCam Aug 23, 2021
c65c653
Fix bug in av boundary routine
MTCam Aug 23, 2021
c5e9d1b
Merge branch 'add-av-to-ns-actx' into build-y1
MTCam Aug 23, 2021
f013434
Merge branch 'add-disc-init-to-ns-actx' into build-y1
MTCam Aug 23, 2021
a177e87
Merge branch 'build-y1' into y1-production
MTCam Aug 23, 2021
e999d03
Remove whitespace to match upstream
MTCam Aug 23, 2021
6754804
Merge branch 'navier-stokes' into add-av-to-ns-actx
MTCam Aug 24, 2021
778ff88
Merge branch 'navier-stokes' into build-y1
MTCam Aug 24, 2021
a3405a6
Merge branch 'add-av-to-ns-actx' into build-y1
MTCam Aug 24, 2021
ba19bca
Merge branch 'add-disc-init-to-ns-actx' into build-y1
MTCam Aug 24, 2021
a3b349f
Merge branch 'build-y1' into y1-production
MTCam Aug 24, 2021
7c887e0
Merge branch 'navier-stokes' into add-av-to-ns-actx
MTCam Aug 25, 2021
1ea26ea
Merge branch 'navier-stokes' into build-y1
MTCam Aug 25, 2021
d118b89
Merge branch 'add-av-to-ns-actx' into build-y1
MTCam Aug 25, 2021
4d45181
Merge branch 'add-disc-init-to-ns-actx' into build-y1
MTCam Aug 25, 2021
96f47a2
Merge branch 'build-y1' into y1-production
MTCam Aug 25, 2021
124ac0b
Disable some portions of viscous flux temporarily for performance test.
MTCam Aug 26, 2021
414d24d
Add bozzle case to examples.
MTCam Aug 30, 2021
172f5ef
Add quick temporary util to get boundary info for performance debugging
MTCam Sep 1, 2021
116d768
Placate flake8
MTCam Sep 1, 2021
ebfec7d
Merge branch 'main' into mrgmain
MTCam Sep 12, 2021
b30e383
Delete bozzle from y1-production - causes CI fail.
MTCam Sep 12, 2021
8c953dd
mix-enable adiabaticnoslip
MTCam Sep 17, 2021
99bbe33
Merge branch 'main' into build-y1
MTCam Sep 20, 2021
db57d21
Merge branch 'navier-stokes' into build-y1
MTCam Sep 20, 2021
21df581
Merge branch 'build-y1' into mrgy1
MTCam Sep 20, 2021
2676958
Merge branch 'main' into test-y1
MTCam Sep 20, 2021
fc11f40
Switch-up production testing env temporarily
MTCam Sep 20, 2021
9bb772f
Update production install cause we are testing production branch itself
MTCam Sep 20, 2021
5ad71c2
Update production install cause we are testing production branch itself
MTCam Sep 20, 2021
4c81845
Revert to usual env before merge with y1-production
MTCam Sep 20, 2021
d429ee0
Merge branch 'main' into build-y1
MTCam Sep 20, 2021
85992e0
Merge branch 'navier-stokes' into build-y1
MTCam Sep 20, 2021
a208d96
Merge branch 'build-y1' into y1-production
MTCam Sep 20, 2021
b7ef6d4
Merge branch 'thermochem-override' into build-y1
MTCam Sep 23, 2021
aed7d23
Merge branch 'build-y1' into y1-production
MTCam Sep 23, 2021
815fcfc
Merge branch 'main' into build-y1
MTCam Sep 24, 2021
54017ac
Merge branch 'build-y1' into y1-production
MTCam Sep 24, 2021
6128d44
Correct some mistakes in isothermal noslip imp
MTCam Oct 6, 2021
ed0ae0d
Use correct BC
MTCam Oct 6, 2021
10724ec
Add hotplate example
MTCam Oct 8, 2021
60a7b86
Fix Poiseuille test boundary issue
MTCam Oct 11, 2021
6e4cb1d
Switch doublemach example back to Euler.
MTCam Oct 15, 2021
dbd1040
Merge from upstream
MTCam Oct 18, 2021
ca13674
account for the fact that nodal reductions now return device scalars
majosm Sep 24, 2021
599d7e6
temporarily change grudge branch
majosm Oct 11, 2021
dfb511d
account for h_min/max_from_volume returning device scalars
majosm Oct 20, 2021
47f1447
use arraycontext.outer in flux functions (#517)
majosm Oct 21, 2021
71d844b
Merge branch 'main' into navier-stokes
MTCam Oct 21, 2021
d7c6266
Merge branch 'main' into nodal-reduction-device-scalar
majosm Oct 22, 2021
50cd5dd
Update ci.yaml (#529)
matthiasdiener Oct 24, 2021
22d2516
Merge branch 'main' into nodal-reduction-device-scalar
majosm Oct 25, 2021
03a6ec8
Merge branch 'main' into navier-stokes
MTCam Oct 25, 2021
aa76745
Merge branch 'main' into mrgmain
MTCam Oct 25, 2021
9cc8d60
Use new thermochem wrapper class (#512)
MTCam Oct 25, 2021
2ff77c0
Merge upstream
MTCam Oct 26, 2021
980f6dd
Add backwards-compatible thermochem interface.
MTCam Oct 26, 2021
598519e
Update nsmix for new thermochem interface.
MTCam Oct 26, 2021
43a21e7
Merge branch 'main' into navier-stokes
MTCam Oct 26, 2021
28e67b9
Update from upstream
MTCam Oct 26, 2021
abe99d1
remove explicit actx argument from advance_state
majosm Oct 26, 2021
b7ce3a6
Merge branch 'main' into nodal-reduction-device-scalar
majosm Oct 26, 2021
35191f4
Switch to arraycontext@main
MTCam Oct 26, 2021
11c6422
restore grudge branch
majosm Oct 28, 2021
426e7e2
test production driver changes
majosm Oct 28, 2021
8a9689b
Switch nozzle production driver temporarily.
MTCam Oct 28, 2021
eb19210
Merge device scalars from upstream
MTCam Oct 28, 2021
1ca2978
Update downstream drivers with device scalars
MTCam Oct 28, 2021
32aa4fd
Use *this* branch as production.
MTCam Oct 28, 2021
aaf7734
Source the env file.
MTCam Oct 28, 2021
a97529f
Correct typo
MTCam Oct 28, 2021
c379efa
use to_numpy where approp
MTCam Oct 29, 2021
6464542
Use Y2-production branch for isolator driver
MTCam Oct 29, 2021
563cb0f
Revert the CI settings to new drivers and empty customization
MTCam Oct 29, 2021
6bd03c7
Account for grudge nodal reductions returning device scalars (#518)
majosm Oct 29, 2021
61de24a
Merge upstream
MTCam Oct 29, 2021
dbf1aea
Install mirgecom from existing source, not from scratch.
MTCam Oct 29, 2021
24340fa
Spell conda-env.yml correctly
MTCam Oct 29, 2021
044c852
Set an install prefix
MTCam Oct 29, 2021
12e1360
Find activation script in install location.
MTCam Oct 29, 2021
7881b2a
Merge remote-tracking branch 'origin/MTCam-patch-2' into ci-test-prod…
MTCam Oct 29, 2021
4151991
Configure production testing
MTCam Oct 29, 2021
9d6e82a
Debug ci more
MTCam Oct 29, 2021
ee2d099
full clone
matthiasdiener Oct 29, 2021
7c0fc6f
Clean up production testing scripts
MTCam Oct 29, 2021
65b8da2
Fix script bug
MTCam Oct 29, 2021
54bf4ca
Merge branch 'MTCam-patch-2' into ci-test-production
MTCam Oct 29, 2021
4142d83
Clean up further
MTCam Oct 29, 2021
f4a4af1
Merge branch 'MTCam-patch-2' into ci-test-production
MTCam Oct 29, 2021
8f40e17
Add some production testing docs
MTCam Oct 30, 2021
8a461fa
Sharpen slightly
MTCam Oct 30, 2021
ad8a04b
Sharpen more
MTCam Oct 30, 2021
57adc52
Breakout functionality for hand-running.
MTCam Oct 30, 2021
91650bd
Merge branch 'MTCam-patch-2' into ci-test-production
MTCam Oct 30, 2021
837abd4
Update CI for changes to production test scripts.
MTCam Oct 30, 2021
d4ffa7c
Merge branch 'MTCam-patch-2' into ci-test-production
MTCam Oct 30, 2021
0f3ca63
Rename for consistency
MTCam Oct 30, 2021
b51c5ce
Merge branch 'MTCam-patch-2' into ci-test-production
MTCam Oct 30, 2021
e9fde38
Correct some script names in doc.
MTCam Oct 30, 2021
816418c
Clean up more, remove cruft.
MTCam Oct 30, 2021
492656d
Merge branch 'MTCam-patch-2' into ci-test-production
MTCam Oct 30, 2021
b053d56
Uncustomize production env.
MTCam Oct 30, 2021
8034ba5
Uncustomize production env.
MTCam Oct 30, 2021
314b94e
Merge branch 'MTCam-patch-2' into ci-test-production
MTCam Oct 30, 2021
52e7e14
Merge branch 'ci-test-production' into y1-update-ci
MTCam Oct 30, 2021
0f3a188
Make CI production testing more robust and add documentation (#545)
MTCam Oct 30, 2021
3642ca5
Update integrators to handle reference state
MTCam Nov 1, 2021
c76a91b
update to use reference state for seeding temperature
MTCam Nov 1, 2021
a7b3575
Update to use reference state
MTCam Nov 1, 2021
0d0c040
Publicize temperature update routine for use in health checking.
MTCam Nov 1, 2021
3a6cf36
Merge branch 'main' into remove-advance-state-actx
majosm Nov 2, 2021
0c56fb1
rename _evaluate_state -> _force_evaluation
majosm Nov 2, 2021
c0d0d3e
Merge remote-tracking branch 'origin/main' into y1-production
majosm Nov 3, 2021
23e8100
Merge branch 'remove-advance-state-actx' into y1-production-remove-ad…
majosm Nov 3, 2021
503a940
Remove explicit `actx` argument from `advance_state` (#530)
majosm Nov 3, 2021
6e8bf71
Merge remote-tracking branch 'origin/main' into y1-production
majosm Nov 3, 2021
4e3aaf5
Refactor to incrementally centralize EOS functions
Nov 4, 2021
6cacf6c
Switch eos-side handling reference_state -> temperature_seed
Nov 4, 2021
947a546
Banish reference state from this machinery
Nov 4, 2021
7ac8b17
Use multistate in driver.
Nov 4, 2021
cd175b9
Update isolator production driver to main branch
MTCam Nov 4, 2021
cf17ab4
Update inviscid flux tests to new interface
Nov 4, 2021
6dce7bb
Switch to main branch for isolator production driver.
Nov 4, 2021
9ac881b
Merge branch 'MTCam-patch-1' into y1-production
Nov 4, 2021
ee7ec33
Update isolator production driver to main branch (#548)
MTCam Nov 4, 2021
f48f5d9
Merge branch 'main' into y1-production
Nov 4, 2021
49ecc9d
Update NS to new inviscid flux interface.
Nov 4, 2021
70720de
Merge branch 'y1-production' into seed-boundary-temperature
Nov 4, 2021
18591a1
Update inviscid divergence flux boundary interface.
Nov 5, 2021
97013bb
Sharpen docstrings
Nov 5, 2021
6a2acb0
Merge branch 'inviscid-boundary-interface' into mrgibi
Nov 5, 2021
e06aafb
Correct interface error
Nov 5, 2021
03a5e22
Merge branch 'main' into mrgmn2
Nov 5, 2021
78f215f
Merge from upstream
Nov 5, 2021
f800b4d
Merge upstream
Nov 5, 2021
a2787bc
Remove extraneous indentation in PR dev docs
inducer Nov 5, 2021
5b78cb2
Update from downstream
Nov 5, 2021
102d83e
Merge branch 'main' into inviscid-boundary-interface
Nov 5, 2021
f27c982
Merge branch 'inviscid-boundary-interface' into navier-stokes
Nov 5, 2021
0f6c0ec
Merge branch 'navier-stokes' into y1-production
Nov 5, 2021
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
13 changes: 13 additions & 0 deletions .ci-support/install-mirge-from-source.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/bin/bash
set -x
#
# This script is intended to install mirgecom from an uninstalled
# mirgecom source gotten from a fresh clone.
#
EMIRGE_INSTALL_PATH=${1:-"."}

echo "EMIRGE_INSTALL_PATH=${EMIRGE_INSTALL_PATH}"

# Install the version of mirgecom we wish to test from source
./install.sh --skip-clone --install-prefix=${EMIRGE_INSTALL_PATH}/ --conda-env=${EMIRGE_INSTALL_PATH}/mirgecom/conda-env.yml --pip-pkgs=${EMIRGE_INSTALL_PATH}/mirgecom/requirements.txt

39 changes: 39 additions & 0 deletions .ci-support/merge-install-production-branch.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
#!/bin/bash
set -x
#
# This script is designed to patch the CEESD production capability into
# a proposed change to illinois-ceesd/mirgecom@main. The script reads the
# environment config file `.ci-support/production-testing-env.sh`, that
# should set up the expected control variables.
#
# The production capability to test against may be specified outright, or
# patched by the incoming development. The following vars control the
# production environment:
#
# PRODUCTION_BRANCH = The production branch (default=y1-production)
# PRODUCTION_FORK = The production fork (default=illinois-ceesd)
#
MIRGE_HOME=${1:-"."}
PRODUCTION_BRANCH=${PRODUCTION_BRANCH:-"y1-production"}
PRODUCTION_FORK=${PRODUCTION_FORK:-"illinois-ceesd"}

echo "MIRGE_HOME=${MIRGE_HOME}"
echo "PRODUCTION_FORK=$PRODUCTION_FORK"
echo "PRODUCTION_BRANCH=$PRODUCTION_BRANCH"

cd ${MIRGE_HOME}
git status

# This junk is needed to be able to execute git commands properly
git config user.email "ci-runner@ci.machine.com"
git config user.name "CI Runner"

# Making a dedicated production remote adds production forks
git remote add production https://github.com/${PRODUCTION_FORK}/mirgecom
git fetch production

# Merge the production branch for testing the production drivers
git merge production/${PRODUCTION_BRANCH} --no-edit
# Pick up any requirements.txt
pip install -r requirements.txt
cd -
16 changes: 3 additions & 13 deletions .ci-support/production-driver-install.sh → .ci-support/production-drivers-install.sh
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,9 @@
# The default values result in an install of the Y1 nozzle driver and
# Wyatt Hagen's isolator driver that work with current MIRGE-Com
# production branch: mirgecom@y1-production.
#
PRODUCTION_DRIVERS=${PRODUCTION_DRIVERS:-"illinois-ceesd/drivers_y1-nozzle@parallel-lazy:illinois-ceesd/drivers_y2-isolator@main:illinois-ceesd/drivers_flame1d@nodal-reduction-device-scalar"}
# Loop over the production drivers, clone them, and prepare for execution
set -x

DEVELOPMENT_BRANCH="$GITHUB_HEAD_REF" # this will be empty for main
PRODUCTION_DRIVERS=""
if [ -n "$DEVELOPMENT_BRANCH" ]; then
PRODUCTION_ENV_FILE="$1"
if [ -e "$PRODUCTION_ENV_FILE" ]; then
. $PRODUCTION_ENV_FILE
fi
fi
# Set to default if testing main, or user left it empty
PRODUCTION_DRIVERS=${PRODUCTION_DRIVERS:-"illinois-ceesd/drivers_y1-nozzle@main:w-hagen/isolator@master:illinois-ceesd/drivers_flame1d@main"}
OIFS="$IFS"
IFS=':'; for production_driver_string in $PRODUCTION_DRIVERS;
do
Expand All @@ -34,7 +24,7 @@ do
PRODUCTION_DRIVER_DIR="production_driver_$PRODUCTION_DRIVER_NAME"
git clone -b "$PRODUCTION_DRIVER_BRANCH" https\://github.com/"$PRODUCTION_DRIVER_REPO" "$PRODUCTION_DRIVER_DIR"
cd "$PRODUCTION_DRIVER_DIR"/smoke_test
ln -s *.py driver.py
ln -s *.py driver.py # name the driver generically
cd ../..
done
IFS="$OIFS"
Expand Down
16 changes: 16 additions & 0 deletions .ci-support/production-drivers-run.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#!/bin/bash
set -x
# This script is designed to run the CEESD "production" drivers after
# they have been prepared by an external helper script called
# production-drivers-install.sh. The drivers are each expected to be
# in a directory called "production_driver_*" and are expected to have
# a test driver in "production_driver_*/smoke_test/driver.py".
DRIVERS_HOME=${1:-"."}
cd ${DRIVERS_HOME}
for production_driver in $(ls | grep "production_driver_");
do
cd "$production_driver"/smoke_test
python -m mpi4py ./driver.py -i run_params.yaml
cd ../../
done
cd -
63 changes: 0 additions & 63 deletions .ci-support/production-install.sh

This file was deleted.

15 changes: 4 additions & 11 deletions .ci-support/production-testing-env.sh
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,19 +1,12 @@
#!/bin/bash
set -x
#
# This script is designed to help customize the production environemtn
# This script is designed to help customize the production environment
# under which CEESD production capability is tested under a proposed change
# to illinois-ceesd/mirgecom@main. If necessary, the script sets the
# following vars:
# to illinois-ceesd/mirgecom@main.
#
# The proposed changes to test may be in a fork, or a local branch. For
# forks, the environment config files should set:
#
# export DEVELOPMENT_FORK="" # the fork/home of the development
#
# The production capability to test against may be specified outright, or
# patched by the incoming development. The following vars control the
# production environment:
# The production capability may be in a CEESD-local mirgecom branch or in a
# fork, and is specified through the following settings:
#
# export PRODUCTION_BRANCH="" # The base production branch to be installed by emirge
# export PRODUCTION_FORK="" # The fork/home of production changes (if any)
Expand Down
25 changes: 14 additions & 11 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,8 @@ jobs:
MINIFORGE_INSTALL_DIR=.miniforge3
. "$MINIFORGE_INSTALL_DIR/bin/activate" testing
cd test
python -m pytest --cov=mirgecom --durations=0 --tb=native --junitxml=pytest.xml --doctest-modules -rxsw . ../doc/*.rst ../doc/*/*.rst
python -m pip install pytest-xdist
python -m pytest -n auto --cov=mirgecom --durations=0 --tb=native --junitxml=pytest.xml --doctest-modules -rxsw . ../doc/*.rst ../doc/*/*.rst

examples:
name: Examples
Expand Down Expand Up @@ -163,22 +164,24 @@ jobs:

steps:
- uses: actions/checkout@v2
with:
fetch-depth: '0'
- name: Prepare production environment
run: |
[[ $(uname) == Linux ]] && sudo apt-get update && sudo apt-get install -y openmpi-bin libopenmpi-dev
[[ $(uname) == Darwin ]] && brew update && brew install mpich
MIRGEDIR=$(pwd)
cat .ci-support/production-testing-env.sh
. .ci-support/production-testing-env.sh
cd ..
git clone https://github.com/illinois-ceesd/emirge emirge.y1
cd emirge.y1
. ../mirgecom/.ci-support/production-install.sh ../mirgecom/.ci-support/production-testing-env.sh
. ../mirgecom/.ci-support/install-mirge-from-source.sh ${MIRGEDIR}/..
source ${MIRGEDIR}/../config/activate_env.sh
. ../mirgecom/.ci-support/merge-install-production-branch.sh ${MIRGEDIR}
- name: Run production test
run: |
cd ..
source emirge.y1/config/activate_env.sh
. mirgecom/.ci-support/production-driver-install.sh mirgecom/.ci-support/production-testing-env.sh
for production_driver in $(ls | grep "production_driver_");
do
cd "$production_driver"/smoke_test
python -m mpi4py ./driver.py -i run_params.yaml
cd ../../
done
. .ci-support/production-testing-env.sh
source ../config/activate_env.sh
. .ci-support/production-drivers-install.sh .
. .ci-support/production-drivers-run.sh .
86 changes: 86 additions & 0 deletions doc/development/pullrequests.rst
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,92 @@ commit, you can use a git hook such as the following one (save this script as

While highly recommended, hooks can sometimes be annoying. After setting up your hooks, you can use ``git --no-verify`` or equivalently ``git -n`` to run ``git`` commands without triggering the hooks.

Production Testing in CI
------------------------

The CI testing in mirgecom includes a set of "production" tests which help
detect when a proposed change in a PR breaks the CEESD prediction capability
toolchain. Most developments and PRs do not require special considerations
for the production tests, but any production test failures will require
a bit of care to resolve.

When PRs run afoul of the CI production tests, it indicates that if the PR
change set merges to main, then the "production" capability of mirgecom will
not function until the production capability and the change set are brought
into accordance.

To resolve CI production test failures for a development in PR, it is often useful
to run the production tests manually. The production tests may be prepared and
executed from anywhere by hand-executing the production test scripts found in
``.ci-support/``. The following is an example workflow adjacent to what CI itself
does for executing the production tests.

1. Check out the PR development (and optionally make a production branch)

The PR development is assumed to be in a mirgecom branch called ``branch-name``
and possibly in a fork called ``fork-name``.

.. code:: bash

$ # For ceesd-local branches:
$ git clone -b branch-name git@github.com:/illinois-ceesd/mirgecom
$ # Or for developer fork:
$ git clone -b branch-name git@github.com:/fork-name/mirgecom
$ cd mirgecom # or loopy, meshmode, ...
$ git switch -c branch-name-production # Optional production branch

2. Set up the production environment and capability

.. code:: bash

$ # Load the customizable production environment
$ . .ci-support/production-testing-env.sh
$ # Merge the production branch
$ . .ci-support/merge-install-production-branch.sh .

If Step 2 fails, i.e. if there are merge conflicts, then those must
be resolved. Push the merged result to CEESD or a fork, and indicate
that version in the PRODUCTION_FORK, and PRODUCTION_BRANCH env vars in
``.ci-support/production-testing-env.sh``.

3. Grab and run the production tests

.. code:: bash

$ # Load env if needed
$ . .ci-support/production-testing-env.sh
$ # Get the production tests
$ . .ci-support/production-drivers-install.sh .
$ # Run the production tests
$ . .ci-support/production-drivers-run.sh .

Step 3 will clone the production driver repos to the current directory,
with each driver in its own directory. If any of the drivers fail to
work with the current development, then they may be modified into working
condition and then pushed to a repo/branch. Indicate the location of the working
drivers in the PRODUCTION_DRIVERS env var customization in
``.ci-support/production-testing-env.sh``.

4. Update the PR to reflect the change in production environment (if any)

Push the customized production ``.ci-support/production-testing-env.sh``
settings to the PR development branch. Upon push, mirgecom CI will
try the production tests again, now with the customized environment.


If the PR development requires production environment customization in order to
pass production tests, then care and coordination will be required to get these
changes merged into the main mirgecom development. PR reviewers will help
with this process. If the PR is accepted for merging to main, then mirgecom
developers will update the production capabilities to be compatible with
the changes before merging.

.. important::

Any production environment customizations must be backed out before
merging the PR development to main. Never merge a PR development with
production environment customizations in-place.

Merging a pull request
----------------------

Expand Down
Loading