- scalar_out_of_plane_strainScalar variable for the out-of-plane strain (in y direction for 1D Axisymmetric or in z direction for 2D Cartesian problems)
C++ Type:NonlinearVariableName

Description:Scalar variable for the out-of-plane strain (in y direction for 1D Axisymmetric or in z direction for 2D Cartesian problems)

- displacementsThe displacement variables
C++ Type:std::vector

Description:The displacement variables

# Generalized Plane Strain Action

## Description

This action simplifies the input file syntax for creating a generalized plane strain model. It creates the following MOOSE objects (i.e. Kernel, ScalarKernel and UserObject) related to the out-of-plane scalar variable.

### Kernel

Generalized Plane Strain Off-diagonal Kernel: in-plane displacement variables and scalar out-of-plane strain coupling

### ScalarKernel

Generalized Plane Strain ScalarKernel: out-of-plane equilibrium condition

### UserObject

Generalized Plane Strain UserObject: residual and diagonal Jacobian calculation for scalar out-of-plane strain variable

## Generalized Plane Strain and Reference Residual

Generalized plane strain problems may use `ReferenceResidualProblem`

. In this case, a reference scalar variable is needed to correspond with the scalar strain variable.

```
[Problem]
type = ReferenceResidualProblem
solution_variables = 'disp_x disp_y scalar_strain_zz'
reference_residual_variables = 'saved_x saved_y saved_zz'
[]
```

(modules/combined/test/tests/generalized_plane_strain_tm_contact/out_of_plane_pressure.i)The reference scalar variable is set using the `AuxScalarKernel`

Generalized Plane Strain Reference Residual using the Generalized Plane Strain UserObject.

```
[AuxScalarKernels]
[./gps_ref_res]
type = GeneralizedPlaneStrainReferenceResidual
variable = saved_zz
generalized_plane_strain = gps_GeneralizedPlaneStrainUserObject
[../]
[]
```

(modules/combined/test/tests/generalized_plane_strain_tm_contact/out_of_plane_pressure.i)## Input Parameters

- temperatureThe temperature variable
C++ Type:NonlinearVariableName

Description:The temperature variable

- base_nameMaterial property base name
C++ Type:std::string

Description:Material property base name

- use_displaced_meshFalseWhether to use displaced mesh
Default:False

C++ Type:bool

Description:Whether to use displaced mesh

- out_of_plane_pressure0Function used to prescribe pressure in the out-of-plane direction (y for 1D Axisymmetric or z for 2D Cartesian problems)
Default:0

C++ Type:FunctionName

Description:Function used to prescribe pressure in the out-of-plane direction (y for 1D Axisymmetric or z for 2D Cartesian problems)

- inactiveIf specified blocks matching these identifiers will be skipped.
C++ Type:std::vector

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

- factor1Scale factor applied to prescribed pressure
Default:1

C++ Type:double

Description:Scale factor applied to prescribed pressure

- 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

- out_of_plane_directionzThe direction of the out-of-plane strain.
Default:z

C++ Type:MooseEnum

Description:The direction of the out-of-plane strain.

- blockThe list of ids of the blocks (subdomain) that the GeneralizedPlaneStrain kernels will be applied to
C++ Type:std::vector

Description:The list of ids of the blocks (subdomain) that the GeneralizedPlaneStrain kernels will be applied to