Nuclear Material Tungsten

Reduces the Material block length for Tungsten cladding within input files.

Description

This NuclearMaterialTungsten action reduces BISON input file length by internally generating the Materials required for simulating nitride nuclear liners, specifically Tungsten.

The user may elect to use the nuclear_material_Tungsten_table action to generate the necessary material classes for common nitride fuel simulations. All of the material blocks, generated with the default parameter settings, are shown in Table 1. These settings come from the simulations for the EBRII SP1 experiment SP1.

Fission Operation

commentnote

This required parameter describes the characteristic type of fission study that will occur. For nitride fuel type simulations, this is simply labeled as fission_operation = Normal. This must be placed under the NuclearMaterials block heading and cannot be placed under sub-blocks such as Tungsten.

Table 1: Material classes created by the NuclearMaterialTungsten action

Created ClassesPre-Set ParametersBlock Name
TungstenElasticityTensorliner_elasticity_tensor
ComputeFiniteStrainElasticStressliner_stress
StrainAdjustedDensitystrain_free_density = 19300liner_density
TungstenThermalliner_thermal
TungstenThermalExpansionEigenstrainliner_thermal_eigenstrain

Example Input Syntax

Expanded Liner Block

[Materials]
fuel_radius = '${fparse fuel_diameter / 2}' # m
fuel_volume = '${fparse pi * fuel_radius^2 * fuel_height}' # m
cladding_radial_gap = '${fparse diametral_gap / 2}'
pin_height = ${fparse fuel_height + plenum_height + 2 * cladding_bottom_top_plug_length} # m

R = 8.31446261815324
A_U = 0.238 # kg/mol
A_Pu = 0.239 # kg/mol
A_N = 0.014 # kg/mol
avo = 6.0221408e23 # atoms per mole
th_density = 14400 # kg/m3
initial_porosity = '${fparse 1.0 - fraction_th_density}'
density = '${fparse fraction_th_density * th_density}' # kg/m3
M_avg = '${fparse x_N * A_N + x_Pu * A_Pu + (1.0 - x_Pu) * A_U}' # kg / mol
atoms_heavy_metal_per_volume = '${fparse density / M_avg * avo}' # mol / m3

# Power history
avg_lin_power = '${fparse specific_power * density * pi * fuel_radius^2}' # W/m
time_end_ramp_up = '${fparse 5 * 3600}' # s, arbitrary 5 hour ramp
time_start_ramp_down = '${fparse time_end_ramp_up + run_time}' # s
time_end_ramp_down = '${fparse time_start_ramp_down + time_end_ramp_up}' # s
total_time = '${fparse time_end_ramp_down + 3600}' # s

[GlobalParams]
  order = FIRST
  energy_per_fission = 3.412e-11 # J/fission
  displacements = 'disp_x disp_y'
  value_range_behavior = IGNORE
  min_damping = 1e-4
  volumetric_locking_correction = true
  absolute_value_vector_tags = ref
[]

[Problem]
  type = ReferenceResidualProblem
  reference_vector = 'ref'
  extra_tag_vectors = 'ref'
  group_variables = 'disp_x disp_y'
  converge_on = 'disp_x disp_y temperature'
[]

[Mesh]
  coord_type = RZ
  [smeared_pellet_mesh]
    type = FuelPinMeshGenerator
    clad_thickness = ${cladding_thickness}
    pellet_outer_radius = ${fuel_radius}
    pellet_height = ${fuel_height}
    clad_top_gap_height = ${plenum_height}
    clad_gap_width = ${cladding_radial_gap}
    top_clad_height = ${cladding_bottom_top_plug_length}
    bottom_clad_height = ${cladding_bottom_top_plug_length}
    clad_bot_gap_height = ${gap_bottom_length}
    liner_thickness = ${liner_thickness}
    clad_mesh_density = customize
    pellet_mesh_density = customize
    nx_p = 6
    ny_p = 150
    nx_c = 4
    ny_c = 150
    ny_cu = 3
    ny_cl = 3
    nx_liner = 2
    pellet_quantity = 1
    elem_type = QUAD4
  []
  patch_size = 30
  patch_update_strategy = always
  partitioner = centroid
  centroid_partitioner_direction = y
[]

[Variables]
  [temperature]
    initial_condition = ${initial_temperature}
  []
[]

[Functions]
  [power_history]
    type = PiecewiseLinear
    x = '0 ${time_end_ramp_up} ${time_start_ramp_down} ${time_end_ramp_down}'
    y = '0 ${avg_lin_power} ${avg_lin_power} 0'
  []
  [axial_power_function] # estimated, actual peaking unknown
    type = PowerPeakingFunction
    fit = EBRII_ROW_3
    pellet_length = '${fuel_height}'
    pellet_y_start = ${fparse cladding_bottom_top_plug_length + gap_bottom_length}
  []
  [coolant_wall_temperature]
    # This is fit from coolant wall temperature provided in Dutt, Cox, Millhollen, "Performance of Refractory Alloy-clad Fuel Pins" (1984)
    type = ParsedFunction
    expression = 'full_temp := 2.46e7*y^4 - 4.836e6*y^3 + 1.09e5*y^2 + 1.19e4*y + 1.13e3;
                  if(t < ${time_end_ramp_up}, ${initial_temperature} + t * (full_temp - ${initial_temperature}) / (${time_end_ramp_up}), if(t < ${time_start_ramp_down}, full_temp, if(t < ${time_end_ramp_down}, full_temp + (t - ${time_start_ramp_down}) * (${initial_temperature} - full_temp) / (${time_end_ramp_down} - ${time_start_ramp_down}), ${initial_temperature})))'
  []
  [gas_diffusivity_function]
    # x corresponds to temperature [K] and y corresponds to fission rate [fsn/m3/s]
    type = ParsedFunction
    expression = 'kBT := 1.380649e-23 / 1.602176634e-19 * x;
                  D1 := ${xe_D10} * exp(-1.0 * ${xe_Q1} / kBT);
                  D2 := (y / 1e19)^0.5 * ${xe_D20} * exp(${xe_D2Q1} / kBT + ${xe_D2Q2} / kBT / kBT);
                  D3 := 1.85e-39 * y;
                  D1 * ${D1_xe_scalar} + D2 * ${D2_xe_scalar} + D3 * ${D3_xe_scalar}'
  []
  [vacancy_diffusivity_function]
    # x corresponds to temperature [K] and y corresponds to fission rate [fsn/m3/s]
    type = ParsedFunction
    expression = 'kBT := 1.380649e-23 / 1.602176634e-19 * x;
                  D1 := ${D10} * exp(-1.0 * ${Q1} / kBT);
                  D2 := (y / 1e19)^0.5 * ${D20} * exp(${D2Q1} / kBT + ${D2Q2} / kBT / kBT);
                  D2b := (y / 1e19)^0.5 * ${D2b0} * exp(${D2bQ1} / kBT + ${D2bQ2} / kBT / kBT);
                  D1 * ${D1_scalar} + (D2 + D2b) * ${D2_scalar}'
  []
[]

[Physics/SolidMechanics/QuasiStatic]
  [fuel]
    block = pellet
    strain = FINITE
    add_variables = true
    generate_output = 'firstinv_strain stress_xx stress_yy stress_zz vonmises_stress hydrostatic_stress creep_strain_xx creep_strain_yy creep_strain_zz elastic_strain_xx elastic_strain_yy elastic_strain_zz strain_xx strain_yy strain_zz'
    eigenstrain_names = 'fuel_thermal_expansion solid_swelling_eigenstrain gaseous_swelling_eigenstrain'
    temperature = temperature
    use_automatic_differentiation = true
  []
  [clad]
    block = clad
    strain = FINITE
    add_variables = true
    generate_output = 'firstinv_strain stress_xx stress_yy stress_zz vonmises_stress hydrostatic_stress elastic_strain_xx elastic_strain_yy elastic_strain_zz strain_xx strain_yy strain_zz'
    eigenstrain_names = 'clad_thermal_expansion'
    temperature = temperature
    use_automatic_differentiation = true
  []
  [liner]
    block = liner
    strain = FINITE
    add_variables = true
    generate_output = 'firstinv_strain stress_xx stress_yy stress_zz vonmises_stress hydrostatic_stress elastic_strain_xx elastic_strain_yy elastic_strain_zz strain_xx strain_yy strain_zz'
    eigenstrain_names = 'liner_thermal_expansion'
    temperature = temperature
    use_automatic_differentiation = true
  []
[]

[Kernels]
  [heat]
    type = ADHeatConduction
    variable = temperature
    block = 'pellet liner clad'
  []
  [heat_ie]
    type = ADHeatConductionTimeDerivative
    variable = temperature
    block = 'pellet liner clad'
  []
  [heat_source]
    type = ADFissionRateHeatSource
    variable = temperature
    fission_rate = fission_rate
    energy_deposited_in_fuel = 0.95
    block = 'pellet'
  []
[]

[ThermalContactMortar]
  [thermal_contact]
    secondary_variable = temperature
    primary_boundary = clad_inside_right
    secondary_boundary = pellet_outer_radial_surface
    initial_moles = initial_moles
    gas_released = fg_released
    jump_distance_model = LANNING
    plenum_pressure = plenum_pressure
    contact_pressure = mechanical_normal_lm
    use_automatic_differentiation = true
    # use mechanical contact subdomains
    primary_subdomain = mechanical_primary_subdomain
    secondary_subdomain = mechanical_secondary_subdomain
  []
[]

[Contact]
  [mechanical]
    model = frictionless
    formulation = mortar
    primary = clad_inside_right
    secondary = pellet_outer_radial_surface
    c_normal = 1e+11
    correct_edge_dropping = true
  []
[]

[BCs]
  [no_x_all]
    type = ADDirichletBC
    variable = disp_x
    boundary = centerline
    value = 0.0
  []
  [no_y_clad]
    type = ADDirichletBC
    variable = disp_y
    boundary = clad_outside_bottom
    value = 0.0
  []
  [no_y_fuel]
    type = ADDirichletBC
    variable = disp_y
    boundary = bottom_central_pellet_node
    value = 0.0
  []
  [Pressure]
    [coolantPressure]
      boundary = 'clad_outside_bottom clad_outside_right clad_outside_top'
      function = ${coolant_pressure}
      use_automatic_differentiation = true
    []
  []
  [PlenumPressure] # apply plenum pressure on clad inner walls and pellet surfaces
    [plenumPressure]
      boundary = inside_surfaces
      initial_pressure = ${initial_plenum_pressure}
      startup_time = 0
      R = ${R}
      initial_temperature = ${initial_temperature}
      temperature = ave_temperature_interior # coupling to post processor to get gas temperature approximation
      output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
      volume = gas_volume # coupling to post processor to get gas volume
      output = plenum_pressure # coupling to post processor to output plenum/gap pressure
      use_automatic_differentiation = true
    []
  []
  [clad_outer_temperature]
    type = ADFunctionDirichletBC
    boundary = 'clad_outside_right'
    function = coolant_wall_temperature
    variable = temperature
  []
[]

[Materials]
  [fission_rate]
    type = ADFissionRate
    block = pellet
    rod_linear_power = power_history
    axial_power_profile = axial_power_function
    pellet_radius = ${fuel_radius}
    outputs = all
  []
  [burnup]
    type = ADBurnup
    block = pellet
    atoms_heavy_metal_per_volume = ${atoms_heavy_metal_per_volume}
    outputs = all
  []
  [fuel_density]
    block = pellet
    type = ADStrainAdjustedDensity
    strain_free_density = ${density}
  []
  [porosity_pp]
    type = ADParsedMaterial
    property_name = porosity_pp
    postprocessor_names = porosity_fuel_avg
    expression = porosity_fuel_avg
  []
  [fuel_thermal]
    type = ADMNThermal
    block = pellet
    temperature = temperature
    porosity = porosity_pp # This is a hack until thermal mortar can handle stateful materials
    outputs = all
  []
  [fuel_porosity]
    type = ADPorosityFromStrain
    block = pellet
    initial_porosity = ${initial_porosity}
    inelastic_strain = 'gaseous_swelling_eigenstrain'
    outputs = all
  []
  [fuel_elasticity_tensor]
    block = pellet
    type = ADMNElasticityTensor
    temperature = temperature
    use_old_porosity = true
    porosity = porosity
    output_properties = 'youngs_modulus poissons_ratio'
    outputs = all
  []
  [fuel_thermal_expansion]
    block = pellet
    type = ADMNThermalExpansionEigenstrain
    eigenstrain_name = fuel_thermal_expansion
    stress_free_temperature = ${initial_temperature}
    temperature = temperature
  []
  [fuel_radial_return_stress]
    block = pellet
    type = ADComputeMultipleInelasticStress
    inelastic_models = 'fuel_creep'
  []
  [fuel_creep]
    block = pellet
    type = ADMNCreepUpdate
    max_inelastic_increment = 1e-3
    temperature = temperature
    porosity = porosity
    fission_rate = fission_rate
    outputs = all
  []
  [burnup_swelling]
    type = ADBurnupDependentEigenstrain
    block = pellet
    eigenstrain_name = 'solid_swelling_eigenstrain'
    swelling_factor = 0.5 # 0.5% solid fission product swelling per % FIMA
    burnup = burnup
    outputs = all
  []
  [gaseous_swelling]
    type = ADParsedMaterial
    block = pellet
    material_property_names = 'deltav_v0_bubble_bulk deltav_v0_bd deltav_v0_bubble_intra_dislocation'
    property_name = 'gaseous_swelling'
    expression = 'deltav_v0_bubble_bulk + deltav_v0_bd + deltav_v0_bubble_intra_dislocation'
    outputs = all
  []
  [gaseous_swelling_eigenstrain]
    type = ADComputeVolumetricEigenstrain
    block = pellet
    volumetric_materials = 'deltav_v0_bubble_bulk deltav_v0_bd deltav_v0_bubble_intra_dislocation'
    eigenstrain_name = 'gaseous_swelling_eigenstrain'
  []
  [vacancy_GB_diffusion]
    type = ADParsedMaterial
    block = pellet
    property_name = vacancy_GB_diffusion
    coupled_variables = 'temperature'
    expression = 'kBT := 1.380649e-23 / 1.602176634e-19 * temperature;
                  ${D1_scalar} * ${D10} * exp(-1.0 * ${Q1} / kBT) * 1e6'
  []
  [fission_gas_behavior]
    type = ADUNSifgrs
    block = pellet
    temperature = temperature
    fission_rate_material = fission_rate
    ig_bubble_coarsening = WITH_COARSENING
    grain_radius_const = ${grain_radius}
    dislocation_density_material = dislocation_density
    vacancy_diffusivity_function = vacancy_diffusivity_function
    gas_diffusivity_function = gas_diffusivity_function
    outputs = all
    initial_porosity = ${initial_porosity}
    fract_yield = 0.475
    shear_modulus = shear_modulus
    dislocation_bubble_nucleation_factor = 5e5
    vacancy_GB_diffusivity = vacancy_GB_diffusion
  []
  [dislocation_density]
    type = ADParsedMaterial
    block = pellet
    property_name = dislocation_density
    expression = ${dislocation_density}
    outputs = all
  []

  [clad_elasticity_tensor]
    block = clad
    type = ADComputeIsotropicElasticityTensor
    youngs_modulus = 68.9e9
    poissons_ratio = 0.4
  []
  [clad_thermal_expansion]
    block = clad
    type = ADComputeThermalExpansionEigenstrain
    eigenstrain_name = clad_thermal_expansion
    thermal_expansion_coeff = 7.54e-6
    stress_free_temperature = ${initial_temperature}
    temperature = temperature
  []
  [clad_stress]
    block = clad
    type = ADComputeFiniteStrainElasticStress
  []
  [clad_thermal]
    type = ADHeatConductionMaterial
    block = clad
    thermal_conductivity = 41.9
    specific_heat = 270
  []
  [clad_density]
    block = clad
    type = ADStrainAdjustedDensity
    strain_free_density = 8590
  []

  [liner_elasticity_tensor]
    block = liner
    type = ADTungstenElasticityTensor
    temperature = temperature
  []
  [liner_thermal_expansion]
    block = liner
    type = ADTungstenThermalExpansionEigenstrain
    eigenstrain_name = liner_thermal_expansion
    stress_free_temperature = ${initial_temperature}
    temperature = temperature
  []
  [liner_stress]
    block = liner
    type = ADComputeFiniteStrainElasticStress
  []
  [liner_thermal]
    block = liner
    type = ADTungstenThermal
    temperature = temperature
  []
  [liner_density]
    block = liner
    type = ADStrainAdjustedDensity
    strain_free_density = 19300
  []
[]

[Dampers]
  [disp_x]
    type = MaxIncrement
    variable = disp_x
    max_increment = 1e-4
  []
  [disp_y]
    type = MaxIncrement
    variable = disp_y
    max_increment = 1e-3
  []
  [temperature]
    type = MaxIncrement
    variable = temperature
    max_increment = 50
  []
[]

[Executioner]
  type = Transient
  solve_type = NEWTON
  petsc_options = '-snes_converged_reason -ksp_converged_reason'

  petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -mat_mffd_err -pc_factor_shift_type -pc_factor_shift_amount'
  petsc_options_value = 'lu    superlu_dist   1e-5          NONZERO               1e-15'
  line_search = contact

  l_max_its = 60
  nl_max_its = 20
  nl_rel_tol = 5e-6
  nl_abs_tol = 5e-9
  nl_div_tol = -1
  nl_abs_div_tol = -1

  end_time = ${total_time}
  dtmin = 1
  dtmax = 5e5
  verbose = true

  automatic_scaling = true
  compute_scaling_once = false
  ignore_variables_for_autoscaling = 'thermal_contact_thermal_lm mechanical_normal_lm'

  [TimeStepper]
    type = IterationAdaptiveDT
    timestep_limiting_postprocessor = time_step_limit
    force_step_every_function_point = true
    timestep_limiting_function = power_history
    dt = 1e2
    post_function_sync_dt = 1e3
  []
[]

[Postprocessors]
  # elemental temperatures
  [temperature_fuel_avg]
    type = ElementAverageValue
    variable = temperature
    block = pellet
    execute_on = 'initial timestep_end'
  []
  [temperature_fuel_max]
    type = ElementExtremeValue
    variable = temperature
    block = pellet
    execute_on = 'initial timestep_end'
  []
  [temperature_fuel_min]
    type = ElementExtremeValue
    variable = temperature
    block = pellet
    value_type = min
    execute_on = 'initial timestep_end'
  []

  [temperature_cladding_avg]
    type = ElementAverageValue
    variable = temperature
    block = clad
    execute_on = 'initial timestep_end'
  []
  [temperature_cladding_max]
    type = ElementExtremeValue
    variable = temperature
    block = clad
    execute_on = 'initial timestep_end'
  []
  [temperature_cladding_min]
    type = ElementExtremeValue
    variable = temperature
    block = clad
    value_type = min
    execute_on = 'initial timestep_end'
  []

  [temperature_liner_avg]
    type = ElementAverageValue
    variable = temperature
    block = liner
    execute_on = 'initial timestep_end'
  []
  [temperature_liner_max]
    type = ElementExtremeValue
    variable = temperature
    block = liner
    execute_on = 'initial timestep_end'
  []
  [temperature_liner_min]
    type = ElementExtremeValue
    variable = temperature
    block = liner
    value_type = min
    execute_on = 'initial timestep_end'
  []

  [ave_temperature_interior] # average temperature of the cladding interior and all pellet exteriors
    type = SideAverageValue
    boundary = inside_surfaces
    variable = temperature
    execute_on = 'initial linear'
  []
  [temperature_fuel_centerline_avg]
    type = AxisymmetricCenterlineAverageValue
    boundary = centerline
    variable = temperature
    execute_on = 'initial timestep_end'
  []
  [temperature_fuel_centerline_max]
    type = NodalExtremeValue
    boundary = centerline
    variable = temperature
    execute_on = 'initial timestep_end'
  []
  [temperature_fuel_centerline_min]
    type = NodalExtremeValue
    boundary = centerline
    variable = temperature
    value_type = min
    execute_on = 'initial timestep_end'
  []
  [temperature_fuel_surface_avg]
    type = SideAverageValue
    boundary = pellet_outer_radial_surface
    variable = temperature
    execute_on = 'initial timestep_end'
  []
  [temperature_fuel_surface_max]
    type = NodalExtremeValue
    boundary = pellet_outer_radial_surface
    variable = temperature
    execute_on = 'initial timestep_end'
  []
  [temperature_fuel_surface_min]
    type = NodalExtremeValue
    boundary = pellet_outer_radial_surface
    variable = temperature
    value_type = min
    execute_on = 'initial timestep_end'
  []

  # stresses
  [stress_vonmises_fuel_avg]
    type = ElementAverageValue
    variable = vonmises_stress
    block = pellet
  []
  [stress_vonmises_fuel_max]
    type = ElementExtremeValue
    variable = vonmises_stress
    block = pellet
  []
  [stress_vonmises_fuel_min]
    type = ElementExtremeValue
    variable = vonmises_stress
    value_type = min
    block = pellet
  []
  [stress_hydro_fuel_avg]
    type = ElementAverageValue
    variable = hydrostatic_stress
    block = pellet
  []
  [stress_hydro_fuel_max]
    type = ElementExtremeValue
    variable = hydrostatic_stress
    block = pellet
  []
  [stress_hydro_fuel_min]
    type = ElementExtremeValue
    variable = hydrostatic_stress
    value_type = min
    block = pellet
  []

  # strain information
  [strain_solid_swelling_fuel_avg]
    type = ElementAverageValue
    variable = solid_swelling
    block = pellet
  []
  [strain_volumetric_fuel_avg]
    type = ElementAverageValue
    variable = firstinv_strain
    block = pellet
  []
  [strain_axial_fuel_avg]
    type = ParsedPostprocessor
    pp_names = 'disp_y_fuel_top_surface_avg disp_y_fuel_bottom_surface_avg'
    expression = '(disp_y_fuel_top_surface_avg - disp_y_fuel_bottom_surface_avg) / ${fuel_height}'
  []
  [disp_y_fuel_top_surface_avg]
    type = SideAverageValue
    variable = disp_y
    boundary = top_of_top_pellet
  []
  [disp_y_fuel_top_surface_max]
    type = NodalExtremeValue
    variable = disp_y
    boundary = top_of_top_pellet
  []
  [disp_y_fuel_bottom_surface_avg]
    type = SideAverageValue
    variable = disp_y
    boundary = bottom_of_bottom_pellet
  []
  [disp_y_fuel_bottom_surface_max]
    type = NodalExtremeValue
    variable = disp_y
    boundary = bottom_of_bottom_pellet
  []
  [disp_x_fuel_radial_surface_max]
    type = NodalExtremeValue
    variable = disp_x
    boundary = pellet_outer_radial_surface
  []
  [disp_x_fuel_radial_surface_avg]
    type = SideAverageValue
    variable = disp_x
    boundary = pellet_outer_radial_surface
  []
  [disp_x_cladding_radial_surface_max]
    type = NodalExtremeValue
    variable = disp_x
    boundary = clad_outside_right
  []
  [disp_x_cladding_radial_surface_avg]
    type = SideAverageValue
    variable = disp_x
    boundary = clad_outside_right
  []

  [burnup_avg]
    type = ElementAverageValue
    block = pellet
    variable = burnup
  []
  [burnup_max]
    type = ElementExtremeValue
    block = pellet
    variable = burnup
  []
  [fission_rate_avg]
    type = ElementAverageValue
    variable = fission_rate
    block = pellet
    execute_on = 'initial timestep_end'
  []
  [fission_rate_max]
    type = ElementExtremeValue
    variable = fission_rate
    block = pellet
    execute_on = 'initial timestep_end'
  []
  [dislocation_density_avg]
    type = ElementAverageValue
    variable = dislocation_density
    block = pellet
    execute_on = 'initial timestep_end'
  []
  [porosity_fuel_avg]
    type = ElementAverageValue
    variable = porosity
    block = pellet
    execute_on = 'initial timestep_end'
  []
  [porosity_fuel_max]
    type = ElementExtremeValue
    variable = porosity
    block = pellet
    execute_on = 'initial timestep_end'
  []
  [porosity_fuel_min]
    type = ElementExtremeValue
    variable = porosity
    value_type = min
    block = pellet
    execute_on = 'initial timestep_end'
  []

  [swelling_dia_percent]
    type = ParsedPostprocessor
    pp_names = 'disp_x_fuel_radial_surface_avg'
    expression = 'disp_x_fuel_radial_surface_avg / ${fparse pi * fuel_radius} * 100'
  []
  [fuel_volume]
    type = VolumePostprocessor
    block = pellet
    execute_on = 'TIMESTEP_END INITIAL'
    use_displaced_mesh = true
  []
  [swelling_vol_percent]
    type = ParsedPostprocessor
    pp_names = 'fuel_volume'
    expression = '(fuel_volume - ${fuel_volume}) / ${fuel_volume} * 100'
  []
  [gas_volume]
    type = InternalVolume
    boundary = inside_surfaces
    execute_on = 'initial linear'
  []

  # fission gas information
  [deltav_v0_bubble_bulk]
    type = ADElementAverageMaterialProperty
    mat_prop = deltav_v0_bubble_bulk
    block = pellet
  []
  [deltav_v0_bd]
    type = ADElementAverageMaterialProperty
    mat_prop = deltav_v0_bd
    block = pellet
  []
  [deltav_v0_bubble_intra_dislocation]
    type = ADElementAverageMaterialProperty
    mat_prop = deltav_v0_bubble_intra_dislocation
    block = pellet
  []
  [fg_produced]
    type = ADElementIntegralMaterialProperty
    mat_prop = gas_concentration_generated_total
    block = pellet
  []
  [fg_released]
    type = ADElementIntegralMaterialProperty
    mat_prop = gas_concentration_release_total
    block = pellet
  []
  [fgr_percent]
    type = ParsedPostprocessor
    pp_names = 'fg_released fg_produced'
    expression = 'fg_released / fg_produced * 100'
  []
  [fg_grain_boundary]
    type = ADElementIntegralMaterialProperty
    mat_prop = gas_concentration_GB_bubble_volume
    block = pellet
  []
  [fg_matrix]
    type = ADElementIntegralMaterialProperty
    mat_prop = gas_concentration_matrix_intra
    block = pellet
  []

  [fg_intra_bubble]
    type = ADElementIntegralMaterialProperty
    mat_prop = gas_concentration_bubble_intra
    block = pellet
  []
  [fg_dislocation]
    type = ADElementIntegralMaterialProperty
    mat_prop = gas_concentration_bubble_intra_dislocation
    block = pellet
  []

  [gas_conservation]
    type = ParsedPostprocessor
    pp_names = 'fg_produced fg_released fg_dislocation fg_intra_bubble fg_matrix fg_grain_boundary'
    expression = 'fg_produced - fg_released - fg_dislocation - fg_intra_bubble - fg_matrix - fg_grain_boundary'
  []
  [GBcoverage_max]
    type = ElementExtremeValue
    variable = GBCoverage
    block = pellet
  []
  [GBcoverage_min]
    type = ElementExtremeValue
    variable = GBCoverage
    value_type = min
    block = pellet
  []
  [GBcoverage_avg]
    type = ElementAverageValue
    variable = GBCoverage
    block = pellet
  []

  # extras
  [actual_time_step_limit]
    type = MaterialTimeStepPostprocessor
    outputs = none
    block = 'pellet'
  []
  [time_step_limit]
    type = ParsedPostprocessor
    expression = 'if(actual_time_step_limit > 1e6, 1e6, actual_time_step_limit)'
    pp_names = 'actual_time_step_limit'
  []
  [power_history]
    type = FunctionValuePostprocessor
    function = power_history
  []
  [coolant_temperature]
    type = FunctionValuePostprocessor
    function = coolant_wall_temperature
  []
[]

[VectorPostprocessors]
  [centerline]
    type = SideValueSampler
    boundary = centerline
    variable = 'temperature fission_rate'
    sort_by = y
    outputs = base
  []
  [cladding_surface]
    type = SideValueSampler
    boundary = clad_outside_right
    variable = 'temperature fission_rate disp_x'
    sort_by = y
    outputs = base
  []
  [midplane]
    type = LineValueSampler
    start_point = '0 ${fparse pin_height / 2} 0'
    end_point = '${fuel_radius} ${fparse pin_height / 2} 0'
    variable = 'temperature fission_rate'
    num_points = 11
    sort_by = x
    outputs = base
  []
[]

[PerformanceMetricOutputs]
  outputs = 'out console base'
[]

[Outputs]
  perf_graph = true
  sync_times = '1e2 1e3 5e3 1e4 5e4 1e5 5e5 1e6 2e6 3e6 4e6 5e6 6e6 7e6 8e6 9e6 1e7 ${time_end_ramp_up} ${time_start_ramp_down} ${time_end_ramp_down} ${total_time}'
  file_base = '${group_name}_out'
  [out]
    type = Exodus
    time_step_interval = 10
  []
  [sync]
    type = CSV
    file_base = '${group_name}_sync_out'
    show = 'burnup_avg temperature_fuel_avg temperature_fuel_max temperature_cladding_avg temperature_cladding_max temperature_liner_avg swelling_vol_percent fgr_percent fission_rate_avg fission_rate_max porosity_fuel_avg porosity_fuel_max'
    sync_only = true
  []
  [PIE_out]
    type = CSV
    file_base = '${group_name}_PIE_out'
    show = 'burnup_avg fgr_percent swelling_vol_percent'
    execute_on = 'FINAL'
  []
  [checkpoint]
    type = Checkpoint
    time_step_interval = 10
  []
  [base]
    type = CSV
    file_base = '${group_name}_csvs/${group_name}_base_out'
  []
  [console]
    type = Console
    show = 'temperature_cladding_avg temperature_cladding_max GBcoverage_max GBcoverage_avg fgr_percent gas_conservation time_step_limit time_step_size temperature_fuel_avg temperature_fuel_max stress_vonmises_fuel_max stress_hydro_fuel_max stress_hydro_fuel_min strain_axial_fuel_avg burnup_avg fission_rate_avg porosity_fuel_avg disp_x_fuel_radial_surface_max disp_x_cladding_radial_surface_max swelling_vol_percent'
  []
[]

[Debug]
  show_var_residual = 'disp_x disp_y temperature'
  show_var_residual_norms = true
[]
(assessment/nitride/EBRII/SP1/analysis/SP1_base.i)

Simplified Liner Block

[NuclearMaterials<<<{"href": "../index.html"}>>>]
  [Tungsten<<<{"href": "index.html"}>>>]
    [liner]
      block<<<{"description": "The list of ids of the blocks (subdomain) that the stress divergence kernels will be applied to"}>>> = liner
      strain<<<{"description": "Strain formulation"}>>> = FINITE
      incremental<<<{"description": "Use incremental or total strain"}>>> = true
      automatic_eigenstrain_names<<<{"description": "Collects all material eigenstrains and passes to required strain calculator within TMA internally."}>>> = true
      Tungsten_models<<<{"description": "Type(s) of physics models used on this block.   The choices are: Elastic Creep ThermalExpansion"}>>> = 'Elastic ThermalExpansion'
      stress_free_temperature<<<{"description": "Reference temperature for thermal eigenstrain calculation"}>>> = ${initial_temperature}
    []
  []
[]
(assessment/nitride/EBRII/SP1/analysis/SP1_Pin_base_action.i)

The eigenstrains have been automatically parsed and included by wrapping the SolidMechanics QuasiStatic Action inside the NuclearMaterials following the naming convention created by this class.

Input Parameters

  • Tungsten_modelsType(s) of physics models used on this block. The choices are: Elastic Creep ThermalExpansion

    C++ Type:MultiMooseEnum

    Options:Elastic, Creep, ThermalExpansion

    Controllable:No

    Description:Type(s) of physics models used on this block. The choices are: Elastic Creep ThermalExpansion

Required 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

    Options:Mechanics, Thermal

    Controllable:No

    Description:Type(s) of physics used on this block. The choices are: Mechanics Thermal

  • 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.

  • density19300Clad density in kg-Tungsten/m^3.

    Default:19300

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Clad density in kg-Tungsten/m^3.

  • 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

    Options:Ag, Cs, Sr

    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

    Options:LAGRANGE, MONOMIAL, SCALAR, LAGRANGE_VEC, MONOMIAL_VEC, L2_HIERARCHIC, L2_HIERARCHIC_VEC, L2_LAGRANGE, L2_LAGRANGE_VEC, L2_RAVIART_THOMAS

    Controllable:No

    Description:Specifies the family of FE shape functions to use for this variable.

  • 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

    Options:cauchy_stress_xx, cauchy_stress_xy, cauchy_stress_xz, cauchy_stress_yx, cauchy_stress_yy, cauchy_stress_yz, cauchy_stress_zx, cauchy_stress_zy, cauchy_stress_zz, creep_strain_xx, creep_strain_xy, creep_strain_xz, creep_strain_yx, creep_strain_yy, creep_strain_yz, creep_strain_zx, creep_strain_zy, creep_strain_zz, creep_stress_xx, creep_stress_xy, creep_stress_xz, creep_stress_yx, creep_stress_yy, creep_stress_yz, creep_stress_zx, creep_stress_zy, creep_stress_zz, deformation_gradient_xx, deformation_gradient_xy, deformation_gradient_xz, deformation_gradient_yx, deformation_gradient_yy, deformation_gradient_yz, deformation_gradient_zx, deformation_gradient_zy, deformation_gradient_zz, elastic_strain_xx, elastic_strain_xy, elastic_strain_xz, elastic_strain_yx, elastic_strain_yy, elastic_strain_yz, elastic_strain_zx, elastic_strain_zy, elastic_strain_zz, mechanical_strain_xx, mechanical_strain_xy, mechanical_strain_xz, mechanical_strain_yx, mechanical_strain_yy, mechanical_strain_yz, mechanical_strain_zx, mechanical_strain_zy, mechanical_strain_zz, pk1_stress_xx, pk1_stress_xy, pk1_stress_xz, pk1_stress_yx, pk1_stress_yy, pk1_stress_yz, pk1_stress_zx, pk1_stress_zy, pk1_stress_zz, pk2_stress_xx, pk2_stress_xy, pk2_stress_xz, pk2_stress_yx, pk2_stress_yy, pk2_stress_yz, pk2_stress_zx, pk2_stress_zy, pk2_stress_zz, plastic_strain_xx, plastic_strain_xy, plastic_strain_xz, plastic_strain_yx, plastic_strain_yy, plastic_strain_yz, plastic_strain_zx, plastic_strain_zy, plastic_strain_zz, small_stress_xx, small_stress_xy, small_stress_xz, small_stress_yx, small_stress_yy, small_stress_yz, small_stress_zx, small_stress_zy, small_stress_zz, strain_xx, strain_xy, strain_xz, strain_yx, strain_yy, strain_yz, strain_zx, strain_zy, strain_zz, stress_xx, stress_xy, stress_xz, stress_yx, stress_yy, stress_yz, stress_zx, stress_zy, stress_zz, effective_plastic_strain, effective_creep_strain, firstinv_stress, firstinv_cauchy_stress, firstinv_pk1_stress, firstinv_pk2_stress, firstinv_small_stress, firstinv_strain, hydrostatic_stress, hydrostatic_cauchy_stress, hydrostatic_pk1_stress, hydrostatic_pk2_stress, hydrostatic_small_stress, intensity_stress, intensity_cauchy_stress, intensity_pk1_stress, intensity_pk2_stress, intensity_small_stress, l2norm_mechanical_strain, l2norm_stress, l2norm_cauchy_stress, l2norm_pk1_stress, l2norm_strain, l2norm_elastic_strain, l2norm_plastic_strain, l2norm_creep_strain, max_principal_mechanical_strain, max_principal_stress, max_principal_cauchy_stress, max_principal_pk1_stress, max_principal_pk2_stress, max_principal_small_stress, max_principal_strain, maxshear_stress, maxshear_cauchy_stress, maxshear_pk1_stress, maxshear_pk2_stress, maxshear_small_stress, mid_principal_mechanical_strain, mid_principal_stress, mid_principal_cauchy_stress, mid_principal_pk1_stress, mid_principal_pk2_stress, mid_principal_small_stress, mid_principal_strain, min_principal_mechanical_strain, min_principal_stress, min_principal_cauchy_stress, min_principal_pk1_stress, min_principal_pk2_stress, min_principal_small_stress, min_principal_strain, secondinv_stress, secondinv_cauchy_stress, secondinv_pk1_stress, secondinv_pk2_stress, secondinv_small_stress, secondinv_strain, thirdinv_stress, thirdinv_cauchy_stress, thirdinv_pk1_stress, thirdinv_pk2_stress, thirdinv_small_stress, thirdinv_strain, triaxiality_stress, triaxiality_cauchy_stress, triaxiality_pk1_stress, triaxiality_pk2_stress, triaxiality_small_stress, volumetric_mechanical_strain, volumetric_strain, vonmises_stress, vonmises_cauchy_stress, vonmises_pk1_stress, vonmises_pk2_stress, directional_stress, directional_strain, axial_stress, axial_strain, axial_plastic_strain, axial_creep_strain, axial_elastic_strain, hoop_stress, hoop_strain, hoop_plastic_strain, hoop_creep_strain, hoop_elastic_strain, radial_stress, radial_strain, spherical_hoop_stress, spherical_hoop_strain, spherical_hoop_plastic_strain, spherical_hoop_creep_strain, spherical_hoop_elastic_strain, spherical_radial_stress, spherical_radial_strain

    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

    Options:CONSTANT, FIRST, SECOND, THIRD, FOURTH, FIFTH, SIXTH, SEVENTH, EIGHTH, NINTH

    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

    Options:Mechanics, Thermal

    Controllable:No

    Description:Type(s) of physics used on this block.

  • poissons_ratioPoisson's ratio for the material.

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Poisson's ratio for the material.

  • strainSMALLStrain formulation

    Default:SMALL

    C++ Type:MooseEnum

    Options:SMALL, FINITE

    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

  • 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_modulusYoung's modulus of the material.

    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

    Options:cauchy_stress_xx, cauchy_stress_xy, cauchy_stress_xz, cauchy_stress_yx, cauchy_stress_yy, cauchy_stress_yz, cauchy_stress_zx, cauchy_stress_zy, cauchy_stress_zz, creep_strain_xx, creep_strain_xy, creep_strain_xz, creep_strain_yx, creep_strain_yy, creep_strain_yz, creep_strain_zx, creep_strain_zy, creep_strain_zz, creep_stress_xx, creep_stress_xy, creep_stress_xz, creep_stress_yx, creep_stress_yy, creep_stress_yz, creep_stress_zx, creep_stress_zy, creep_stress_zz, deformation_gradient_xx, deformation_gradient_xy, deformation_gradient_xz, deformation_gradient_yx, deformation_gradient_yy, deformation_gradient_yz, deformation_gradient_zx, deformation_gradient_zy, deformation_gradient_zz, elastic_strain_xx, elastic_strain_xy, elastic_strain_xz, elastic_strain_yx, elastic_strain_yy, elastic_strain_yz, elastic_strain_zx, elastic_strain_zy, elastic_strain_zz, mechanical_strain_xx, mechanical_strain_xy, mechanical_strain_xz, mechanical_strain_yx, mechanical_strain_yy, mechanical_strain_yz, mechanical_strain_zx, mechanical_strain_zy, mechanical_strain_zz, pk1_stress_xx, pk1_stress_xy, pk1_stress_xz, pk1_stress_yx, pk1_stress_yy, pk1_stress_yz, pk1_stress_zx, pk1_stress_zy, pk1_stress_zz, pk2_stress_xx, pk2_stress_xy, pk2_stress_xz, pk2_stress_yx, pk2_stress_yy, pk2_stress_yz, pk2_stress_zx, pk2_stress_zy, pk2_stress_zz, plastic_strain_xx, plastic_strain_xy, plastic_strain_xz, plastic_strain_yx, plastic_strain_yy, plastic_strain_yz, plastic_strain_zx, plastic_strain_zy, plastic_strain_zz, small_stress_xx, small_stress_xy, small_stress_xz, small_stress_yx, small_stress_yy, small_stress_yz, small_stress_zx, small_stress_zy, small_stress_zz, strain_xx, strain_xy, strain_xz, strain_yx, strain_yy, strain_yz, strain_zx, strain_zy, strain_zz, stress_xx, stress_xy, stress_xz, stress_yx, stress_yy, stress_yz, stress_zx, stress_zy, stress_zz, effective_plastic_strain, effective_creep_strain, firstinv_stress, firstinv_cauchy_stress, firstinv_pk1_stress, firstinv_pk2_stress, firstinv_small_stress, firstinv_strain, hydrostatic_stress, hydrostatic_cauchy_stress, hydrostatic_pk1_stress, hydrostatic_pk2_stress, hydrostatic_small_stress, intensity_stress, intensity_cauchy_stress, intensity_pk1_stress, intensity_pk2_stress, intensity_small_stress, l2norm_mechanical_strain, l2norm_stress, l2norm_cauchy_stress, l2norm_pk1_stress, l2norm_strain, l2norm_elastic_strain, l2norm_plastic_strain, l2norm_creep_strain, max_principal_mechanical_strain, max_principal_stress, max_principal_cauchy_stress, max_principal_pk1_stress, max_principal_pk2_stress, max_principal_small_stress, max_principal_strain, maxshear_stress, maxshear_cauchy_stress, maxshear_pk1_stress, maxshear_pk2_stress, maxshear_small_stress, mid_principal_mechanical_strain, mid_principal_stress, mid_principal_cauchy_stress, mid_principal_pk1_stress, mid_principal_pk2_stress, mid_principal_small_stress, mid_principal_strain, min_principal_mechanical_strain, min_principal_stress, min_principal_cauchy_stress, min_principal_pk1_stress, min_principal_pk2_stress, min_principal_small_stress, min_principal_strain, secondinv_stress, secondinv_cauchy_stress, secondinv_pk1_stress, secondinv_pk2_stress, secondinv_small_stress, secondinv_strain, thirdinv_stress, thirdinv_cauchy_stress, thirdinv_pk1_stress, thirdinv_pk2_stress, thirdinv_small_stress, thirdinv_strain, triaxiality_stress, triaxiality_cauchy_stress, triaxiality_pk1_stress, triaxiality_pk2_stress, triaxiality_small_stress, volumetric_mechanical_strain, volumetric_strain, vonmises_stress, vonmises_cauchy_stress, vonmises_pk1_stress, vonmises_pk2_stress, directional_stress, directional_strain, axial_stress, axial_strain, axial_plastic_strain, axial_creep_strain, axial_elastic_strain, hoop_stress, hoop_strain, hoop_plastic_strain, hoop_creep_strain, hoop_elastic_strain, radial_stress, radial_strain, spherical_hoop_stress, spherical_hoop_strain, spherical_hoop_plastic_strain, spherical_hoop_creep_strain, spherical_hoop_elastic_strain, spherical_radial_stress, spherical_radial_strain

    Controllable:No

    Description:Add scalar quantity output for stress and/or strain (will be appended to the list in `generate_output`)

  • automatic_eigenstrain_namesTrueCollects all material eigenstrains and passes to required strain calculator within TMA internally.

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Collects all material eigenstrains and passes to required strain calculator within TMA internally.

  • 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

  • decomposition_methodEigenSolutionMethods to calculate the finite strain and rotation increments

    Default:EigenSolution

    C++ Type:MooseEnum

    Options:TaylorExpansion, EigenSolution, HughesWinget

    Controllable:No

    Description:Methods to calculate the finite strain and rotation increments

  • 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.

Advanced Parameters