- 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
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.
Functionality | Replaced Classes | Associated Parameters |
---|---|---|
Calculation of the initial moles quantity | CavityPressureUserObject | volume : 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 moles | CavityPressurePostprocessor | output_initial_moles : the postprocessor name to used to report the initial moles of gas |
Calculation of the current internal pressure | CavityPressureUserObject | output : the name of the cavity pressure postprocessor |
Store the internal pressure value | CavityPressurePostprocessor | output : the name of the cavity pressure postprocessor |
Apply the calculated internal pressure traction | Pressure | boundary : 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
- 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
- Solid Mechanics App
- CavityPressureActionAction to setup cavity pressure boundary condition
- CavityPressurePPActionThis Action creates a CavityPressurePostprocessor.
- CavityPressureUOActionAction to add user objects for cavity pressure