- point_source_locationThe UserObject that generates random particle locations.
C++ Type:UserObjectName
Controllable:No
Description:The UserObject that generates random particle locations.
- variableThe name of the variable that this residual object operates on
C++ Type:NonlinearVariableName
Unit:(no unit assumed)
Controllable:No
Description:The name of the variable that this residual object operates on
TRISOMonteCarloPointSource
Description
TRISOMonteCarloPointSource applies point sources computed from TRISO particles to the fuel element. The location of those point sources is generated by TRISOMonteCarloPointSourceLocation. The point sources are provided by a VectorPostprocessor that stores the values transferred from a TRISO 1D sub-application.
Example Input Syntax
[DiracKernels<<<{"href": "../../syntax/DiracKernels/index.html"}>>>]
[vpp_point_source]
type = TRISOMonteCarloPointSource<<<{"description": "Apply point sources from TRISO particles to fuel element.", "href": "TRISOMonteCarloPointSource.html"}>>>
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = temperature
point_source_values<<<{"description": "The name of the VectorPostprocessor containing point source values from TRISO sub-application."}>>> = released_heat_inc
value_name<<<{"description": "name of column containing values."}>>> = released_heat_inc:released_heat_inc
point_source_location<<<{"description": "The UserObject that generates random particle locations."}>>> = point_source_location
[]
[](test/tests/triso_pebble/3D_pebble.i)Input Parameters
- allow_moving_sourcesFalseIf true, allow Dirac sources to move, even if the mesh does not move, during the simulation.
Default:False
C++ Type:bool
Controllable:No
Description:If true, allow Dirac sources to move, even if the mesh does not move, during the simulation.
- blockThe list of blocks (ids or names) that this object will be applied
C++ Type:std::vector<SubdomainName>
Controllable:No
Description:The list of blocks (ids or names) that this object will be applied
- point_not_found_behaviorIGNOREBy default (IGNORE), it is ignored if an added point cannot be located in the specified subdomains. If this option is set to ERROR, this situation will result in an error. If this option is set to WARNING, then a warning will be issued.
Default:IGNORE
C++ Type:MooseEnum
Options:ERROR, WARNING, IGNORE
Controllable:No
Description:By default (IGNORE), it is ignored if an added point cannot be located in the specified subdomains. If this option is set to ERROR, this situation will result in an error. If this option is set to WARNING, then a warning will be issued.
- point_source_valuesThe name of the VectorPostprocessor containing point source values from TRISO sub-application.
C++ Type:VectorPostprocessorName
Unit:(no unit assumed)
Controllable:No
Description:The name of the VectorPostprocessor containing point source values from TRISO sub-application.
- value_namevaluename of column containing values.
Default:value
C++ Type:std::string
Controllable:No
Description:name of column containing values.
Optional Parameters
- absolute_value_vector_tagsThe tags for the vectors this residual object should fill with the absolute value of the residual contribution
C++ Type:std::vector<TagName>
Controllable:No
Description:The tags for the vectors this residual object should fill with the absolute value of the residual contribution
- extra_matrix_tagsThe extra tags for the matrices this Kernel should fill
C++ Type:std::vector<TagName>
Controllable:No
Description:The extra tags for the matrices this Kernel should fill
- extra_vector_tagsThe extra tags for the vectors this Kernel should fill
C++ Type:std::vector<TagName>
Controllable:No
Description:The extra tags for the vectors this Kernel should fill
- matrix_tagssystemThe tag for the matrices this Kernel should fill
Default:system
C++ Type:MultiMooseEnum
Options:nontime, system
Controllable:No
Description:The tag for the matrices this Kernel should fill
- vector_tagsnontimeThe tag for the vectors this Kernel should fill
Default:nontime
C++ Type:MultiMooseEnum
Options:nontime, time
Controllable:No
Description:The tag for the vectors this Kernel should fill
Contribution To Tagged Field Data Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
- drop_duplicate_pointsTrueBy default points added to a DiracKernel are dropped if a point at the same locationhas been added before. If this option is set to false duplicate points are retainedand contribute to residual and Jacobian.
Default:True
C++ Type:bool
Controllable:No
Description:By default points added to a DiracKernel are dropped if a point at the same locationhas been added before. If this option is set to false duplicate points are retainedand contribute to residual and Jacobian.
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Controllable:Yes
Description:Set the enabled status of the MooseObject.
- implicitTrueDetermines whether this object is calculated using an implicit or explicit form
Default:True
C++ Type:bool
Controllable:No
Description:Determines whether this object is calculated using an implicit or explicit form
- seed0The seed for the master random number generator
Default:0
C++ Type:unsigned int
Controllable:No
Description:The seed for the master random number generator
- use_displaced_meshFalseWhether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Default:False
C++ Type:bool
Controllable:No
Description:Whether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Advanced Parameters
- prop_getter_suffixAn optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.
C++ Type:MaterialPropertyName
Unit:(no unit assumed)
Controllable:No
Description:An optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.
- use_interpolated_stateFalseFor the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.
Default:False
C++ Type:bool
Controllable:No
Description:For the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.
Material Property Retrieval Parameters
Input Files
- (test/tests/triso_pebble/cylinder_2d_rz.i)
- (examples/TRISO/pebble/3D_pebble.i)
- (test/tests/triso_pebble/plate.i)
- (test/tests/triso_pebble/1D_pebble_picard.i)
- (test/tests/triso_pebble/3D_pebble_location_from_file.i)
- (test/tests/triso_pebble/cylinder_3d.i)
- (test/tests/triso_pebble/sphere_2d_rz.i)
- (test/tests/triso_pebble/1D_pebble.i)
- (test/tests/triso_pebble/3D_pebble.i)
- (test/tests/triso_pebble/1D_pebble_from_csv.i)
- (test/tests/triso_pebble/sphere_3d.i)
- (examples/TRISO/pebble/3D_pebble_with_failed_particles.i)
- (test/tests/triso_pebble/3D_pebble_from_csv.i)
(test/tests/triso_pebble/3D_pebble.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
flux_conversion_factor = 0.85
[]
[Mesh]
[file]
type = FileMeshGenerator
file = pebble.e
[]
[]
[Distributions]
[normal_kernel_r]
type = TruncatedNormal
mean = 213.35e-6
standard_deviation = 4.4e-6
lower_bound = 1.9575e-04
upper_bound = 2.3095e-04
[]
[normal_buffer_t]
type = TruncatedNormal
mean = 98.9e-6
standard_deviation = 8.4e-6
lower_bound = 6.53e-05
upper_bound = 1.325e-04
[]
[normal_ipyc_t]
type = TruncatedNormal
mean = 40.4e-6
standard_deviation = 2.5e-6
lower_bound = 3.0400e-05
upper_bound = 5.0400e-05
[]
[normal_sic_t]
type = TruncatedNormal
mean = 35.2e-6
standard_deviation = 1.2e-6
lower_bound = 3.0400e-05
upper_bound = 4.0000e-05
[]
[normal_opyc_t]
type = TruncatedNormal
mean = 43.4e-6
standard_deviation = 2.9e-6
lower_bound = 3.1800e-05
upper_bound = 5.5000e-05
[]
[]
[Samplers]
[sample]
type = MonteCarlo
num_rows = 10
distributions = 'normal_kernel_r normal_buffer_t normal_ipyc_t normal_sic_t normal_opyc_t'
execute_on = 'PRE_MULTIAPP_SETUP'
[]
[]
[MultiApps]
[sub]
type = SamplerTransientMultiApp
input_files = triso_1d.i
sampler = sample
execute_on = 'TIMESTEP_BEGIN'
mode = normal
[]
[]
[DiracKernels]
[vpp_point_source]
type = TRISOMonteCarloPointSource
variable = temperature
point_source_values = released_heat_inc
value_name = released_heat_inc:released_heat_inc
point_source_location = point_source_location
[]
[]
[UserObjects]
[point_source_location]
type = TRISOMonteCarloPointSourceLocation
min_radius = 0.0138
max_radius = 0.018
geometry = SPHERE
sampler = sample
fuel_element_blocks = fuel
execute_on = 'INITIAL'
[]
[]
[Transfers]
[released_heat_inc]
type = SamplerPostprocessorTransfer
from_multi_app = sub
sampler = sample
to_vector_postprocessor = released_heat_inc
from_postprocessor = released_heat_inc
[]
[temp_bc]
type = MultiAppVectorPostprocessorTransfer
to_multi_app = sub
vector_postprocessor = sample_points
postprocessor = temp_bc
vector_name = temperature
[]
[]
[Controls]
[cmdline]
type = MultiAppSamplerControl
multi_app = sub
sampler = sample
param_names = 'kernel_radius buffer_thickness IPyC_thickness SiC_thickness OPyC_thickness'
[]
[]
[VectorPostprocessors]
[sample_points]
type = TRISOMonteCarloPointValueSampler
variable = temperature
execute_on = 'INITIAL TIMESTEP_BEGIN'
point_source_location = point_source_location
[]
[sampler_data]
type = SamplerData
execute_on = 'TIMESTEP_BEGIN'
sampler = sample
[]
[released_heat_inc]
type = StochasticResults
execute_on = 'TIMESTEP_BEGIN'
[]
[point_source_output]
type = TRISOMonteCarloPointSourceOutput
vector_postprocessor = released_heat_inc
value_name = released_heat_inc:released_heat_inc
point_source_location = point_source_location
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Variables]
[temperature]
initial_condition = 773.15
[]
[]
[AuxVariables]
[density]
order = CONSTANT
family = MONOMIAL
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[specific_heat]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[density]
type = MaterialRealAux
variable = density
property = density
block = 'core fuel shell'
execute_on = 'initial linear'
[]
[thermal_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
block = 'core fuel shell'
execute_on = timestep_end
[]
[specific_heat]
type = MaterialRealAux
variable = specific_heat
property = specific_heat
block = 'core fuel shell'
execute_on = timestep_end
[]
[]
[BCs]
[coolant_temp]
type = DirichletBC
variable = temperature
boundary = exterior
value = 773.15
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 76e6'
y = '1 1'
[]
[fission_rate]
type = LinearCombinationFunction
functions = power_history
w = 5.75e19
[]
[]
[Materials]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
flux_function = power_history
factor = 6.28e17
[]
[fueled_region_thermal]
type = GraphiteMatrixThermal
block = fuel
graphite_grade = A3_27_1800
packing_fraction = 0.22
temperature = temperature
initial_matrix_density = 1750.0
[]
[fuel_region_density]
type = ParsedMaterial
block = fuel
property_name = density
expression = 1750.0
[]
[shell_region_thermal]
type = GraphiteMatrixThermal
block = shell
graphite_grade = A3_27_1800
packing_fraction = 0.0
temperature = temperature
initial_matrix_density = 1750.0
[]
[shell_region_density]
type = ParsedMaterial
block = shell
property_name = density
expression = 1750.0
[]
[core_region_thermal]
type = GraphiteMatrixThermal
block = core
graphite_grade = A3_27_1800
packing_fraction = 0.0
temperature = temperature
initial_matrix_density = 1400.0
[]
[core_region_density]
type = ParsedMaterial
block = core
property_name = density
expression = 1400.0
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'temperature'
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_rel_tol = 1e-9
nl_abs_tol = 1e-9
nl_max_its = 20
l_tol = 1e-5
l_max_its = 30
start_time = 0.0
dt = 20000
num_steps = 2
[]
[Outputs]
print_linear_residuals = true
time_step_interval = 1
exodus = true
csv = true
perf_graph = true
[]
(test/tests/triso_pebble/cylinder_2d_rz.i)
[Mesh]
coord_type = RZ
[gen]
type = GeneratedMeshGenerator
dim = 2
nx = 2
ny = 2
[]
[subdomain_1]
type = SubdomainBoundingBoxGenerator
block_id = 1
bottom_left = '0 0 0'
top_right = '0.5 1 0'
input = gen
[]
[subdomain_2]
type = SubdomainBoundingBoxGenerator
block_id = 2
bottom_left = '0.5 0 0'
top_right = '1 1 0'
input = subdomain_1
[]
[]
[Variables]
[u]
[]
[]
[Kernels]
[diff]
type = Diffusion
variable = u
[]
[time]
type = TimeDerivative
variable = u
[]
[]
[BCs]
[left]
type = DirichletBC
variable = u
boundary = left
value = 0
[]
[]
[DiracKernels]
[vpp_point_source]
type = TRISOMonteCarloPointSource
variable = u
point_source_values = constant
value_name = source
point_source_location = point_source_location
[]
[]
[UserObjects]
[point_source_location]
type = TRISOMonteCarloPointSourceLocation
min_radius = 0.5
max_radius = 1.0
center = '0 0.5 0'
height = 1
geometry = CYLINDER
sampler = sample
fuel_element_blocks = 2
particle_space = 0.04
execute_on = 'INITIAL'
[]
[]
[Distributions]
[random]
type = TruncatedNormal
mean = 0
standard_deviation = 0.5
[]
[]
[Samplers]
[sample]
type = MonteCarlo
num_rows = 10
distributions = 'random'
execute_on = 'PRE_MULTIAPP_SETUP'
[]
[]
[VectorPostprocessors]
[constant]
type = ConstantVectorPostprocessor
value = '1 2 3 4 5 6 7 8 9 10'
vector_names = source
execute_on = initial
[]
[point_source_output]
type = TRISOMonteCarloPointSourceOutput
vector_postprocessor = constant
value_name = source
point_source_location = point_source_location
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
nl_max_its = 20
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 4.831315e7
num_steps = 1
dt = 400000
[]
[Outputs]
csv = true
exodus = true
[]
(examples/TRISO/pebble/3D_pebble.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
flux_conversion_factor = 0.85
energy_per_fission = 3.204e-11 #[J/fission]
[]
[Mesh]
[file]
type = FileMeshGenerator
file = pebble.e
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Distributions]
[normal_kernel_r]
type = TruncatedNormal
mean = 213.35e-6
standard_deviation = 4.4e-6
lower_bound = 1.9575e-04
upper_bound = 2.3095e-04
[]
[normal_buffer_t]
type = TruncatedNormal
mean = 98.9e-6
standard_deviation = 8.4e-6
lower_bound = 6.53e-05
upper_bound = 1.325e-04
[]
[normal_ipyc_t]
type = TruncatedNormal
mean = 40.4e-6
standard_deviation = 2.5e-6
lower_bound = 3.0400e-05
upper_bound = 5.0400e-05
[]
[normal_sic_t]
type = TruncatedNormal
mean = 35.2e-6
standard_deviation = 1.2e-6
lower_bound = 3.0400e-05
upper_bound = 4.0000e-05
[]
[normal_opyc_t]
type = TruncatedNormal
mean = 43.4e-6
standard_deviation = 2.9e-6
lower_bound = 3.1800e-05
upper_bound = 5.5000e-05
[]
[]
[Samplers]
[sample]
type = MonteCarlo
num_rows = 100
distributions = 'normal_kernel_r normal_buffer_t normal_ipyc_t normal_sic_t normal_opyc_t'
execute_on = 'PRE_MULTIAPP_SETUP'
[]
[]
[MultiApps]
[sub]
type = SamplerTransientMultiApp
input_files = triso_1d.i
sampler = sample
execute_on = 'TIMESTEP_BEGIN'
mode = normal
[]
[]
[DiracKernels]
[heat_source]
type = TRISOMonteCarloPointSource
variable = temperature
point_source_values = release_heat_inc
value_name = release_heat_inc:release_heat_inc
point_source_location = point_source_location
[]
[Cs_source]
type = TRISOMonteCarloPointSource
variable = conc_Cs
point_source_values = release_Cs_inc
value_name = release_Cs_inc:release_Cs_inc
point_source_location = point_source_location
[]
[]
[UserObjects]
[point_source_location]
type = TRISOMonteCarloPointSourceLocation
min_radius = 0.0138
max_radius = 0.018
geometry = SPHERE
sampler = sample
fuel_element_blocks = 2
particle_space = 0.0002
execute_on = 'INITIAL'
[]
[]
[Transfers]
[release_heat_inc]
type = SamplerPostprocessorTransfer
from_multi_app = sub
sampler = sample
to_vector_postprocessor = release_heat_inc
from_postprocessor = release_heat_inc
[]
[release_Cs_inc]
type = SamplerPostprocessorTransfer
from_multi_app = sub
sampler = sample
to_vector_postprocessor = release_Cs_inc
from_postprocessor = release_Cs_inc
[]
[sub_temp_bc]
type = SamplerPostprocessorTransfer
from_multi_app = sub
sampler = sample
to_vector_postprocessor = temp_bc
from_postprocessor = aver_temp_exterior
[]
[temp_bc]
type = MultiAppVectorPostprocessorTransfer
to_multi_app = sub
vector_postprocessor = sample_points
postprocessor = temp_bc
vector_name = temperature
[]
[]
[Controls]
[cmdline]
type = MultiAppSamplerControl
multi_app = sub
sampler = sample
param_names = 'kernel_radius buffer_thickness IPyC_thickness SiC_thickness OPyC_thickness'
[]
[]
[VectorPostprocessors]
[sample_points]
type = TRISOMonteCarloPointValueSampler
variable = temperature
execute_on = 'INITIAL TIMESTEP_BEGIN'
point_source_location = point_source_location
[]
[release_heat_inc]
type = StochasticResults
execute_on = 'TIMESTEP_BEGIN'
[]
[release_Cs_inc]
type = StochasticResults
execute_on = 'TIMESTEP_BEGIN'
[]
[heat_source_output]
type = TRISOMonteCarloPointSourceOutput
vector_postprocessor = release_heat_inc
value_name = release_heat_inc:release_heat_inc
point_source_location = point_source_location
[]
[Cs_source_output]
type = TRISOMonteCarloPointSourceOutput
vector_postprocessor = release_Cs_inc
value_name = release_Cs_inc:release_Cs_inc
point_source_location = point_source_location
[]
[temp_bc]
type = StochasticResults
execute_on = 'TIMESTEP_BEGIN'
[]
[temp_bc_output]
type = TRISOMonteCarloPointSourceOutput
vector_postprocessor = temp_bc
value_name = sub_temp_bc:aver_temp_exterior
point_source_location = point_source_location
[]
[]
[Variables]
[temperature]
initial_condition = 773.15
[]
[conc_Cs]
[]
[]
[AuxVariables]
[density]
order = CONSTANT
family = MONOMIAL
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[specific_heat]
order = CONSTANT
family = MONOMIAL
[]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 1e3 4.51008e7' #change time (s) for desired EFPD
y = '0 1 1'
[]
[fission_rate]
type = LinearCombinationFunction
functions = power_history
w = 2.927e18
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[density]
type = MaterialRealAux
variable = density
property = density
block = '1 2 3'
execute_on = 'initial linear'
[]
[thermal_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
block = '1 2 3'
execute_on = timestep_end
[]
[specific_heat]
type = MaterialRealAux
variable = specific_heat
property = specific_heat
block = '1 2 3'
execute_on = timestep_end
[]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[]
[BCs]
[coolant_temp]
type = DirichletBC
variable = temperature
boundary = exterior
value = 773.15
[]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = exterior
value = 0.0
[]
[]
[Materials]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
flux_function = power_history
factor = 1.109e18
[]
##### fuel region propereties
[fueled_region_thermal]
type = GraphiteMatrixThermal
block = 2
graphite_grade = A3_27_1800
packing_fraction = 0.22
temperature = temperature
initial_matrix_density = 1750.0
[]
[fueled_region_density]
type = ParsedMaterial
block = 2
property_name = density
expression = 1750.0
[]
[fuel_conc_Cs]
type = ArrheniusDiffusionCoef
block = 2
d1 = 1e-8 # m^2/s
q1 = 0.0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
##### Shell properties
[shell_region_thermal]
type = GraphiteMatrixThermal
block = 3
graphite_grade = A3_27_1800
packing_fraction = 0.0
temperature = temperature
initial_matrix_density = 1750.0
[]
[shell_region_density]
type = ParsedMaterial
block = 3
property_name = density
expression = 1750.0
[]
[shell_conc_Cs]
type = ArrheniusDiffusionCoef
block = 3
d1 = 1e-8 # m^2/s
q1 = 0.0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
##### pebble core
[core_region_thermal]
type = GraphiteMatrixThermal
block = 1
graphite_grade = A3_27_1800
packing_fraction = 0.0
temperature = temperature
initial_matrix_density = 1400.0
[]
[core_region_density]
type = ParsedMaterial
block = 1
property_name = density
expression = 1400.0
[]
[core_conc_Cs]
type = ArrheniusDiffusionCoef
block = 1
d1 = 1e-8 # m^2/s
q1 = 0.0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'temperature'
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
nl_rel_tol = 1e-9
nl_abs_tol = 1e-9
nl_max_its = 15
l_tol = 1e-5
l_max_its = 30
start_time = 0.0
dt = 500000
num_steps = 10
[]
[Postprocessors]
### irradiation conditions
[pebble_power]
type = ElementIntegralPower
variable = temperature
use_material_fission_rate = true
fission_rate_material = fission_rate
block = 2
execute_on = 'initial timestep_end'
[]
[heat_from_pebble]
type = SideDiffusiveFluxIntegral
variable = temperature
boundary = exterior
diffusivity = thermal_conductivity
execute_on = 'initial timestep_end'
[]
[fast_neutron_maximum_fluence_MP]
type = ElementExtremeMaterialProperty
mat_prop = fast_neutron_fluence
block = '1 2 3'
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[fast_neutron_maximum_flux_MP]
type = ElementExtremeMaterialProperty
mat_prop = fast_neutron_flux
block = '1 2 3'
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[fission_rate_maximum]
type = ElementExtremeMaterialProperty
mat_prop = fission_rate
block = '1 2 3'
value_type = 'max'
execute_on = 'initial timestep_end'
[]
### temperatures
[fuel_minimum_temperature]
type = NodalExtremeValue
variable = temperature
block = '2'
value_type = 'min'
execute_on = 'initial timestep_end'
[]
[fuel_average_temperature]
type = AverageNodalVariableValue
variable = temperature
block = '2'
execute_on = 'initial timestep_end'
[]
[fuel_maximum_temperature]
type = NodalExtremeValue
variable = temperature
block = '2'
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[shell_minimum_temperature]
type = NodalExtremeValue
variable = temperature
block = '3'
value_type = 'min'
execute_on = 'initial timestep_end'
[]
[shell_average_temperature]
type = AverageNodalVariableValue
variable = temperature
block = '3'
execute_on = 'initial timestep_end'
[]
[shell_maximum_temperature]
type = NodalExtremeValue
variable = temperature
block = '3'
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[core_minimum_temperature]
type = NodalExtremeValue
variable = temperature
block = '1'
value_type = 'min'
execute_on = 'initial timestep_end'
[]
[core_average_temperature]
type = AverageNodalVariableValue
variable = temperature
block = '1'
execute_on = 'initial timestep_end'
[]
[core_maximum_temperature]
type = NodalExtremeValue
variable = temperature
block = '1'
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
print_linear_residuals = true
time_step_interval = 1
exodus = true
csv = true
perf_graph = true
[]
(test/tests/triso_pebble/plate.i)
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 3
nx = 2
ny = 2
nz = 2
[]
[subdomain_1]
type = SubdomainBoundingBoxGenerator
block_id = 1
bottom_left = '0 0 0'
top_right = '0.5 1 1'
input = gen
[]
[subdomain_2]
type = SubdomainBoundingBoxGenerator
block_id = 2
bottom_left = '0.5 0 0'
top_right = '1 1 1'
input = subdomain_1
[]
[]
[Variables]
[u]
[]
[]
[Kernels]
[diff]
type = Diffusion
variable = u
[]
[time]
type = TimeDerivative
variable = u
[]
[]
[BCs]
[left]
type = DirichletBC
variable = u
boundary = right
value = 0
[]
[]
[DiracKernels]
[vpp_point_source]
type = TRISOMonteCarloPointSource
variable = u
point_source_values = constant
value_name = source
point_source_location = point_source_location
[]
[]
[UserObjects]
[point_source_location]
type = TRISOMonteCarloPointSourceLocation
min_location = '0.5 0 0'
max_location = '1 1 1'
geometry = PLATE
sampler = sample
particle_space = 0.01
execute_on = 'INITIAL'
[]
[]
[Distributions]
[random]
type = TruncatedNormal
mean = 0
standard_deviation = 0.5
[]
[]
[Samplers]
[sample]
type = MonteCarlo
num_rows = 10
distributions = 'random'
execute_on = 'PRE_MULTIAPP_SETUP'
[]
[]
[VectorPostprocessors]
[constant]
type = ConstantVectorPostprocessor
value = '1 2 3 4 5 6 7 8 9 10'
vector_names = source
execute_on = initial
[]
[point_source_output]
type = TRISOMonteCarloPointSourceOutput
vector_postprocessor = constant
value_name = source
point_source_location = point_source_location
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
nl_max_its = 20
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 4.831315e7
num_steps = 1
dt = 400000
[]
[Outputs]
csv = true
exodus = true
[]
(test/tests/triso_pebble/1D_pebble_picard.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
flux_conversion_factor = 0.85
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 0.0138 0.018 0.02'
mesh_density = '5 10 10'
block_names = 'core fuel shell'
[]
[]
[Distributions]
[normal_kernel_r]
type = TruncatedNormal
mean = 213.35e-6
standard_deviation = 4.4e-6
lower_bound = 1.9575e-04
upper_bound = 2.3095e-04
[]
[normal_buffer_t]
type = TruncatedNormal
mean = 98.9e-6
standard_deviation = 8.4e-6
lower_bound = 6.53e-05
upper_bound = 1.325e-04
[]
[normal_ipyc_t]
type = TruncatedNormal
mean = 40.4e-6
standard_deviation = 2.5e-6
lower_bound = 3.0400e-05
upper_bound = 5.0400e-05
[]
[normal_sic_t]
type = TruncatedNormal
mean = 35.2e-6
standard_deviation = 1.2e-6
lower_bound = 3.0400e-05
upper_bound = 4.0000e-05
[]
[normal_opyc_t]
type = TruncatedNormal
mean = 43.4e-6
standard_deviation = 2.9e-6
lower_bound = 3.1800e-05
upper_bound = 5.5000e-05
[]
[]
[Samplers]
[sample]
type = MonteCarlo
num_rows = 10
distributions = 'normal_kernel_r normal_buffer_t normal_ipyc_t normal_sic_t normal_opyc_t'
execute_on = 'PRE_MULTIAPP_SETUP'
[]
[]
[MultiApps]
[sub]
type = SamplerTransientMultiApp
input_files = triso_1d.i
sampler = sample
execute_on = 'TIMESTEP_BEGIN'
mode = normal
[]
[]
[DiracKernels]
[vpp_point_source]
type = TRISOMonteCarloPointSource
variable = temperature
point_source_values = released_heat_inc
value_name = released_heat_inc:released_heat_inc
point_source_location = point_source_location
[]
[]
[UserObjects]
[point_source_location]
type = TRISOMonteCarloPointSourceLocation
min_radius = 0.0138
max_radius = 0.018
geometry = SPHERE
sampler = sample
fuel_element_blocks = fuel
execute_on = 'INITIAL'
[]
[]
[Transfers]
[released_heat_inc]
type = SamplerPostprocessorTransfer
from_multi_app = sub
sampler = sample
to_vector_postprocessor = released_heat_inc
from_postprocessor = released_heat_inc
[]
[sub_temp_bc]
type = SamplerPostprocessorTransfer
from_multi_app = sub
sampler = sample
to_vector_postprocessor = temp_bc
from_postprocessor = aver_temp_exterior
[]
[temp_bc]
type = MultiAppVectorPostprocessorTransfer
to_multi_app = sub
vector_postprocessor = sample_points
postprocessor = temp_bc
vector_name = temperature
[]
[]
[Controls]
[cmdline]
type = MultiAppSamplerControl
multi_app = sub
sampler = sample
param_names = 'kernel_radius buffer_thickness IPyC_thickness SiC_thickness OPyC_thickness'
[]
[]
[VectorPostprocessors]
[sample_points]
type = TRISOMonteCarloPointValueSampler
variable = temperature
execute_on = 'INITIAL TIMESTEP_BEGIN'
point_source_location = point_source_location
[]
[sampler_data]
type = SamplerData
execute_on = 'TIMESTEP_BEGIN'
sampler = sample
[]
[released_heat_inc]
type = StochasticResults
execute_on = 'TIMESTEP_BEGIN'
[]
[temp_bc]
type = StochasticResults
execute_on = 'INITIAL TIMESTEP_BEGIN'
[]
[point_source_output]
type = TRISOMonteCarloPointSourceOutput
vector_postprocessor = released_heat_inc
value_name = released_heat_inc:released_heat_inc
point_source_location = point_source_location
[]
[temp_bc_output]
type = TRISOMonteCarloPointSourceOutput
vector_postprocessor = temp_bc
value_name = sub_temp_bc:aver_temp_exterior
point_source_location = point_source_location
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Variables]
[temperature]
initial_condition = 773.15
[]
[]
[AuxVariables]
[density]
order = CONSTANT
family = MONOMIAL
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[specific_heat]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[heat_source]
type = FissionRateHeatSource
variable = temperature
block = fuel
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[density]
type = MaterialRealAux
variable = density
property = density
block = 'core fuel shell'
execute_on = 'initial linear'
[]
[thermal_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
block = 'core fuel shell'
execute_on = timestep_end
[]
[specific_heat]
type = MaterialRealAux
variable = specific_heat
property = specific_heat
block = 'core fuel shell'
execute_on = timestep_end
[]
[]
[BCs]
[coolant_temp]
type = DirichletBC
variable = temperature
boundary = exterior
value = 773.15
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 76e6'
y = '1 1'
[]
[fission_rate]
type = LinearCombinationFunction
functions = power_history
w = 5.75e19
[]
[]
[Materials]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
flux_function = power_history
factor = 6.28e17
[]
[fueled_region_thermal]
type = GraphiteMatrixThermal
block = fuel
graphite_grade = A3_27_1800
packing_fraction = 0.22
temperature = temperature
initial_matrix_density = 1750.0
[]
[fuel_region_density]
type = ParsedMaterial
block = fuel
property_name = density
expression = 1750.0
[]
[shell_region_thermal]
type = GraphiteMatrixThermal
block = shell
graphite_grade = A3_27_1800
packing_fraction = 0.0
temperature = temperature
initial_matrix_density = 1750.0
[]
[shell_region_density]
type = ParsedMaterial
block = shell
property_name = density
expression = 1750.0
[]
[core_region_thermal]
type = GraphiteMatrixThermal
block = core
graphite_grade = A3_27_1800
packing_fraction = 0.0
temperature = temperature
initial_matrix_density = 1400.0
[]
[core_region_density]
type = ParsedMaterial
block = core
property_name = density
expression = 1400.0
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'temperature'
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_rel_tol = 1e-12
nl_abs_tol = 1e-12
nl_max_its = 15
nl_forced_its = 2
l_tol = 1e-5
l_max_its = 30
start_time = 0.0
dt = 20000
num_steps = 2
fixed_point_max_its = 20
accept_on_max_fixed_point_iteration = true
fixed_point_rel_tol = 1e-8
fixed_point_abs_tol = 1e-10
[]
[Outputs]
exodus = true
[]
(test/tests/triso_pebble/3D_pebble_location_from_file.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
flux_conversion_factor = 0.85
[]
[Mesh]
[file]
type = FileMeshGenerator
file = pebble.e
[]
[]
[Distributions]
[normal_kernel_r]
type = TruncatedNormal
mean = 213.35e-6
standard_deviation = 4.4e-6
lower_bound = 1.9575e-04
upper_bound = 2.3095e-04
[]
[normal_buffer_t]
type = TruncatedNormal
mean = 98.9e-6
standard_deviation = 8.4e-6
lower_bound = 6.53e-05
upper_bound = 1.325e-04
[]
[normal_ipyc_t]
type = TruncatedNormal
mean = 40.4e-6
standard_deviation = 2.5e-6
lower_bound = 3.0400e-05
upper_bound = 5.0400e-05
[]
[normal_sic_t]
type = TruncatedNormal
mean = 35.2e-6
standard_deviation = 1.2e-6
lower_bound = 3.0400e-05
upper_bound = 4.0000e-05
[]
[normal_opyc_t]
type = TruncatedNormal
mean = 43.4e-6
standard_deviation = 2.9e-6
lower_bound = 3.1800e-05
upper_bound = 5.5000e-05
[]
[]
[Samplers]
[sample]
type = MonteCarlo
num_rows = 10
distributions = 'normal_kernel_r normal_buffer_t normal_ipyc_t normal_sic_t normal_opyc_t'
execute_on = 'PRE_MULTIAPP_SETUP'
[]
[]
[MultiApps]
[sub]
type = SamplerTransientMultiApp
input_files = triso_1d.i
sampler = sample
execute_on = 'TIMESTEP_BEGIN'
mode = normal
[]
[]
[DiracKernels]
[vpp_point_source]
type = TRISOMonteCarloPointSource
variable = temperature
point_source_values = released_heat_inc
value_name = released_heat_inc:released_heat_inc
point_source_location = point_source_location
[]
[]
[UserObjects]
[point_source_location]
type = TRISOMonteCarloPointSourceLocationFromFile
sampler = sample
particle_location_file_name = location.txt
execute_on = 'INITIAL'
[]
[]
[Transfers]
[released_heat_inc]
type = SamplerPostprocessorTransfer
from_multi_app = sub
sampler = sample
to_vector_postprocessor = released_heat_inc
from_postprocessor = released_heat_inc
[]
[temp_bc]
type = MultiAppVectorPostprocessorTransfer
to_multi_app = sub
vector_postprocessor = sample_points
postprocessor = temp_bc
vector_name = temperature
[]
[]
[Controls]
[cmdline]
type = MultiAppSamplerControl
multi_app = sub
sampler = sample
param_names = 'kernel_radius buffer_thickness IPyC_thickness SiC_thickness OPyC_thickness'
[]
[]
[VectorPostprocessors]
[sample_points]
type = TRISOMonteCarloPointValueSampler
variable = temperature
execute_on = 'INITIAL TIMESTEP_BEGIN'
point_source_location = point_source_location
[]
[sampler_data]
type = SamplerData
execute_on = 'TIMESTEP_BEGIN'
sampler = sample
[]
[released_heat_inc]
type = StochasticResults
execute_on = 'TIMESTEP_BEGIN'
[]
[point_source_output]
type = TRISOMonteCarloPointSourceOutput
vector_postprocessor = released_heat_inc
value_name = released_heat_inc:released_heat_inc
point_source_location = point_source_location
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Variables]
[temperature]
initial_condition = 773.15
[]
[]
[AuxVariables]
[density]
order = CONSTANT
family = MONOMIAL
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[specific_heat]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[density]
type = MaterialRealAux
variable = density
property = density
block = 'core fuel shell'
execute_on = 'initial linear'
[]
[thermal_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
block = 'core fuel shell'
execute_on = timestep_end
[]
[specific_heat]
type = MaterialRealAux
variable = specific_heat
property = specific_heat
block = 'core fuel shell'
execute_on = timestep_end
[]
[]
[BCs]
[coolant_temp]
type = DirichletBC
variable = temperature
boundary = exterior
value = 773.15
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 76e6'
y = '1 1'
[]
[fission_rate]
type = LinearCombinationFunction
functions = power_history
w = 5.75e19
[]
[]
[Materials]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
flux_function = power_history
factor = 6.28e17
[]
[fueled_region_thermal]
type = GraphiteMatrixThermal
block = fuel
graphite_grade = A3_27_1800
packing_fraction = 0.22
temperature = temperature
initial_matrix_density = 1750.0
[]
[fuel_region_density]
type = ParsedMaterial
block = fuel
property_name = density
expression = 1750.0
[]
[shell_region_thermal]
type = GraphiteMatrixThermal
block = shell
graphite_grade = A3_27_1800
packing_fraction = 0.0
temperature = temperature
initial_matrix_density = 1750.0
[]
[shell_region_density]
type = ParsedMaterial
block = shell
property_name = density
expression = 1750.0
[]
[core_region_thermal]
type = GraphiteMatrixThermal
block = core
graphite_grade = A3_27_1800
packing_fraction = 0.0
temperature = temperature
initial_matrix_density = 1400.0
[]
[core_region_density]
type = ParsedMaterial
block = core
property_name = density
expression = 1400.0
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'temperature'
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_rel_tol = 1e-9
nl_abs_tol = 1e-9
nl_max_its = 20
l_tol = 1e-5
l_max_its = 30
start_time = 0.0
dt = 20000
num_steps = 2
[]
[Outputs]
print_linear_residuals = true
time_step_interval = 1
exodus = true
csv = true
perf_graph = true
[]
(test/tests/triso_pebble/cylinder_3d.i)
[Mesh]
[file]
type = FileMeshGenerator
file = cyl.e
[]
[]
[Variables]
[u]
[]
[]
[Kernels]
[diff]
type = Diffusion
variable = u
[]
[time]
type = TimeDerivative
variable = u
[]
[]
[BCs]
[left]
type = DirichletBC
variable = u
boundary = 101
value = 0
[]
[]
[DiracKernels]
[vpp_point_source]
type = TRISOMonteCarloPointSource
variable = u
point_source_values = constant
value_name = source
point_source_location = point_source_location
[]
[]
[UserObjects]
[point_source_location]
type = TRISOMonteCarloPointSourceLocation
min_radius = 0.75
max_radius = 1.0
height = 1.5
geometry = CYLINDER
sampler = sample
fuel_element_blocks = 2
particle_space = 0.04
execute_on = 'INITIAL'
[]
[]
[Distributions]
[random]
type = TruncatedNormal
mean = 0
standard_deviation = 0.5
[]
[]
[Samplers]
[sample]
type = MonteCarlo
num_rows = 10
distributions = 'random'
execute_on = 'PRE_MULTIAPP_SETUP'
[]
[]
[VectorPostprocessors]
[constant]
type = ConstantVectorPostprocessor
value = '1 2 3 4 5 6 7 8 9 10'
vector_names = source
execute_on = initial
[]
[point_source_output]
type = TRISOMonteCarloPointSourceOutput
vector_postprocessor = constant
value_name = source
point_source_location = point_source_location
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
nl_max_its = 20
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 4.831315e7
num_steps = 1
dt = 400000
[]
[Outputs]
csv = true
exodus = true
[]
(test/tests/triso_pebble/sphere_2d_rz.i)
[Mesh]
coord_type = RZ
[gen]
type = CircularCrossSectionMeshGenerator
num_sectors = 20
elements_per_ring = '5 3'
block_names = 'core fuel'
coordinates = '0.75 1.0'
portion = right_half
[]
[]
[Variables]
[u]
[]
[]
[Kernels]
[diff]
type = Diffusion
variable = u
[]
[time]
type = TimeDerivative
variable = u
[]
[]
[BCs]
[outer]
type = DirichletBC
variable = u
boundary = outer
value = 0
[]
[]
[DiracKernels]
[vpp_point_source]
type = TRISOMonteCarloPointSource
variable = u
point_source_values = constant
value_name = source
point_source_location = point_source_location
[]
[]
[UserObjects]
[point_source_location]
type = TRISOMonteCarloPointSourceLocation
min_radius = 0.75
max_radius = 1.0
geometry = SPHERE
sampler = sample
fuel_element_blocks = 2
particle_space = 0.05
execute_on = 'INITIAL'
[]
[]
[Distributions]
[random]
type = TruncatedNormal
mean = 0
standard_deviation = 0.5
[]
[]
[Samplers]
[sample]
type = MonteCarlo
num_rows = 10
distributions = 'random'
execute_on = 'PRE_MULTIAPP_SETUP'
[]
[]
[VectorPostprocessors]
[constant]
type = ConstantVectorPostprocessor
value = '1 2 3 4 5 6 7 8 9 10'
vector_names = source
execute_on = initial
[]
[point_source_output]
type = TRISOMonteCarloPointSourceOutput
vector_postprocessor = constant
value_name = source
point_source_location = point_source_location
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
nl_max_its = 20
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 4.831315e7
num_steps = 1
dt = 400000
[]
[Outputs]
csv = true
exodus = true
[]
(test/tests/triso_pebble/1D_pebble.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
flux_conversion_factor = 0.85
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 0.0138 0.018 0.02'
mesh_density = '5 10 10'
block_names = 'core fuel shell'
[]
[]
[Distributions]
[normal_kernel_r]
type = TruncatedNormal
mean = 213.35e-6
standard_deviation = 4.4e-6
lower_bound = 1.9575e-04
upper_bound = 2.3095e-04
[]
[normal_buffer_t]
type = TruncatedNormal
mean = 98.9e-6
standard_deviation = 8.4e-6
lower_bound = 6.53e-05
upper_bound = 1.325e-04
[]
[normal_ipyc_t]
type = TruncatedNormal
mean = 40.4e-6
standard_deviation = 2.5e-6
lower_bound = 3.0400e-05
upper_bound = 5.0400e-05
[]
[normal_sic_t]
type = TruncatedNormal
mean = 35.2e-6
standard_deviation = 1.2e-6
lower_bound = 3.0400e-05
upper_bound = 4.0000e-05
[]
[normal_opyc_t]
type = TruncatedNormal
mean = 43.4e-6
standard_deviation = 2.9e-6
lower_bound = 3.1800e-05
upper_bound = 5.5000e-05
[]
[]
[Samplers]
[sample]
type = MonteCarlo
num_rows = 10
distributions = 'normal_kernel_r normal_buffer_t normal_ipyc_t normal_sic_t normal_opyc_t'
execute_on = 'PRE_MULTIAPP_SETUP'
[]
[]
[MultiApps]
[sub]
type = SamplerTransientMultiApp
input_files = triso_1d.i
sampler = sample
execute_on = 'TIMESTEP_BEGIN'
mode = normal
[]
[]
[DiracKernels]
[vpp_point_source]
type = TRISOMonteCarloPointSource
variable = temperature
point_source_values = released_heat_inc
value_name = released_heat_inc:released_heat_inc
point_source_location = point_source_location
[]
[]
[UserObjects]
[point_source_location]
type = TRISOMonteCarloPointSourceLocation
min_radius = 0.0138
max_radius = 0.018
geometry = SPHERE
sampler = sample
fuel_element_blocks = fuel
execute_on = 'INITIAL'
[]
[]
[Transfers]
[released_heat_inc]
type = SamplerPostprocessorTransfer
from_multi_app = sub
sampler = sample
to_vector_postprocessor = released_heat_inc
from_postprocessor = released_heat_inc
[]
[sub_temp_bc]
type = SamplerPostprocessorTransfer
from_multi_app = sub
sampler = sample
to_vector_postprocessor = temp_bc
from_postprocessor = aver_temp_exterior
[]
[temp_bc]
type = MultiAppVectorPostprocessorTransfer
to_multi_app = sub
vector_postprocessor = sample_points
postprocessor = temp_bc
vector_name = temperature
[]
[]
[Controls]
[cmdline]
type = MultiAppSamplerControl
multi_app = sub
sampler = sample
param_names = 'kernel_radius buffer_thickness IPyC_thickness SiC_thickness OPyC_thickness'
[]
[]
[VectorPostprocessors]
[sample_points]
type = TRISOMonteCarloPointValueSampler
variable = temperature
execute_on = 'INITIAL TIMESTEP_BEGIN'
point_source_location = point_source_location
[]
[sampler_data]
type = SamplerData
execute_on = 'TIMESTEP_BEGIN'
sampler = sample
[]
[released_heat_inc]
type = StochasticResults
execute_on = 'TIMESTEP_BEGIN'
[]
[temp_bc]
type = StochasticResults
execute_on = 'INITIAL TIMESTEP_BEGIN'
[]
[point_source_output]
type = TRISOMonteCarloPointSourceOutput
vector_postprocessor = released_heat_inc
value_name = released_heat_inc:released_heat_inc
point_source_location = point_source_location
[]
[temp_bc_output]
type = TRISOMonteCarloPointSourceOutput
vector_postprocessor = temp_bc
value_name = sub_temp_bc:aver_temp_exterior
point_source_location = point_source_location
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Variables]
[temperature]
initial_condition = 773.15
[]
[]
[AuxVariables]
[density]
order = CONSTANT
family = MONOMIAL
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[specific_heat]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[heat_source]
type = FissionRateHeatSource
variable = temperature
block = fuel
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[density]
type = MaterialRealAux
variable = density
property = density
block = 'core fuel shell'
execute_on = 'initial linear'
[]
[thermal_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
block = 'core fuel shell'
execute_on = timestep_end
[]
[specific_heat]
type = MaterialRealAux
variable = specific_heat
property = specific_heat
block = 'core fuel shell'
execute_on = timestep_end
[]
[]
[BCs]
[coolant_temp]
type = DirichletBC
variable = temperature
boundary = exterior
value = 773.15
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 76e6'
y = '1 1'
[]
[fission_rate]
type = LinearCombinationFunction
functions = power_history
w = 5.75e19
[]
[]
[UserObjects]
[particle_geometry]
type = TRISOGeometry
outer_core = core_outer_boundary
outer_fueled_region = fuel_outer_boundary
outer_shell = shell_outer_boundary
include_particle = false
include_pebble = true
[]
[]
[Materials]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
flux_function = power_history
factor = 6.28e17
[]
[fueled_region_thermal]
type = GraphiteMatrixThermal
block = fuel
graphite_grade = A3_27_1800
packing_fraction = 0.22
temperature = temperature
initial_matrix_density = 1750.0
[]
[fuel_region_density]
type = ParsedMaterial
block = fuel
property_name = density
expression = 1750.0
[]
[shell_region_thermal]
type = GraphiteMatrixThermal
block = shell
graphite_grade = A3_27_1800
packing_fraction = 0.0
temperature = temperature
initial_matrix_density = 1750.0
[]
[shell_region_density]
type = ParsedMaterial
block = shell
property_name = density
expression = 1750.0
[]
[core_region_thermal]
type = GraphiteMatrixThermal
block = core
graphite_grade = A3_27_1800
packing_fraction = 0.0
temperature = temperature
initial_matrix_density = 1400.0
[]
[core_region_density]
type = ParsedMaterial
block = core
property_name = density
expression = 1400.0
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'temperature'
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_rel_tol = 1e-12
nl_abs_tol = 1e-12
nl_max_its = 15
l_tol = 1e-5
l_max_its = 30
start_time = 0.0
dt = 20000
num_steps = 2
[]
[Outputs]
exodus = true
[]
(test/tests/triso_pebble/3D_pebble.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
flux_conversion_factor = 0.85
[]
[Mesh]
[file]
type = FileMeshGenerator
file = pebble.e
[]
[]
[Distributions]
[normal_kernel_r]
type = TruncatedNormal
mean = 213.35e-6
standard_deviation = 4.4e-6
lower_bound = 1.9575e-04
upper_bound = 2.3095e-04
[]
[normal_buffer_t]
type = TruncatedNormal
mean = 98.9e-6
standard_deviation = 8.4e-6
lower_bound = 6.53e-05
upper_bound = 1.325e-04
[]
[normal_ipyc_t]
type = TruncatedNormal
mean = 40.4e-6
standard_deviation = 2.5e-6
lower_bound = 3.0400e-05
upper_bound = 5.0400e-05
[]
[normal_sic_t]
type = TruncatedNormal
mean = 35.2e-6
standard_deviation = 1.2e-6
lower_bound = 3.0400e-05
upper_bound = 4.0000e-05
[]
[normal_opyc_t]
type = TruncatedNormal
mean = 43.4e-6
standard_deviation = 2.9e-6
lower_bound = 3.1800e-05
upper_bound = 5.5000e-05
[]
[]
[Samplers]
[sample]
type = MonteCarlo
num_rows = 10
distributions = 'normal_kernel_r normal_buffer_t normal_ipyc_t normal_sic_t normal_opyc_t'
execute_on = 'PRE_MULTIAPP_SETUP'
[]
[]
[MultiApps]
[sub]
type = SamplerTransientMultiApp
input_files = triso_1d.i
sampler = sample
execute_on = 'TIMESTEP_BEGIN'
mode = normal
[]
[]
[DiracKernels]
[vpp_point_source]
type = TRISOMonteCarloPointSource
variable = temperature
point_source_values = released_heat_inc
value_name = released_heat_inc:released_heat_inc
point_source_location = point_source_location
[]
[]
[UserObjects]
[point_source_location]
type = TRISOMonteCarloPointSourceLocation
min_radius = 0.0138
max_radius = 0.018
geometry = SPHERE
sampler = sample
fuel_element_blocks = fuel
execute_on = 'INITIAL'
[]
[]
[Transfers]
[released_heat_inc]
type = SamplerPostprocessorTransfer
from_multi_app = sub
sampler = sample
to_vector_postprocessor = released_heat_inc
from_postprocessor = released_heat_inc
[]
[temp_bc]
type = MultiAppVectorPostprocessorTransfer
to_multi_app = sub
vector_postprocessor = sample_points
postprocessor = temp_bc
vector_name = temperature
[]
[]
[Controls]
[cmdline]
type = MultiAppSamplerControl
multi_app = sub
sampler = sample
param_names = 'kernel_radius buffer_thickness IPyC_thickness SiC_thickness OPyC_thickness'
[]
[]
[VectorPostprocessors]
[sample_points]
type = TRISOMonteCarloPointValueSampler
variable = temperature
execute_on = 'INITIAL TIMESTEP_BEGIN'
point_source_location = point_source_location
[]
[sampler_data]
type = SamplerData
execute_on = 'TIMESTEP_BEGIN'
sampler = sample
[]
[released_heat_inc]
type = StochasticResults
execute_on = 'TIMESTEP_BEGIN'
[]
[point_source_output]
type = TRISOMonteCarloPointSourceOutput
vector_postprocessor = released_heat_inc
value_name = released_heat_inc:released_heat_inc
point_source_location = point_source_location
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Variables]
[temperature]
initial_condition = 773.15
[]
[]
[AuxVariables]
[density]
order = CONSTANT
family = MONOMIAL
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[specific_heat]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[density]
type = MaterialRealAux
variable = density
property = density
block = 'core fuel shell'
execute_on = 'initial linear'
[]
[thermal_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
block = 'core fuel shell'
execute_on = timestep_end
[]
[specific_heat]
type = MaterialRealAux
variable = specific_heat
property = specific_heat
block = 'core fuel shell'
execute_on = timestep_end
[]
[]
[BCs]
[coolant_temp]
type = DirichletBC
variable = temperature
boundary = exterior
value = 773.15
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 76e6'
y = '1 1'
[]
[fission_rate]
type = LinearCombinationFunction
functions = power_history
w = 5.75e19
[]
[]
[Materials]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
flux_function = power_history
factor = 6.28e17
[]
[fueled_region_thermal]
type = GraphiteMatrixThermal
block = fuel
graphite_grade = A3_27_1800
packing_fraction = 0.22
temperature = temperature
initial_matrix_density = 1750.0
[]
[fuel_region_density]
type = ParsedMaterial
block = fuel
property_name = density
expression = 1750.0
[]
[shell_region_thermal]
type = GraphiteMatrixThermal
block = shell
graphite_grade = A3_27_1800
packing_fraction = 0.0
temperature = temperature
initial_matrix_density = 1750.0
[]
[shell_region_density]
type = ParsedMaterial
block = shell
property_name = density
expression = 1750.0
[]
[core_region_thermal]
type = GraphiteMatrixThermal
block = core
graphite_grade = A3_27_1800
packing_fraction = 0.0
temperature = temperature
initial_matrix_density = 1400.0
[]
[core_region_density]
type = ParsedMaterial
block = core
property_name = density
expression = 1400.0
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'temperature'
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_rel_tol = 1e-9
nl_abs_tol = 1e-9
nl_max_its = 20
l_tol = 1e-5
l_max_its = 30
start_time = 0.0
dt = 20000
num_steps = 2
[]
[Outputs]
print_linear_residuals = true
time_step_interval = 1
exodus = true
csv = true
perf_graph = true
[]
(test/tests/triso_pebble/1D_pebble_from_csv.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
flux_conversion_factor = 0.85
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 0.0138 0.018 0.02'
mesh_density = '5 10 10'
block_names = 'core fuel shell'
[]
[]
[Distributions]
[normal_kernel_r]
type = TruncatedNormal
mean = 213.35e-6
standard_deviation = 4.4e-6
lower_bound = 1.9575e-04
upper_bound = 2.3095e-04
[]
[normal_buffer_t]
type = TruncatedNormal
mean = 98.9e-6
standard_deviation = 8.4e-6
lower_bound = 6.53e-05
upper_bound = 1.325e-04
[]
[normal_ipyc_t]
type = TruncatedNormal
mean = 40.4e-6
standard_deviation = 2.5e-6
lower_bound = 3.0400e-05
upper_bound = 5.0400e-05
[]
[normal_sic_t]
type = TruncatedNormal
mean = 35.2e-6
standard_deviation = 1.2e-6
lower_bound = 3.0400e-05
upper_bound = 4.0000e-05
[]
[normal_opyc_t]
type = TruncatedNormal
mean = 43.4e-6
standard_deviation = 2.9e-6
lower_bound = 3.1800e-05
upper_bound = 5.5000e-05
[]
[]
[DiracKernels]
[vpp_point_source]
type = TRISOMonteCarloPointSource
variable = temperature
point_source_values = heat_source
value_name = heat_inc
point_source_location = point_source_location
[]
[]
[UserObjects]
[point_source_location]
type = TRISOMonteCarloPointSourceLocation
min_radius = 0.0138
max_radius = 0.018
geometry = SPHERE
fuel_element_blocks = fuel
execute_on = 'INITIAL'
num_particles = 100
[]
[]
[VectorPostprocessors]
[heat_source]
type = TRISOMonteCarloPointSourceFromFile
file_base_time = monte_carlo_out_time
file_base_source = monte_carlo_out_release_heat_inc
x_header_in_file = 'time:time'
y_header_in_file = 'release_heat_inc:release_heat_inc'
source_name = heat_inc
num_files = 2
num_particles = 100
format = columns
execute_on = 'INITIAL TIMESTEP_BEGIN'
[]
[point_source_output]
type = TRISOMonteCarloPointSourceOutput
vector_postprocessor = heat_source
value_name = heat_inc
point_source_location = point_source_location
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Variables]
[temperature]
initial_condition = 773.15
[]
[]
[AuxVariables]
[density]
order = CONSTANT
family = MONOMIAL
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[specific_heat]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[density]
type = MaterialRealAux
variable = density
property = density
block = 'core fuel shell'
execute_on = 'initial linear'
[]
[thermal_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
block = 'core fuel shell'
execute_on = timestep_end
[]
[specific_heat]
type = MaterialRealAux
variable = specific_heat
property = specific_heat
block = 'core fuel shell'
execute_on = timestep_end
[]
[]
[BCs]
[coolant_temp]
type = DirichletBC
variable = temperature
boundary = exterior
value = 773.15
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 76e6'
y = '1 1'
[]
[fission_rate]
type = LinearCombinationFunction
functions = power_history
w = 5.75e19
[]
[]
[Materials]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
flux_function = power_history
factor = 6.28e17
[]
[fueled_region_thermal]
type = GraphiteMatrixThermal
block = fuel
graphite_grade = A3_27_1800
packing_fraction = 0.22
temperature = temperature
initial_matrix_density = 1750.0
[]
[fuel_region_density]
type = ParsedMaterial
block = fuel
property_name = density
expression = 1750.0
[]
[shell_region_thermal]
type = GraphiteMatrixThermal
block = shell
graphite_grade = A3_27_1800
packing_fraction = 0.0
temperature = temperature
initial_matrix_density = 1750.0
[]
[shell_region_density]
type = ParsedMaterial
block = shell
property_name = density
expression = 1750.0
[]
[core_region_thermal]
type = GraphiteMatrixThermal
block = core
graphite_grade = A3_27_1800
packing_fraction = 0.0
temperature = temperature
initial_matrix_density = 1400.0
[]
[core_region_density]
type = ParsedMaterial
block = core
property_name = density
expression = 1400.0
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'temperature'
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_rel_tol = 1e-9
nl_abs_tol = 1e-9
nl_max_its = 15
l_tol = 1e-5
l_max_its = 30
start_time = 0.0
dt = 10
num_steps = 2
[]
[Outputs]
print_linear_residuals = true
time_step_interval = 1
exodus = true
perf_graph = true
[]
(test/tests/triso_pebble/sphere_3d.i)
[Mesh]
[file]
type = FileMeshGenerator
file = sph.e
[]
[]
[Variables]
[u]
[]
[]
[Kernels]
[diff]
type = Diffusion
variable = u
[]
[time]
type = TimeDerivative
variable = u
[]
[]
[BCs]
[left]
type = DirichletBC
variable = u
boundary = exterior
value = 0
[]
[]
[DiracKernels]
[vpp_point_source]
type = TRISOMonteCarloPointSource
variable = u
point_source_values = constant
value_name = source
point_source_location = point_source_location
[]
[]
[UserObjects]
[point_source_location]
type = TRISOMonteCarloPointSourceLocation
min_radius = 0.75
max_radius = 1.0
geometry = SPHERE
sampler = sample
fuel_element_blocks = 2
particle_space = 0.05
execute_on = 'INITIAL'
[]
[]
[Distributions]
[random]
type = TruncatedNormal
mean = 0
standard_deviation = 0.5
[]
[]
[Samplers]
[sample]
type = MonteCarlo
num_rows = 10
distributions = 'random'
execute_on = 'PRE_MULTIAPP_SETUP'
[]
[]
[VectorPostprocessors]
[constant]
type = ConstantVectorPostprocessor
value = '1 2 3 4 5 6 7 8 9 10'
vector_names = source
execute_on = initial
[]
[point_source_output]
type = TRISOMonteCarloPointSourceOutput
vector_postprocessor = constant
value_name = source
point_source_location = point_source_location
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
nl_max_its = 20
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 4.831315e7
num_steps = 1
dt = 400000
[]
[Outputs]
csv = true
exodus = true
[]
(examples/TRISO/pebble/3D_pebble_with_failed_particles.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
flux_conversion_factor = 0.85
energy_per_fission = 3.204e-11 #[J/fission]
[]
[Mesh]
[file]
type = FileMeshGenerator
file = pebble.e
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Distributions]
[normal_kernel_r]
type = TruncatedNormal
mean = 213.35e-6
standard_deviation = 4.4e-6
lower_bound = 1.9575e-04
upper_bound = 2.3095e-04
[]
[normal_buffer_t]
type = TruncatedNormal
mean = 98.9e-6
standard_deviation = 8.4e-6
lower_bound = 6.53e-05
upper_bound = 1.325e-04
[]
[normal_ipyc_t]
type = TruncatedNormal
mean = 40.4e-6
standard_deviation = 2.5e-6
lower_bound = 3.0400e-05
upper_bound = 5.0400e-05
[]
[normal_sic_t]
type = TruncatedNormal
mean = 35.2e-6
standard_deviation = 1.2e-6
lower_bound = 3.0400e-05
upper_bound = 4.0000e-05
[]
[normal_opyc_t]
type = TruncatedNormal
mean = 43.4e-6
standard_deviation = 2.9e-6
lower_bound = 3.1800e-05
upper_bound = 5.5000e-05
[]
[]
[Samplers]
[sample]
type = MonteCarlo
num_rows = 100
distributions = 'normal_kernel_r normal_buffer_t normal_ipyc_t normal_sic_t normal_opyc_t'
execute_on = 'PRE_MULTIAPP_SETUP'
[]
[sample_failed]
type = MonteCarlo
num_rows = 10
distributions = 'normal_kernel_r normal_buffer_t normal_ipyc_t normal_sic_t normal_opyc_t'
execute_on = 'PRE_MULTIAPP_SETUP'
[]
[]
[MultiApps]
[sub]
type = SamplerTransientMultiApp
input_files = triso_1d.i
sampler = sample
execute_on = 'TIMESTEP_BEGIN'
mode = normal
[]
[sub_failed]
type = SamplerTransientMultiApp
input_files = triso_1d_failed.i
sampler = sample_failed
execute_on = 'TIMESTEP_BEGIN'
mode = normal
[]
[]
[DiracKernels]
[heat_source]
type = TRISOMonteCarloPointSource
variable = temperature
point_source_values = release_heat_inc
value_name = release_heat_inc:release_heat_inc
point_source_location = point_source_location
[]
[Cs_source]
type = TRISOMonteCarloPointSource
variable = conc_Cs
point_source_values = release_Cs_inc
value_name = release_Cs_inc:release_Cs_inc
point_source_location = point_source_location
[]
[heat_source_failed]
type = TRISOMonteCarloPointSource
variable = temperature
point_source_values = release_heat_inc_failed
value_name = release_heat_inc_failed:release_heat_inc
point_source_location = point_source_location_failed
[]
[Cs_source_failed]
type = TRISOMonteCarloPointSource
variable = conc_Cs
point_source_values = release_Cs_inc_failed
value_name = release_Cs_inc_failed:release_Cs_inc
point_source_location = point_source_location_failed
[]
[]
[UserObjects]
[point_source_location]
type = TRISOMonteCarloPointSourceLocation
min_radius = 0.0138
max_radius = 0.018
geometry = SPHERE
sampler = sample
fuel_element_blocks = 2
particle_space = 0.0002
execute_on = 'INITIAL'
[]
[point_source_location_failed]
type = TRISOMonteCarloPointSourceLocation
min_radius = 0.0138
max_radius = 0.018
geometry = SPHERE
sampler = sample_failed
fuel_element_blocks = 2
particle_space = 0.0002
execute_on = 'INITIAL'
[]
[]
[Transfers]
[release_heat_inc]
type = SamplerPostprocessorTransfer
from_multi_app = sub
sampler = sample
to_vector_postprocessor = release_heat_inc
from_postprocessor = release_heat_inc
[]
[release_Cs_inc]
type = SamplerPostprocessorTransfer
from_multi_app = sub
sampler = sample
to_vector_postprocessor = release_Cs_inc
from_postprocessor = release_Cs_inc
[]
[release_heat_inc_failed]
type = SamplerPostprocessorTransfer
from_multi_app = sub_failed
sampler = sample_failed
to_vector_postprocessor = release_heat_inc_failed
from_postprocessor = release_heat_inc
[]
[release_Cs_inc_failed]
type = SamplerPostprocessorTransfer
from_multi_app = sub_failed
sampler = sample_failed
to_vector_postprocessor = release_Cs_inc_failed
from_postprocessor = release_Cs_inc
[]
[temp_bc]
type = MultiAppVectorPostprocessorTransfer
to_multi_app = sub
vector_postprocessor = sample_points
postprocessor = temp_bc
vector_name = temperature
[]
[temp_bc_failed]
type = MultiAppVectorPostprocessorTransfer
to_multi_app = sub_failed
vector_postprocessor = sample_points_failed
postprocessor = temp_bc
vector_name = temperature
[]
[]
[Controls]
[cmdline]
type = MultiAppSamplerControl
multi_app = sub
sampler = sample
param_names = 'kernel_radius buffer_thickness IPyC_thickness SiC_thickness OPyC_thickness'
[]
[cmdline_failed]
type = MultiAppSamplerControl
multi_app = sub_failed
sampler = sample_failed
param_names = 'kernel_radius buffer_thickness IPyC_thickness SiC_thickness OPyC_thickness'
[]
[]
[VectorPostprocessors]
[sample_points]
type = TRISOMonteCarloPointValueSampler
variable = temperature
execute_on = 'INITIAL TIMESTEP_BEGIN'
point_source_location = point_source_location
[]
[sample_points_failed]
type = TRISOMonteCarloPointValueSampler
variable = temperature
execute_on = 'INITIAL TIMESTEP_BEGIN'
point_source_location = point_source_location_failed
[]
[release_heat_inc]
type = StochasticResults
execute_on = 'TIMESTEP_BEGIN'
[]
[release_Cs_inc]
type = StochasticResults
execute_on = 'TIMESTEP_BEGIN'
[]
[heat_source_output]
type = TRISOMonteCarloPointSourceOutput
vector_postprocessor = release_heat_inc
value_name = release_heat_inc:release_heat_inc
point_source_location = point_source_location
execute_on = 'TIMESTEP_END'
[]
[Cs_source_output]
type = TRISOMonteCarloPointSourceOutput
vector_postprocessor = release_Cs_inc
value_name = release_Cs_inc:release_Cs_inc
point_source_location = point_source_location
execute_on = 'TIMESTEP_END'
[]
[release_heat_inc_failed]
type = StochasticResults
execute_on = 'TIMESTEP_BEGIN'
[]
[release_Cs_inc_failed]
type = StochasticResults
execute_on = 'TIMESTEP_BEGIN'
[]
[heat_source_output_failed]
type = TRISOMonteCarloPointSourceOutput
vector_postprocessor = release_heat_inc_failed
value_name = release_heat_inc_failed:release_heat_inc
point_source_location = point_source_location_failed
execute_on = 'TIMESTEP_END'
[]
[Cs_source_output_failed]
type = TRISOMonteCarloPointSourceOutput
vector_postprocessor = release_Cs_inc_failed
value_name = release_Cs_inc_failed:release_Cs_inc
point_source_location = point_source_location_failed
execute_on = 'TIMESTEP_END'
[]
[]
[Variables]
[temperature]
initial_condition = 773.15
[]
[conc_Cs]
scaling = 1e14
[]
[]
[AuxVariables]
[density]
order = CONSTANT
family = MONOMIAL
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[specific_heat]
order = CONSTANT
family = MONOMIAL
[]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 1e3 4.51008e7' #change time (s) for desired EFPD
y = '0 1 1'
[]
[fission_rate]
type = LinearCombinationFunction
functions = power_history
w = 2.927e18
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[density]
type = MaterialRealAux
variable = density
property = density
block = '1 2 3'
execute_on = 'initial linear'
[]
[thermal_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
block = '1 2 3'
execute_on = timestep_end
[]
[specific_heat]
type = MaterialRealAux
variable = specific_heat
property = specific_heat
block = '1 2 3'
execute_on = timestep_end
[]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[]
[BCs]
[coolant_temp]
type = DirichletBC
variable = temperature
boundary = exterior
value = 773.15
[]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = exterior
value = 0.0
[]
[]
[Materials]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
flux_function = power_history
factor = 1.109e18
[]
##### fuel region propereties
[fueled_region_thermal]
type = GraphiteMatrixThermal
block = 2
graphite_grade = A3_27_1800
packing_fraction = 0.22
temperature = temperature
initial_matrix_density = 1750.0
[]
[fueled_region_density]
type = ParsedMaterial
block = 2
property_name = density
expression = 1750.0
[]
[fuel_conc_Cs]
type = ArrheniusDiffusionCoef
block = 2
d1 = 1e-8 # m^2/s
q1 = 0.0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
##### Shell properties
[shell_region_thermal]
type = GraphiteMatrixThermal
block = 3
graphite_grade = A3_27_1800
packing_fraction = 0.0
temperature = temperature
initial_matrix_density = 1750.0
[]
[shell_region_density]
type = ParsedMaterial
block = 3
property_name = density
expression = 1750.0
[]
[shell_conc_Cs]
type = ArrheniusDiffusionCoef
block = 3
d1 = 1e-8 # m^2/s
q1 = 0.0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
##### pebble core
[core_region_thermal]
type = GraphiteMatrixThermal
block = 1
graphite_grade = A3_27_1800
packing_fraction = 0.0
temperature = temperature
initial_matrix_density = 1400.0
[]
[core_region_density]
type = ParsedMaterial
block = 1
property_name = density
expression = 1400.0
[]
[core_conc_Cs]
type = ArrheniusDiffusionCoef
block = 1
d1 = 1e-8 # m^2/s
q1 = 0.0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'temperature'
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
nl_rel_tol = 1e-9
nl_abs_tol = 1e-9
nl_max_its = 15
l_tol = 1e-5
l_max_its = 30
start_time = 0.0
dt = 50000
num_steps = 10
[]
[Postprocessors]
### irradiation conditions
[pebble_power]
type = ElementIntegralPower
variable = temperature
use_material_fission_rate = true
fission_rate_material = fission_rate
block = 2
execute_on = 'initial timestep_end'
[]
[heat_from_pebble]
type = SideDiffusiveFluxIntegral
variable = temperature
boundary = exterior
diffusivity = thermal_conductivity
execute_on = 'initial timestep_end'
[]
[fast_neutron_maximum_fluence_MP]
type = ElementExtremeMaterialProperty
mat_prop = fast_neutron_fluence
block = '1 2 3'
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[fast_neutron_maximum_flux_MP]
type = ElementExtremeMaterialProperty
mat_prop = fast_neutron_flux
block = '1 2 3'
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[fission_rate_maximum]
type = ElementExtremeMaterialProperty
mat_prop = fission_rate
block = '1 2 3'
value_type = 'max'
execute_on = 'initial timestep_end'
[]
### temperatures
[fuel_minimum_temperature]
type = NodalExtremeValue
variable = temperature
block = '2'
value_type = 'min'
execute_on = 'initial timestep_end'
[]
[fuel_average_temperature]
type = AverageNodalVariableValue
variable = temperature
block = '2'
execute_on = 'initial timestep_end'
[]
[fuel_maximum_temperature]
type = NodalExtremeValue
variable = temperature
block = '2'
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[shell_minimum_temperature]
type = NodalExtremeValue
variable = temperature
block = '3'
value_type = 'min'
execute_on = 'initial timestep_end'
[]
[shell_average_temperature]
type = AverageNodalVariableValue
variable = temperature
block = '3'
execute_on = 'initial timestep_end'
[]
[shell_maximum_temperature]
type = NodalExtremeValue
variable = temperature
block = '3'
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[core_minimum_temperature]
type = NodalExtremeValue
variable = temperature
block = '1'
value_type = 'min'
execute_on = 'initial timestep_end'
[]
[core_average_temperature]
type = AverageNodalVariableValue
variable = temperature
block = '1'
execute_on = 'initial timestep_end'
[]
[core_maximum_temperature]
type = NodalExtremeValue
variable = temperature
block = '1'
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
print_linear_residuals = true
time_step_interval = 1
exodus = true
csv = true
perf_graph = true
[]
(test/tests/triso_pebble/3D_pebble_from_csv.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
flux_conversion_factor = 0.85
[]
[Mesh]
[file]
type = FileMeshGenerator
file = pebble.e
[]
[]
[Distributions]
[normal_kernel_r]
type = TruncatedNormal
mean = 213.35e-6
standard_deviation = 4.4e-6
lower_bound = 1.9575e-04
upper_bound = 2.3095e-04
[]
[normal_buffer_t]
type = TruncatedNormal
mean = 98.9e-6
standard_deviation = 8.4e-6
lower_bound = 6.53e-05
upper_bound = 1.325e-04
[]
[normal_ipyc_t]
type = TruncatedNormal
mean = 40.4e-6
standard_deviation = 2.5e-6
lower_bound = 3.0400e-05
upper_bound = 5.0400e-05
[]
[normal_sic_t]
type = TruncatedNormal
mean = 35.2e-6
standard_deviation = 1.2e-6
lower_bound = 3.0400e-05
upper_bound = 4.0000e-05
[]
[normal_opyc_t]
type = TruncatedNormal
mean = 43.4e-6
standard_deviation = 2.9e-6
lower_bound = 3.1800e-05
upper_bound = 5.5000e-05
[]
[]
[DiracKernels]
[vpp_point_source]
type = TRISOMonteCarloPointSource
variable = temperature
point_source_values = heat_source
value_name = heat_inc
point_source_location = point_source_location
[]
[]
[UserObjects]
[point_source_location]
type = TRISOMonteCarloPointSourceLocation
min_radius = 0.0138
max_radius = 0.018
geometry = SPHERE
fuel_element_blocks = fuel
execute_on = 'INITIAL'
num_particles = 100
[]
[]
[VectorPostprocessors]
[heat_source]
type = TRISOMonteCarloPointSourceFromFile
file_base_time = monte_carlo_out_time
file_base_source = monte_carlo_out_release_heat_inc
x_header_in_file = 'time:time'
y_header_in_file = 'release_heat_inc:release_heat_inc'
source_name = heat_inc
num_files = 2
num_particles = 100
format = columns
execute_on = 'INITIAL TIMESTEP_BEGIN'
[]
[point_source_output]
type = TRISOMonteCarloPointSourceOutput
vector_postprocessor = heat_source
value_name = heat_inc
point_source_location = point_source_location
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Variables]
[temperature]
initial_condition = 773.15
[]
[]
[AuxVariables]
[density]
order = CONSTANT
family = MONOMIAL
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[specific_heat]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[density]
type = MaterialRealAux
variable = density
property = density
block = 'core fuel shell'
execute_on = 'initial linear'
[]
[thermal_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
block = 'core fuel shell'
execute_on = timestep_end
[]
[specific_heat]
type = MaterialRealAux
variable = specific_heat
property = specific_heat
block = 'core fuel shell'
execute_on = timestep_end
[]
[]
[BCs]
[coolant_temp]
type = DirichletBC
variable = temperature
boundary = exterior
value = 773.15
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 76e6'
y = '1 1'
[]
[fission_rate]
type = LinearCombinationFunction
functions = power_history
w = 5.75e19
[]
[]
[Materials]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
flux_function = power_history
factor = 6.28e17
[]
[fueled_region_thermal]
type = GraphiteMatrixThermal
block = fuel
graphite_grade = A3_27_1800
packing_fraction = 0.22
temperature = temperature
initial_matrix_density = 1750.0
[]
[fuel_region_density]
type = ParsedMaterial
block = fuel
property_name = density
expression = 1750.0
[]
[shell_region_thermal]
type = GraphiteMatrixThermal
block = shell
graphite_grade = A3_27_1800
packing_fraction = 0.0
temperature = temperature
initial_matrix_density = 1750.0
[]
[shell_region_density]
type = ParsedMaterial
block = shell
property_name = density
expression = 1750.0
[]
[core_region_thermal]
type = GraphiteMatrixThermal
block = core
graphite_grade = A3_27_1800
packing_fraction = 0.0
temperature = temperature
initial_matrix_density = 1400.0
[]
[core_region_density]
type = ParsedMaterial
block = core
property_name = density
expression = 1400.0
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'temperature'
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_rel_tol = 1e-9
nl_abs_tol = 1e-9
nl_max_its = 15
l_tol = 1e-5
l_max_its = 30
start_time = 0.0
dt = 10
num_steps = 2
[]
[Outputs]
print_linear_residuals = true
time_step_interval = 1
exodus = true
perf_graph = true
[]