GCMR Assembly Multiphysics Model
Point of Contact: Ahmed Abdelhameed (aabdelhameed.at.anl.gov), Yinbin Miao (ymiao.at.anl.gov), Nicolas Stauff (nstauff.at.anl.gov)
Model link: GCMR Assembly Model
Mesh files
commentnote
The meshes for this model are hosted on LFS. Please refer to LFS instructions
The 3-D mesh for the GC-MR assembly displayed in Figure 1 was generated by MOOSE intrinsic meshing tools available in the Reactor module
. This MOOSE-based tool allows a direct construction of assembly or reactor core mesh from simple cartesian and hexagonal unit geometries. The Reactor Module consists of a series of mesh generators to enable meshing of reactor cores. Using MOOSE mesh generators for constructing meshes for reactor geometries entails following the intrinsic geometric hierarchy where the unit cartesian or hexagonal structures (e.g., unit pin-cell structures of control rod, fuel pin) can be assembled into fuel assemblies. The objects in Reactor Module provides direct control of mesh/element size through the input parameters. Adjusting the mesh density from coarse to fine takes little time, streamlining sensitivity analyses on mesh refinement. The consistency between the geometrical representations in the mesh file and the cross-section generation code was verified by directly comparing the volumes of the different blocks/universes. In this example, only the fine mesh is needed for the Griffin input, which is given in Griffin_mesh.e
, and Griffin generates the coarse mesh required for the CMFD acceleration as such:
[Mesh]
[fmg]
type = FileMeshGenerator
file = '../MESH/Griffin_mesh.e'
[]
[fmg_id]
type = SubdomainExtraElementIDGenerator
input = fmg
subdomains = '10 100 102 103 200 201 300 400 401 500 600 8000 8001'
extra_element_id_names = 'material_id equivalence_id'
extra_element_ids = '803 802 810 806 807 807 804 801 801 808 809 805 805;
803 802 810 806 807 807 804 801 801 808 809 805 805'
[]
[coarse_mesh]
type = GeneratedMeshGenerator
dim = 3
nx = 10
ny = 10
nz = 20
xmin = -0.1
xmax = 0.1
ymin = -0.1
ymax = 0.1
zmin = 0.
zmax = 2.
[]
[assign_coarse_id]
type = CoarseMeshExtraElementIDGenerator
input = fmg_id
coarse_mesh = coarse_mesh
extra_element_id_name = coarse_element_id
[]
[]
(microreactors/gcmr/assembly/steady_state/Griffin_steady_state.i)
Figure 1: Three-D mesh representation of the GC-MR assembly
For analysis of the multi-physics, BISON and SAM were coupled with Griffin. A different mesh file were used BISON_mesh.e
in which the coolant channels where removed from the 3-D solid mesh, as the coolant channels were handled separately by SAM. It should be noticed that BISON and SAM are coupled through coolant channel surface.
Griffin Model
For modeling the GC-MR Assembly in 3-D, the neutron transport equation was solved by Griffin using the discrete ordinates SN method for the angular discretization while the discontinuous finite method (DFEM) method was used for the spatial discretization (Abdelhameed et al., 2022) (Stauff et al., 2022). The coarse mesh finite element method (CMFD) acceleration was used to speed up the DFEM solver. On-the-fly coarse mesh generation is done with Griffin. This means that the user doesn’t need to provide a separate coarse mesh file for the calculations. In Griffin, the coarse element IDs of elements on the fine mesh are assigned through overlaying a regular grid, i.e., the elements whose centroids falls into the same regular grid are assigned with the same coarse element ID.
The homogenized multigroup cross-sections were generated using Serpent-2 with ENDF/B-VII.1 data library and then converted to XML-format cross section file and they functionalized with the fuel temperature for eleven energy groups structure. These multigroup structures were generated for the beginning of the cycle condition. The process of generating the multi-group cross-sections using Serpent-2 is outside the scope of this example. The multi-group cross-sections for the various materials are assigned to fill the various blocks of the mesh file. In this problem the materials_id of each material is given one of the numbers from 801 to 810. While the numbers of the mesh blocks are: 10, 100, 102, 103, 200, 201, 300, 400, 401, 500, 600, 8000, and 8001. They are specified in the [Mesh]
block as follows:
subdomains = '10 100 102 103 200 201 300 400 401 500 600 8000 8001'
extra_element_id_names = 'material_id equivalence_id'
extra_element_ids = '803 802 810 806 807 807 804 801 801 808 809 805 805;
803 802 810 806 807 807 804 801 801 808 809 805 805'
(microreactors/gcmr/assembly/steady_state/Griffin_steady_state.i)While CoupledFeedbackMatIDNeutronicsMaterial
material type
was used in the [Materials]
block:
[Materials]
[mod]
type = CoupledFeedbackMatIDNeutronicsMaterial
block = '10 100 102 103 200 201 300 400 401 500 600 8000 8001'
library_file = '../ISOXML/XS_Griffin.xml'
library_name = XS_Griffin
isotopes = 'pseudo'
densities = 1.0
is_meter = true
# power normalization
plus = true
dbgmat = false
grid_names = 'Tmod'
grid_variables = 'Tf'
[]
[]
(microreactors/gcmr/assembly/steady_state/Griffin_steady_state.i)Griffin reads the XML-format cross-section file, XS_Griffin
, and a mesh file Griffin_mesh.e
that specifies the 3-D mesh which has the same geometry as the one used in the cross-section generation code. The consistency between the volumes of the different materials in the Serpent-2 model and in the 3-D mesh were directly compared to verify the geometrical consistency.
The 3-D GC-MR assembly was solved with reflective boundary condition radially and vacuum boundary conditions axially on the top and bottom reflector boundaries. In both the steady-state and the transient Griffin calculations, the DFEM-SN with CMFD was used. Because good accuracy was obtained with the eleven energy groups structure, only small numbers of polar and azimuthal angles were used with the SN solver:
[TransportSystems]
particle = neutron
equation_type = eigenvalue
G = 11
VacuumBoundary = '2000 2001'
ReflectingBoundary = '9000'
[SN]
scheme = DFEM-SN
family = MONOMIAL
order = FIRST
AQtype = Gauss-Chebyshev
NPolar = 2
NAzmthl = 3
NA = 2
n_delay_groups = 6
using_array_variable = true
collapse_scattering = true
hide_angular_flux = true
[]
[]
(microreactors/gcmr/assembly/steady_state/Griffin_steady_state.i)BISON Model
BISON enables thermal-mechanical computation of a reactor core that consists of multiple components/materials, and it was employed to model the heat conduction of the GC-MR assembly. BISON contains a solid list of material properties that are applied in this model, including a recent update of graphite properties. These models include: GraphiteGradeCreepUpdate
, GraphiteGradeElasticityTensor
, GraphiteGradeIrradiationEigenstrain
, GraphiteGradeThermalExpansionEigenstrain
, GraphiteMatrixThermal
, and GraphiteMatrixThermalExpansionEigenstrain
. The updated GraphiteMatrixThermal
that computes thermal conductivity (W/m/K) and specific heat capacity (J/kg/K). The BISON input files for steady-state and transient cases are BISON.i
and BISON_tr
, respectively. The positions of the coolant channels was specified in BISON.i
and BISON_tr
files as such:
coolant_full_points_filename = ../channel_positions/coolant_full_points.txt # File containing the inlet position of your coolant channels
coolant_half_points_filename = ../channel_positions/coolant_half_points.txt # File containing the inlet position of your coolant channels
(microreactors/gcmr/assembly/steady_state/BISON.i)The modelled assembly contains locations at which the full coolant channel is represented and in other locations, at the radial boundary, where only half coolant channel is considered. The files coolant_full_points.txt
and coolant_half_points.txt
include the positions of the full and half coolant channels, respectively. The full coolant channels positions are given as follows:
-0.034641, 0.060000, 0.000000
-0.000000, 0.060000, 0.000000
0.034641, 0.060000, 0.000000
-0.051962, 0.030000, 0.000000
-0.017321, 0.030000, 0.000000
0.017321, 0.030000, 0.000000
0.051962, 0.030000, 0.000000
-0.069282, -0.000000, 0.000000
-0.034641, -0.000000, 0.000000
0.034641, -0.000000, 0.000000
0.069282, -0.000000, 0.000000
-0.051962, -0.030000, 0.000000
-0.017321, -0.030000, 0.000000
0.017321, -0.030000, 0.000000
0.051962, -0.030000, 0.000000
-0.034641, -0.060000, 0.000000
-0.000000, -0.060000, 0.000000
0.034641, -0.060000, 0.000000
(microreactors/gcmr/assembly/channel_positions/coolant_full_points.txt)SAM Model
The System Analysis Module (SAM) is a modern system analysis tool being developed by the NEAMS program for advanced non-LWR safety analysis. SAM was chosen as the system-level thermal-hydraulics code due to its capability to model 1D flow-channels at low computational cost. The coolant flow and conduction through the solid structures were modeled through a coupled SAM 1D Fluid – 3D solid simulation with a convective boundary condition at the solid-fluid interface. Temperatures are exchanged at the interface through the MOOSE MultiApps and Transfers systems. The SAM model utilized its built-in Helium material properties, along with 1D fluid components PBOneDFluidComponent
to simulate the fluid flow of multiple helium coolant channels across the assembly. Additionally, to enable heat transfer between the fluid and solid domains at every time step through the MOOSE transfer system, SAM’s HeatTransferWithExternalHeatStructure
component along LayeredAverage
user objects were employed. For steady-state calculations the SAM_full.i
and SAM_half.i
are the SAM input files for full and half coolant channels, respectively.
Multiphysics Coupling
Multiphysics simulations performed on microreactor models leverage the MOOSE MultiApp system to couple neutronics (Griffin), heat conduction in solid materials (BISON), and coolant channel heat energy transfers (SAM). The coupling logic of these different codes is shown in Figure 2. Each code has its own mesh and corresponding space and time scales.

Figure 2: MultiApp modeling strategy
The 3-D power density distribution is calculated by Griffin and transferred to BISON for performing heat conduction calculations to estimate the fuel temperature. The coolant channels are modelled with SAM to estimate the coolant temperature distributions in all coolant channels. The MOOSE Picard fixed point iteration was used to attain a tightly coupled simulation, where the information is transferred back and forth between the three MOOSE-based applications until convergence of the power source distribution. The MultiApps
blocks in Griffin_steady_state.i
and BISON.i
specify the MuliApp coupling for steady-state calculations, and the MultiApps
blocks in Griffin_transient.i ` and
`BISON_tr.i
specifies the MultiApp coupling for the transient problem. The Transfer system defined in the Transfers
blocks, takes care of data interchange between the different applications, and controls what type of information is transferred and how the transfer will occur.
The power density and fuel temperatures transferred are defined through the Transfer system
. Transfers block in the parent App (Griffin), where MultiAppProjectionTransfer
was used which performs a projection between the parent App and the child App mesh files while conserving the integral of the transferred data. This is suitable for this case since the BISON_mesh.e
and Griffin_mesh.e
are only slightly different. However, generally, if the meshes are different, the MultiAppShapeEvaluationTransfer
is recommended.
[Transfers]
[to_sub_power_density]
type = MultiAppGeneralFieldShapeEvaluationTransfer
to_multi_app = bison
variable = power_density
source_variable = power_density
execute_on = 'timestep_end'
displaced_source_mesh = false
displaced_target_mesh = false
use_displaced_mesh = false
[]
[from_sub_temp]
type = MultiAppGeneralFieldNearestLocationTransfer
from_multi_app = bison
variable = Tf
source_variable = Tfuel
execute_on = 'timestep_end'
use_displaced_mesh = false
[]
[]
(microreactors/gcmr/assembly/steady_state/Griffin_steady_state.i)References
- Ahmed Amin Abdelhameed, Yan Cao, Daniel Nunez, Yinbin Miao, Kun Mo, Changho Lee, Emily Shemon, and Nicolas E. Stauff.
High-fidelity multiphysics modeling of load following for 3-d gas-cooled microreactor assembly using neams codes.
In Proceedings of the ANS Winter. 2022.[BibTeX]
@InProceedings{Ahmed_ANS_2022,
author = "Abdelhameed, Ahmed Amin and Cao, Yan and Nunez, Daniel and Miao, Yinbin and Mo, Kun and Lee, Changho and Shemon, Emily and Stauff, Nicolas E.",
title = "High-Fidelity Multiphysics Modeling of Load Following for 3-D Gas-Cooled Microreactor Assembly using NEAMS Codes",
booktitle = "{Proceedings of the ANS Winter}",
year = "2022"
}
- Nicolas E. Stauff, Ahmed Amin Abdelhameed, Yan Cao, Daniel Nunez, Yinbin Miao, Kun Mo, Changho Lee, Christopher Matthews, Emily Shemon, and Justin Thomas.
Applications of neams codes for multiphysics modeling of several microreactors problems.
In Proceedings of the ANS Winter. 2022.[BibTeX]
@InProceedings{Nicolas_ANS_2022,
author = "Stauff, Nicolas E. and Abdelhameed, Ahmed Amin and Cao, Yan and Nunez, Daniel and Miao, Yinbin and Mo, Kun and Lee, Changho and Matthews, Christopher and Shemon, Emily and Thomas, Justin",
title = "Applications of NEAMS Codes for Multiphysics Modeling of Several Microreactors Problems",
booktitle = "{Proceedings of the ANS Winter}",
year = "2022"
}
(microreactors/gcmr/assembly/steady_state/Griffin_steady_state.i)
######################################################################################################
## Dynamic Multiphysics Modeling of a Flow Blockage accident in Gas-cooled Microreactor Assembly
## Griffin steady state Model
# If using or referring to this model, please cite as explained in
# https://mooseframework.inl.gov/virtual_test_bed/citing.html
#####################################################################################################
[Mesh]
[fmg]
type = FileMeshGenerator
file = '../MESH/Griffin_mesh.e'
[]
[fmg_id]
type = SubdomainExtraElementIDGenerator
input = fmg
subdomains = '10 100 102 103 200 201 300 400 401 500 600 8000 8001'
extra_element_id_names = 'material_id equivalence_id'
extra_element_ids = '803 802 810 806 807 807 804 801 801 808 809 805 805;
803 802 810 806 807 807 804 801 801 808 809 805 805'
[]
[coarse_mesh]
type = GeneratedMeshGenerator
dim = 3
nx = 10
ny = 10
nz = 20
xmin = -0.1
xmax = 0.1
ymin = -0.1
ymax = 0.1
zmin = 0.
zmax = 2.
[]
[assign_coarse_id]
type = CoarseMeshExtraElementIDGenerator
input = fmg_id
coarse_mesh = coarse_mesh
extra_element_id_name = coarse_element_id
[]
[]
[Executioner]
type = SweepUpdate
richardson_abs_tol = 1e-8
richardson_rel_tol = 1e-8
richardson_value = eigenvalue
richardson_max_its = 1000
inner_solve_type = GMRes
max_inner_its = 20
fixed_point_max_its = 1
custom_pp = eigenvalue
custom_rel_tol = 1e-6
force_fixed_point_solve = true
cmfd_acceleration = true #false
coarse_element_id = coarse_element_id
diffusion_eigen_solver_type = newton
prolongation_type = multiplicative
max_diffusion_coefficient = 1
[]
[Debug]
check_boundary_coverage = false
print_block_volume = false
show_actions = false
[]
[AuxVariables]
[Tf]
initial_condition = 873.15
order = CONSTANT
family = MONOMIAL
[]
[]
[TransportSystems]
particle = neutron
equation_type = eigenvalue
G = 11
VacuumBoundary = '2000 2001'
ReflectingBoundary = '9000'
[SN]
scheme = DFEM-SN
family = MONOMIAL
order = FIRST
AQtype = Gauss-Chebyshev
NPolar = 2
NAzmthl = 3
NA = 2
n_delay_groups = 6
using_array_variable = true
collapse_scattering = true
hide_angular_flux = true
[]
[]
[PowerDensity]
power = 225e3 # Assembly Power from NS
power_density_variable = power_density
integrated_power_postprocessor = integrated_power
[]
[Materials]
[mod]
type = CoupledFeedbackMatIDNeutronicsMaterial
block = '10 100 102 103 200 201 300 400 401 500 600 8000 8001'
library_file = '../ISOXML/XS_Griffin.xml'
library_name = XS_Griffin
isotopes = 'pseudo'
densities = 1.0
is_meter = true
# power normalization
plus = true
dbgmat = false
grid_names = 'Tmod'
grid_variables = 'Tf'
[]
[]
[MultiApps]
[bison]
type = FullSolveMultiApp
input_files = BISON.i
execute_on = 'timestep_end'
keep_solution_during_restore = true
[]
[]
[Transfers]
[to_sub_power_density]
type = MultiAppGeneralFieldShapeEvaluationTransfer
to_multi_app = bison
variable = power_density
source_variable = power_density
execute_on = 'timestep_end'
displaced_source_mesh = false
displaced_target_mesh = false
use_displaced_mesh = false
[]
[from_sub_temp]
type = MultiAppGeneralFieldNearestLocationTransfer
from_multi_app = bison
variable = Tf
source_variable = Tfuel
execute_on = 'timestep_end'
use_displaced_mesh = false
[]
[]
[UserObjects]
[ss]
type = TransportSolutionVectorFile
transport_system = SN
writing = true
execute_on = final
[]
[]
[Postprocessors]
[scaled_power_avg]
type = ElementAverageValue
block = 'Fuel Fuel_tri'
variable = power_density
execute_on = 'initial timestep_end'
[]
[fuel_temp_avg]
type = ElementAverageValue
variable = Tf
block = 'Fuel Fuel_tri'
execute_on = 'initial timestep_end'
[]
[fuel_temp_max]
type = ElementExtremeValue
value_type = max
variable = Tf
block = 'Fuel Fuel_tri'
execute_on = 'initial timestep_end'
[]
[fuel_temp_min]
type = ElementExtremeValue
value_type = min
variable = Tf
block = 'Fuel Fuel_tri'
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
time_step_interval = 1
[exodus]
type = Exodus
[]
[csv]
type = CSV
[]
color = true
perf_graph = true
[]
(microreactors/gcmr/assembly/steady_state/Griffin_steady_state.i)
######################################################################################################
## Dynamic Multiphysics Modeling of a Flow Blockage accident in Gas-cooled Microreactor Assembly
## Griffin steady state Model
# If using or referring to this model, please cite as explained in
# https://mooseframework.inl.gov/virtual_test_bed/citing.html
#####################################################################################################
[Mesh]
[fmg]
type = FileMeshGenerator
file = '../MESH/Griffin_mesh.e'
[]
[fmg_id]
type = SubdomainExtraElementIDGenerator
input = fmg
subdomains = '10 100 102 103 200 201 300 400 401 500 600 8000 8001'
extra_element_id_names = 'material_id equivalence_id'
extra_element_ids = '803 802 810 806 807 807 804 801 801 808 809 805 805;
803 802 810 806 807 807 804 801 801 808 809 805 805'
[]
[coarse_mesh]
type = GeneratedMeshGenerator
dim = 3
nx = 10
ny = 10
nz = 20
xmin = -0.1
xmax = 0.1
ymin = -0.1
ymax = 0.1
zmin = 0.
zmax = 2.
[]
[assign_coarse_id]
type = CoarseMeshExtraElementIDGenerator
input = fmg_id
coarse_mesh = coarse_mesh
extra_element_id_name = coarse_element_id
[]
[]
[Executioner]
type = SweepUpdate
richardson_abs_tol = 1e-8
richardson_rel_tol = 1e-8
richardson_value = eigenvalue
richardson_max_its = 1000
inner_solve_type = GMRes
max_inner_its = 20
fixed_point_max_its = 1
custom_pp = eigenvalue
custom_rel_tol = 1e-6
force_fixed_point_solve = true
cmfd_acceleration = true #false
coarse_element_id = coarse_element_id
diffusion_eigen_solver_type = newton
prolongation_type = multiplicative
max_diffusion_coefficient = 1
[]
[Debug]
check_boundary_coverage = false
print_block_volume = false
show_actions = false
[]
[AuxVariables]
[Tf]
initial_condition = 873.15
order = CONSTANT
family = MONOMIAL
[]
[]
[TransportSystems]
particle = neutron
equation_type = eigenvalue
G = 11
VacuumBoundary = '2000 2001'
ReflectingBoundary = '9000'
[SN]
scheme = DFEM-SN
family = MONOMIAL
order = FIRST
AQtype = Gauss-Chebyshev
NPolar = 2
NAzmthl = 3
NA = 2
n_delay_groups = 6
using_array_variable = true
collapse_scattering = true
hide_angular_flux = true
[]
[]
[PowerDensity]
power = 225e3 # Assembly Power from NS
power_density_variable = power_density
integrated_power_postprocessor = integrated_power
[]
[Materials]
[mod]
type = CoupledFeedbackMatIDNeutronicsMaterial
block = '10 100 102 103 200 201 300 400 401 500 600 8000 8001'
library_file = '../ISOXML/XS_Griffin.xml'
library_name = XS_Griffin
isotopes = 'pseudo'
densities = 1.0
is_meter = true
# power normalization
plus = true
dbgmat = false
grid_names = 'Tmod'
grid_variables = 'Tf'
[]
[]
[MultiApps]
[bison]
type = FullSolveMultiApp
input_files = BISON.i
execute_on = 'timestep_end'
keep_solution_during_restore = true
[]
[]
[Transfers]
[to_sub_power_density]
type = MultiAppGeneralFieldShapeEvaluationTransfer
to_multi_app = bison
variable = power_density
source_variable = power_density
execute_on = 'timestep_end'
displaced_source_mesh = false
displaced_target_mesh = false
use_displaced_mesh = false
[]
[from_sub_temp]
type = MultiAppGeneralFieldNearestLocationTransfer
from_multi_app = bison
variable = Tf
source_variable = Tfuel
execute_on = 'timestep_end'
use_displaced_mesh = false
[]
[]
[UserObjects]
[ss]
type = TransportSolutionVectorFile
transport_system = SN
writing = true
execute_on = final
[]
[]
[Postprocessors]
[scaled_power_avg]
type = ElementAverageValue
block = 'Fuel Fuel_tri'
variable = power_density
execute_on = 'initial timestep_end'
[]
[fuel_temp_avg]
type = ElementAverageValue
variable = Tf
block = 'Fuel Fuel_tri'
execute_on = 'initial timestep_end'
[]
[fuel_temp_max]
type = ElementExtremeValue
value_type = max
variable = Tf
block = 'Fuel Fuel_tri'
execute_on = 'initial timestep_end'
[]
[fuel_temp_min]
type = ElementExtremeValue
value_type = min
variable = Tf
block = 'Fuel Fuel_tri'
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
time_step_interval = 1
[exodus]
type = Exodus
[]
[csv]
type = CSV
[]
color = true
perf_graph = true
[]
(microreactors/gcmr/assembly/steady_state/Griffin_steady_state.i)
######################################################################################################
## Dynamic Multiphysics Modeling of a Flow Blockage accident in Gas-cooled Microreactor Assembly
## Griffin steady state Model
# If using or referring to this model, please cite as explained in
# https://mooseframework.inl.gov/virtual_test_bed/citing.html
#####################################################################################################
[Mesh]
[fmg]
type = FileMeshGenerator
file = '../MESH/Griffin_mesh.e'
[]
[fmg_id]
type = SubdomainExtraElementIDGenerator
input = fmg
subdomains = '10 100 102 103 200 201 300 400 401 500 600 8000 8001'
extra_element_id_names = 'material_id equivalence_id'
extra_element_ids = '803 802 810 806 807 807 804 801 801 808 809 805 805;
803 802 810 806 807 807 804 801 801 808 809 805 805'
[]
[coarse_mesh]
type = GeneratedMeshGenerator
dim = 3
nx = 10
ny = 10
nz = 20
xmin = -0.1
xmax = 0.1
ymin = -0.1
ymax = 0.1
zmin = 0.
zmax = 2.
[]
[assign_coarse_id]
type = CoarseMeshExtraElementIDGenerator
input = fmg_id
coarse_mesh = coarse_mesh
extra_element_id_name = coarse_element_id
[]
[]
[Executioner]
type = SweepUpdate
richardson_abs_tol = 1e-8
richardson_rel_tol = 1e-8
richardson_value = eigenvalue
richardson_max_its = 1000
inner_solve_type = GMRes
max_inner_its = 20
fixed_point_max_its = 1
custom_pp = eigenvalue
custom_rel_tol = 1e-6
force_fixed_point_solve = true
cmfd_acceleration = true #false
coarse_element_id = coarse_element_id
diffusion_eigen_solver_type = newton
prolongation_type = multiplicative
max_diffusion_coefficient = 1
[]
[Debug]
check_boundary_coverage = false
print_block_volume = false
show_actions = false
[]
[AuxVariables]
[Tf]
initial_condition = 873.15
order = CONSTANT
family = MONOMIAL
[]
[]
[TransportSystems]
particle = neutron
equation_type = eigenvalue
G = 11
VacuumBoundary = '2000 2001'
ReflectingBoundary = '9000'
[SN]
scheme = DFEM-SN
family = MONOMIAL
order = FIRST
AQtype = Gauss-Chebyshev
NPolar = 2
NAzmthl = 3
NA = 2
n_delay_groups = 6
using_array_variable = true
collapse_scattering = true
hide_angular_flux = true
[]
[]
[PowerDensity]
power = 225e3 # Assembly Power from NS
power_density_variable = power_density
integrated_power_postprocessor = integrated_power
[]
[Materials]
[mod]
type = CoupledFeedbackMatIDNeutronicsMaterial
block = '10 100 102 103 200 201 300 400 401 500 600 8000 8001'
library_file = '../ISOXML/XS_Griffin.xml'
library_name = XS_Griffin
isotopes = 'pseudo'
densities = 1.0
is_meter = true
# power normalization
plus = true
dbgmat = false
grid_names = 'Tmod'
grid_variables = 'Tf'
[]
[]
[MultiApps]
[bison]
type = FullSolveMultiApp
input_files = BISON.i
execute_on = 'timestep_end'
keep_solution_during_restore = true
[]
[]
[Transfers]
[to_sub_power_density]
type = MultiAppGeneralFieldShapeEvaluationTransfer
to_multi_app = bison
variable = power_density
source_variable = power_density
execute_on = 'timestep_end'
displaced_source_mesh = false
displaced_target_mesh = false
use_displaced_mesh = false
[]
[from_sub_temp]
type = MultiAppGeneralFieldNearestLocationTransfer
from_multi_app = bison
variable = Tf
source_variable = Tfuel
execute_on = 'timestep_end'
use_displaced_mesh = false
[]
[]
[UserObjects]
[ss]
type = TransportSolutionVectorFile
transport_system = SN
writing = true
execute_on = final
[]
[]
[Postprocessors]
[scaled_power_avg]
type = ElementAverageValue
block = 'Fuel Fuel_tri'
variable = power_density
execute_on = 'initial timestep_end'
[]
[fuel_temp_avg]
type = ElementAverageValue
variable = Tf
block = 'Fuel Fuel_tri'
execute_on = 'initial timestep_end'
[]
[fuel_temp_max]
type = ElementExtremeValue
value_type = max
variable = Tf
block = 'Fuel Fuel_tri'
execute_on = 'initial timestep_end'
[]
[fuel_temp_min]
type = ElementExtremeValue
value_type = min
variable = Tf
block = 'Fuel Fuel_tri'
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
time_step_interval = 1
[exodus]
type = Exodus
[]
[csv]
type = CSV
[]
color = true
perf_graph = true
[]
(microreactors/gcmr/assembly/steady_state/Griffin_steady_state.i)
######################################################################################################
## Dynamic Multiphysics Modeling of a Flow Blockage accident in Gas-cooled Microreactor Assembly
## Griffin steady state Model
# If using or referring to this model, please cite as explained in
# https://mooseframework.inl.gov/virtual_test_bed/citing.html
#####################################################################################################
[Mesh]
[fmg]
type = FileMeshGenerator
file = '../MESH/Griffin_mesh.e'
[]
[fmg_id]
type = SubdomainExtraElementIDGenerator
input = fmg
subdomains = '10 100 102 103 200 201 300 400 401 500 600 8000 8001'
extra_element_id_names = 'material_id equivalence_id'
extra_element_ids = '803 802 810 806 807 807 804 801 801 808 809 805 805;
803 802 810 806 807 807 804 801 801 808 809 805 805'
[]
[coarse_mesh]
type = GeneratedMeshGenerator
dim = 3
nx = 10
ny = 10
nz = 20
xmin = -0.1
xmax = 0.1
ymin = -0.1
ymax = 0.1
zmin = 0.
zmax = 2.
[]
[assign_coarse_id]
type = CoarseMeshExtraElementIDGenerator
input = fmg_id
coarse_mesh = coarse_mesh
extra_element_id_name = coarse_element_id
[]
[]
[Executioner]
type = SweepUpdate
richardson_abs_tol = 1e-8
richardson_rel_tol = 1e-8
richardson_value = eigenvalue
richardson_max_its = 1000
inner_solve_type = GMRes
max_inner_its = 20
fixed_point_max_its = 1
custom_pp = eigenvalue
custom_rel_tol = 1e-6
force_fixed_point_solve = true
cmfd_acceleration = true #false
coarse_element_id = coarse_element_id
diffusion_eigen_solver_type = newton
prolongation_type = multiplicative
max_diffusion_coefficient = 1
[]
[Debug]
check_boundary_coverage = false
print_block_volume = false
show_actions = false
[]
[AuxVariables]
[Tf]
initial_condition = 873.15
order = CONSTANT
family = MONOMIAL
[]
[]
[TransportSystems]
particle = neutron
equation_type = eigenvalue
G = 11
VacuumBoundary = '2000 2001'
ReflectingBoundary = '9000'
[SN]
scheme = DFEM-SN
family = MONOMIAL
order = FIRST
AQtype = Gauss-Chebyshev
NPolar = 2
NAzmthl = 3
NA = 2
n_delay_groups = 6
using_array_variable = true
collapse_scattering = true
hide_angular_flux = true
[]
[]
[PowerDensity]
power = 225e3 # Assembly Power from NS
power_density_variable = power_density
integrated_power_postprocessor = integrated_power
[]
[Materials]
[mod]
type = CoupledFeedbackMatIDNeutronicsMaterial
block = '10 100 102 103 200 201 300 400 401 500 600 8000 8001'
library_file = '../ISOXML/XS_Griffin.xml'
library_name = XS_Griffin
isotopes = 'pseudo'
densities = 1.0
is_meter = true
# power normalization
plus = true
dbgmat = false
grid_names = 'Tmod'
grid_variables = 'Tf'
[]
[]
[MultiApps]
[bison]
type = FullSolveMultiApp
input_files = BISON.i
execute_on = 'timestep_end'
keep_solution_during_restore = true
[]
[]
[Transfers]
[to_sub_power_density]
type = MultiAppGeneralFieldShapeEvaluationTransfer
to_multi_app = bison
variable = power_density
source_variable = power_density
execute_on = 'timestep_end'
displaced_source_mesh = false
displaced_target_mesh = false
use_displaced_mesh = false
[]
[from_sub_temp]
type = MultiAppGeneralFieldNearestLocationTransfer
from_multi_app = bison
variable = Tf
source_variable = Tfuel
execute_on = 'timestep_end'
use_displaced_mesh = false
[]
[]
[UserObjects]
[ss]
type = TransportSolutionVectorFile
transport_system = SN
writing = true
execute_on = final
[]
[]
[Postprocessors]
[scaled_power_avg]
type = ElementAverageValue
block = 'Fuel Fuel_tri'
variable = power_density
execute_on = 'initial timestep_end'
[]
[fuel_temp_avg]
type = ElementAverageValue
variable = Tf
block = 'Fuel Fuel_tri'
execute_on = 'initial timestep_end'
[]
[fuel_temp_max]
type = ElementExtremeValue
value_type = max
variable = Tf
block = 'Fuel Fuel_tri'
execute_on = 'initial timestep_end'
[]
[fuel_temp_min]
type = ElementExtremeValue
value_type = min
variable = Tf
block = 'Fuel Fuel_tri'
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
time_step_interval = 1
[exodus]
type = Exodus
[]
[csv]
type = CSV
[]
color = true
perf_graph = true
[]
(microreactors/gcmr/assembly/steady_state/BISON.i)
######################################################################################################
## Dynamic Multiphysics Modeling of a Flow Blockage accident in Gas-cooled Microreactor Assembly
## BISON steady-state Model
# If using or referring to this model, please cite as explained in
# https://mooseframework.inl.gov/virtual_test_bed/citing.html
######################################################################################################
TsInit = 1150.0 # Solid initial temperature
Tcin = 1150.0 # Coolant initial temperature
radiusTransfer = 0.015 # r + 0.009. Extends past the first mesh cell surrounding the coolant channel.
coolant_full_points_filename = ../channel_positions/coolant_full_points.txt # File containing the inlet position of your coolant channels
coolant_half_points_filename = ../channel_positions/coolant_half_points.txt # File containing the inlet position of your coolant channels
[GlobalParams]
flux_conversion_factor = 1
[]
[Problem]
register_objects_from = 'BisonApp'
#library_path = '/beegfs1/software/NEAMS_microreactor/projects_super_mar22/bison/lib'
[]
[Mesh]
# so that the others are disregarded
final_generator = fmg
[fmg] # load mesh
type = FileMeshGenerator
file = '../MESH/BISON_mesh.e'
[]
[full_coolant_surf_mesh] # create sideset around coolant_full channel
type = SideSetsBetweenSubdomainsGenerator
input = fmg
paired_block = coolant_full
primary_block = 'monolith reflector'
new_boundary = full_coolant_surf
[]
[half_coolant_surf_mesh] # create sideset around coolant_half channel
type = SideSetsBetweenSubdomainsGenerator
input = full_coolant_surf_mesh
paired_block = coolant_half
primary_block = 'monolith reflector'
new_boundary = half_coolant_surf
[]
[ed0]
type = BlockDeletionGenerator
input = half_coolant_surf_mesh
block = 'coolant_half coolant_full'
[]
[]
[Variables]
[temp]
order = FIRST
family = LAGRANGE
initial_condition = ${TsInit}
[]
[]
[Kernels]
[heat_conduction]
type = HeatConduction
variable = temp
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[heat_source_fuel]
type = CoupledForce
variable = temp
block = 'Fuel Fuel_tri'
v = power_density
[]
[]
[AuxVariables]
[power_density]
block = 'Fuel Fuel_tri'
family = L2_LAGRANGE
order = FIRST
[]
[Tfuel]
block = 'Fuel Fuel_tri'
[]
[hfluid] # Heat Transfer coefficient
# Calculated by SAM and then transferred with the scaling factor.
order = CONSTANT
family = MONOMIAL
initial_condition = 2000.00
block = 'monolith reflector reflector_tri' # Can set it on the monolith or coolant.
[]
[Tfluid] # Coolant temperature.
order = CONSTANT
family = MONOMIAL
initial_condition = ${Tcin}
block = 'monolith reflector reflector_tri' # Can set it on the monolith or coolant.
[]
[]
[AuxKernels]
[assign_tfuel]
type = NormalizationAux
variable = Tfuel
source_variable = temp
execute_on = 'timestep_end'
[]
[]
[BCs]
[coolant_bc]
type = CoupledConvectionBC
T_external = Tfluid
h_external = hfluid
boundary = 'full_coolant_surf half_coolant_surf'
variable = temp
[]
[outside_bc]
type = ConvectiveFluxFunction # (Robin BC)
variable = temp
boundary = 'top_boundary bottom_boundary'
coefficient = 0.15 # W/K/m^2 (air)
T_infinity = 873.5 # K air temperature at the top of the core
[]
[]
[Materials]
[fuel_matrix_thermal]
type = GraphiteMatrixThermal
block = 'Fuel Fuel_tri'
graphite_grade = IG_110
packing_fraction = 0.4
specific_heat_scale_factor = 1.0
thermal_conductivity_scale_factor = 1.0
fast_neutron_fluence = 0 #6.75E+24 # this value is nuetron fluence over 0.1MeV
temperature = temp
[]
[monolith_matrix_thermal]
type = GraphiteMatrixThermal
block = 'monolith '
graphite_grade = IG_110
packing_fraction = 0
specific_heat_scale_factor = 1.0
thermal_conductivity_scale_factor = 1.0
fast_neutron_fluence = 0 #6.75E+24 # this value is nuetron fluence over 0.1MeV
temperature = temp
[]
[moderator_thermal]
type = HeatConductionMaterial
block = moderator
temp = temp
thermal_conductivity = 20 # W/m/K
specific_heat = 500 # random value
[]
[YH_liner_Cr_thermal]
type = ChromiumThermal
block = Cr
temperature = temp
outputs = all
[]
[YH_Cladding_thermal]
type = FeCrAlThermal
block = FECRAL
temperature = temp
outputs = all
[]
[Poison_blocks_thermal]
type = HeatConductionMaterial
block = B4C
temp = temp
thermal_conductivity = 92 # W/m/K
specific_heat = 960 # random value
[]
[control_rod_thermal]
type = HeatConductionMaterial
block = control #B4C
temp = temp
thermal_conductivity = 92 # W/m/K
specific_heat = 960 # random value
[]
[Reflector_thermal]
type = BeOThermal
block = 'reflector reflector_tri'
fluence_conversion_factor = 1
temperature = temp
outputs = all
[]
[airgap_thermal]
type = HeatConductionMaterial
block = 'Air' # Helium filled in the control rod hole
temp = temp
thermal_conductivity = 0.15 # W/m/K
specific_heat = 5197 # random value
[]
[fuel_density]
type = Density
block = 'Fuel Fuel_tri'
density = 2276.5
[]
[moderator_density]
type = Density
block = moderator
density = 4.3e3
[]
[monolith_density]
type = Density
block = monolith
density = 1806
[]
[YH_Liner_Cr_density]
type = Density
block = Cr
density = 7190
[]
[YH_Cladding_density]
type = Density
block = FECRAL
density = 7250
[]
[Poison_blocks_density]
type = Density
block = B4C
density = 2510
[]
[control_rod_density]
type = Density
block = control #B4C
density = 2510
[]
[airgap_density]
type = Density
block = 'Air' #helium
density = 180
[]
[reflector_density]
type = GenericConstantMaterial
block = 'reflector reflector_tri'
prop_names = 'density fast_neutron_fluence porosity'
prop_values = '3000 0 0'
[]
[]
[UserObjects]
# UserObject to convert the temperature distribution on the inner coolant
# surface to a 1D profile.
[Tw_UO]
type = NearestPointLayeredSideAverage
variable = temp
direction = z
num_layers = 40
boundary = 'full_coolant_surf '
execute_on = 'TIMESTEP_END'
points_file = ${coolant_full_points_filename}
[]
[Tw_UO_half]
type = NearestPointLayeredSideAverage
variable = temp
direction = z
num_layers = 40
boundary = 'half_coolant_surf '
execute_on = 'TIMESTEP_END'
points_file = ${coolant_half_points_filename}
[]
[]
[MultiApps]
[coolant_full_MA]
type = TransientMultiApp
app_type = SamApp
positions_file = ${coolant_full_points_filename}
bounding_box_padding = '0.1 0.1 0.1'
input_files = 'SAM_full.i'
execute_on = 'TIMESTEP_END'
max_procs_per_app = 1
# keep_solution_during_restore = true
output_in_position = true
cli_args = AuxKernels/scale_htc/expression='0.997090723*htc'
# cli_args: this is a conversion to help with the energy balance.
[]
[coolant_half_MA]
type = TransientMultiApp
app_type = SamApp
positions_file = ${coolant_half_points_filename}
bounding_box_padding = '0.1 0.1 0.1'
input_files = 'SAM_half.i'
execute_on = 'TIMESTEP_END'
max_procs_per_app = 1
# keep_solution_during_restore = true
output_in_position = true
cli_args = AuxKernels/scale_htc/expression='0.997090723*htc'
# cli_args: this is a conversion to help with the energy balance.
[]
[]
[Transfers]
# coolant_full
[Tw_to_coolant]
# Wall temperature from user object is transferred to fluid domain.
type = MultiAppGeneralFieldUserObjectTransfer
to_multi_app = coolant_full_MA
source_user_object = Tw_UO # Exists in solid.
variable = Tw # Exists in coolant.
execute_on = 'TIMESTEP_END'
displaced_target_mesh = true
# Reduces transfers efficiency for now, can be removed once transferred fields are checked
bbox_factor = 10
[]
[Tfluid_from_coolant]
# Fluid temperature from fluid domain is transferred to solid domain.
type = MultiAppUserObjectGatherTransfer
radius = ${radiusTransfer}
from_multi_app = coolant_full_MA
user_object = Tfluid_UO # Exists in coolant.
variable = Tfluid # Exists in solid.
execute_on = 'TIMESTEP_END'
displaced_source_mesh = true
[]
[hfluid_from_coolant]
# Convective HTC from fluid domain is transferred to solid domain.
type = MultiAppUserObjectGatherTransfer
radius = ${radiusTransfer}
from_multi_app = coolant_full_MA
user_object = hfluid_UO # Exists in coolant.
variable = hfluid # Exists in solid.
execute_on = 'TIMESTEP_END'
displaced_source_mesh = true
[]
# coolant_half
[Tw_to_coolant_half]
# Wall temperature from user object is transferred to fluid domain.
type = MultiAppGeneralFieldUserObjectTransfer
to_multi_app = coolant_half_MA
source_user_object = Tw_UO_half # Exists in solid.
variable = Tw # Exists in coolant.
execute_on = 'TIMESTEP_END'
displaced_target_mesh = true
# Reduces transfers efficiency for now, can be removed once transferred fields are checked
bbox_factor = 10
[]
[Tfluid_from_coolant_half]
# Fluid temperature from fluid domain is transferred to solid domain.
type = MultiAppUserObjectGatherTransfer
radius = ${radiusTransfer}
from_multi_app = coolant_half_MA
user_object = Tfluid_UO # Exists in coolant.
variable = Tfluid # Exists in solid.
execute_on = 'TIMESTEP_END'
displaced_source_mesh = true
[]
[hfluid_from_coolant_half]
# Convective HTC from fluid domain is transferred to solid domain.
type = MultiAppUserObjectGatherTransfer
radius = ${radiusTransfer}
from_multi_app = coolant_half_MA
user_object = hfluid_UO # Exists in coolant.
variable = hfluid # Exists in solid.
execute_on = 'TIMESTEP_END'
displaced_source_mesh = true
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
# petsc_options_iname = '-pc_type -pc_hypre_type -ksp_gmres_restart '
# petsc_options_value = 'hypre boomeramg 100'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -ksp_gmres_restart'
petsc_options_value = 'lu superlu_dist 51'
line_search = 'none'
nl_abs_tol = 5e-9
nl_rel_tol = 1e-8
start_time = -2.5e5 # negative start time so we can start running from t = 0
end_time = 0
dt = 1e4
automatic_scaling = true
[]
[Postprocessors]
[fuel_temp_avg]
type = ElementAverageValue
variable = temp
block = 'Fuel Fuel_tri'
execute_on = 'initial timestep_end'
[]
[fuel_temp_max]
type = ElementExtremeValue
variable = temp
block = 'Fuel Fuel_tri'
execute_on = 'initial timestep_end'
[]
[fuel_temp_min]
type = ElementExtremeValue
variable = temp
block = 'Fuel Fuel_tri'
value_type = min
execute_on = 'initial timestep_end'
[]
[mod_temp_avg]
type = ElementAverageValue
variable = temp
block = moderator
execute_on = 'initial timestep_end'
[]
[mod_temp_max]
type = ElementExtremeValue
variable = temp
block = moderator
execute_on = 'initial timestep_end'
[]
[mod_temp_min]
type = ElementExtremeValue
variable = temp
block = moderator
value_type = min
execute_on = 'initial timestep_end'
[]
[monolith_temp_avg]
type = ElementAverageValue
variable = temp
block = monolith
execute_on = 'initial timestep_end'
[]
[monolith_temp_max]
type = ElementExtremeValue
variable = temp
block = monolith
execute_on = 'initial timestep_end'
[]
[monolith_temp_min]
type = ElementExtremeValue
variable = temp
block = monolith
value_type = min
execute_on = 'initial timestep_end'
[]
[heatpipe_surface_temp_avg]
type = SideAverageValue
variable = temp
boundary = 'full_coolant_surf half_coolant_surf'
execute_on = 'initial timestep_end'
[]
[power_density]
type = ElementIntegralVariablePostprocessor
block = 'Fuel Fuel_tri'
variable = power_density
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
time_step_interval = 1
[exodus]
type = Exodus
[]
[csv]
type = CSV
[]
perf_graph = true
color = true
checkpoint = true
[]
(microreactors/gcmr/assembly/channel_positions/coolant_full_points.txt)
-0.034641, 0.060000, 0.000000
-0.000000, 0.060000, 0.000000
0.034641, 0.060000, 0.000000
-0.051962, 0.030000, 0.000000
-0.017321, 0.030000, 0.000000
0.017321, 0.030000, 0.000000
0.051962, 0.030000, 0.000000
-0.069282, -0.000000, 0.000000
-0.034641, -0.000000, 0.000000
0.034641, -0.000000, 0.000000
0.069282, -0.000000, 0.000000
-0.051962, -0.030000, 0.000000
-0.017321, -0.030000, 0.000000
0.017321, -0.030000, 0.000000
0.051962, -0.030000, 0.000000
-0.034641, -0.060000, 0.000000
-0.000000, -0.060000, 0.000000
0.034641, -0.060000, 0.000000
(microreactors/gcmr/assembly/steady_state/Griffin_steady_state.i)
######################################################################################################
## Dynamic Multiphysics Modeling of a Flow Blockage accident in Gas-cooled Microreactor Assembly
## Griffin steady state Model
# If using or referring to this model, please cite as explained in
# https://mooseframework.inl.gov/virtual_test_bed/citing.html
#####################################################################################################
[Mesh]
[fmg]
type = FileMeshGenerator
file = '../MESH/Griffin_mesh.e'
[]
[fmg_id]
type = SubdomainExtraElementIDGenerator
input = fmg
subdomains = '10 100 102 103 200 201 300 400 401 500 600 8000 8001'
extra_element_id_names = 'material_id equivalence_id'
extra_element_ids = '803 802 810 806 807 807 804 801 801 808 809 805 805;
803 802 810 806 807 807 804 801 801 808 809 805 805'
[]
[coarse_mesh]
type = GeneratedMeshGenerator
dim = 3
nx = 10
ny = 10
nz = 20
xmin = -0.1
xmax = 0.1
ymin = -0.1
ymax = 0.1
zmin = 0.
zmax = 2.
[]
[assign_coarse_id]
type = CoarseMeshExtraElementIDGenerator
input = fmg_id
coarse_mesh = coarse_mesh
extra_element_id_name = coarse_element_id
[]
[]
[Executioner]
type = SweepUpdate
richardson_abs_tol = 1e-8
richardson_rel_tol = 1e-8
richardson_value = eigenvalue
richardson_max_its = 1000
inner_solve_type = GMRes
max_inner_its = 20
fixed_point_max_its = 1
custom_pp = eigenvalue
custom_rel_tol = 1e-6
force_fixed_point_solve = true
cmfd_acceleration = true #false
coarse_element_id = coarse_element_id
diffusion_eigen_solver_type = newton
prolongation_type = multiplicative
max_diffusion_coefficient = 1
[]
[Debug]
check_boundary_coverage = false
print_block_volume = false
show_actions = false
[]
[AuxVariables]
[Tf]
initial_condition = 873.15
order = CONSTANT
family = MONOMIAL
[]
[]
[TransportSystems]
particle = neutron
equation_type = eigenvalue
G = 11
VacuumBoundary = '2000 2001'
ReflectingBoundary = '9000'
[SN]
scheme = DFEM-SN
family = MONOMIAL
order = FIRST
AQtype = Gauss-Chebyshev
NPolar = 2
NAzmthl = 3
NA = 2
n_delay_groups = 6
using_array_variable = true
collapse_scattering = true
hide_angular_flux = true
[]
[]
[PowerDensity]
power = 225e3 # Assembly Power from NS
power_density_variable = power_density
integrated_power_postprocessor = integrated_power
[]
[Materials]
[mod]
type = CoupledFeedbackMatIDNeutronicsMaterial
block = '10 100 102 103 200 201 300 400 401 500 600 8000 8001'
library_file = '../ISOXML/XS_Griffin.xml'
library_name = XS_Griffin
isotopes = 'pseudo'
densities = 1.0
is_meter = true
# power normalization
plus = true
dbgmat = false
grid_names = 'Tmod'
grid_variables = 'Tf'
[]
[]
[MultiApps]
[bison]
type = FullSolveMultiApp
input_files = BISON.i
execute_on = 'timestep_end'
keep_solution_during_restore = true
[]
[]
[Transfers]
[to_sub_power_density]
type = MultiAppGeneralFieldShapeEvaluationTransfer
to_multi_app = bison
variable = power_density
source_variable = power_density
execute_on = 'timestep_end'
displaced_source_mesh = false
displaced_target_mesh = false
use_displaced_mesh = false
[]
[from_sub_temp]
type = MultiAppGeneralFieldNearestLocationTransfer
from_multi_app = bison
variable = Tf
source_variable = Tfuel
execute_on = 'timestep_end'
use_displaced_mesh = false
[]
[]
[UserObjects]
[ss]
type = TransportSolutionVectorFile
transport_system = SN
writing = true
execute_on = final
[]
[]
[Postprocessors]
[scaled_power_avg]
type = ElementAverageValue
block = 'Fuel Fuel_tri'
variable = power_density
execute_on = 'initial timestep_end'
[]
[fuel_temp_avg]
type = ElementAverageValue
variable = Tf
block = 'Fuel Fuel_tri'
execute_on = 'initial timestep_end'
[]
[fuel_temp_max]
type = ElementExtremeValue
value_type = max
variable = Tf
block = 'Fuel Fuel_tri'
execute_on = 'initial timestep_end'
[]
[fuel_temp_min]
type = ElementExtremeValue
value_type = min
variable = Tf
block = 'Fuel Fuel_tri'
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
time_step_interval = 1
[exodus]
type = Exodus
[]
[csv]
type = CSV
[]
color = true
perf_graph = true
[]