Cavity Pressure Action

Description

The CavityPressure Action system is used to calculate the pressure from an ideal gas trapped within an internal volume.

The pressure in the cavity is computed based on the ideal gas law, (1) where is the internal pressure, is the moles of gas, is the ideal gas constant, is the temperature, and is the volume of the cavity.

The moles of gas, the temperature, and the cavity volume in Eq. (1) are free to change with time. The moles of gas at any time is the original amount of gas (computed based on original pressure, temperature, and volume) plus the amount in the cavity due to any gas injected during the simulation.

Constructed MooseObjects

The Cavity Pressure Action system consists of three separate actions, listed in the Associated Actions block below, which are all created within the same block.

Table 1: Correspondence Among Action Functionality and MooseObjects for the CavityPressure Action

FunctionalityReplaced ClassesAssociated Parameters
Calculation of the initial moles quantityCavityPressureUserObjectvolume: the name of the internal volume postprocessor
R: the universal gas constant
temperature : the name of the average temperature postprocessor
Store the value of the initial molesCavityPressurePostprocessoroutput_initial_moles: the postprocessor name to used to report the initial moles of gas
Calculation of the current internal pressureCavityPressureUserObjectoutput: the name of the cavity pressure postprocessor
Store the internal pressure valueCavityPressurePostprocessoroutput: the name of the cavity pressure postprocessor
Apply the calculated internal pressure tractionPressureboundary: 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 Syntax

[BCs]
  [CavityPressure]
    [1]
      boundary = 100
      initial_pressure = 100
      material_input = materialInput
      R = 8.314472
      temperature = aveTempInterior
      volume = internalVolume
      startup_time = 0.5
      output = ppress
      save_in = 'pressure_residual_x pressure_residual_y pressure_residual_z'
    []
  []
[]
(moose/modules/combined/test/tests/cavity_pressure/3d.i)

Postprocessors for both the average temperature and the internal volume are also required for the Cavity Pressure Action system. Note that the name of the postprocessors correspond to the arguments for the parameters temperature and internal_volume in the CavityPressure block.

[Postprocessors]
  [aveTempInterior]
    type = SideAverageValue
    boundary = 100
    variable = temp
    execute_on = 'initial linear'
  []
[]
(moose/modules/combined/test/tests/cavity_pressure/3d.i)
[Postprocessors]
  [internalVolume]
    type = InternalVolume
    boundary = 100
    execute_on = 'initial linear'
  []
[]
(moose/modules/combined/test/tests/cavity_pressure/3d.i)

Input Parameters

  • boundaryThe list of boundary IDs from the mesh where the pressure will be applied

    C++ Type:std::vector<BoundaryName>

    Unit:(no unit assumed)

    Controllable:No

    Description:The list of boundary IDs from the mesh where the pressure will be applied

  • displacementsThe nonlinear displacement variables

    C++ Type:std::vector<VariableName>

    Unit:(no unit assumed)

    Controllable:No

    Description:The nonlinear displacement variables

Required 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>

    Unit:(no unit assumed)

    Controllable:No

    Description:The tags for the vectors this residual object should fill with the absolute value of the residual contribution

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

    Default:__all__

    C++ Type:std::vector<std::string>

    Unit:(no unit assumed)

    Controllable:No

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

  • extra_vector_tagsThe extra tags for the vectors this Kernel should fill

    C++ Type:std::vector<TagName>

    Unit:(no unit assumed)

    Controllable:No

    Description:The extra tags for the vectors this Kernel should fill

  • inactiveIf specified blocks matching these identifiers will be skipped.

    C++ Type:std::vector<std::string>

    Unit:(no unit assumed)

    Controllable:No

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

  • outputThe name to use for the cavity pressure value

    C++ Type:std::string

    Unit:(no unit assumed)

    Controllable:No

    Description:The name to use for the cavity pressure value

  • save_inAuxiliary variables to save the displacement residuals

    C++ Type:std::vector<AuxVariableName>

    Unit:(no unit assumed)

    Controllable:No

    Description:Auxiliary variables to save the displacement residuals

  • use_automatic_differentiationFalseFlag to use automatic differentiation (AD) objects when possible

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Flag to use automatic differentiation (AD) objects when possible

  • use_displaced_meshTrueWhether to use displaced mesh in the boundary condition

    Default:True

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Whether to use displaced mesh in the boundary condition

Optional Parameters

  • control_tagsAdds user-defined labels for accessing object parameters via control logic.

    C++ Type:std::vector<std::string>

    Unit:(no unit assumed)

    Controllable:No

    Description:Adds user-defined labels for accessing object parameters via control logic.

Advanced Parameters

Associated Actions

Available Actions