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

## Associated Actions

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