Updating Griffin schema and structural improvements
-
Worked to update the schema to only expose necessary options for each solver type (DFEM-Diffusion, DFEM-SN, DFEM-SN w. CMFD, HFEM-PN, and HFEM-Diffusion). Now, the solver type is also linked to an executioner type, so only a single Executioner type is compatible with each solver type, and this is enforced within the schema
-
Prerun and precheck tests have been updated to support this schema. No user options are actually provided in the prerun input files, so this will basically default the runtime options to use the default options defined by the griffin executable
-
The schema structure reorganization has simplified the logic for defining the griffin options file, and the code to create the griffin options file has been updated.
-
The type of griffin solver dictates how the mesh input block is defined now (for example, HFEM solvers need
build_all_lowerd_mesh = true
in the Mesh block, DFEM-SN CMFD solver needs the coarse mesh elements defined in the Mesh block), so now the griffin options file is generated first, and a global variable self.scheme_name is propagated to the mesh definition stage to define all of these extra blocks/parameters steps in the Mesh block if necessary -
All test input files and griffin schema template files are moved to a common directory (
test/data/griffin
for griffin test input files,etc/templates/griffin
for griffin schema template files) I would like to continue to sandbox PyGriffin-related files from other files so that down the line if we need to move files over from PyARC to PyGriffin this process can be done relatively smoothly. Otherwise, there is no organization of these files in PyARC and moving files between PyARC and PyGriffin will be a painful process -
The prerun tests are organized as followed: 3 mcc3-related tests (bucklingsearch, twodant, twodant-heterogeneous), 4 geometry-related tests (full-core homogeneous with quad-hex discretization, full-core homogeneous with tri-hex discretization, full-core homogeneous with null assembly definition, and full-core homogeneous with large number of rings), and 5 griffin solver-related tests (dfem-diffusion, dfem-sn, dfem-sn-cmfd, hfem-diffusion, and hfem-pn). Since the process of xs generation, mesh generation, and Griffin solver option definition are relatively isolated from each other, I propose we keep adding to these three test types (xs, mesh, and solver) in case we want to add more tests in the future
-
pygriffin_run tests have not been updated yet, but the tests in pygriffin_prerun can be used as a template to fill in the Griffin options required to get PyGriffin to run from start to finish in a reasonable amount of time.