Plenum Pressure BC Action

Sets up the calculation of the plenum pressure as a function of temperature, plenum volume, and moles of fission and plenum gases.

Description

The PlenumPressure block is used to specify internal rod pressure as a function of temperature, cavity volume, and moles of gas. The PlenumPressure boundary condition uses two levels of nesting within the BCs block. This allows the pressure to be applied properly in all coordinate directions within a single input file block. The Cavity Pressure Action system consists of three separate actions, listed in Table 1, which are all created within the same block.

Usage Guide

The volume and pressure specified in the plenum pressure block along with the initial condition specified in the temperature variable block are used to calculate the initial moles. The initial moles are then used to update the plenum pressure throughout the simulation.

note:Use Gas Fabrication Temperature as Initial Value

Make sure the initial temperature in the PlenumPressure block is set appropriately: Either use a postprocessor to couple to the average rod interior temperature, as shown in the example input syntax, or set the value of initial_temperature to the temperature of the gas when fabricated, usually room temperature (293 K). This initial temperature value is used to calculate the number of initial moles in the CavityPressurePostprocessor or the CavityPressurePPAction.

The postprocessors coupled to the plenum pressure boundary condition (gas volume and rod interior temperature) need to be executed at each residual such that the plenum pressure is calculated for that specific timestep. If calculated at each timestep, the calculation uses volume and temperature from the previous step to calculate the plenum pressure for the current step, causing a lag in the plenum pressure used and reported for that timestep.

Table 1: Correspondence Among Action Functionality and MooseObjects

FunctionalityReplaced ClassesSpecific ActionAssociated Parameters
Calculation of the initial moles quantityPlenumPressureUserObjectPlenumPressureUOActionvolume: the name of the internal volume postprocessor to calculate the volume between the fuel and clad
R: the universal gas constant
temperature : the name of the average temperature postprocessor
Store the value of the initial molesCavityPressurePostprocessorCavityPressurePPActionoutput_initial_moles: the postprocessor name to used to report the initial moles of gas
Calculation of the current internal pressure, including contributions from fission gas releasePlenumPressureUserObjectPlenumPressureUOActionoutput: the name of the cavity pressure postprocessor
Store the internal pressure valueCavityPressurePostprocessorCavityPressurePPActionoutput: the name of the cavity pressure postprocessor
Apply the calculated internal pressure tractionPressureCavityPressureActionboundary: the list of boundary IDs to which the pressure should be applied
displacements : a string of the displacement variables to which the Pressure BC should be applied

Example Input File Syntax


[./PlenumPressure] # apply plenum pressure on clad inner walls and pellet surfaces
  [./plenumPressure]
    boundary = 9
    initial_pressure = 2.0e6
    startup_time = 0
    R = 8.3143
    output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
    temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
    volume = gas_volume # coupling to post processor to get gas volume
    material_input = fis_gas_released # coupling to post processor to get fission gas added
    output = plenum_pressure # coupling to post processor to output plenum/gap pressure
  [../]
[../]
(examples/tensor_mechanics/2D-RZ_rodlet_10pellets/2Dtm_discrete_finiteStrain.i)

Input Parameters

  • volumeThe name of the postprocessor(s) that holds the value of the internal volume in the cavity

    C++ Type:std::vector

    Description:The name of the postprocessor(s) that holds the value of the internal volume in the cavity

  • RThe universal gas constant for the units used.

    C++ Type:double

    Description:The universal gas constant for the units used.

  • temperatureThe name of the average temperature postprocessor value.

    C++ Type:PostprocessorName

    Description:The name of the average temperature postprocessor value.

Required Parameters

  • refab_temperatureThe temperature at refabrication.

    C++ Type:std::vector

    Description:The temperature at refabrication.

  • refab_pressureThe pressure of fill gas at refabrication.

    C++ Type:std::vector

    Description:The pressure of fill gas at refabrication.

  • startup_time0The amount of time during which the pressure will ramp from zero to its true value.

    Default:0

    C++ Type:double

    Description:The amount of time during which the pressure will ramp from zero to its true value.

  • initial_temperatureInitial temperature (optional)

    C++ Type:double

    Description:Initial temperature (optional)

  • refab_volumeThe gas volume at refabrication.

    C++ Type:std::vector

    Description:The gas volume at refabrication.

  • refab_typeThe type of refabrication. 0 for instantaneous reset of gas, 1 for reset with constant fraction until next refabrication

    C++ Type:std::vector

    Description:The type of refabrication. 0 for instantaneous reset of gas, 1 for reset with constant fraction until next refabrication

  • refab_timeThe time at which the plenum pressure must be reinitialized due to fuel rod refabrication.

    C++ Type:std::vector

    Description:The time at which the plenum pressure must be reinitialized due to fuel rod refabrication.

  • initial_pressure0The initial pressure in the plenum. If not given, a zero initial pressure will be used.

    Default:0

    C++ Type:double

    Description:The initial pressure in the plenum. If not given, a zero initial pressure will be used.

  • inactiveIf specified blocks matching these identifiers will be skipped.

    C++ Type:std::vector

    Description:If specified blocks matching these identifiers will be skipped.

  • outputThe name to use for the plenum pressure value.

    C++ Type:std::string

    Description:The name to use for the plenum pressure value.

  • active__all__ If specified only the blocks named will be visited and made active

    Default:__all__

    C++ Type:std::vector

    Description:If specified only the blocks named will be visited and made active

  • execute_onINITIAL LINEARThe list of flag(s) indicating when this object should be executed, the available options include NONE, INITIAL, LINEAR, NONLINEAR, TIMESTEP_END, TIMESTEP_BEGIN, FINAL, CUSTOM.

    Default:INITIAL LINEAR

    C++ Type:ExecFlagEnum

    Description:The list of flag(s) indicating when this object should be executed, the available options include NONE, INITIAL, LINEAR, NONLINEAR, TIMESTEP_END, TIMESTEP_BEGIN, FINAL, CUSTOM.

  • material_inputThe name of the postprocessor(s) that holds the amount of material injected into the plenum.

    C++ Type:std::vector

    Description:The name of the postprocessor(s) that holds the amount of material injected into the plenum.

Optional Parameters

Associated Actions

  • PlenumPressureUOActionSets up the calculation of the plenum pressure as a function of temperature, plenum volume, and moles of fission and plenum gases.