- densityInitial insulator density
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Initial insulator density
- insulator_modelsType(s) of physics models used on this block. The choices are: Elastic ThermalExpansion
C++ Type:MultiMooseEnum
Controllable:No
Description:Type(s) of physics models used on this block. The choices are: Elastic ThermalExpansion
Nuclear Material Insulator
Reduces the Material block length for LWR insulation within input files.
Description of Created Material Blocks
This NuclearMaterialInsulator action reduces BISON input file length by internally generating the Materials required for simulating elastic LWR nuclear insulators.
This action is designed for use with only Light Water Reactor simulations which deal with Elastic stress calculations. Simulations with Inelastic models are not covered by this action.
User-based Interface
To reduce the length and complexity of necessary blocks for simulations, an extensive standardization of operating conditions has been utilized within the NuclearMaterials.
All of the blocks, generated with the default parameter settings, are shown in Table 2, Table 3, and Table 4. These blocks are created internally, based on the Insulator Models and/or physics conditions shown. Additional parameters for each created class can be found below.
Certain parameters are determined internally to further reduce input file length and complexity.
Fission Operation
This required parameter describes the characteristic type of fission study that will occur, i.e. Normal, LOCA, etc. This must be placed under the NuclearMaterials block heading and cannot be placed under sub-blocks such as Insulator. A description of the current different fission operation models can be found in Table 1.
Table 1: Fission Operation Descriptions
| FissionOperation | Description |
|---|---|
| None | No fission occurs |
| Normal | Self-sustained nuclear chain reaction |
| HighBurnup | High Percentage of Fuel Burnup |
| RIA | Reactivity Initiated Accident |
| LOCA | Loss of Coolant Accident |
| BumpTest | Short-term reirradiation at increased power levels |
| HighInitial | High Initial Rating Test |
| PowerRamp | Ramp up of power output |
The classes in Table 2 are automatically created when using NuclearMaterialInsulator depending on the Insulator Models and Fission
operation used as well as what occurs under Physics conditions.
Table 2: Material classes created by the NuclearMaterialInsulator action
| Created Material Classes | Pre-Set Parameters | Block Name | Insulator Models | Fission Operation |
|---|---|---|---|---|
| ComputeIsotropicElasticityTensor | poissons_ratio = -1 | insulator_elasticity_tensor | Elastic | All Fission Types |
| youngs_modulus = -1 | ||||
| ComputeFiniteStrainElasticStress | insulator_elastic_stress | Elastic | All Fission Types | |
| ComputeThermalExpansionEigenstrain | insulator_thermal_expansion |ThermalExpansion | All Fission Types | ||
| eigenstrain_name = insulator_thermal_strain | ||||
| StrainAdjustedDensity | insulator_density | all | All Fission Types | |
| HeatConductionMaterial | insulator_thermal | all | All Fission Types |
The classes in Table 3 are only created when Thermal or if any Fission occurs under the Fission Operation conditions.
Table 3: Auxiliary classes created by the NuclearMaterialInsulator action
| Created Auxiliary Classes | Type | Pre-Set Parameters | Block Name | Physics/Fission Operations |
|---|---|---|---|---|
| Temperature | Variable | temperature | Thermal | |
| HeatConduction | Kernel | variable = temperature | insulator_heat | Thermal |
| extra_vector_tags = ref | ||||
| HeatConductionTimeDerivative | Kernel | variable = temperature |insulator_heat_ie | Thermal | |
| extra_vector_tags = ref |
Table 4: Actions created by the NuclearMaterialInsulator action
| Created Actions | Pre-Set Parameters | Block Name | Physics/Insulator Model Conditions |
|---|---|---|---|
| TensorMechanicsAction | volumetric_locking_correction = false | Physics/SolidMechanics/QuasiStatic | Mechanics |
| automatic_eigenstrain_names = true | |||
| decomposition_method = EigenSolution | |||
| strain = FINITE | |||
Example Input Syntax NuclearMaterials can be used in multiple ways to simplify creation of various parts of the input file. In its most basic form, it can be used to automate the creation of the material models used to define the mechanical and thermal behavior of fuel and cladding materials. With additional options, it can also be used to automate the creation of the variables and kernels associated with mechanical and thermal physics. Examples of these two different ways to use NuclearMaterials are provided below
Example Simple Input Syntax
NuclearMaterials simplifies Material block inputs by applying standard parameter and classes depending on the simulation. It is possible to only replace the Materials blocks in an input file with the equivalent NuclearMaterialInsulator. This procedure greatly reduces the length and complexity of the the necessary inputs while fully retaining the same functionality and end results. An example of this can be seen below.
Insulator Model Parameters
Elastic : Models elastic stress for an incremental formulation, both
incremental small and incremental finite strain formulations.
ThermalExpansion : Models isotropic thermal expansion with constant thermal
expansion coefficient.
Example Fully Reduced Input Syntax
Input file length and complexity can be reduced even further by use of additional Physics and/or InsulatorModels block parameters, in addition to applying common parameters to sub-blocks under the NuclearMaterials header.
Physics parameters
Mechanics : This will create the TensorMechanicsAction block(s) under which it is listed. If listed under the NuclearMaterial block header, then this will be applied to all blocks under the header.
Thermal : This will create the temperature variable, the
KernelblocksHeatConduction, andHeatConductionTimeDerivativeneeded to model thermal effects for Insulator blocks.
Expanded Insulator Block
[AuxVariables<<<{"href": "../../AuxVariables/index.html"}>>>]
[gap_conductance]
block = 'mechanical_secondary_subdomain'
[]
[fuel_conductance]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = CONSTANT
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = MONOMIAL
[]
[fast_neutron_flux]
block = clad
[]
[fast_neutron_fluence]
block = clad
[]
[grain_radius]
block = ${blocks_fuel}
initial_condition<<<{"description": "Specifies a constant initial condition for this variable"}>>> = ${initial_grain_radius}
[]
[effective_creep_strain]
block = clad
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = CONSTANT
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = MONOMIAL
[]
[pellet_id]
order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = CONSTANT
family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = MONOMIAL
block = ${blocks_fuel}
[]
[]
[Kernels<<<{"href": "../../Kernels/index.html"}>>>]
[heat]
type = HeatConduction<<<{"description": "Diffusive heat conduction term $-\\nabla\\cdot(k\\nabla T)$ of the thermal energy conservation equation", "href": "../../../source/kernels/HeatConduction.html"}>>>
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = temperature
extra_vector_tags<<<{"description": "The extra tags for the vectors this Kernel should fill"}>>> = 'ref'
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = ${blocks_all}
[]
[heat_ie]
type = HeatConductionTimeDerivative<<<{"description": "Time derivative term $\\rho c_p \\frac{\\partial T}{\\partial t}$ of the thermal energy conservation equation.", "href": "../../../source/kernels/HeatConductionTimeDerivative.html"}>>>
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = temperature
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = ${blocks_all}
extra_vector_tags<<<{"description": "The extra tags for the vectors this Kernel should fill"}>>> = 'ref'
[]
[]
[Physics<<<{"href": "../../Physics/index.html"}>>>]
[SolidMechanics<<<{"href": "../../Physics/SolidMechanics/index.html"}>>>]
[QuasiStatic<<<{"href": "../../Physics/SolidMechanics/QuasiStatic/index.html"}>>>]
[insulator_pellets]
block<<<{"description": "The list of ids of the blocks (subdomain) that the stress divergence kernels will be applied to"}>>> = ${blocks_insulation}
strain<<<{"description": "Strain formulation"}>>> = FINITE
eigenstrain_names<<<{"description": "List of eigenstrains to be applied in this strain calculation"}>>> = 'insulator_fuel_thermal_eigenstrain'
generate_output<<<{"description": "Add scalar quantity output for stress and/or strain"}>>> = 'vonmises_stress stress_xx stress_yy stress_zz'
[]
[]
[]
[]
[Materials<<<{"href": "../../Materials/index.html"}>>>]
[insulator_pellet_elasticity]
type = ComputeIsotropicElasticityTensor<<<{"description": "Compute a constant isotropic elasticity tensor.", "href": "../../../source/materials/ComputeIsotropicElasticityTensor.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = ${blocks_insulation}
youngs_modulus<<<{"description": "Young's modulus of the material."}>>> = ${insulator_youngs_modulus}
poissons_ratio<<<{"description": "Poisson's ratio for the material."}>>> = ${insulator_poissons_ratio}
[]
[insulator_pellet_stress]
type = ComputeFiniteStrainElasticStress<<<{"description": "Compute stress using elasticity for finite strains", "href": "../../../source/materials/ComputeFiniteStrainElasticStress.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = ${blocks_insulation}
[]
[inusulator_thermal_eigenstrain]
type = ComputeThermalExpansionEigenstrain<<<{"description": "Computes eigenstrain due to thermal expansion with a constant coefficient", "href": "../../../source/materials/ComputeThermalExpansionEigenstrain.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = ${blocks_insulation}
stress_free_temperature<<<{"description": "Reference temperature at which there is no thermal expansion for thermal eigenstrain calculation"}>>> = ${stress_free_temperature}
temperature<<<{"description": "Coupled temperature"}>>> = temperature
thermal_expansion_coeff<<<{"description": "Thermal expansion coefficient"}>>> = ${insulator_thermal_expansion_coeff}
eigenstrain_name<<<{"description": "Material property name for the eigenstrain tensor computed by this model. IMPORTANT: The name of this property must also be provided to the strain calculator."}>>> = 'insulator_fuel_thermal_eigenstrain'
[]
[density_insulator_pellets]
type = StrainAdjustedDensity<<<{"description": "Creates density material property", "href": "../../../source/materials/StrainAdjustedDensity.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = ${blocks_insulation}
strain_free_density<<<{"description": "Material property for strain-free density"}>>> = ${insulator_density}
[]
[thermal_insulator_pellets]
type = HeatConductionMaterial<<<{"description": "General-purpose material model for heat conduction", "href": "../../../source/materials/HeatConductionMaterial.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = ${blocks_insulation}
thermal_conductivity<<<{"description": "The thermal conductivity value"}>>> = ${insulator_thermal_conductivity}
specific_heat<<<{"description": "The specific heat value"}>>> = ${insulator_specific_heat}
[]
[](assessment/LWR/validation/Riso_II5/analysis/Riso_II5.i)Fully Simplified Insulator Block
[NuclearMaterials<<<{"href": "../index.html"}>>>]
generate_output<<<{"description": "Add scalar quantity output for stress and/or strain"}>>> = 'vonmises_stress stress_xx stress_yy stress_zz'
fission_operation<<<{"description": "Type of fission occuring in this simulation."}>>> = 'BumpTest'
physics<<<{"description": "Type(s) of physics used on this block."}>>> = 'Mechanics Thermal'
initial_temperature<<<{"description": "Initial temperature in Kelvins."}>>> = ${initial_temperature}
stress_free_temperature<<<{"description": "Reference temperature for thermal eigenstrain calculation"}>>> = ${stress_free_temperature}
strain<<<{"description": "Strain formulation"}>>> = FINITE
[Insulator<<<{"href": "index.html"}>>>]
[insulator]
block<<<{"description": "The list of ids of the blocks (subdomain) that the stress divergence kernels will be applied to"}>>> = 'pellet_type_1 pellet_type_4'
insulator_models<<<{"description": "Type(s) of physics models used on this block. The choices are: Elastic ThermalExpansion"}>>> = 'Elastic ThermalExpansion'
youngs_modulus<<<{"description": "Young's modulus of the material."}>>> = ${insulator_youngs_modulus}
poissons_ratio<<<{"description": "Poisson's ratio for the material."}>>> = ${insulator_poissons_ratio}
thermal_expansion_coeff<<<{"description": "Thermal expansion coefficient"}>>> = ${insulator_thermal_expansion_coeff}
thermal_conductivity<<<{"description": "The thermal conductivity value"}>>> = ${insulator_thermal_conductivity}
specific_heat<<<{"description": "The specific heat value"}>>> = ${insulator_specific_heat}
density<<<{"description": "Initial insulator density"}>>> = ${insulator_density}
[]
[]
[](assessment/LWR/validation/Riso_II5/analysis/Riso_II5_action.i)The eigenstrain names must be included in the SolidMechanics QuasiStatic Action following the naming convention created by this class. The easiest method to ensure this continuity is to include Mechanics in the physics input parameter. By default, this will select automatic_eigenstrain_names = true.
automatic_eigenstrain_names = true, the eigenstrain_names will be populated under restrictive conditions for classes such as CompositeEigenstrain, ComputeReducedOrderEigenstrain, and RankTwoTensorMaterialADConverter. The input components for these classes are not included in the eigenstrain_names passed to the TensorMechanicsAction. Set the automatic_eigenstrain_names = false and populate this list manually if these components need to be included.
[Physics<<<{"href": "../../Physics/index.html"}>>>]
[SolidMechanics<<<{"href": "../../Physics/SolidMechanics/index.html"}>>>]
[QuasiStatic<<<{"href": "../../Physics/SolidMechanics/QuasiStatic/index.html"}>>>]
[insulator_pellets]
block<<<{"description": "The list of ids of the blocks (subdomain) that the stress divergence kernels will be applied to"}>>> = ${blocks_insulation}
strain<<<{"description": "Strain formulation"}>>> = FINITE
eigenstrain_names<<<{"description": "List of eigenstrains to be applied in this strain calculation"}>>> = 'insulator_fuel_thermal_eigenstrain'
generate_output<<<{"description": "Add scalar quantity output for stress and/or strain"}>>> = 'vonmises_stress stress_xx stress_yy stress_zz'
[]
[]
[]
[](assessment/LWR/validation/Riso_II5/analysis/Riso_II5.i)Input Parameters
- active__all__ If specified only the blocks named will be visited and made active
Default:__all__
C++ Type:std::vector<std::string>
Controllable:No
Description:If specified only the blocks named will be visited and made active
- add_variablesFalseAdd the displacement variables
Default:False
C++ Type:bool
Controllable:No
Description:Add the displacement variables
- additional_physicsType(s) of physics used on this block. The choices are: Mechanics Thermal
C++ Type:MultiMooseEnum
Controllable:No
Description:Type(s) of physics used on this block. The choices are: Mechanics Thermal
- automatic_eigenstrain_namesTrueCollects all material eigenstrains and passes to required strain calculator within the solid mechanics physics internally.
Default:True
C++ Type:bool
Controllable:No
Description:Collects all material eigenstrains and passes to required strain calculator within the solid mechanics physics internally.
- d1_functionFunction to be multiplied by d1
C++ Type:std::vector<FunctionName>
Unit:(no unit assumed)
Controllable:No
Description:Function to be multiplied by d1
- d1_function_variableVariable to be used when evaluating d1_function. If not given, time will be used.
C++ Type:std::vector<std::string>
Controllable:No
Description:Variable to be used when evaluating d1_function. If not given, time will be used.
- decomposition_methodEigenSolutionMethods to calculate the finite strain and rotation increments
Default:EigenSolution
C++ Type:MooseEnum
Controllable:No
Description:Methods to calculate the finite strain and rotation increments
- diffusion_1st_activation_energiesDiffusion activation energies.
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:Diffusion activation energies.
- diffusion_1st_coefficients1st diffusion coefficient.
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:1st diffusion coefficient.
- diffusion_2nd_activation_energiesSecond diffusion activation energy
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:Second diffusion activation energy
- diffusion_2nd_coefficients2nd diffusion coefficient
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:2nd diffusion coefficient
- element_decay_constantsRadioactive decay constant for elements tracked
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:Radioactive decay constant for elements tracked
- element_scalingRelative scaling of element percentages
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:Relative scaling of element percentages
- elements_initial_concentrationRelative ratio of element concentration
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:Relative ratio of element concentration
- elements_trackedThe elements tracked within TRISO simulations.
C++ Type:MultiMooseEnum
Controllable:No
Description:The elements tracked within TRISO simulations.
- extra_vector_tagsThe tag names for extra vectors that residual data should be saved into
C++ Type:std::vector<TagName>
Controllable:No
Description:The tag names for extra vectors that residual data should be saved into
- familyLAGRANGESpecifies the family of FE shape functions to use for this variable.
Default:LAGRANGE
C++ Type:MooseEnum
Controllable:No
Description:Specifies the family of FE shape functions to use for this variable.
- fission_rateCoupled Fission rate: Used in fuel burnup, creep, densification, fission gas, relocation, swelling, and thermal models
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:Coupled Fission rate: Used in fuel burnup, creep, densification, fission gas, relocation, swelling, and thermal models
- flux_factor1Constant multiplied against the function, rod average linear power, or q_variable.
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Constant multiplied against the function, rod average linear power, or q_variable.
- flux_functionThe function that describes the fast neutron flux
C++ Type:FunctionName
Unit:(no unit assumed)
Controllable:No
Description:The function that describes the fast neutron flux
- fuel_pin_geometryName of the UserObject that reads the pin geometry from the mesh.
C++ Type:UserObjectName
Controllable:No
Description:Name of the UserObject that reads the pin geometry from the mesh.
- generate_outputAdd scalar quantity output for stress and/or strain
C++ Type:MultiMooseEnum
Controllable:No
Description:Add scalar quantity output for stress and/or strain
- inactiveIf specified blocks matching these identifiers will be skipped.
C++ Type:std::vector<std::string>
Controllable:No
Description:If specified blocks matching these identifiers will be skipped.
- incrementalFalseUse incremental or total strain
Default:False
C++ Type:bool
Controllable:No
Description:Use incremental or total strain
- orderSECONDSpecifies the order of the FE shape function to use for this variable.
Default:SECOND
C++ Type:MooseEnum
Controllable:No
Description:Specifies the order of the FE shape function to use for this variable.
- out_of_plane_pressure0Function used to prescribe pressure in the out-of-plane direction (y for 1D Axisymmetric or z for 2D Cartesian problems)
Default:0
C++ Type:FunctionName
Unit:(no unit assumed)
Controllable:No
Description:Function used to prescribe pressure in the out-of-plane direction (y for 1D Axisymmetric or z for 2D Cartesian problems)
- physicsType(s) of physics used on this block.
C++ Type:MultiMooseEnum
Controllable:No
Description:Type(s) of physics used on this block.
- poissons_ratio-1Poisson's ratio for the material.
Default:-1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Poisson's ratio for the material.
- specific_heatThe specific heat value
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:The specific heat value
- strainSMALLStrain formulation
Default:SMALL
C++ Type:MooseEnum
Controllable:No
Description:Strain formulation
- stress_free_temperatureReference temperature for thermal eigenstrain calculation
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:Reference temperature for thermal eigenstrain calculation
- system_pressure_functionThe function to use for the pressure on the exterior of the cladding.
C++ Type:FunctionName
Unit:(no unit assumed)
Controllable:No
Description:The function to use for the pressure on the exterior of the cladding.
- temperatureCoupled temperature: Used in multiple models
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:Coupled temperature: Used in multiple models
- thermal_conductivityThe thermal conductivity value
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:The thermal conductivity value
- thermal_expansion_coeffThermal expansion coefficient
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Thermal expansion coefficient
- use_automatic_differentiationFalseFlag to use automatic differentiation (AD) objects when possible
Default:False
C++ Type:bool
Controllable:No
Description:Flag to use automatic differentiation (AD) objects when possible
- youngs_modulus-1Young's modulus of the material.
Default:-1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Young's modulus of the material.
Optional Parameters
- additional_generate_outputAdd scalar quantity output for stress and/or strain (will be appended to the list in `generate_output`)
C++ Type:MultiMooseEnum
Controllable:No
Description:Add scalar quantity output for stress and/or strain (will be appended to the list in `generate_output`)
- blockThe list of ids of the blocks (subdomain) that the stress divergence kernels will be applied to
C++ Type:std::vector<SubdomainName>
Controllable:No
Description:The list of ids of the blocks (subdomain) that the stress divergence kernels will be applied to
- displacementsThe displacements appropriate for the simulation geometry and coordinate system: Used in density and strain models
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:The displacements appropriate for the simulation geometry and coordinate system: Used in density and strain models
- volumetric_locking_correctionFalseFlag to correct volumetric locking
Default:False
C++ Type:bool
Controllable:No
Description:Flag to correct volumetric locking
Mechanics 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.