Pressure

Applies a pressure on a given boundary in a given direction

Description

The boundary condition, Pressure applies a force to a mesh boundary in the magnitude specified by the user. A component of the normal vector to the mesh surface (0, 1, or 2 corresponding to the , , and vector components) is used to determine the direction in which to apply the traction. The boundary condition is typically applied to the displaced mesh.

The magnitude of the Pressure boundary condition can be specified as either a scalar (use the input parameter factor, which defaults to 1.0), a function parameter, or a Postprocessor name. If more than one of these are given, they are multiplied by one another.

commentnote:Can Be Created with the Pressure Action

A set of Pressure boundary conditions applied to multiple variables in multiple components can be defined with the PressureAction.

Jacobian

Cartesian

Let be the number of nodes on a finite element face. Also, let be the shape function at node . Then the vector , which has dimension for a 3D model, is defined as where represents a scaling factor, is the normal vector, and where is the identity tensor.

To find the Jacobian, we take the variation of the term in the integral,

We define as where may be either or , the two parametric coordinates associated with the face of an element. has dimensions . This allows Since the values of the parametric coordinates are fixed according to the integration rule and do not vary, this term becomes zero. We are left with .

The normal vector is an outward unit vector at the integration points. We define where defined at the integration points with where is the vector of coordinates for node and is the vector of displacements for node .

If ,

We are left with

To take the cross product of a vector and a set of vectors in a matrix, we take the cross product of the vector with each vector in the matrix in turn. The th submatrix of is . This gives The integrand of the submatrix of the stiffness is

Spherical symmetry

For a problem using spherical symmetry, the Jacobian is much simpler. Here we have with . Here, is not a function of the displacements. The variation is

Axisymmetry

For 1D axisymmetry, we have with and a unit height. Here, is not a function of the displacements. The variation is

For 2D axisymmetry, we have with . However, both and depend on the displacements. Thus, we have

Example Input File Syntax

[BCs]
  [outerPressure]
    type = Pressure
    boundary = right
    variable = disp_r
    factor = 2
  []
[]
(moose/modules/solid_mechanics/test/tests/1D_spherical/finiteStrain_1DSphere_hollow.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 displacements appropriate for the simulation geometry and coordinate system

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

    Unit:(no unit assumed)

    Controllable:No

    Description:The displacements appropriate for the simulation geometry and coordinate system

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

  • factor1The factor to use in computing the pressure

    Default:1

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The factor to use in computing the pressure

  • functionThe function that describes the pressure

    C++ Type:FunctionName

    Unit:(no unit assumed)

    Controllable:No

    Description:The function that describes the pressure

  • hht_alpha0alpha parameter for mass dependent numerical damping induced by HHT time integration scheme

    Default:0

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:alpha parameter for mass dependent numerical damping induced by HHT time integration scheme

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

  • save_in_disp_xThe save_in variables for x displacement

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

    Unit:(no unit assumed)

    Controllable:No

    Description:The save_in variables for x displacement

  • save_in_disp_yThe save_in variables for y displacement

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

    Unit:(no unit assumed)

    Controllable:No

    Description:The save_in variables for y displacement

  • save_in_disp_zThe save_in variables for z displacement

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

    Unit:(no unit assumed)

    Controllable:No

    Description:The save_in variables for z displacement

  • 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 the displaced mesh.

    Default:True

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Whether to use the displaced mesh.

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