PyNUBOW Prerun and Test: Creates and tests necessary input files to be able to run NUBOW3D
Prerequisites Checklist
Self-review checklist:
-
My code follows the style guidelines and software coding standards for this project. -
I have performed a self-review of my code. -
I have commented my code, particularly in hard-to-understand areas. -
I have added appropriate tests that prove my fix/feature is effective. -
If the source branch will not be used after this MR, I have set it to be deleted upon merging.
Documentation checklist:
-
I have checked the README and updated it if necessary. -
I have checked the tutorial and made any documenation or results updates if necessary. -
I have updated the CHANGELOG.
Description of Changes
PyNUBOW Prerun and Test: Creates and tests necessary input files to be able to run NUBOW3D.
Type of change
-
Bug fix (non-breaking change which fixes an issue) -
New feature (non-breaking change which adds functionality) -
Breaking change (fix or feature that would cause existing functionality to not work as expected or break backwards compatibility)
PyNUBOW Prerun (in PyARC/PyNUBOW.py)
NUBOW3D uses two types of input files: time-step dependent and non-dependent.
There are two time-step dependent files giving (multiplied by the number of time-steps):
- the temperature distribution
- the fast flux distribution
There are two non-dependent time-step files:
- nubow3d
- adjacency
The PyNUBOW Prerun aims to write the nubow3d file (because others can be gathered from DASSH).
The nubow3d file is made up of string concatenations.
It mostly consists of gathering input from the PyARC user input file.
But three pieces of work emerge:
- optional inputs management
- duct type assignment to duct id
- non-uniform inertia along the duct
This will all be checked in the following test part.
Test of the PyNUBOW Prerun (in PyARC/test/test_nubow_prerun.py)
The test of the PyNUBOW Prerun consists of comparing the generated nubow3d file with a reference file.
Five tests over five changes are performed:
- geometry: 2 or 9 rings (with assembly type replacements)
- optional inputs: default or optional values
- axial inertia along the duct: uniform or non-uniform
- time steps: one or two
- pressure drop: with or without
Note: the pressure drop is a singular input and is tested separately (not as a simple option) because it is a DASSH output and is associated to the time steps.
Below is a summary table of the tests:
| test | #rings | options | inertia | ttstep | pdrop |
|---|---|---|---|---|---|
| 001 | 2 | no | uniform | one | no |
| 002 | 2 | yes | uniform | one | yes |
| 003 | 2 | no | non-uniform | one | yes |
| 004 | 9 | no | uniform | one | yes |
| 005 | 2 | no | uniform | two | yes |