-
Notifications
You must be signed in to change notification settings - Fork 97
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add CI to check runtime parameters (#2577)
This will check all of the inputs files to make sure the runtime parameters in the namespaces defined in _cpp_parameters are all valid. Note: at the moment, we skip radiation parameters and we also don't test on Microphysics. This also updates problems found in existing inputs files.
- Loading branch information
Showing
25 changed files
with
134 additions
and
54 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
name: check runtime params | ||
|
||
on: | ||
push: | ||
branches: | ||
- development | ||
- main | ||
pull_request: | ||
branches: | ||
- development | ||
|
||
jobs: | ||
check-runtime-params: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- uses: actions/checkout@v3 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Get submodules | ||
run: | | ||
git submodule update --init | ||
cd external/Microphysics | ||
git fetch; git checkout development | ||
cd ../amrex | ||
git fetch; git checkout development | ||
cd ../.. | ||
- name: Setup Python | ||
uses: actions/setup-python@v4 | ||
with: | ||
python-version: '3.11' | ||
|
||
- name: Cache pip | ||
uses: actions/cache@v3 | ||
with: | ||
# this path is specific to Ubuntu | ||
path: ~/.cache/pip | ||
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} | ||
restore-keys: | | ||
${{ runner.os }}-pip- | ||
- name: Run check-params | ||
run: | | ||
PYTHONPATH=external/Microphysics/util/build_scripts python .github/workflows/check_params.py . |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
import argparse | ||
import importlib | ||
import os | ||
import re | ||
from pathlib import Path | ||
import sys | ||
|
||
# some parameters that are not defined in _cpp_parameters | ||
|
||
whitelist = ["castro.lo_bc", | ||
"castro.hi_bc", | ||
"gravity.abs_tol", | ||
"gravity.rel_tol"] | ||
|
||
# we don't have all of the radiation parametrs in the _cpp_parameters | ||
# yet, so we won't check these namespaces | ||
|
||
namespace_ignore = ["radiation", "radsolve"] | ||
|
||
def doit(castro_dir): | ||
|
||
castro = Path(os.path.abspath(castro_dir)) | ||
|
||
# import the module that defines the Castro runtime params | ||
sys.path.append(str(castro / "Source" / "driver/")) | ||
import parse_castro_params | ||
|
||
# read in the parameters defined in _cpp_parameters | ||
param_file = castro / "Source" / "driver" / "_cpp_parameters" | ||
params = parse_castro_params.read_param_file(str(param_file)) | ||
|
||
namespaces = set(p.namespace for p in params) | ||
runtime_parameters = [f"{p.namespace}.{p.name}" for p in params] | ||
|
||
pattern = re.compile(r"[A-Za-z0-9_]+\.[A-Za-z0-9_]+", re.IGNORECASE) | ||
|
||
# loop over all the inputs files | ||
exec_path = castro / "Exec" | ||
for f in exec_path.glob("**/inputs*"): | ||
|
||
if os.path.isdir(f): | ||
continue | ||
|
||
# find all the params in each namespace | ||
with open(f) as infile: | ||
print(f"working on {f}") | ||
for line in infile: | ||
# remove comments | ||
idx = line.find("#") | ||
if idx > 0: | ||
line = line[idx:] | ||
|
||
found_param = pattern.match(line) | ||
if not found_param: | ||
continue | ||
|
||
p = found_param.group(0) | ||
nm = p.split(".")[0] | ||
if nm in namespaces and nm not in namespace_ignore: | ||
if not (p in runtime_parameters or p in whitelist): | ||
sys.exit(f"Error: {p} not valid") | ||
|
||
|
||
if __name__ == "__main__": | ||
|
||
# we need the top-level Castro directory | ||
|
||
p = argparse.ArgumentParser() | ||
p.add_argument("castro_dir", type=str, nargs=1, | ||
help="top level Castro directory") | ||
|
||
args = p.parse_args() | ||
|
||
doit(args.castro_dir[0]) | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters